updated for version 7.0b
diff --git a/src/GvimExt/GvimExt.reg b/src/GvimExt/GvimExt.reg
index db49d24..604e911 100644
--- a/src/GvimExt/GvimExt.reg
+++ b/src/GvimExt/GvimExt.reg
@@ -15,6 +15,6 @@
 [HKEY_LOCAL_MACHINE\Software\Vim\Gvim]
    "path"="gvim.exe"
 
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0aa]
-   "DisplayName"="Vim 7.0aa: Edit with Vim popup menu entry"
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0b]
+   "DisplayName"="Vim 7.0b: Edit with Vim popup menu entry"
    "UninstallString"="uninstal.exe"
diff --git a/src/Make_bc3.mak b/src/Make_bc3.mak
index 20a9b1f..4617630 100644
--- a/src/Make_bc3.mak
+++ b/src/Make_bc3.mak
@@ -66,7 +66,7 @@
 	fold.obj \
 	getchar.obj \
 	hardcopy.obj \
-	hashtable.obj \
+	hashtab.obj \
 	main.obj \
 	mark.obj \
 	memfile.obj \
@@ -80,7 +80,7 @@
 	normal.obj \
 	ops.obj \
 	option.obj \
-	popupmenu.obj \
+	popupmnu.obj \
 	quickfix.obj \
 	regexp.obj \
 	screen.obj \
diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak
index 3e1640e..b063ce0 100644
--- a/src/Make_bc5.mak
+++ b/src/Make_bc5.mak
@@ -547,7 +547,7 @@
 	$(OBJDIR)\fold.obj \
 	$(OBJDIR)\getchar.obj \
 	$(OBJDIR)\hardcopy.obj \
-	$(OBJDIR)\hashtable.obj \
+	$(OBJDIR)\hashtab.obj \
 	$(OBJDIR)\main.obj \
 	$(OBJDIR)\mark.obj \
 	$(OBJDIR)\memfile.obj \
@@ -561,7 +561,7 @@
 	$(OBJDIR)\normal.obj \
 	$(OBJDIR)\ops.obj \
 	$(OBJDIR)\option.obj \
-	$(OBJDIR)\popupmenu.obj \
+	$(OBJDIR)\popupmnu.obj \
 	$(OBJDIR)\quickfix.obj \
 	$(OBJDIR)\regexp.obj \
 	$(OBJDIR)\screen.obj \
diff --git a/src/Make_ivc.mak b/src/Make_ivc.mak
index f6b3694..2d118d5 100644
--- a/src/Make_ivc.mak
+++ b/src/Make_ivc.mak
@@ -225,7 +225,7 @@
 	"$(INTDIR)/fold.obj" \
 	"$(INTDIR)/getchar.obj" \
 	"$(INTDIR)/hardcopy.obj" \
-	"$(INTDIR)/hashtable.obj" \
+	"$(INTDIR)/hashtab.obj" \
 	"$(INTDIR)/main.obj" \
 	"$(INTDIR)/mark.obj" \
 	"$(INTDIR)/mbyte.obj" \
@@ -241,7 +241,7 @@
 	"$(INTDIR)/option.obj" \
 	"$(INTDIR)/os_mswin.obj" \
 	"$(INTDIR)/os_win32.obj" \
-	"$(INTDIR)/popupmenu.obj" \
+	"$(INTDIR)/popupmnu.obj" \
 	"$(INTDIR)/quickfix.obj" \
 	"$(INTDIR)/regexp.obj" \
 	"$(INTDIR)/screen.obj" \
@@ -384,7 +384,7 @@
 # End Source File
 # Begin Source File
 
-SOURCE=.\hashtable.c
+SOURCE=.\hashtab.c
 # End Source File
 # Begin Source File
 
@@ -598,7 +598,7 @@
 # End Source File
 # Begin Source File
 
-SOURCE=.\popupmenu.c
+SOURCE=.\popupmnu.c
 # End Source File
 # Begin Source File
 
diff --git a/src/Make_manx.mak b/src/Make_manx.mak
index 46c0015..b8e7852 100644
--- a/src/Make_manx.mak
+++ b/src/Make_manx.mak
@@ -49,7 +49,7 @@
 	fold.c \
 	getchar.c \
 	hardcopy.c \
-	hashtable.c \
+	hashtab.c \
 	main.c \
 	mark.c \
 	memfile.c \
@@ -64,7 +64,7 @@
 	ops.c \
 	option.c \
 	os_amiga.c \
-	popupmenu.c \
+	popupmnu.c \
 	quickfix.c \
 	regexp.c \
 	screen.c \
@@ -95,7 +95,7 @@
 	obj/fold.o \
 	obj/getchar.o \
 	obj/hardcopy.o \
-	obj/hashtable.o \
+	obj/hashtab.o \
 	obj/main.o \
 	obj/mark.o \
 	obj/memfile.o \
@@ -110,7 +110,7 @@
 	obj/ops.o \
 	obj/option.o \
 	obj/os_amiga.o \
-	obj/popupmenu.o \
+	obj/popupmnu.o \
 	obj/quickfix.o \
 	obj/regexp.o \
 	obj/screen.o \
@@ -139,7 +139,7 @@
 	proto/fold.pro \
 	proto/getchar.pro \
 	proto/hardcopy.pro \
-	proto/hashtable.pro \
+	proto/hashtab.pro \
 	proto/main.pro \
 	proto/mark.pro \
 	proto/memfile.pro \
@@ -154,7 +154,7 @@
 	proto/ops.pro \
 	proto/option.pro \
 	proto/os_amiga.pro \
-	proto/popupmenu.pro \
+	proto/popupmnu.pro \
 	proto/quickfix.pro \
 	proto/regexp.pro \
 	proto/screen.pro \
@@ -258,8 +258,8 @@
 obj/hardcopy.o:	hardcopy.c
 	$(CCSYM) $@ hardcopy.c
 
-obj/hashtable.o:	hashtable.c
-	$(CCSYM) $@ hashtable.c
+obj/hashtab.o:	hashtab.c
+	$(CCSYM) $@ hashtab.c
 
 # Don't use $(SYMS) here, because main.c defines EXTERN
 obj/main.o:	main.c option.h globals.h
@@ -306,8 +306,8 @@
 obj/os_amiga.o:	os_amiga.c
 	$(CCSYM) $@ os_amiga.c
 
-obj/popupmenu.o:	popupmenu.c
-	$(CCSYM) $@ popupmenu.c
+obj/popupmnu.o:	popupmnu.c
+	$(CCSYM) $@ popupmnu.c
 
 obj/quickfix.o:	quickfix.c
 	$(CCSYM) $@ quickfix.c
diff --git a/src/Make_ming.mak b/src/Make_ming.mak
index 7b601cc..e09ba8c 100644
--- a/src/Make_ming.mak
+++ b/src/Make_ming.mak
@@ -372,7 +372,7 @@
 	$(OUTDIR)/fold.o \
 	$(OUTDIR)/getchar.o \
 	$(OUTDIR)/hardcopy.o \
-	$(OUTDIR)/hashtable.o \
+	$(OUTDIR)/hashtab.o \
 	$(OUTDIR)/main.o \
 	$(OUTDIR)/mark.o \
 	$(OUTDIR)/memfile.o \
@@ -389,7 +389,7 @@
 	$(OUTDIR)/os_win32.o \
 	$(OUTDIR)/os_mswin.o \
 	$(OUTDIR)/pathdef.o \
-	$(OUTDIR)/popupmenu.o \
+	$(OUTDIR)/popupmnu.o \
 	$(OUTDIR)/quickfix.o \
 	$(OUTDIR)/regexp.o \
 	$(OUTDIR)/screen.o \
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index dbebbd7..9bb0487 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -390,7 +390,7 @@
 	$(OUTDIR)\fold.obj \
 	$(OUTDIR)\getchar.obj \
 	$(OUTDIR)\hardcopy.obj \
-	$(OUTDIR)\hashtable.obj \
+	$(OUTDIR)\hashtab.obj \
 	$(OUTDIR)\main.obj \
 	$(OUTDIR)\mark.obj \
 	$(OUTDIR)\mbyte.obj \
@@ -407,7 +407,7 @@
 	$(OUTDIR)\os_mswin.obj \
 	$(OUTDIR)\os_win32.obj \
 	$(OUTDIR)\pathdef.obj \
-	$(OUTDIR)\popupmenu.obj \
+	$(OUTDIR)\popupmnu.obj \
 	$(OUTDIR)\quickfix.obj \
 	$(OUTDIR)\regexp.obj \
 	$(OUTDIR)\screen.obj \
@@ -828,7 +828,7 @@
 
 $(OUTDIR)/hardcopy.obj:	$(OUTDIR) hardcopy.c  $(INCL)
 
-$(OUTDIR)/hashtable.obj:	$(OUTDIR) hashtable.c  $(INCL)
+$(OUTDIR)/hashtab.obj:	$(OUTDIR) hashtab.c  $(INCL)
 
 $(OUTDIR)/gui.obj:	$(OUTDIR) gui.c  $(INCL) $(GUI_INCL)
 
@@ -903,7 +903,7 @@
 $(OUTDIR)/pathdef.obj:	$(OUTDIR) $(PATHDEF_SRC) $(INCL)
 	$(CC) $(CFLAGS) $(PATHDEF_SRC)
 
-$(OUTDIR)/popupmenu.obj:	$(OUTDIR) popupmenu.c  $(INCL)
+$(OUTDIR)/popupmnu.obj:	$(OUTDIR) popupmnu.c  $(INCL)
 
 $(OUTDIR)/quickfix.obj:	$(OUTDIR) quickfix.c  $(INCL)
 
@@ -979,7 +979,7 @@
 	proto/fileio.pro \
 	proto/getchar.pro \
 	proto/hardcopy.pro \
-	proto/hashtable.pro \
+	proto/hashtab.pro \
 	proto/main.pro \
 	proto/mark.pro \
 	proto/memfile.pro \
@@ -995,7 +995,7 @@
 	proto/option.pro \
 	proto/os_mswin.pro \
 	proto/os_win32.pro \
-	proto/popupmenu.pro \
+	proto/popupmnu.pro \
 	proto/quickfix.pro \
 	proto/regexp.pro \
 	proto/screen.pro \
diff --git a/src/Make_os2.mak b/src/Make_os2.mak
index 1a64c11..e90f23e 100644
--- a/src/Make_os2.mak
+++ b/src/Make_os2.mak
@@ -54,7 +54,7 @@
 	fold.o \
 	getchar.o \
 	hardcopy.o \
-	hashtable.o \
+	hashtab.o \
 	main.o \
 	mark.o \
 	memfile.o \
@@ -68,7 +68,7 @@
 	normal.o \
 	ops.o \
 	option.o \
-	popupmenu.o \
+	popupmnu.o \
 	quickfix.o \
 	regexp.o \
 	screen.o \
@@ -127,7 +127,7 @@
 fold.o:		fold.c  $(INCL)
 getchar.o:	getchar.c  $(INCL)
 hardcopy.o:	hardcopy.c  $(INCL)
-hashtable.o:	hashtable.c  $(INCL)
+hashtab.o:	hashtab.c  $(INCL)
 main.o:		main.c  $(INCL)
 mark.o:		mark.c  $(INCL)
 memfile.o:	memfile.c  $(INCL)
@@ -141,7 +141,7 @@
 normal.o:	normal.c  $(INCL)
 ops.o:		ops.c  $(INCL)
 option.o:	option.c  $(INCL)
-popupmenu.o:	popupmenu.c  $(INCL)
+popupmnu.o:	popupmnu.c  $(INCL)
 quickfix.o:	quickfix.c  $(INCL)
 regexp.o:	regexp.c  $(INCL)
 screen.o:	screen.c  $(INCL)
diff --git a/src/Make_ro.mak b/src/Make_ro.mak
index 1577409..203a18a 100644
--- a/src/Make_ro.mak
+++ b/src/Make_ro.mak
@@ -13,9 +13,9 @@
 
 OBJS =  o.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.hardcopy o.hashtable o.main o.mark o.mbyte  \
+	o.hardcopy o.hashtab o.main o.mark o.mbyte  \
 	o.memfile o.memline o.menu o.message o.misc1 o.misc2 o.move     \
-	o.normal o.ops o.option o.popupmenu o.quickfix o.regexp o.screen \
+	o.normal o.ops o.option o.popupmnu o.quickfix o.regexp o.screen \
 	o.search   \
 	o.spell o.syntax o.tag o.term o.termlib o.ui o.undo o.version	\
 	o.window o.os_riscos o.swis o.gui o.gui_riscos
@@ -69,7 +69,7 @@
 
 o.hardcopy:	c.hardcopy
 
-o.hashtable:	c.hashtable
+o.hashtab:	c.hashtab
 
 o.gui:		c.gui
 
@@ -105,7 +105,7 @@
 
 o.pty:		c.pty
 
-o.popupmenu:	c.popupmenu
+o.popupmnu:	c.popupmnu
 
 o.quickfix:	c.quickfix
 
diff --git a/src/Make_sas.mak b/src/Make_sas.mak
index 9caadd0..98ec528 100644
--- a/src/Make_sas.mak
+++ b/src/Make_sas.mak
@@ -104,7 +104,7 @@
 	fold.c \
 	getchar.c \
 	hardcopy.c \
-	hashtable.c \
+	hashtab.c \
 	main.c \
 	mark.c \
 	memfile.c \
@@ -119,7 +119,7 @@
 	ops.c \
 	option.c \
 	os_amiga.c \
-	popupmenu.c \
+	popupmnu.c \
 	quickfix.c \
 	regexp.c \
 	screen.c \
@@ -149,7 +149,7 @@
 	fold.o \
 	getchar.o \
 	hardcopy.o \
-	hashtable.o \
+	hashtab.o \
 	main.o \
 	mark.o \
 	memfile.o \
@@ -164,7 +164,7 @@
 	ops.o \
 	option.o \
 	os_amiga.o \
-	popupmenu.o \
+	popupmnu.o \
 	quickfix.o \
 	regexp.o \
 	screen.o \
@@ -194,7 +194,7 @@
 	proto/fold.pro \
 	proto/getchar.pro \
 	proto/hardcopy.pro \
-	proto/hashtable.pro \
+	proto/hashtab.pro \
 	proto/main.pro \
 	proto/mark.pro \
 	proto/memfile.pro \
@@ -209,7 +209,7 @@
 	proto/ops.pro \
 	proto/option.pro \
 	proto/os_amiga.pro \
-	proto/popupmenu.pro \
+	proto/popupmnu.pro \
 	proto/quickfix.pro \
 	proto/regexp.pro \
 	proto/screen.pro \
@@ -308,8 +308,8 @@
 proto/getchar.pro:	getchar.c
 hardcopy.o:		hardcopy.c
 proto/hardcopy.pro:	hardcopy.c
-hashtable.o:		hashtable.c
-proto/hashtable.pro:	hashtable.c
+hashtab.o:		hashtab.c
+proto/hashtab.pro:	hashtab.c
 main.o:			main.c
 proto/main.pro:		main.c
 mark.o:			mark.c
@@ -338,8 +338,8 @@
 proto/option.pro:	option.c
 os_amiga.o:		os_amiga.c
 proto/os_amiga.pro:	os_amiga.c
-popupmenu.o:		popupmenu.c
-proto/popupmenu.pro:	popupmenu.c
+popupmnu.o:		popupmnu.c
+proto/popupmnu.pro:	popupmnu.c
 quickfix.o:		quickfix.c
 proto/quickfix.pro:	quickfix.c
 regexp.o:		regexp.c
diff --git a/src/Makefile b/src/Makefile
index 4c415cb..86291b6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -304,7 +304,7 @@
 
 # examples (can only use one!):
 #CONF_ARGS = --exec-prefix=/usr
-#CONF_ARGS = --with-vim-name=vim6 --with-ex-name=ex6 --with-view-name=view6
+#CONF_ARGS = --with-vim-name=vim7 --with-ex-name=ex7 --with-view-name=view7
 #CONF_ARGS = --with-global-runtime=/etc/vim
 
 # Use this one if you distribute a modified version of Vim.
@@ -876,7 +876,7 @@
 
 ### Vim version (adjusted by a script)
 VIMMAJOR = 7
-VIMMINOR = 0aa
+VIMMINOR = 0b
 
 ### Location of Vim files (should not need to be changed, and  {{{1
 ### some things might not work when they are changed!)
@@ -1348,7 +1348,7 @@
 	fold.c \
 	getchar.c \
 	hardcopy.c \
-	hashtable.c \
+	hashtab.c \
 	if_cscope.c \
 	if_xcmdsrv.c \
 	main.c \
@@ -1366,7 +1366,7 @@
 	option.c \
 	os_unix.c \
 	auto/pathdef.c \
-	popupmenu.c \
+	popupmnu.c \
 	quickfix.c \
 	regexp.c \
 	screen.c \
@@ -1418,7 +1418,7 @@
 	objects/fold.o \
 	objects/getchar.o \
 	objects/hardcopy.o \
-	objects/hashtable.o \
+	objects/hashtab.o \
 	$(HANGULIN_OBJ) \
 	objects/if_cscope.o \
 	objects/if_xcmdsrv.o \
@@ -1437,7 +1437,7 @@
 	objects/option.o \
 	objects/os_unix.o \
 	objects/pathdef.o \
-	objects/popupmenu.o \
+	objects/popupmnu.o \
 	objects/quickfix.o \
 	objects/regexp.o \
 	objects/screen.o \
@@ -1477,7 +1477,7 @@
 	fold.pro \
 	getchar.pro \
 	hardcopy.pro \
-	hashtable.pro \
+	hashtab.pro \
 	hangulin.pro \
 	if_cscope.pro \
 	if_xcmdsrv.pro \
@@ -1497,7 +1497,7 @@
 	ops.pro \
 	option.pro \
 	os_unix.pro \
-	popupmenu.pro \
+	popupmnu.pro \
 	quickfix.pro \
 	regexp.pro \
 	screen.pro \
@@ -2298,8 +2298,8 @@
 objects/hardcopy.o: hardcopy.c
 	$(CCC) -o $@ hardcopy.c
 
-objects/hashtable.o: hashtable.c
-	$(CCC) -o $@ hashtable.c
+objects/hashtab.o: hashtab.c
+	$(CCC) -o $@ hashtab.c
 
 objects/gui.o: gui.c
 	$(CCC) -o $@ gui.c
@@ -2445,8 +2445,8 @@
 objects/pty.o: pty.c
 	$(CCC) -o $@ pty.c
 
-objects/popupmenu.o: popupmenu.c
-	$(CCC) -o $@ popupmenu.c
+objects/popupmnu.o: popupmnu.c
+	$(CCC) -o $@ popupmnu.c
 
 objects/quickfix.o: quickfix.c
 	$(CCC) -o $@ quickfix.c
@@ -2589,205 +2589,201 @@
 ### (automatically generated by 'make depend')
 ### Dependencies:
 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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h version.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h version.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h version.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h version.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h version.h
-objects/hashtable.o: hashtable.c vim.h auto/config.h feature.h os_unix.h \
-  auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h if_cscope.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h version.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 ex_cmds.h proto.h \
+  globals.h farsi.h arabic.h version.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h farsi.c arabic.c
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+  arabic.h farsi.c arabic.c
 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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h version.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+  proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h os_unixx.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 ./structs.h \
-  ./regexp.h ./gui.h ./gui_beval.h proto/gui_beval.pro ./option.h \
-  ./ex_cmds.h ./proto.h ./globals.h ./farsi.h ./arabic.h ./if_sniff.h
-objects/popupmenu.o: popupmenu.c vim.h auto/config.h feature.h os_unix.h \
-  auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 \
+  ./ex_cmds.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+  arabic.h
 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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+  proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+  proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h version.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+  proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
 objects/gui_gtk.o: gui_gtk.c gui_gtk_f.h vim.h auto/config.h feature.h os_unix.h \
-  auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h ../pixmaps/stock_icons.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 ex_cmds.h proto.h \
+  globals.h farsi.h arabic.h ../pixmaps/stock_icons.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_gtk_f.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_xmebw.h ../pixmaps/alert.xpm \
+  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 ex_cmds.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 \
@@ -2806,17 +2802,17 @@
   ../pixmaps/tb_vsplit.xpm ../pixmaps/tb_maxwidth.xpm \
   ../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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_xmebwp.h gui_xmebw.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_at_sb.h gui_x11_pm.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 ex_cmds.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 \
@@ -2833,69 +2829,72 @@
   ../pixmaps/tb_vsplit.xpm ../pixmaps/tb_maxwidth.xpm \
   ../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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_gtk_f.h ../runtime/vim32x32.xpm \
+  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 ex_cmds.h proto.h \
+  globals.h farsi.h arabic.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h ../runtime/vim32x32.xpm ../runtime/vim16x16.xpm \
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_at_sb.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h gui_at_sb.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 ex_cmds.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+  proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
 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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 ex_cmds.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 ./structs.h \
-  ./regexp.h ./gui.h ./gui_beval.h proto/gui_beval.pro ./option.h \
-  ./ex_cmds.h ./proto.h ./globals.h ./farsi.h ./arabic.h ./if_sniff.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 \
+  ./ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.h proto.h \
+  globals.h farsi.h arabic.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 structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+  arabic.h
 objects/if_ruby.o: if_ruby.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
-  ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h gui_beval.h \
-  proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
-  arabic.h if_sniff.h version.h
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+  arabic.h version.h
 objects/if_sniff.o: if_sniff.c vim.h auto/config.h feature.h os_unix.h \
-  auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h os_unixx.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 ex_cmds.h proto.h \
+  globals.h farsi.h arabic.h os_unixx.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.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 ex_cmds.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 structs.h \
-  regexp.h gui.h gui_beval.h proto/gui_beval.pro option.h ex_cmds.h \
-  proto.h globals.h farsi.h arabic.h if_sniff.h version.h workshop.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h integration.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 ex_cmds.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 structs.h regexp.h gui.h \
-  gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h globals.h \
-  farsi.h arabic.h if_sniff.h version.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 ex_cmds.h proto.h \
+  globals.h farsi.h arabic.h version.h
diff --git a/src/fileio.c b/src/fileio.c
index a5fdfb7..cf14c51 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1432,7 +1432,6 @@
 	    if (fio_flags & FIO_CODEPAGE)
 	    {
 		char_u	*src, *dst;
-		int	u8c;
 		WCHAR	ucs2buf[3];
 		int	ucs2len;
 		int	codepage = FIO_GET_CP(fio_flags);
@@ -1496,7 +1495,8 @@
 			}
 			else
 			{
-			    u8c = utf_ptr2char(src);
+			    int	    u8c = utf_ptr2char(src);
+
 			    if (u8c > 0xffff || (*src >= 0x80 && bytelen == 1))
 				found_bad = TRUE;
 			    ucs2buf[0] = u8c;
diff --git a/src/hashtab.c b/src/hashtab.c
new file mode 100644
index 0000000..e3306b3
--- /dev/null
+++ b/src/hashtab.c
@@ -0,0 +1,518 @@
+/* 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.
+ */
+
+/*
+ * hashtab.c: Handling of a hashtable with Vim-specific properties.
+ *
+ * Each item in a hashtable has a NUL terminated string key.  A key can appear
+ * only once in the table.
+ *
+ * A hash number is computed from the key for quick lookup.  When the hashes
+ * of two different keys point to the same entry an algorithm is used to
+ * iterate over other entries in the table until the right one is found.
+ * To make the iteration work removed keys are different from entries where a
+ * key was never present.
+ *
+ * The mechanism has been partly based on how Python Dictionaries are
+ * implemented.  The algorithm is from Knuth Vol. 3, Sec. 6.4.
+ *
+ * The hashtable grows to accommodate more entries when needed.  At least 1/3
+ * of the entries is empty to keep the lookup efficient (at the cost of extra
+ * memory).
+ */
+
+#include "vim.h"
+
+#if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) || defined(PROTO)
+
+#if 0
+# define HT_DEBUG	/* extra checks for table consistency  and statistics */
+
+static long hash_count_lookup = 0;	/* count number of hashtab lookups */
+static long hash_count_perturb = 0;	/* count number of "misses" */
+#endif
+
+/* Magic value for algorithm that walks through the array. */
+#define PERTURB_SHIFT 5
+
+static int hash_may_resize __ARGS((hashtab_T *ht, int minitems));
+
+#if 0 /* currently not used */
+/*
+ * Create an empty hash table.
+ * Returns NULL when out of memory.
+ */
+    hashtab_T *
+hash_create()
+{
+    hashtab_T *ht;
+
+    ht = (hashtab_T *)alloc(sizeof(hashtab_T));
+    if (ht != NULL)
+	hash_init(ht);
+    return ht;
+}
+#endif
+
+/*
+ * Initialize an empty hash table.
+ */
+    void
+hash_init(ht)
+    hashtab_T *ht;
+{
+    /* This zeroes all "ht_" entries and all the "hi_key" in "ht_smallarray". */
+    vim_memset(ht, 0, sizeof(hashtab_T));
+    ht->ht_array = ht->ht_smallarray;
+    ht->ht_mask = HT_INIT_SIZE - 1;
+}
+
+/*
+ * Free the array of a hash table.  Does not free the items it contains!
+ * If "ht" is not freed then you should call hash_init() next!
+ */
+    void
+hash_clear(ht)
+    hashtab_T *ht;
+{
+    if (ht->ht_array != ht->ht_smallarray)
+	vim_free(ht->ht_array);
+}
+
+/*
+ * Free the array of a hash table and all the keys it contains.  The keys must
+ * have been allocated.  "off" is the offset from the start of the allocate
+ * memory to the location of the key (it's always positive).
+ */
+    void
+hash_clear_all(ht, off)
+    hashtab_T	*ht;
+    int		off;
+{
+    int		todo;
+    hashitem_T	*hi;
+
+    todo = ht->ht_used;
+    for (hi = ht->ht_array; todo > 0; ++hi)
+    {
+	if (!HASHITEM_EMPTY(hi))
+	{
+	    vim_free(hi->hi_key - off);
+	    --todo;
+	}
+    }
+    hash_clear(ht);
+}
+
+/*
+ * Find "key" in hashtable "ht".  "key" must not be NULL.
+ * Always returns a pointer to a hashitem.  If the item was not found then
+ * HASHITEM_EMPTY() is TRUE.  The pointer is then the place where the key
+ * would be added.
+ * WARNING: The returned pointer becomes invalid when the hashtable is changed
+ * (adding, setting or removing an item)!
+ */
+    hashitem_T *
+hash_find(ht, key)
+    hashtab_T	*ht;
+    char_u	*key;
+{
+    return hash_lookup(ht, key, hash_hash(key));
+}
+
+/*
+ * Like hash_find(), but caller computes "hash".
+ */
+    hashitem_T *
+hash_lookup(ht, key, hash)
+    hashtab_T	*ht;
+    char_u	*key;
+    hash_T	hash;
+{
+    hash_T	perturb;
+    hashitem_T	*freeitem;
+    hashitem_T	*hi;
+    int		idx;
+
+#ifdef HT_DEBUG
+    ++hash_count_lookup;
+#endif
+
+    /*
+     * Quickly handle the most common situations:
+     * - return if there is no item at all
+     * - skip over a removed item
+     * - return if the item matches
+     */
+    idx = hash & ht->ht_mask;
+    hi = &ht->ht_array[idx];
+
+    if (hi->hi_key == NULL)
+	return hi;
+    if (hi->hi_key == HI_KEY_REMOVED)
+	freeitem = hi;
+    else if (hi->hi_hash == hash && STRCMP(hi->hi_key, key) == 0)
+	return hi;
+    else
+	freeitem = NULL;
+
+    /*
+     * Need to search through the table to find the key.  The algorithm
+     * to step through the table starts with large steps, gradually becoming
+     * smaller down to (1/4 table size + 1).  This means it goes through all
+     * table entries in the end.
+     * When we run into a NULL key it's clear that the key isn't there.
+     * Return the first available slot found (can be a slot of a removed
+     * item).
+     */
+    for (perturb = hash; ; perturb >>= PERTURB_SHIFT)
+    {
+#ifdef HT_DEBUG
+	++hash_count_perturb;	    /* count a "miss" for hashtab lookup */
+#endif
+	idx = (idx << 2) + idx + perturb + 1;
+	hi = &ht->ht_array[idx & ht->ht_mask];
+	if (hi->hi_key == NULL)
+	    return freeitem == NULL ? hi : freeitem;
+	if (hi->hi_hash == hash
+		&& hi->hi_key != HI_KEY_REMOVED
+		&& STRCMP(hi->hi_key, key) == 0)
+	    return hi;
+	if (hi->hi_key == HI_KEY_REMOVED && freeitem == NULL)
+	    freeitem = hi;
+    }
+}
+
+/*
+ * Print the efficiency of hashtable lookups.
+ * Useful when trying different hash algorithms.
+ * Called when exiting.
+ */
+    void
+hash_debug_results()
+{
+#ifdef HT_DEBUG
+    fprintf(stderr, "\r\n\r\n\r\n\r\n");
+    fprintf(stderr, "Number of hashtable lookups: %ld\r\n", hash_count_lookup);
+    fprintf(stderr, "Number of perturb loops: %ld\r\n", hash_count_perturb);
+    fprintf(stderr, "Percentage of perturb loops: %ld%%\r\n",
+				hash_count_perturb * 100 / hash_count_lookup);
+#endif
+}
+
+/*
+ * Add item with key "key" to hashtable "ht".
+ * Returns FAIL when out of memory or the key is already present.
+ */
+    int
+hash_add(ht, key)
+    hashtab_T	*ht;
+    char_u	*key;
+{
+    hash_T	hash = hash_hash(key);
+    hashitem_T	*hi;
+
+    hi = hash_lookup(ht, key, hash);
+    if (!HASHITEM_EMPTY(hi))
+    {
+	EMSG2(_(e_intern2), "hash_add()");
+	return FAIL;
+    }
+    return hash_add_item(ht, hi, key, hash);
+}
+
+/*
+ * Add item "hi" with "key" to hashtable "ht".  "key" must not be NULL and
+ * "hi" must have been obtained with hash_lookup() and point to an empty item.
+ * "hi" is invalid after this!
+ * Returns OK or FAIL (out of memory).
+ */
+    int
+hash_add_item(ht, hi, key, hash)
+    hashtab_T	*ht;
+    hashitem_T	*hi;
+    char_u	*key;
+    hash_T	hash;
+{
+    /* If resizing failed before and it fails again we can't add an item. */
+    if (ht->ht_error && hash_may_resize(ht, 0) == FAIL)
+	return FAIL;
+
+    ++ht->ht_used;
+    if (hi->hi_key == NULL)
+	++ht->ht_filled;
+    hi->hi_key = key;
+    hi->hi_hash = hash;
+
+    /* When the space gets low may resize the array. */
+    return hash_may_resize(ht, 0);
+}
+
+#if 0  /* not used */
+/*
+ * Overwrite hashtable item "hi" with "key".  "hi" must point to the item that
+ * is to be overwritten.  Thus the number of items in the hashtable doesn't
+ * change.
+ * Although the key must be identical, the pointer may be different, thus it's
+ * set anyway (the key is part of an item with that key).
+ * The caller must take care of freeing the old item.
+ * "hi" is invalid after this!
+ */
+    void
+hash_set(hi, key)
+    hashitem_T	*hi;
+    char_u	*key;
+{
+    hi->hi_key = key;
+}
+#endif
+
+/*
+ * Remove item "hi" from  hashtable "ht".  "hi" must have been obtained with
+ * hash_lookup().
+ * The caller must take care of freeing the item itself.
+ */
+    void
+hash_remove(ht, hi)
+    hashtab_T	*ht;
+    hashitem_T	*hi;
+{
+    --ht->ht_used;
+    hi->hi_key = HI_KEY_REMOVED;
+    hash_may_resize(ht, 0);
+}
+
+/*
+ * Lock a hashtable: prevent that ht_array changes.
+ * Don't use this when items are to be added!
+ * Must call hash_unlock() later.
+ */
+    void
+hash_lock(ht)
+    hashtab_T	*ht;
+{
+    ++ht->ht_locked;
+}
+
+#if 0	    /* currently not used */
+/*
+ * Lock a hashtable at the specified number of entries.
+ * Caller must make sure no more than "size" entries will be added.
+ * Must call hash_unlock() later.
+ */
+    void
+hash_lock_size(ht, size)
+    hashtab_T	*ht;
+    int		size;
+{
+    (void)hash_may_resize(ht, size);
+    ++ht->ht_locked;
+}
+#endif
+
+/*
+ * Unlock a hashtable: allow ht_array changes again.
+ * Table will be resized (shrink) when necessary.
+ * This must balance a call to hash_lock().
+ */
+    void
+hash_unlock(ht)
+    hashtab_T	*ht;
+{
+    --ht->ht_locked;
+    (void)hash_may_resize(ht, 0);
+}
+
+/*
+ * Shrink a hashtable when there is too much empty space.
+ * Grow a hashtable when there is not enough empty space.
+ * Returns OK or FAIL (out of memory).
+ */
+    static int
+hash_may_resize(ht, minitems)
+    hashtab_T	*ht;
+    int		minitems;		/* minimal number of items */
+{
+    hashitem_T	temparray[HT_INIT_SIZE];
+    hashitem_T	*oldarray, *newarray;
+    hashitem_T	*olditem, *newitem;
+    int		newi;
+    int		todo;
+    long_u	oldsize, newsize;
+    long_u	minsize;
+    long_u	newmask;
+    hash_T	perturb;
+
+    /* Don't resize a locked table. */
+    if (ht->ht_locked > 0)
+	return OK;
+
+#ifdef HT_DEBUG
+    if (ht->ht_used > ht->ht_filled)
+	EMSG("hash_may_resize(): more used than filled");
+    if (ht->ht_filled >= ht->ht_mask + 1)
+	EMSG("hash_may_resize(): table completely filled");
+#endif
+
+    if (minitems == 0)
+    {
+	/* Return quickly for small tables with at least two NULL items.  NULL
+	 * items are required for the lookup to decide a key isn't there. */
+	if (ht->ht_filled < HT_INIT_SIZE - 1
+					 && ht->ht_array == ht->ht_smallarray)
+	    return OK;
+
+	/*
+	 * Grow or refill the array when it's more than 2/3 full (including
+	 * removed items, so that they get cleaned up).
+	 * Shrink the array when it's less than 1/5 full.  When growing it is
+	 * at least 1/4 full (avoids repeated grow-shrink operations)
+	 */
+	oldsize = ht->ht_mask + 1;
+	if (ht->ht_filled * 3 < oldsize * 2 && ht->ht_used > oldsize / 5)
+	    return OK;
+
+	if (ht->ht_used > 1000)
+	    minsize = ht->ht_used * 2;  /* it's big, don't make too much room */
+	else
+	    minsize = ht->ht_used * 4;  /* make plenty of room */
+    }
+    else
+    {
+	/* Use specified size. */
+	if ((long_u)minitems < ht->ht_used)	/* just in case... */
+	    minitems = ht->ht_used;
+	minsize = minitems * 3 / 2;	/* array is up to 2/3 full */
+    }
+
+    newsize = HT_INIT_SIZE;
+    while (newsize < minsize)
+    {
+	newsize <<= 1;		/* make sure it's always a power of 2 */
+	if (newsize == 0)
+	    return FAIL;	/* overflow */
+    }
+
+    if (newsize == HT_INIT_SIZE)
+    {
+	/* Use the small array inside the hashdict structure. */
+	newarray = ht->ht_smallarray;
+	if (ht->ht_array == newarray)
+	{
+	    /* Moving from ht_smallarray to ht_smallarray!  Happens when there
+	     * are many removed items.  Copy the items to be able to clean up
+	     * removed items. */
+	    mch_memmove(temparray, newarray, sizeof(temparray));
+	    oldarray = temparray;
+	}
+	else
+	    oldarray = ht->ht_array;
+    }
+    else
+    {
+	/* Allocate an array. */
+	newarray = (hashitem_T *)alloc((unsigned)
+					      (sizeof(hashitem_T) * newsize));
+	if (newarray == NULL)
+	{
+	    /* Out of memory.  When there are NULL items still return OK.
+	     * Otherwise set ht_error, because lookup may result in a hang if
+	     * we add another item. */
+	    if (ht->ht_filled < ht->ht_mask)
+		return OK;
+	    ht->ht_error = TRUE;
+	    return FAIL;
+	}
+	oldarray = ht->ht_array;
+    }
+    vim_memset(newarray, 0, (size_t)(sizeof(hashitem_T) * newsize));
+
+    /*
+     * Move all the items from the old array to the new one, placing them in
+     * the right spot.  The new array won't have any removed items, thus this
+     * is also a cleanup action.
+     */
+    newmask = newsize - 1;
+    todo = ht->ht_used;
+    for (olditem = oldarray; todo > 0; ++olditem)
+	if (!HASHITEM_EMPTY(olditem))
+	{
+	    /*
+	     * The algorithm to find the spot to add the item is identical to
+	     * the algorithm to find an item in hash_lookup().  But we only
+	     * need to search for a NULL key, thus it's simpler.
+	     */
+	    newi = olditem->hi_hash & newmask;
+	    newitem = &newarray[newi];
+
+	    if (newitem->hi_key != NULL)
+		for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT)
+		{
+		    newi = (newi << 2) + newi + perturb + 1;
+		    newitem = &newarray[newi & newmask];
+		    if (newitem->hi_key == NULL)
+			break;
+		}
+	    *newitem = *olditem;
+	    --todo;
+	}
+
+    if (ht->ht_array != ht->ht_smallarray)
+	vim_free(ht->ht_array);
+    ht->ht_array = newarray;
+    ht->ht_mask = newmask;
+    ht->ht_filled = ht->ht_used;
+    ht->ht_error = FALSE;
+
+    return OK;
+}
+
+/*
+ * Get the hash number for a key.
+ * If you think you know a better hash function: Compile with HT_DEBUG set and
+ * run a script that uses hashtables a lot.  Vim will then print statistics
+ * when exiting.  Try that with the current hash algorithm and yours.  The
+ * lower the percentage the better.
+ */
+    hash_T
+hash_hash(key)
+    char_u	*key;
+{
+    hash_T	hash;
+    char_u	*p;
+
+    if ((hash = *key) == 0)
+	return (hash_T)0;	/* Empty keys are not allowed, but we don't
+				   want to crash if we get one. */
+    p = key + 1;
+
+#if 0
+    /* ElfHash algorithm, which is supposed to have an even distribution.
+     * Suggested by Charles Campbell. */
+    hash_T	g;
+
+    while (*p != NUL)
+    {
+	hash = (hash << 4) + *p++;	/* clear low 4 bits of hash, add char */
+	g = hash & 0xf0000000L;		/* g has high 4 bits of hash only */
+	if (g != 0)
+	    hash ^= g >> 24;		/* xor g's high 4 bits into hash */
+    }
+#else
+
+    /* A simplistic algorithm that appears to do very well.
+     * Suggested by George Reilly. */
+    while (*p != NUL)
+	hash = hash * 101 + *p++;
+#endif
+
+    return hash;
+}
+
+#endif
diff --git a/src/message.c b/src/message.c
index e0971b6..d25d485 100644
--- a/src/message.c
+++ b/src/message.c
@@ -4167,8 +4167,8 @@
 		    {
 			/* memchr on HP does not like n > 2^31  !!! */
 			char *q = memchr(str_arg, '\0',
-				precision <= 0x7fffffff ? precision
-								: 0x7fffffff);
+				precision <= (size_t)0x7fffffffL ? precision
+						       : (size_t)0x7fffffffL);
 			str_arg_l = (q == NULL) ? precision : q - str_arg;
 		    }
 		    break;
diff --git a/src/os_msdos.c b/src/os_msdos.c
index 84341ed..dee6d91 100644
--- a/src/os_msdos.c
+++ b/src/os_msdos.c
@@ -711,9 +711,7 @@
     static  int
 WaitForChar(long msec)
 {
-    union REGS	regs;
     long	starttime = 0;
-    int		x, y;
 
     if (msec != 0)
 	starttime = biostime(0, 0L);
@@ -723,6 +721,8 @@
 #ifdef FEAT_MOUSE
 	long		clicktime;
 	static int	old_status = 0;
+	union REGS	regs;
+	int		x, y;
 
 	if (mouse_avail && mouse_active && mouse_click < 0)
 	{
diff --git a/src/os_msdos.h b/src/os_msdos.h
index b8e90e1..49420a8 100644
--- a/src/os_msdos.h
+++ b/src/os_msdos.h
@@ -21,6 +21,7 @@
 # define USE_LONG_FNAME _USE_LFN    /* decide at run time */
 # define USE_FNAME_CASE
 # define HAVE_PUTENV
+# define HAVE_STDARG_H
 #else
 # define SHORT_FNAME		/* always 8.3 file name */
 #endif
diff --git a/src/proto.h b/src/proto.h
index 5191e75..85f4937 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -90,7 +90,7 @@
 #  include "hangulin.pro"
 # endif
 # include "hardcopy.pro"
-# include "hashtable.pro"
+# include "hashtab.pro"
 # include "main.pro"
 # include "mark.pro"
 # include "memfile.pro"
@@ -140,8 +140,10 @@
 # include "normal.pro"
 # include "ops.pro"
 # include "option.pro"
-# include "popupmenu.pro"
-# include "quickfix.pro"
+# include "popupmnu.pro"
+# ifdef FEAT_QUICKFIX
+#  include "quickfix.pro"
+# endif
 # include "regexp.pro"
 # include "screen.pro"
 # include "search.pro"
diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro
index 9193443..9da8c3e 100644
--- a/src/proto/buffer.pro
+++ b/src/proto/buffer.pro
@@ -1,69 +1,69 @@
 /* buffer.c */
-int open_buffer __ARGS((int read_stdin, exarg_T *eap));
-int buf_valid __ARGS((buf_T *buf));
-void close_buffer __ARGS((win_T *win, buf_T *buf, int action));
-void buf_clear_file __ARGS((buf_T *buf));
-void buf_freeall __ARGS((buf_T *buf, int del_buf, int wipe_buf));
-void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
-void handle_swap_exists __ARGS((buf_T *old_curbuf));
-char_u *do_bufdel __ARGS((int command, char_u *arg, int addr_count, int start_bnr, int end_bnr, int forceit));
-int do_buffer __ARGS((int action, int start, int dir, int count, int forceit));
-void set_curbuf __ARGS((buf_T *buf, int action));
-void enter_buffer __ARGS((buf_T *buf));
-buf_T *buflist_new __ARGS((char_u *ffname, char_u *sfname, linenr_T lnum, int flags));
-void free_buf_options __ARGS((buf_T *buf, int free_p_ff));
-int buflist_getfile __ARGS((int n, linenr_T lnum, int options, int forceit));
-void buflist_getfpos __ARGS((void));
-buf_T *buflist_findname_exp __ARGS((char_u *fname));
-buf_T *buflist_findname __ARGS((char_u *ffname));
-int buflist_findpat __ARGS((char_u *pattern, char_u *pattern_end, int unlisted, int diffmode));
-int ExpandBufnames __ARGS((char_u *pat, int *num_file, char_u ***file, int options));
-buf_T *buflist_findnr __ARGS((int nr));
-char_u *buflist_nr2name __ARGS((int n, int fullname, int helptail));
-void get_winopts __ARGS((buf_T *buf));
-pos_T *buflist_findfpos __ARGS((buf_T *buf));
-linenr_T buflist_findlnum __ARGS((buf_T *buf));
-void buflist_list __ARGS((exarg_T *eap));
-int buflist_name_nr __ARGS((int fnum, char_u **fname, linenr_T *lnum));
-int setfname __ARGS((buf_T *buf, char_u *ffname, char_u *sfname, int message));
-void buf_set_name __ARGS((int fnum, char_u *name));
-void buf_name_changed __ARGS((buf_T *buf));
-buf_T *setaltfname __ARGS((char_u *ffname, char_u *sfname, linenr_T lnum));
-char_u *getaltfname __ARGS((int errmsg));
-int buflist_add __ARGS((char_u *fname, int flags));
-void buflist_slash_adjust __ARGS((void));
-void buflist_altfpos __ARGS((void));
-int otherfile __ARGS((char_u *ffname));
-void buf_setino __ARGS((buf_T *buf));
-void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
-void col_print __ARGS((char_u *buf, int col, int vcol));
-void maketitle __ARGS((void));
-void resettitle __ARGS((void));
-void free_titles __ARGS((void));
-int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab));
-void get_rel_pos __ARGS((win_T *wp, char_u *str));
-int append_arg_number __ARGS((win_T *wp, char_u *buf, int add_file, int maxlen));
-char_u *fix_fname __ARGS((char_u *fname));
-void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname));
-char_u *alist_name __ARGS((aentry_T *aep));
-void do_arg_all __ARGS((int count, int forceit, int keep_tabs));
-void ex_buffer_all __ARGS((exarg_T *eap));
-void do_modelines __ARGS((int flags));
-int read_viminfo_bufferlist __ARGS((vir_T *virp, int writing));
-void write_viminfo_bufferlist __ARGS((FILE *fp));
-char *buf_spname __ARGS((buf_T *buf));
-void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr));
-int buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr));
-int_u buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type));
-linenr_T buf_delsign __ARGS((buf_T *buf, int id));
-int buf_findsign __ARGS((buf_T *buf, int id));
-int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum));
-int buf_findsigntype_id __ARGS((buf_T *buf, linenr_T lnum, int typenr));
-int buf_signcount __ARGS((buf_T *buf, linenr_T lnum));
-void buf_delete_all_signs __ARGS((void));
-void sign_list_placed __ARGS((buf_T *rbuf));
-void sign_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
-void set_buflisted __ARGS((int on));
-int buf_contents_changed __ARGS((buf_T *buf));
-void wipe_buffer __ARGS((buf_T *buf, int aucmd));
+extern int open_buffer __ARGS((int read_stdin, exarg_T *eap));
+extern int buf_valid __ARGS((buf_T *buf));
+extern void close_buffer __ARGS((win_T *win, buf_T *buf, int action));
+extern void buf_clear_file __ARGS((buf_T *buf));
+extern void buf_freeall __ARGS((buf_T *buf, int del_buf, int wipe_buf));
+extern void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
+extern void handle_swap_exists __ARGS((buf_T *old_curbuf));
+extern char_u *do_bufdel __ARGS((int command, char_u *arg, int addr_count, int start_bnr, int end_bnr, int forceit));
+extern int do_buffer __ARGS((int action, int start, int dir, int count, int forceit));
+extern void set_curbuf __ARGS((buf_T *buf, int action));
+extern void enter_buffer __ARGS((buf_T *buf));
+extern buf_T *buflist_new __ARGS((char_u *ffname, char_u *sfname, linenr_T lnum, int flags));
+extern void free_buf_options __ARGS((buf_T *buf, int free_p_ff));
+extern int buflist_getfile __ARGS((int n, linenr_T lnum, int options, int forceit));
+extern void buflist_getfpos __ARGS((void));
+extern buf_T *buflist_findname_exp __ARGS((char_u *fname));
+extern buf_T *buflist_findname __ARGS((char_u *ffname));
+extern int buflist_findpat __ARGS((char_u *pattern, char_u *pattern_end, int unlisted, int diffmode));
+extern int ExpandBufnames __ARGS((char_u *pat, int *num_file, char_u ***file, int options));
+extern buf_T *buflist_findnr __ARGS((int nr));
+extern char_u *buflist_nr2name __ARGS((int n, int fullname, int helptail));
+extern void get_winopts __ARGS((buf_T *buf));
+extern pos_T *buflist_findfpos __ARGS((buf_T *buf));
+extern linenr_T buflist_findlnum __ARGS((buf_T *buf));
+extern void buflist_list __ARGS((exarg_T *eap));
+extern int buflist_name_nr __ARGS((int fnum, char_u **fname, linenr_T *lnum));
+extern int setfname __ARGS((buf_T *buf, char_u *ffname, char_u *sfname, int message));
+extern void buf_set_name __ARGS((int fnum, char_u *name));
+extern void buf_name_changed __ARGS((buf_T *buf));
+extern buf_T *setaltfname __ARGS((char_u *ffname, char_u *sfname, linenr_T lnum));
+extern char_u *getaltfname __ARGS((int errmsg));
+extern int buflist_add __ARGS((char_u *fname, int flags));
+extern void buflist_slash_adjust __ARGS((void));
+extern void buflist_altfpos __ARGS((void));
+extern int otherfile __ARGS((char_u *ffname));
+extern void buf_setino __ARGS((buf_T *buf));
+extern void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
+extern void col_print __ARGS((char_u *buf, int col, int vcol));
+extern void maketitle __ARGS((void));
+extern void resettitle __ARGS((void));
+extern void free_titles __ARGS((void));
+extern int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab));
+extern void get_rel_pos __ARGS((win_T *wp, char_u *str));
+extern int append_arg_number __ARGS((win_T *wp, char_u *buf, int add_file, int maxlen));
+extern char_u *fix_fname __ARGS((char_u *fname));
+extern void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname));
+extern char_u *alist_name __ARGS((aentry_T *aep));
+extern void do_arg_all __ARGS((int count, int forceit, int keep_tabs));
+extern void ex_buffer_all __ARGS((exarg_T *eap));
+extern void do_modelines __ARGS((int flags));
+extern int read_viminfo_bufferlist __ARGS((vir_T *virp, int writing));
+extern void write_viminfo_bufferlist __ARGS((FILE *fp));
+extern char *buf_spname __ARGS((buf_T *buf));
+extern void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr));
+extern int buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr));
+extern int_u buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type));
+extern linenr_T buf_delsign __ARGS((buf_T *buf, int id));
+extern int buf_findsign __ARGS((buf_T *buf, int id));
+extern int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum));
+extern int buf_findsigntype_id __ARGS((buf_T *buf, linenr_T lnum, int typenr));
+extern int buf_signcount __ARGS((buf_T *buf, linenr_T lnum));
+extern void buf_delete_all_signs __ARGS((void));
+extern void sign_list_placed __ARGS((buf_T *rbuf));
+extern void sign_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
+extern void set_buflisted __ARGS((int on));
+extern int buf_contents_changed __ARGS((buf_T *buf));
+extern void wipe_buffer __ARGS((buf_T *buf, int aucmd));
 /* vim: set ft=c : */
diff --git a/src/proto/charset.pro b/src/proto/charset.pro
index 4b6890d..a6f4802 100644
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -1,56 +1,56 @@
 /* charset.c */
-int init_chartab __ARGS((void));
-int buf_init_chartab __ARGS((buf_T *buf, int global));
-void trans_characters __ARGS((char_u *buf, int bufsize));
-char_u *transstr __ARGS((char_u *s));
-char_u *str_foldcase __ARGS((char_u *str, int orglen, char_u *buf, int buflen));
-char_u *transchar __ARGS((int c));
-char_u *transchar_byte __ARGS((int c));
-void transchar_nonprint __ARGS((char_u *buf, int c));
-void transchar_hex __ARGS((char_u *buf, int c));
-int byte2cells __ARGS((int b));
-int char2cells __ARGS((int c));
-int ptr2cells __ARGS((char_u *p));
-int vim_strsize __ARGS((char_u *s));
-int vim_strnsize __ARGS((char_u *s, int len));
-int chartabsize __ARGS((char_u *p, colnr_T col));
-int linetabsize __ARGS((char_u *s));
-int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len));
-int vim_isIDc __ARGS((int c));
-int vim_iswordc __ARGS((int c));
-int vim_iswordp __ARGS((char_u *p));
-int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf));
-int vim_isfilec __ARGS((int c));
-int vim_isprintc __ARGS((int c));
-int vim_isprintc_strict __ARGS((int c));
-int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col));
-int lbr_chartabsize_adv __ARGS((char_u **s, colnr_T col));
-int win_lbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp));
-int in_win_border __ARGS((win_T *wp, colnr_T vcol));
-void getvcol __ARGS((win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end));
-colnr_T getvcol_nolist __ARGS((pos_T *posp));
-void getvvcol __ARGS((win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end));
-void getvcols __ARGS((win_T *wp, pos_T *pos1, pos_T *pos2, colnr_T *left, colnr_T *right));
-char_u *skipwhite __ARGS((char_u *p));
-char_u *skipdigits __ARGS((char_u *p));
-char_u *skiphex __ARGS((char_u *p));
-char_u *skiptodigit __ARGS((char_u *p));
-char_u *skiptohex __ARGS((char_u *p));
-int vim_isdigit __ARGS((int c));
-int vim_isxdigit __ARGS((int c));
-int vim_islower __ARGS((int c));
-int vim_isupper __ARGS((int c));
-int vim_toupper __ARGS((int c));
-int vim_tolower __ARGS((int c));
-char_u *skiptowhite __ARGS((char_u *p));
-char_u *skiptowhite_esc __ARGS((char_u *p));
-long getdigits __ARGS((char_u **pp));
-int vim_isblankline __ARGS((char_u *lbuf));
-void vim_str2nr __ARGS((char_u *start, int *hexp, int *len, int dooct, int dohex, long *nptr, unsigned long *unptr));
-int hex2nr __ARGS((int c));
-int hexhex2nr __ARGS((char_u *p));
-int rem_backslash __ARGS((char_u *str));
-void backslash_halve __ARGS((char_u *p));
-char_u *backslash_halve_save __ARGS((char_u *p));
-void ebcdic2ascii __ARGS((char_u *buffer, int len));
+extern int init_chartab __ARGS((void));
+extern int buf_init_chartab __ARGS((buf_T *buf, int global));
+extern void trans_characters __ARGS((char_u *buf, int bufsize));
+extern char_u *transstr __ARGS((char_u *s));
+extern char_u *str_foldcase __ARGS((char_u *str, int orglen, char_u *buf, int buflen));
+extern char_u *transchar __ARGS((int c));
+extern char_u *transchar_byte __ARGS((int c));
+extern void transchar_nonprint __ARGS((char_u *buf, int c));
+extern void transchar_hex __ARGS((char_u *buf, int c));
+extern int byte2cells __ARGS((int b));
+extern int char2cells __ARGS((int c));
+extern int ptr2cells __ARGS((char_u *p));
+extern int vim_strsize __ARGS((char_u *s));
+extern int vim_strnsize __ARGS((char_u *s, int len));
+extern int chartabsize __ARGS((char_u *p, colnr_T col));
+extern int linetabsize __ARGS((char_u *s));
+extern int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len));
+extern int vim_isIDc __ARGS((int c));
+extern int vim_iswordc __ARGS((int c));
+extern int vim_iswordp __ARGS((char_u *p));
+extern int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf));
+extern int vim_isfilec __ARGS((int c));
+extern int vim_isprintc __ARGS((int c));
+extern int vim_isprintc_strict __ARGS((int c));
+extern int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col));
+extern int lbr_chartabsize_adv __ARGS((char_u **s, colnr_T col));
+extern int win_lbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp));
+extern int in_win_border __ARGS((win_T *wp, colnr_T vcol));
+extern void getvcol __ARGS((win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end));
+extern colnr_T getvcol_nolist __ARGS((pos_T *posp));
+extern void getvvcol __ARGS((win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end));
+extern void getvcols __ARGS((win_T *wp, pos_T *pos1, pos_T *pos2, colnr_T *left, colnr_T *right));
+extern char_u *skipwhite __ARGS((char_u *p));
+extern char_u *skipdigits __ARGS((char_u *p));
+extern char_u *skiphex __ARGS((char_u *p));
+extern char_u *skiptodigit __ARGS((char_u *p));
+extern char_u *skiptohex __ARGS((char_u *p));
+extern int vim_isdigit __ARGS((int c));
+extern int vim_isxdigit __ARGS((int c));
+extern int vim_islower __ARGS((int c));
+extern int vim_isupper __ARGS((int c));
+extern int vim_toupper __ARGS((int c));
+extern int vim_tolower __ARGS((int c));
+extern char_u *skiptowhite __ARGS((char_u *p));
+extern char_u *skiptowhite_esc __ARGS((char_u *p));
+extern long getdigits __ARGS((char_u **pp));
+extern int vim_isblankline __ARGS((char_u *lbuf));
+extern void vim_str2nr __ARGS((char_u *start, int *hexp, int *len, int dooct, int dohex, long *nptr, unsigned long *unptr));
+extern int hex2nr __ARGS((int c));
+extern int hexhex2nr __ARGS((char_u *p));
+extern int rem_backslash __ARGS((char_u *str));
+extern void backslash_halve __ARGS((char_u *p));
+extern char_u *backslash_halve_save __ARGS((char_u *p));
+extern void ebcdic2ascii __ARGS((char_u *buffer, int len));
 /* vim: set ft=c : */
diff --git a/src/proto/diff.pro b/src/proto/diff.pro
index e45127a..65b978f 100644
--- a/src/proto/diff.pro
+++ b/src/proto/diff.pro
@@ -1,26 +1,26 @@
 /* diff.c */
-void diff_buf_delete __ARGS((buf_T *buf));
-void diff_buf_adjust __ARGS((win_T *win));
-void diff_buf_add __ARGS((buf_T *buf));
-void diff_invalidate __ARGS((buf_T *buf));
-void diff_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
-void ex_diffupdate __ARGS((exarg_T *eap));
-void ex_diffpatch __ARGS((exarg_T *eap));
-void ex_diffsplit __ARGS((exarg_T *eap));
-void ex_diffthis __ARGS((exarg_T *eap));
-void diff_win_options __ARGS((win_T *wp, int addbuf));
-void ex_diffoff __ARGS((exarg_T *eap));
-void diff_clear __ARGS((tabpage_T *tp));
-int diff_check __ARGS((win_T *wp, linenr_T lnum));
-int diff_check_fill __ARGS((win_T *wp, linenr_T lnum));
-void diff_set_topline __ARGS((win_T *fromwin, win_T *towin));
-int diffopt_changed __ARGS((void));
-int diffopt_horizontal __ARGS((void));
-int diff_find_change __ARGS((win_T *wp, linenr_T lnum, int *startp, int *endp));
-int diff_infold __ARGS((win_T *wp, linenr_T lnum));
-void nv_diffgetput __ARGS((int put));
-void ex_diffgetput __ARGS((exarg_T *eap));
-int diff_mode_buf __ARGS((buf_T *buf));
-int diff_move_to __ARGS((int dir, long count));
-linenr_T diff_lnum_win __ARGS((linenr_T lnum, win_T *wp));
+extern void diff_buf_delete __ARGS((buf_T *buf));
+extern void diff_buf_adjust __ARGS((win_T *win));
+extern void diff_buf_add __ARGS((buf_T *buf));
+extern void diff_invalidate __ARGS((buf_T *buf));
+extern void diff_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
+extern void ex_diffupdate __ARGS((exarg_T *eap));
+extern void ex_diffpatch __ARGS((exarg_T *eap));
+extern void ex_diffsplit __ARGS((exarg_T *eap));
+extern void ex_diffthis __ARGS((exarg_T *eap));
+extern void diff_win_options __ARGS((win_T *wp, int addbuf));
+extern void ex_diffoff __ARGS((exarg_T *eap));
+extern void diff_clear __ARGS((tabpage_T *tp));
+extern int diff_check __ARGS((win_T *wp, linenr_T lnum));
+extern int diff_check_fill __ARGS((win_T *wp, linenr_T lnum));
+extern void diff_set_topline __ARGS((win_T *fromwin, win_T *towin));
+extern int diffopt_changed __ARGS((void));
+extern int diffopt_horizontal __ARGS((void));
+extern int diff_find_change __ARGS((win_T *wp, linenr_T lnum, int *startp, int *endp));
+extern int diff_infold __ARGS((win_T *wp, linenr_T lnum));
+extern void nv_diffgetput __ARGS((int put));
+extern void ex_diffgetput __ARGS((exarg_T *eap));
+extern int diff_mode_buf __ARGS((buf_T *buf));
+extern int diff_move_to __ARGS((int dir, long count));
+extern linenr_T diff_lnum_win __ARGS((linenr_T lnum, win_T *wp));
 /* vim: set ft=c : */
diff --git a/src/proto/digraph.pro b/src/proto/digraph.pro
index be5be71..6821f88 100644
--- a/src/proto/digraph.pro
+++ b/src/proto/digraph.pro
@@ -1,9 +1,9 @@
 /* digraph.c */
-int do_digraph __ARGS((int c));
-int get_digraph __ARGS((int cmdline));
-int getdigraph __ARGS((int char1, int char2, int meta));
-void putdigraph __ARGS((char_u *str));
-void listdigraphs __ARGS((void));
-char_u *keymap_init __ARGS((void));
-void ex_loadkeymap __ARGS((exarg_T *eap));
+extern int do_digraph __ARGS((int c));
+extern int get_digraph __ARGS((int cmdline));
+extern int getdigraph __ARGS((int char1, int char2, int meta));
+extern void putdigraph __ARGS((char_u *str));
+extern void listdigraphs __ARGS((void));
+extern char_u *keymap_init __ARGS((void));
+extern void ex_loadkeymap __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index a0e8685..b2c8200 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -1,99 +1,99 @@
 /* eval.c */
-void eval_init __ARGS((void));
-void eval_clear __ARGS((void));
-char_u *func_name __ARGS((void *cookie));
-linenr_T *func_breakpoint __ARGS((void *cookie));
-int *func_dbg_tick __ARGS((void *cookie));
-int func_level __ARGS((void *cookie));
-int current_func_returned __ARGS((void));
-void set_internal_string_var __ARGS((char_u *name, char_u *value));
-int var_redir_start __ARGS((char_u *name, int append));
-void var_redir_str __ARGS((char_u *value, int len));
-void var_redir_stop __ARGS((void));
-int eval_charconvert __ARGS((char_u *enc_from, char_u *enc_to, char_u *fname_from, char_u *fname_to));
-int eval_printexpr __ARGS((char_u *fname, char_u *args));
-void eval_diff __ARGS((char_u *origfile, char_u *newfile, char_u *outfile));
-void eval_patch __ARGS((char_u *origfile, char_u *difffile, char_u *outfile));
-int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
-char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
-int skip_expr __ARGS((char_u **pp));
-char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist));
-char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
-int eval_to_number __ARGS((char_u *expr));
-list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
-int get_spellword __ARGS((list_T *list, char_u **pp));
-typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
-void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
-long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
-void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
-void *save_funccal __ARGS((void));
-void restore_funccal __ARGS((void *vfc));
-void prof_child_enter __ARGS((proftime_T *tm));
-void prof_child_exit __ARGS((proftime_T *tm));
-int eval_foldexpr __ARGS((char_u *arg, int *cp));
-void ex_let __ARGS((exarg_T *eap));
-void *eval_for_line __ARGS((char_u *arg, int *errp, char_u **nextcmdp, int skip));
-int next_for_item __ARGS((void *fi_void, char_u *arg));
-void free_for_info __ARGS((void *fi_void));
-void set_context_for_expression __ARGS((expand_T *xp, char_u *arg, cmdidx_T cmdidx));
-void ex_call __ARGS((exarg_T *eap));
-void ex_unlet __ARGS((exarg_T *eap));
-void ex_lockvar __ARGS((exarg_T *eap));
-int do_unlet __ARGS((char_u *name, int forceit));
-void del_menutrans_vars __ARGS((void));
-char_u *get_user_var_name __ARGS((expand_T *xp, int idx));
-list_T *list_alloc __ARGS((void));
-void list_unref __ARGS((list_T *l));
-void list_free __ARGS((list_T *l));
-dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
-int list_append_dict __ARGS((list_T *list, dict_T *dict));
-int garbage_collect __ARGS((void));
-dict_T *dict_alloc __ARGS((void));
-int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
-char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
-long get_dict_number __ARGS((dict_T *d, char_u *key));
-char_u *get_function_name __ARGS((expand_T *xp, int idx));
-char_u *get_expr_name __ARGS((expand_T *xp, int idx));
-long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop));
-void set_vim_var_nr __ARGS((int idx, long val));
-long get_vim_var_nr __ARGS((int idx));
-char_u *get_vim_var_str __ARGS((int idx));
-void set_vcount __ARGS((long count, long count1));
-void set_vim_var_string __ARGS((int idx, char_u *val, int len));
-void set_reg_var __ARGS((int c));
-char_u *v_exception __ARGS((char_u *oldval));
-char_u *v_throwpoint __ARGS((char_u *oldval));
-char_u *set_cmdarg __ARGS((exarg_T *eap, char_u *oldarg));
-void free_tv __ARGS((typval_T *varp));
-void clear_tv __ARGS((typval_T *varp));
-long get_tv_number_chk __ARGS((typval_T *varp, int *denote));
-char_u *get_tv_string_chk __ARGS((typval_T *varp));
-char_u *get_var_value __ARGS((char_u *name));
-void new_script_vars __ARGS((scid_T id));
-void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var));
-void vars_clear __ARGS((hashtab_T *ht));
-void ex_echo __ARGS((exarg_T *eap));
-void ex_echohl __ARGS((exarg_T *eap));
-void ex_execute __ARGS((exarg_T *eap));
-void ex_function __ARGS((exarg_T *eap));
-void free_all_functions __ARGS((void));
-void func_dump_profile __ARGS((FILE *fd));
-char_u *get_user_func_name __ARGS((expand_T *xp, int idx));
-void ex_delfunction __ARGS((exarg_T *eap));
-void ex_return __ARGS((exarg_T *eap));
-int do_return __ARGS((exarg_T *eap, int reanimate, int is_cmd, void *rettv));
-void discard_pending_return __ARGS((void *rettv));
-char_u *get_return_cmd __ARGS((void *rettv));
-char_u *get_func_line __ARGS((int c, void *cookie, int indent));
-void func_line_start __ARGS((void *cookie));
-void func_line_exec __ARGS((void *cookie));
-void func_line_end __ARGS((void *cookie));
-int func_has_ended __ARGS((void *cookie));
-int func_has_abort __ARGS((void *cookie));
-int read_viminfo_varlist __ARGS((vir_T *virp, int writing));
-void write_viminfo_varlist __ARGS((FILE *fp));
-int store_session_globals __ARGS((FILE *fd));
-void last_set_msg __ARGS((scid_T scriptID));
-int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
-char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
+extern void eval_init __ARGS((void));
+extern void eval_clear __ARGS((void));
+extern char_u *func_name __ARGS((void *cookie));
+extern linenr_T *func_breakpoint __ARGS((void *cookie));
+extern int *func_dbg_tick __ARGS((void *cookie));
+extern int func_level __ARGS((void *cookie));
+extern int current_func_returned __ARGS((void));
+extern void set_internal_string_var __ARGS((char_u *name, char_u *value));
+extern int var_redir_start __ARGS((char_u *name, int append));
+extern void var_redir_str __ARGS((char_u *value, int len));
+extern void var_redir_stop __ARGS((void));
+extern int eval_charconvert __ARGS((char_u *enc_from, char_u *enc_to, char_u *fname_from, char_u *fname_to));
+extern int eval_printexpr __ARGS((char_u *fname, char_u *args));
+extern void eval_diff __ARGS((char_u *origfile, char_u *newfile, char_u *outfile));
+extern void eval_patch __ARGS((char_u *origfile, char_u *difffile, char_u *outfile));
+extern int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
+extern char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
+extern int skip_expr __ARGS((char_u **pp));
+extern char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist));
+extern char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
+extern int eval_to_number __ARGS((char_u *expr));
+extern list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+extern int get_spellword __ARGS((list_T *list, char_u **pp));
+extern typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
+extern void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+extern long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+extern void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
+extern void *save_funccal __ARGS((void));
+extern void restore_funccal __ARGS((void *vfc));
+extern void prof_child_enter __ARGS((proftime_T *tm));
+extern void prof_child_exit __ARGS((proftime_T *tm));
+extern int eval_foldexpr __ARGS((char_u *arg, int *cp));
+extern void ex_let __ARGS((exarg_T *eap));
+extern void *eval_for_line __ARGS((char_u *arg, int *errp, char_u **nextcmdp, int skip));
+extern int next_for_item __ARGS((void *fi_void, char_u *arg));
+extern void free_for_info __ARGS((void *fi_void));
+extern void set_context_for_expression __ARGS((expand_T *xp, char_u *arg, cmdidx_T cmdidx));
+extern void ex_call __ARGS((exarg_T *eap));
+extern void ex_unlet __ARGS((exarg_T *eap));
+extern void ex_lockvar __ARGS((exarg_T *eap));
+extern int do_unlet __ARGS((char_u *name, int forceit));
+extern void del_menutrans_vars __ARGS((void));
+extern char_u *get_user_var_name __ARGS((expand_T *xp, int idx));
+extern list_T *list_alloc __ARGS((void));
+extern void list_unref __ARGS((list_T *l));
+extern void list_free __ARGS((list_T *l));
+extern dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
+extern int list_append_dict __ARGS((list_T *list, dict_T *dict));
+extern int garbage_collect __ARGS((void));
+extern dict_T *dict_alloc __ARGS((void));
+extern int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
+extern char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
+extern long get_dict_number __ARGS((dict_T *d, char_u *key));
+extern char_u *get_function_name __ARGS((expand_T *xp, int idx));
+extern char_u *get_expr_name __ARGS((expand_T *xp, int idx));
+extern long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop));
+extern void set_vim_var_nr __ARGS((int idx, long val));
+extern long get_vim_var_nr __ARGS((int idx));
+extern char_u *get_vim_var_str __ARGS((int idx));
+extern void set_vcount __ARGS((long count, long count1));
+extern void set_vim_var_string __ARGS((int idx, char_u *val, int len));
+extern void set_reg_var __ARGS((int c));
+extern char_u *v_exception __ARGS((char_u *oldval));
+extern char_u *v_throwpoint __ARGS((char_u *oldval));
+extern char_u *set_cmdarg __ARGS((exarg_T *eap, char_u *oldarg));
+extern void free_tv __ARGS((typval_T *varp));
+extern void clear_tv __ARGS((typval_T *varp));
+extern long get_tv_number_chk __ARGS((typval_T *varp, int *denote));
+extern char_u *get_tv_string_chk __ARGS((typval_T *varp));
+extern char_u *get_var_value __ARGS((char_u *name));
+extern void new_script_vars __ARGS((scid_T id));
+extern void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var));
+extern void vars_clear __ARGS((hashtab_T *ht));
+extern void ex_echo __ARGS((exarg_T *eap));
+extern void ex_echohl __ARGS((exarg_T *eap));
+extern void ex_execute __ARGS((exarg_T *eap));
+extern void ex_function __ARGS((exarg_T *eap));
+extern void free_all_functions __ARGS((void));
+extern void func_dump_profile __ARGS((FILE *fd));
+extern char_u *get_user_func_name __ARGS((expand_T *xp, int idx));
+extern void ex_delfunction __ARGS((exarg_T *eap));
+extern void ex_return __ARGS((exarg_T *eap));
+extern int do_return __ARGS((exarg_T *eap, int reanimate, int is_cmd, void *rettv));
+extern void discard_pending_return __ARGS((void *rettv));
+extern char_u *get_return_cmd __ARGS((void *rettv));
+extern char_u *get_func_line __ARGS((int c, void *cookie, int indent));
+extern void func_line_start __ARGS((void *cookie));
+extern void func_line_exec __ARGS((void *cookie));
+extern void func_line_end __ARGS((void *cookie));
+extern int func_has_ended __ARGS((void *cookie));
+extern int func_has_abort __ARGS((void *cookie));
+extern int read_viminfo_varlist __ARGS((vir_T *virp, int writing));
+extern void write_viminfo_varlist __ARGS((FILE *fp));
+extern int store_session_globals __ARGS((FILE *fd));
+extern void last_set_msg __ARGS((scid_T scriptID));
+extern int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
+extern char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
 /* vim: set ft=c : */
diff --git a/src/proto/ex_docmd.pro b/src/proto/ex_docmd.pro
index ec6e573..992409b 100644
--- a/src/proto/ex_docmd.pro
+++ b/src/proto/ex_docmd.pro
@@ -1,52 +1,52 @@
 /* ex_docmd.c */
-void do_exmode __ARGS((int improved));
-int do_cmdline_cmd __ARGS((char_u *cmd));
-int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
-int getline_equal __ARGS((char_u *(*getline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
-void *getline_cookie __ARGS((char_u *(*getline)(int, void *, int), void *cookie));
-int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
-int cmd_exists __ARGS((char_u *name));
-char_u *set_one_cmd_context __ARGS((expand_T *xp, char_u *buff));
-char_u *skip_range __ARGS((char_u *cmd, int *ctx));
-void ex_ni __ARGS((exarg_T *eap));
-int expand_filename __ARGS((exarg_T *eap, char_u **cmdlinep, char_u **errormsgp));
-void separate_nextcmd __ARGS((exarg_T *eap));
-int ends_excmd __ARGS((int c));
-char_u *find_nextcmd __ARGS((char_u *p));
-char_u *check_nextcmd __ARGS((char_u *p));
-char_u *get_command_name __ARGS((expand_T *xp, int idx));
-void ex_comclear __ARGS((exarg_T *eap));
-void uc_clear __ARGS((garray_T *gap));
-char_u *get_user_commands __ARGS((expand_T *xp, int idx));
-char_u *get_user_cmd_flags __ARGS((expand_T *xp, int idx));
-char_u *get_user_cmd_nargs __ARGS((expand_T *xp, int idx));
-char_u *get_user_cmd_complete __ARGS((expand_T *xp, int idx));
-int parse_compl_arg __ARGS((char_u *value, int vallen, int *complp, long *argt, char_u **compl_arg));
-void not_exiting __ARGS((void));
-void tabpage_close __ARGS((int forceit));
-void tabpage_close_other __ARGS((tabpage_T *tp, int forceit));
-void ex_all __ARGS((exarg_T *eap));
-void handle_drop __ARGS((int filec, char_u **filev, int split));
-void alist_clear __ARGS((alist_T *al));
-void alist_init __ARGS((alist_T *al));
-void alist_unlink __ARGS((alist_T *al));
-void alist_new __ARGS((void));
-void alist_expand __ARGS((int *fnum_list, int fnum_len));
-void alist_set __ARGS((alist_T *al, int count, char_u **files, int use_curbuf, int *fnum_list, int fnum_len));
-void alist_add __ARGS((alist_T *al, char_u *fname, int set_fnum));
-void alist_slash_adjust __ARGS((void));
-void ex_splitview __ARGS((exarg_T *eap));
-void tabpage_new __ARGS((void));
-void do_exedit __ARGS((exarg_T *eap, win_T *old_curwin));
-void free_cd_dir __ARGS((void));
-void do_sleep __ARGS((long msec));
-int vim_mkdir_emsg __ARGS((char_u *name, int prot));
-FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode));
-void update_topline_cursor __ARGS((void));
-void exec_normal_cmd __ARGS((char_u *cmd, int remap, int silent));
-char_u *eval_vars __ARGS((char_u *src, int *usedlen, linenr_T *lnump, char_u **errormsg, char_u *srcstart));
-char_u *expand_sfile __ARGS((char_u *arg));
-int put_eol __ARGS((FILE *fd));
-int put_line __ARGS((FILE *fd, char *s));
-void dialog_msg __ARGS((char_u *buff, char *format, char_u *fname));
+extern void do_exmode __ARGS((int improved));
+extern int do_cmdline_cmd __ARGS((char_u *cmd));
+extern int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
+extern int getline_equal __ARGS((char_u *(*getline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
+extern void *getline_cookie __ARGS((char_u *(*getline)(int, void *, int), void *cookie));
+extern int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
+extern int cmd_exists __ARGS((char_u *name));
+extern char_u *set_one_cmd_context __ARGS((expand_T *xp, char_u *buff));
+extern char_u *skip_range __ARGS((char_u *cmd, int *ctx));
+extern void ex_ni __ARGS((exarg_T *eap));
+extern int expand_filename __ARGS((exarg_T *eap, char_u **cmdlinep, char_u **errormsgp));
+extern void separate_nextcmd __ARGS((exarg_T *eap));
+extern int ends_excmd __ARGS((int c));
+extern char_u *find_nextcmd __ARGS((char_u *p));
+extern char_u *check_nextcmd __ARGS((char_u *p));
+extern char_u *get_command_name __ARGS((expand_T *xp, int idx));
+extern void ex_comclear __ARGS((exarg_T *eap));
+extern void uc_clear __ARGS((garray_T *gap));
+extern char_u *get_user_commands __ARGS((expand_T *xp, int idx));
+extern char_u *get_user_cmd_flags __ARGS((expand_T *xp, int idx));
+extern char_u *get_user_cmd_nargs __ARGS((expand_T *xp, int idx));
+extern char_u *get_user_cmd_complete __ARGS((expand_T *xp, int idx));
+extern int parse_compl_arg __ARGS((char_u *value, int vallen, int *complp, long *argt, char_u **compl_arg));
+extern void not_exiting __ARGS((void));
+extern void tabpage_close __ARGS((int forceit));
+extern void tabpage_close_other __ARGS((tabpage_T *tp, int forceit));
+extern void ex_all __ARGS((exarg_T *eap));
+extern void handle_drop __ARGS((int filec, char_u **filev, int split));
+extern void alist_clear __ARGS((alist_T *al));
+extern void alist_init __ARGS((alist_T *al));
+extern void alist_unlink __ARGS((alist_T *al));
+extern void alist_new __ARGS((void));
+extern void alist_expand __ARGS((int *fnum_list, int fnum_len));
+extern void alist_set __ARGS((alist_T *al, int count, char_u **files, int use_curbuf, int *fnum_list, int fnum_len));
+extern void alist_add __ARGS((alist_T *al, char_u *fname, int set_fnum));
+extern void alist_slash_adjust __ARGS((void));
+extern void ex_splitview __ARGS((exarg_T *eap));
+extern void tabpage_new __ARGS((void));
+extern void do_exedit __ARGS((exarg_T *eap, win_T *old_curwin));
+extern void free_cd_dir __ARGS((void));
+extern void do_sleep __ARGS((long msec));
+extern int vim_mkdir_emsg __ARGS((char_u *name, int prot));
+extern FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode));
+extern void update_topline_cursor __ARGS((void));
+extern void exec_normal_cmd __ARGS((char_u *cmd, int remap, int silent));
+extern char_u *eval_vars __ARGS((char_u *src, int *usedlen, linenr_T *lnump, char_u **errormsg, char_u *srcstart));
+extern char_u *expand_sfile __ARGS((char_u *arg));
+extern int put_eol __ARGS((FILE *fd));
+extern int put_line __ARGS((FILE *fd, char *s));
+extern void dialog_msg __ARGS((char_u *buff, char *format, char_u *fname));
 /* vim: set ft=c : */
diff --git a/src/proto/ex_eval.pro b/src/proto/ex_eval.pro
index 8fb2342..20601f8 100644
--- a/src/proto/ex_eval.pro
+++ b/src/proto/ex_eval.pro
@@ -1,32 +1,32 @@
 /* ex_eval.c */
-int aborting __ARGS((void));
-void update_force_abort __ARGS((void));
-int should_abort __ARGS((int retcode));
-int aborted_in_try __ARGS((void));
-int cause_errthrow __ARGS((char_u *mesg, int severe, int *ignore));
-void do_errthrow __ARGS((struct condstack *cstack, char_u *cmdname));
-int do_intthrow __ARGS((struct condstack *cstack));
-void discard_current_exception __ARGS((void));
-void report_make_pending __ARGS((int pending, void *value));
-void report_resume_pending __ARGS((int pending, void *value));
-void report_discard_pending __ARGS((int pending, void *value));
-void ex_if __ARGS((exarg_T *eap));
-void ex_endif __ARGS((exarg_T *eap));
-void ex_else __ARGS((exarg_T *eap));
-void ex_while __ARGS((exarg_T *eap));
-void ex_continue __ARGS((exarg_T *eap));
-void ex_break __ARGS((exarg_T *eap));
-void ex_endwhile __ARGS((exarg_T *eap));
-void ex_throw __ARGS((exarg_T *eap));
-void do_throw __ARGS((struct condstack *cstack));
-void ex_try __ARGS((exarg_T *eap));
-void ex_catch __ARGS((exarg_T *eap));
-void ex_finally __ARGS((exarg_T *eap));
-void ex_endtry __ARGS((exarg_T *eap));
-void enter_cleanup __ARGS((cleanup_T *csp));
-void leave_cleanup __ARGS((cleanup_T *csp));
-int cleanup_conditionals __ARGS((struct condstack *cstack, int searched_cond, int inclusive));
-void rewind_conditionals __ARGS((struct condstack *cstack, int idx, int cond_type, int *cond_level));
-void ex_endfunction __ARGS((exarg_T *eap));
-int has_loop_cmd __ARGS((char_u *p));
+extern int aborting __ARGS((void));
+extern void update_force_abort __ARGS((void));
+extern int should_abort __ARGS((int retcode));
+extern int aborted_in_try __ARGS((void));
+extern int cause_errthrow __ARGS((char_u *mesg, int severe, int *ignore));
+extern void do_errthrow __ARGS((struct condstack *cstack, char_u *cmdname));
+extern int do_intthrow __ARGS((struct condstack *cstack));
+extern void discard_current_exception __ARGS((void));
+extern void report_make_pending __ARGS((int pending, void *value));
+extern void report_resume_pending __ARGS((int pending, void *value));
+extern void report_discard_pending __ARGS((int pending, void *value));
+extern void ex_if __ARGS((exarg_T *eap));
+extern void ex_endif __ARGS((exarg_T *eap));
+extern void ex_else __ARGS((exarg_T *eap));
+extern void ex_while __ARGS((exarg_T *eap));
+extern void ex_continue __ARGS((exarg_T *eap));
+extern void ex_break __ARGS((exarg_T *eap));
+extern void ex_endwhile __ARGS((exarg_T *eap));
+extern void ex_throw __ARGS((exarg_T *eap));
+extern void do_throw __ARGS((struct condstack *cstack));
+extern void ex_try __ARGS((exarg_T *eap));
+extern void ex_catch __ARGS((exarg_T *eap));
+extern void ex_finally __ARGS((exarg_T *eap));
+extern void ex_endtry __ARGS((exarg_T *eap));
+extern void enter_cleanup __ARGS((cleanup_T *csp));
+extern void leave_cleanup __ARGS((cleanup_T *csp));
+extern int cleanup_conditionals __ARGS((struct condstack *cstack, int searched_cond, int inclusive));
+extern void rewind_conditionals __ARGS((struct condstack *cstack, int idx, int cond_type, int *cond_level));
+extern void ex_endfunction __ARGS((exarg_T *eap));
+extern int has_loop_cmd __ARGS((char_u *p));
 /* vim: set ft=c : */
diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro
index 6b4fa4f..ba18f38 100644
--- a/src/proto/ex_getln.pro
+++ b/src/proto/ex_getln.pro
@@ -1,53 +1,53 @@
 /* ex_getln.c */
-char_u *getcmdline __ARGS((int firstc, long count, int indent));
-char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg));
-int text_locked __ARGS((void));
-void text_locked_msg __ARGS((void));
-char_u *getexline __ARGS((int c, void *dummy, int indent));
-char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
-int cmdline_overstrike __ARGS((void));
-int cmdline_at_end __ARGS((void));
-colnr_T cmdline_getvcol_cursor __ARGS((void));
-void free_cmdline_buf __ARGS((void));
-void putcmdline __ARGS((int c, int shift));
-void unputcmdline __ARGS((void));
-int put_on_cmdline __ARGS((char_u *str, int len, int redraw));
-void cmdline_paste_str __ARGS((char_u *s, int literally));
-void redrawcmdline __ARGS((void));
-void redrawcmd __ARGS((void));
-void compute_cmdrow __ARGS((void));
-void gotocmdline __ARGS((int clr));
-char_u *ExpandOne __ARGS((expand_T *xp, char_u *str, char_u *orig, int options, int mode));
-void ExpandInit __ARGS((expand_T *xp));
-void ExpandCleanup __ARGS((expand_T *xp));
-void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
-void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
-char_u *sm_gettail __ARGS((char_u *s));
-char_u *addstar __ARGS((char_u *fname, int len, int context));
-void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
-int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
-int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
-char_u *globpath __ARGS((char_u *path, char_u *file));
-void init_history __ARGS((void));
-int get_histtype __ARGS((char_u *name));
-void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
-int get_history_idx __ARGS((int histype));
-char_u *get_cmdline_str __ARGS((void));
-int get_cmdline_pos __ARGS((void));
-int set_cmdline_pos __ARGS((int pos));
-int get_cmdline_type __ARGS((void));
-char_u *get_history_entry __ARGS((int histype, int idx));
-int clr_history __ARGS((int histype));
-int del_history_entry __ARGS((int histype, char_u *str));
-int del_history_idx __ARGS((int histype, int idx));
-void remove_key_from_history __ARGS((void));
-int get_list_range __ARGS((char_u **str, int *num1, int *num2));
-void ex_history __ARGS((exarg_T *eap));
-void prepare_viminfo_history __ARGS((int asklen));
-int read_viminfo_history __ARGS((vir_T *virp));
-void finish_viminfo_history __ARGS((void));
-void write_viminfo_history __ARGS((FILE *fp));
-void cmd_pchar __ARGS((int c, int offset));
-int cmd_gchar __ARGS((int offset));
-char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
+extern char_u *getcmdline __ARGS((int firstc, long count, int indent));
+extern char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg));
+extern int text_locked __ARGS((void));
+extern void text_locked_msg __ARGS((void));
+extern char_u *getexline __ARGS((int c, void *dummy, int indent));
+extern char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
+extern int cmdline_overstrike __ARGS((void));
+extern int cmdline_at_end __ARGS((void));
+extern colnr_T cmdline_getvcol_cursor __ARGS((void));
+extern void free_cmdline_buf __ARGS((void));
+extern void putcmdline __ARGS((int c, int shift));
+extern void unputcmdline __ARGS((void));
+extern int put_on_cmdline __ARGS((char_u *str, int len, int redraw));
+extern void cmdline_paste_str __ARGS((char_u *s, int literally));
+extern void redrawcmdline __ARGS((void));
+extern void redrawcmd __ARGS((void));
+extern void compute_cmdrow __ARGS((void));
+extern void gotocmdline __ARGS((int clr));
+extern char_u *ExpandOne __ARGS((expand_T *xp, char_u *str, char_u *orig, int options, int mode));
+extern void ExpandInit __ARGS((expand_T *xp));
+extern void ExpandCleanup __ARGS((expand_T *xp));
+extern void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
+extern void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
+extern char_u *sm_gettail __ARGS((char_u *s));
+extern char_u *addstar __ARGS((char_u *fname, int len, int context));
+extern void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+extern int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+extern int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
+extern char_u *globpath __ARGS((char_u *path, char_u *file));
+extern void init_history __ARGS((void));
+extern int get_histtype __ARGS((char_u *name));
+extern void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
+extern int get_history_idx __ARGS((int histype));
+extern char_u *get_cmdline_str __ARGS((void));
+extern int get_cmdline_pos __ARGS((void));
+extern int set_cmdline_pos __ARGS((int pos));
+extern int get_cmdline_type __ARGS((void));
+extern char_u *get_history_entry __ARGS((int histype, int idx));
+extern int clr_history __ARGS((int histype));
+extern int del_history_entry __ARGS((int histype, char_u *str));
+extern int del_history_idx __ARGS((int histype, int idx));
+extern void remove_key_from_history __ARGS((void));
+extern int get_list_range __ARGS((char_u **str, int *num1, int *num2));
+extern void ex_history __ARGS((exarg_T *eap));
+extern void prepare_viminfo_history __ARGS((int asklen));
+extern int read_viminfo_history __ARGS((vir_T *virp));
+extern void finish_viminfo_history __ARGS((void));
+extern void write_viminfo_history __ARGS((FILE *fp));
+extern void cmd_pchar __ARGS((int c, int offset));
+extern int cmd_gchar __ARGS((int offset));
+extern char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
 /* vim: set ft=c : */
diff --git a/src/proto/fold.pro b/src/proto/fold.pro
index 3318bbd..8551093 100644
--- a/src/proto/fold.pro
+++ b/src/proto/fold.pro
@@ -1,41 +1,41 @@
 /* fold.c */
-void copyFoldingState __ARGS((win_T *wp_from, win_T *wp_to));
-int hasAnyFolding __ARGS((win_T *win));
-int hasFolding __ARGS((linenr_T lnum, linenr_T *firstp, linenr_T *lastp));
-int hasFoldingWin __ARGS((win_T *win, linenr_T lnum, linenr_T *firstp, linenr_T *lastp, int cache, foldinfo_T *infop));
-int foldLevel __ARGS((linenr_T lnum));
-int lineFolded __ARGS((win_T *win, linenr_T lnum));
-long foldedCount __ARGS((win_T *win, linenr_T lnum, foldinfo_T *infop));
-int foldmethodIsManual __ARGS((win_T *wp));
-int foldmethodIsIndent __ARGS((win_T *wp));
-int foldmethodIsExpr __ARGS((win_T *wp));
-int foldmethodIsMarker __ARGS((win_T *wp));
-int foldmethodIsSyntax __ARGS((win_T *wp));
-int foldmethodIsDiff __ARGS((win_T *wp));
-void closeFold __ARGS((linenr_T lnum, long count));
-void closeFoldRecurse __ARGS((linenr_T lnum));
-void opFoldRange __ARGS((linenr_T first, linenr_T last, int opening, int recurse, int had_visual));
-void openFold __ARGS((linenr_T lnum, long count));
-void openFoldRecurse __ARGS((linenr_T lnum));
-void foldOpenCursor __ARGS((void));
-void newFoldLevel __ARGS((void));
-void foldCheckClose __ARGS((void));
-int foldManualAllowed __ARGS((int create));
-void foldCreate __ARGS((linenr_T start, linenr_T end));
-void deleteFold __ARGS((linenr_T start, linenr_T end, int recursive, int had_visual));
-void clearFolding __ARGS((win_T *win));
-void foldUpdate __ARGS((win_T *wp, linenr_T top, linenr_T bot));
-void foldUpdateAll __ARGS((win_T *win));
-int foldMoveTo __ARGS((int updown, int dir, long count));
-void foldInitWin __ARGS((win_T *newwin));
-int find_wl_entry __ARGS((win_T *win, linenr_T lnum));
-void foldAdjustVisual __ARGS((void));
-void foldAdjustCursor __ARGS((void));
-void cloneFoldGrowArray __ARGS((garray_T *from, garray_T *to));
-void deleteFoldRecurse __ARGS((garray_T *gap));
-void foldMarkAdjust __ARGS((win_T *wp, linenr_T line1, linenr_T line2, long amount, long amount_after));
-int getDeepestNesting __ARGS((void));
-char_u *get_foldtext __ARGS((win_T *wp, linenr_T lnum, linenr_T lnume, foldinfo_T *foldinfo, char_u *buf));
-void foldtext_cleanup __ARGS((char_u *str));
-int put_folds __ARGS((FILE *fd, win_T *wp));
+extern void copyFoldingState __ARGS((win_T *wp_from, win_T *wp_to));
+extern int hasAnyFolding __ARGS((win_T *win));
+extern int hasFolding __ARGS((linenr_T lnum, linenr_T *firstp, linenr_T *lastp));
+extern int hasFoldingWin __ARGS((win_T *win, linenr_T lnum, linenr_T *firstp, linenr_T *lastp, int cache, foldinfo_T *infop));
+extern int foldLevel __ARGS((linenr_T lnum));
+extern int lineFolded __ARGS((win_T *win, linenr_T lnum));
+extern long foldedCount __ARGS((win_T *win, linenr_T lnum, foldinfo_T *infop));
+extern int foldmethodIsManual __ARGS((win_T *wp));
+extern int foldmethodIsIndent __ARGS((win_T *wp));
+extern int foldmethodIsExpr __ARGS((win_T *wp));
+extern int foldmethodIsMarker __ARGS((win_T *wp));
+extern int foldmethodIsSyntax __ARGS((win_T *wp));
+extern int foldmethodIsDiff __ARGS((win_T *wp));
+extern void closeFold __ARGS((linenr_T lnum, long count));
+extern void closeFoldRecurse __ARGS((linenr_T lnum));
+extern void opFoldRange __ARGS((linenr_T first, linenr_T last, int opening, int recurse, int had_visual));
+extern void openFold __ARGS((linenr_T lnum, long count));
+extern void openFoldRecurse __ARGS((linenr_T lnum));
+extern void foldOpenCursor __ARGS((void));
+extern void newFoldLevel __ARGS((void));
+extern void foldCheckClose __ARGS((void));
+extern int foldManualAllowed __ARGS((int create));
+extern void foldCreate __ARGS((linenr_T start, linenr_T end));
+extern void deleteFold __ARGS((linenr_T start, linenr_T end, int recursive, int had_visual));
+extern void clearFolding __ARGS((win_T *win));
+extern void foldUpdate __ARGS((win_T *wp, linenr_T top, linenr_T bot));
+extern void foldUpdateAll __ARGS((win_T *win));
+extern int foldMoveTo __ARGS((int updown, int dir, long count));
+extern void foldInitWin __ARGS((win_T *newwin));
+extern int find_wl_entry __ARGS((win_T *win, linenr_T lnum));
+extern void foldAdjustVisual __ARGS((void));
+extern void foldAdjustCursor __ARGS((void));
+extern void cloneFoldGrowArray __ARGS((garray_T *from, garray_T *to));
+extern void deleteFoldRecurse __ARGS((garray_T *gap));
+extern void foldMarkAdjust __ARGS((win_T *wp, linenr_T line1, linenr_T line2, long amount, long amount_after));
+extern int getDeepestNesting __ARGS((void));
+extern char_u *get_foldtext __ARGS((win_T *wp, linenr_T lnum, linenr_T lnume, foldinfo_T *foldinfo, char_u *buf));
+extern void foldtext_cleanup __ARGS((char_u *str));
+extern int put_folds __ARGS((FILE *fd, win_T *wp));
 /* vim: set ft=c : */
diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro
index 9212342..608124b 100644
--- a/src/proto/getchar.pro
+++ b/src/proto/getchar.pro
@@ -1,63 +1,63 @@
 /* getchar.c */
-void free_buff __ARGS((struct buffheader *buf));
-char_u *get_recorded __ARGS((void));
-char_u *get_inserted __ARGS((void));
-int stuff_empty __ARGS((void));
-void typeahead_noflush __ARGS((int c));
-void flush_buffers __ARGS((int typeahead));
-void ResetRedobuff __ARGS((void));
-void saveRedobuff __ARGS((void));
-void restoreRedobuff __ARGS((void));
-void AppendToRedobuff __ARGS((char_u *s));
-void AppendToRedobuffLit __ARGS((char_u *str, int len));
-void AppendCharToRedobuff __ARGS((int c));
-void AppendNumberToRedobuff __ARGS((long n));
-void stuffReadbuff __ARGS((char_u *s));
-void stuffReadbuffLen __ARGS((char_u *s, long len));
-void stuffReadbuffSpec __ARGS((char_u *s));
-void stuffcharReadbuff __ARGS((int c));
-void stuffnumReadbuff __ARGS((long n));
-int start_redo __ARGS((long count, int old_redo));
-int start_redo_ins __ARGS((void));
-void stop_redo_ins __ARGS((void));
-int ins_typebuf __ARGS((char_u *str, int noremap, int offset, int nottyped, int silent));
-int typebuf_changed __ARGS((int tb_change_cnt));
-int typebuf_typed __ARGS((void));
-int typebuf_maplen __ARGS((void));
-void del_typebuf __ARGS((int len, int offset));
-int alloc_typebuf __ARGS((void));
-void free_typebuf __ARGS((void));
-int save_typebuf __ARGS((void));
-void save_typeahead __ARGS((tasave_T *tp));
-void restore_typeahead __ARGS((tasave_T *tp));
-void openscript __ARGS((char_u *name, int directly));
-void close_all_scripts __ARGS((void));
-int using_script __ARGS((void));
-void before_blocking __ARGS((void));
-void updatescript __ARGS((int c));
-int vgetc __ARGS((void));
-int safe_vgetc __ARGS((void));
-int vpeekc __ARGS((void));
-int vpeekc_nomap __ARGS((void));
-int vpeekc_any __ARGS((void));
-int char_avail __ARGS((void));
-void vungetc __ARGS((int c));
-int inchar __ARGS((char_u *buf, int maxlen, long wait_time, int tb_change_cnt));
-int fix_input_buffer __ARGS((char_u *buf, int len, int script));
-int input_available __ARGS((void));
-int do_map __ARGS((int maptype, char_u *arg, int mode, int abbrev));
-int get_map_mode __ARGS((char_u **cmdp, int forceit));
-void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr));
-void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr));
-int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr));
-int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr));
-char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx));
-int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file));
-int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol));
-int makemap __ARGS((FILE *fd, buf_T *buf));
-int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
-void check_map_keycodes __ARGS((void));
-char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr));
-void init_mappings __ARGS((void));
-void add_map __ARGS((char_u *map, int mode));
+extern void free_buff __ARGS((struct buffheader *buf));
+extern char_u *get_recorded __ARGS((void));
+extern char_u *get_inserted __ARGS((void));
+extern int stuff_empty __ARGS((void));
+extern void typeahead_noflush __ARGS((int c));
+extern void flush_buffers __ARGS((int typeahead));
+extern void ResetRedobuff __ARGS((void));
+extern void saveRedobuff __ARGS((void));
+extern void restoreRedobuff __ARGS((void));
+extern void AppendToRedobuff __ARGS((char_u *s));
+extern void AppendToRedobuffLit __ARGS((char_u *str, int len));
+extern void AppendCharToRedobuff __ARGS((int c));
+extern void AppendNumberToRedobuff __ARGS((long n));
+extern void stuffReadbuff __ARGS((char_u *s));
+extern void stuffReadbuffLen __ARGS((char_u *s, long len));
+extern void stuffReadbuffSpec __ARGS((char_u *s));
+extern void stuffcharReadbuff __ARGS((int c));
+extern void stuffnumReadbuff __ARGS((long n));
+extern int start_redo __ARGS((long count, int old_redo));
+extern int start_redo_ins __ARGS((void));
+extern void stop_redo_ins __ARGS((void));
+extern int ins_typebuf __ARGS((char_u *str, int noremap, int offset, int nottyped, int silent));
+extern int typebuf_changed __ARGS((int tb_change_cnt));
+extern int typebuf_typed __ARGS((void));
+extern int typebuf_maplen __ARGS((void));
+extern void del_typebuf __ARGS((int len, int offset));
+extern int alloc_typebuf __ARGS((void));
+extern void free_typebuf __ARGS((void));
+extern int save_typebuf __ARGS((void));
+extern void save_typeahead __ARGS((tasave_T *tp));
+extern void restore_typeahead __ARGS((tasave_T *tp));
+extern void openscript __ARGS((char_u *name, int directly));
+extern void close_all_scripts __ARGS((void));
+extern int using_script __ARGS((void));
+extern void before_blocking __ARGS((void));
+extern void updatescript __ARGS((int c));
+extern int vgetc __ARGS((void));
+extern int safe_vgetc __ARGS((void));
+extern int vpeekc __ARGS((void));
+extern int vpeekc_nomap __ARGS((void));
+extern int vpeekc_any __ARGS((void));
+extern int char_avail __ARGS((void));
+extern void vungetc __ARGS((int c));
+extern int inchar __ARGS((char_u *buf, int maxlen, long wait_time, int tb_change_cnt));
+extern int fix_input_buffer __ARGS((char_u *buf, int len, int script));
+extern int input_available __ARGS((void));
+extern int do_map __ARGS((int maptype, char_u *arg, int mode, int abbrev));
+extern int get_map_mode __ARGS((char_u **cmdp, int forceit));
+extern void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr));
+extern void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr));
+extern int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr));
+extern int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr));
+extern char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx));
+extern int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file));
+extern int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol));
+extern int makemap __ARGS((FILE *fd, buf_T *buf));
+extern int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
+extern void check_map_keycodes __ARGS((void));
+extern char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr));
+extern void init_mappings __ARGS((void));
+extern void add_map __ARGS((char_u *map, int mode));
 /* vim: set ft=c : */
diff --git a/src/proto/gui.pro b/src/proto/gui.pro
index 087c1a8..704cd1b 100644
--- a/src/proto/gui.pro
+++ b/src/proto/gui.pro
@@ -1,64 +1,64 @@
 /* gui.c */
-void gui_start __ARGS((void));
-void gui_prepare __ARGS((int *argc, char **argv));
-int gui_init_check __ARGS((void));
-void gui_init __ARGS((void));
-void gui_exit __ARGS((int rc));
-void gui_shell_closed __ARGS((void));
-int gui_init_font __ARGS((char_u *font_list, int fontset));
-int gui_get_wide_font __ARGS((void));
-void gui_set_cursor __ARGS((int row, int col));
-void gui_update_cursor __ARGS((int force, int clear_selection));
-void gui_position_menu __ARGS((void));
-int gui_get_base_width __ARGS((void));
-int gui_get_base_height __ARGS((void));
-void gui_resize_shell __ARGS((int pixel_width, int pixel_height));
-void gui_may_resize_shell __ARGS((void));
-int gui_get_shellsize __ARGS((void));
-void gui_set_shellsize __ARGS((int mustset, int fit_to_display));
-void gui_new_shellsize __ARGS((void));
-void gui_reset_scroll_region __ARGS((void));
-void gui_start_highlight __ARGS((int mask));
-void gui_stop_highlight __ARGS((int mask));
-void gui_clear_block __ARGS((int row1, int col1, int row2, int col2));
-void gui_update_cursor_later __ARGS((void));
-void gui_write __ARGS((char_u *s, int len));
-void gui_dont_update_cursor __ARGS((void));
-void gui_can_update_cursor __ARGS((void));
-int gui_outstr_nowrap __ARGS((char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
-void gui_undraw_cursor __ARGS((void));
-void gui_redraw __ARGS((int x, int y, int w, int h));
-int gui_redraw_block __ARGS((int row1, int col1, int row2, int col2, int flags));
-int gui_wait_for_chars __ARGS((long wtime));
-void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int_u modifiers));
-int gui_xy2colrow __ARGS((int x, int y, int *colp));
-void gui_menu_cb __ARGS((vimmenu_T *menu));
-void gui_init_which_components __ARGS((char_u *oldval));
-int gui_use_tabline __ARGS((void));
-void gui_update_tabline __ARGS((void));
-void get_tabline_label __ARGS((tabpage_T *tp));
-int send_tabline_event __ARGS((int nr));
-void gui_remove_scrollbars __ARGS((void));
-void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
-scrollbar_T *gui_find_scrollbar __ARGS((long ident));
-void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
-void gui_update_scrollbars __ARGS((int force));
-int gui_do_scroll __ARGS((void));
-int gui_do_horiz_scroll __ARGS((void));
-void gui_check_colors __ARGS((void));
-guicolor_T gui_get_color __ARGS((char_u *name));
-int gui_get_lightness __ARGS((guicolor_T pixel));
-void gui_new_scrollbar_colors __ARGS((void));
-void gui_focus_change __ARGS((int in_focus));
-void gui_mouse_moved __ARGS((int x, int y));
-void gui_mouse_correct __ARGS((void));
-void ex_gui __ARGS((exarg_T *eap));
-int gui_find_bitmap __ARGS((char_u *name, char_u *buffer, char *ext));
-void gui_find_iconfile __ARGS((char_u *name, char_u *buffer, char *ext));
-void display_errors __ARGS((void));
-int no_console_input __ARGS((void));
-void gui_update_screen __ARGS((void));
-char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
-int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
-void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
+extern void gui_start __ARGS((void));
+extern void gui_prepare __ARGS((int *argc, char **argv));
+extern int gui_init_check __ARGS((void));
+extern void gui_init __ARGS((void));
+extern void gui_exit __ARGS((int rc));
+extern void gui_shell_closed __ARGS((void));
+extern int gui_init_font __ARGS((char_u *font_list, int fontset));
+extern int gui_get_wide_font __ARGS((void));
+extern void gui_set_cursor __ARGS((int row, int col));
+extern void gui_update_cursor __ARGS((int force, int clear_selection));
+extern void gui_position_menu __ARGS((void));
+extern int gui_get_base_width __ARGS((void));
+extern int gui_get_base_height __ARGS((void));
+extern void gui_resize_shell __ARGS((int pixel_width, int pixel_height));
+extern void gui_may_resize_shell __ARGS((void));
+extern int gui_get_shellsize __ARGS((void));
+extern void gui_set_shellsize __ARGS((int mustset, int fit_to_display));
+extern void gui_new_shellsize __ARGS((void));
+extern void gui_reset_scroll_region __ARGS((void));
+extern void gui_start_highlight __ARGS((int mask));
+extern void gui_stop_highlight __ARGS((int mask));
+extern void gui_clear_block __ARGS((int row1, int col1, int row2, int col2));
+extern void gui_update_cursor_later __ARGS((void));
+extern void gui_write __ARGS((char_u *s, int len));
+extern void gui_dont_update_cursor __ARGS((void));
+extern void gui_can_update_cursor __ARGS((void));
+extern int gui_outstr_nowrap __ARGS((char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
+extern void gui_undraw_cursor __ARGS((void));
+extern void gui_redraw __ARGS((int x, int y, int w, int h));
+extern int gui_redraw_block __ARGS((int row1, int col1, int row2, int col2, int flags));
+extern int gui_wait_for_chars __ARGS((long wtime));
+extern void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int_u modifiers));
+extern int gui_xy2colrow __ARGS((int x, int y, int *colp));
+extern void gui_menu_cb __ARGS((vimmenu_T *menu));
+extern void gui_init_which_components __ARGS((char_u *oldval));
+extern int gui_use_tabline __ARGS((void));
+extern void gui_update_tabline __ARGS((void));
+extern void get_tabline_label __ARGS((tabpage_T *tp));
+extern int send_tabline_event __ARGS((int nr));
+extern void gui_remove_scrollbars __ARGS((void));
+extern void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
+extern scrollbar_T *gui_find_scrollbar __ARGS((long ident));
+extern void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
+extern void gui_update_scrollbars __ARGS((int force));
+extern int gui_do_scroll __ARGS((void));
+extern int gui_do_horiz_scroll __ARGS((void));
+extern void gui_check_colors __ARGS((void));
+extern guicolor_T gui_get_color __ARGS((char_u *name));
+extern int gui_get_lightness __ARGS((guicolor_T pixel));
+extern void gui_new_scrollbar_colors __ARGS((void));
+extern void gui_focus_change __ARGS((int in_focus));
+extern void gui_mouse_moved __ARGS((int x, int y));
+extern void gui_mouse_correct __ARGS((void));
+extern void ex_gui __ARGS((exarg_T *eap));
+extern int gui_find_bitmap __ARGS((char_u *name, char_u *buffer, char *ext));
+extern void gui_find_iconfile __ARGS((char_u *name, char_u *buffer, char *ext));
+extern void display_errors __ARGS((void));
+extern int no_console_input __ARGS((void));
+extern void gui_update_screen __ARGS((void));
+extern char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
+extern int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
+extern void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_athena.pro b/src/proto/gui_athena.pro
index 353c33b..96c059a 100644
--- a/src/proto/gui_athena.pro
+++ b/src/proto/gui_athena.pro
@@ -1,31 +1,31 @@
 /* gui_athena.c */
-void gui_x11_create_widgets __ARGS((void));
-void gui_x11_destroy_widgets __ARGS((void));
-void gui_mch_set_toolbar_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-void gui_x11_set_back_color __ARGS((void));
-void gui_mch_enable_menu __ARGS((int flag));
-void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_new_menu_font __ARGS((void));
-void gui_mch_new_tooltip_font __ARGS((void));
-void gui_mch_new_tooltip_colors __ARGS((void));
-void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_show_toolbar __ARGS((int showit));
-int gui_mch_compute_toolbar_height __ARGS((void));
-void gui_mch_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp));
-void gui_mch_toggle_tearoffs __ARGS((int enable));
-void gui_mch_new_menu_colors __ARGS((void));
-void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-void gui_mch_def_colors __ARGS((void));
-void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
-void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
-Window gui_x11_get_wid __ARGS((void));
-char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+extern void gui_x11_create_widgets __ARGS((void));
+extern void gui_x11_destroy_widgets __ARGS((void));
+extern void gui_mch_set_toolbar_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+extern void gui_x11_set_back_color __ARGS((void));
+extern void gui_mch_enable_menu __ARGS((int flag));
+extern void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_new_menu_font __ARGS((void));
+extern void gui_mch_new_tooltip_font __ARGS((void));
+extern void gui_mch_new_tooltip_colors __ARGS((void));
+extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_show_toolbar __ARGS((int showit));
+extern int gui_mch_compute_toolbar_height __ARGS((void));
+extern void gui_mch_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp));
+extern void gui_mch_toggle_tearoffs __ARGS((int enable));
+extern void gui_mch_new_menu_colors __ARGS((void));
+extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+extern void gui_mch_def_colors __ARGS((void));
+extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
+extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+extern void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+extern Window gui_x11_get_wid __ARGS((void));
+extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_gtk.pro b/src/proto/gui_gtk.pro
index 960d631..f1fdbe6 100644
--- a/src/proto/gui_gtk.pro
+++ b/src/proto/gui_gtk.pro
@@ -1,23 +1,23 @@
 /* gui_gtk.c */
-void gui_gtk_register_stock_icons __ARGS((void));
-void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-void gui_gtk_set_mnemonics __ARGS((int enable));
-void gui_mch_toggle_tearoffs __ARGS((int enable));
-void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
-void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
-void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
-void gui_mch_find_dialog __ARGS((exarg_T *eap));
-void gui_mch_replace_dialog __ARGS((exarg_T *eap));
-void gui_gtk_synch_fonts __ARGS((void));
-void ex_helpfind __ARGS((exarg_T *eap));
+extern void gui_gtk_register_stock_icons __ARGS((void));
+extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+extern void gui_gtk_set_mnemonics __ARGS((int enable));
+extern void gui_mch_toggle_tearoffs __ARGS((int enable));
+extern void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
+extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
+extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+extern char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
+extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
+extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+extern void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
+extern void gui_mch_find_dialog __ARGS((exarg_T *eap));
+extern void gui_mch_replace_dialog __ARGS((exarg_T *eap));
+extern void gui_gtk_synch_fonts __ARGS((void));
+extern void ex_helpfind __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro
index afb384e..46fcc9f 100644
--- a/src/proto/gui_gtk_x11.pro
+++ b/src/proto/gui_gtk_x11.pro
@@ -1,73 +1,73 @@
 /* gui_gtk_x11.c */
-void gui_mch_prepare __ARGS((int *argc, char **argv));
-void gui_mch_free_all __ARGS((void));
-void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
-void gui_mch_stop_blink __ARGS((void));
-void gui_mch_start_blink __ARGS((void));
-int gui_mch_init_check __ARGS((void));
-void gui_mch_show_tabline __ARGS((int showit));
-int gui_mch_showing_tabline __ARGS((void));
-void gui_mch_update_tabline __ARGS((void));
-void gui_mch_set_curtab __ARGS((int nr));
-int gui_mch_init __ARGS((void));
-void gui_mch_forked __ARGS((void));
-void gui_mch_new_colors __ARGS((void));
-int gui_mch_open __ARGS((void));
-void gui_mch_exit __ARGS((int rc));
-int gui_mch_get_winpos __ARGS((int *x, int *y));
-void gui_mch_set_winpos __ARGS((int x, int y));
-void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
-void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
-void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-void gui_mch_enable_menu __ARGS((int showit));
-void gui_mch_show_toolbar __ARGS((int showit));
-int gui_mch_adjust_charheight __ARGS((void));
-GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int report_error, int fixed_width));
-char_u *gui_mch_font_dialog __ARGS((char_u *oldval));
-int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
-GuiFont gui_mch_get_font __ARGS((char_u *name, int report_error));
-char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
-void gui_mch_set_font __ARGS((GuiFont font));
-void gui_mch_set_fontset __ARGS((GuiFontset fontset));
-void gui_mch_free_font __ARGS((GuiFont font));
-void gui_mch_free_fontset __ARGS((GuiFontset fontset));
-guicolor_T gui_mch_get_color __ARGS((char_u *name));
-void gui_mch_set_fg_color __ARGS((guicolor_T color));
-void gui_mch_set_bg_color __ARGS((guicolor_T color));
-void gui_mch_set_sp_color __ARGS((guicolor_T color));
-int gui_gtk2_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
-void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
-int gui_mch_haskey __ARGS((char_u *name));
-int gui_get_x11_windis __ARGS((Window *win, Display **dis));
-Display *gui_mch_get_display __ARGS((void));
-void gui_mch_beep __ARGS((void));
-void gui_mch_flash __ARGS((int msec));
-void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
-void gui_mch_iconify __ARGS((void));
-void gui_mch_set_foreground __ARGS((void));
-void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
-void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
-void gui_mch_update __ARGS((void));
-int gui_mch_wait_for_chars __ARGS((long wtime));
-void gui_mch_flush __ARGS((void));
-void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
-void gui_mch_clear_all __ARGS((void));
-void gui_mch_delete_lines __ARGS((int row, int num_lines));
-void gui_mch_insert_lines __ARGS((int row, int num_lines));
-void clip_mch_request_selection __ARGS((VimClipboard *cbd));
-void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
-int clip_mch_own_selection __ARGS((VimClipboard *cbd));
-void clip_mch_set_selection __ARGS((VimClipboard *cbd));
-void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
-void gui_mch_draw_menubar __ARGS((void));
-void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
-void gui_mch_getmouse __ARGS((int *x, int *y));
-void gui_mch_setmouse __ARGS((int x, int y));
-void gui_mch_mousehide __ARGS((int hide));
-void mch_set_mouse_shape __ARGS((int shape));
-void gui_mch_drawsign __ARGS((int row, int col, int typenr));
-void *gui_mch_register_sign __ARGS((char_u *signfile));
-void gui_mch_destroy_sign __ARGS((void *sign));
+extern void gui_mch_prepare __ARGS((int *argc, char **argv));
+extern void gui_mch_free_all __ARGS((void));
+extern void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
+extern void gui_mch_stop_blink __ARGS((void));
+extern void gui_mch_start_blink __ARGS((void));
+extern int gui_mch_init_check __ARGS((void));
+extern void gui_mch_show_tabline __ARGS((int showit));
+extern int gui_mch_showing_tabline __ARGS((void));
+extern void gui_mch_update_tabline __ARGS((void));
+extern void gui_mch_set_curtab __ARGS((int nr));
+extern int gui_mch_init __ARGS((void));
+extern void gui_mch_forked __ARGS((void));
+extern void gui_mch_new_colors __ARGS((void));
+extern int gui_mch_open __ARGS((void));
+extern void gui_mch_exit __ARGS((int rc));
+extern int gui_mch_get_winpos __ARGS((int *x, int *y));
+extern void gui_mch_set_winpos __ARGS((int x, int y));
+extern void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+extern void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+extern void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void gui_mch_enable_menu __ARGS((int showit));
+extern void gui_mch_show_toolbar __ARGS((int showit));
+extern int gui_mch_adjust_charheight __ARGS((void));
+extern GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int report_error, int fixed_width));
+extern char_u *gui_mch_font_dialog __ARGS((char_u *oldval));
+extern int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
+extern GuiFont gui_mch_get_font __ARGS((char_u *name, int report_error));
+extern char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
+extern void gui_mch_set_font __ARGS((GuiFont font));
+extern void gui_mch_set_fontset __ARGS((GuiFontset fontset));
+extern void gui_mch_free_font __ARGS((GuiFont font));
+extern void gui_mch_free_fontset __ARGS((GuiFontset fontset));
+extern guicolor_T gui_mch_get_color __ARGS((char_u *name));
+extern void gui_mch_set_fg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_bg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_sp_color __ARGS((guicolor_T color));
+extern int gui_gtk2_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
+extern void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
+extern int gui_mch_haskey __ARGS((char_u *name));
+extern int gui_get_x11_windis __ARGS((Window *win, Display **dis));
+extern Display *gui_mch_get_display __ARGS((void));
+extern void gui_mch_beep __ARGS((void));
+extern void gui_mch_flash __ARGS((int msec));
+extern void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
+extern void gui_mch_iconify __ARGS((void));
+extern void gui_mch_set_foreground __ARGS((void));
+extern void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+extern void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+extern void gui_mch_update __ARGS((void));
+extern int gui_mch_wait_for_chars __ARGS((long wtime));
+extern void gui_mch_flush __ARGS((void));
+extern void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+extern void gui_mch_clear_all __ARGS((void));
+extern void gui_mch_delete_lines __ARGS((int row, int num_lines));
+extern void gui_mch_insert_lines __ARGS((int row, int num_lines));
+extern void clip_mch_request_selection __ARGS((VimClipboard *cbd));
+extern void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
+extern int clip_mch_own_selection __ARGS((VimClipboard *cbd));
+extern void clip_mch_set_selection __ARGS((VimClipboard *cbd));
+extern void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+extern void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+extern void gui_mch_draw_menubar __ARGS((void));
+extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+extern long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+extern void gui_mch_getmouse __ARGS((int *x, int *y));
+extern void gui_mch_setmouse __ARGS((int x, int y));
+extern void gui_mch_mousehide __ARGS((int hide));
+extern void mch_set_mouse_shape __ARGS((int shape));
+extern void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+extern void *gui_mch_register_sign __ARGS((char_u *signfile));
+extern void gui_mch_destroy_sign __ARGS((void *sign));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_photon.pro b/src/proto/gui_photon.pro
index 098cdc7..0ffbaaa 100644
--- a/src/proto/gui_photon.pro
+++ b/src/proto/gui_photon.pro
@@ -1,67 +1,67 @@
 /* gui_photon.c */
-void gui_ph_encoding_changed __ARGS((int new_encoding));
-void gui_mch_prepare __ARGS((int *argc, char **argv));
-int gui_mch_init __ARGS((void));
-int gui_mch_init_check __ARGS((void));
-int gui_mch_open __ARGS((void));
-void gui_mch_exit __ARGS((int rc));
-void gui_mch_update __ARGS((void));
-int gui_mch_wait_for_chars __ARGS((int wtime));
-char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield));
-int gui_mch_get_winpos __ARGS((int *x, int *y));
-void gui_mch_set_winpos __ARGS((int x, int y));
-void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
-void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
-void gui_mch_iconify __ARGS((void));
-void gui_mch_set_foreground __ARGS((void));
-void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, int val, int size, int max));
-void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-void mch_set_mouse_shape __ARGS((int shape));
-void gui_mch_mousehide __ARGS((int hide));
-void gui_mch_getmouse __ARGS((int *x, int *y));
-void gui_mch_setmouse __ARGS((int x, int y));
-long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
-void gui_mch_new_colors __ARGS((void));
-guicolor_T gui_mch_get_color __ARGS((char_u *name));
-void gui_mch_set_fg_color __ARGS((guicolor_T color));
-void gui_mch_set_bg_color __ARGS((guicolor_T color));
-void gui_mch_set_sp_color __ARGS((guicolor_T color));
-void gui_mch_invert_rectangle __ARGS((int row, int col, int nr, int nc));
-void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
-void gui_mch_clear_all __ARGS((void));
-void gui_mch_delete_lines __ARGS((int row, int num_lines));
-void gui_mch_insert_lines __ARGS((int row, int num_lines));
-void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
-void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
-void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
-void gui_mch_set_blinking __ARGS((long wait, long on, long off));
-void gui_mch_start_blink __ARGS((void));
-void gui_mch_stop_blink __ARGS((void));
-void gui_mch_beep __ARGS((void));
-void gui_mch_flash __ARGS((int msec));
-void gui_mch_flush __ARGS((void));
-void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-int gui_mch_haskey __ARGS((char_u *name));
-void gui_mch_enable_menu __ARGS((int flag));
-void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_add_menu __ARGS((vimmenu_T *menu, int index));
-void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int index));
-void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
-void gui_mch_draw_menubar __ARGS((void));
-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-void gui_mch_toggle_tearoffs __ARGS((int enable));
-void gui_mch_show_toolbar __ARGS((int showit));
-int gui_mch_init_font __ARGS((char_u *vim_font_name, int fontset));
-int gui_mch_adjust_charheight __ARGS((void));
-GuiFont gui_mch_get_font __ARGS((char_u *vim_font_name, int report_error));
-char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
-void gui_mch_set_font __ARGS((GuiFont font));
-void gui_mch_free_font __ARGS((GuiFont font));
+extern void gui_ph_encoding_changed __ARGS((int new_encoding));
+extern void gui_mch_prepare __ARGS((int *argc, char **argv));
+extern int gui_mch_init __ARGS((void));
+extern int gui_mch_init_check __ARGS((void));
+extern int gui_mch_open __ARGS((void));
+extern void gui_mch_exit __ARGS((int rc));
+extern void gui_mch_update __ARGS((void));
+extern int gui_mch_wait_for_chars __ARGS((int wtime));
+extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
+extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield));
+extern int gui_mch_get_winpos __ARGS((int *x, int *y));
+extern void gui_mch_set_winpos __ARGS((int x, int y));
+extern void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+extern void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+extern void gui_mch_iconify __ARGS((void));
+extern void gui_mch_set_foreground __ARGS((void));
+extern void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, int val, int size, int max));
+extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+extern void mch_set_mouse_shape __ARGS((int shape));
+extern void gui_mch_mousehide __ARGS((int hide));
+extern void gui_mch_getmouse __ARGS((int *x, int *y));
+extern void gui_mch_setmouse __ARGS((int x, int y));
+extern long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+extern void gui_mch_new_colors __ARGS((void));
+extern guicolor_T gui_mch_get_color __ARGS((char_u *name));
+extern void gui_mch_set_fg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_bg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_sp_color __ARGS((guicolor_T color));
+extern void gui_mch_invert_rectangle __ARGS((int row, int col, int nr, int nc));
+extern void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+extern void gui_mch_clear_all __ARGS((void));
+extern void gui_mch_delete_lines __ARGS((int row, int num_lines));
+extern void gui_mch_insert_lines __ARGS((int row, int num_lines));
+extern void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
+extern void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+extern void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+extern void gui_mch_set_blinking __ARGS((long wait, long on, long off));
+extern void gui_mch_start_blink __ARGS((void));
+extern void gui_mch_stop_blink __ARGS((void));
+extern void gui_mch_beep __ARGS((void));
+extern void gui_mch_flash __ARGS((int msec));
+extern void gui_mch_flush __ARGS((void));
+extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+extern int gui_mch_haskey __ARGS((char_u *name));
+extern void gui_mch_enable_menu __ARGS((int flag));
+extern void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int index));
+extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int index));
+extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+extern void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+extern void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+extern void gui_mch_draw_menubar __ARGS((void));
+extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+extern void gui_mch_toggle_tearoffs __ARGS((int enable));
+extern void gui_mch_show_toolbar __ARGS((int showit));
+extern int gui_mch_init_font __ARGS((char_u *vim_font_name, int fontset));
+extern int gui_mch_adjust_charheight __ARGS((void));
+extern GuiFont gui_mch_get_font __ARGS((char_u *vim_font_name, int report_error));
+extern char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
+extern void gui_mch_set_font __ARGS((GuiFont font));
+extern void gui_mch_free_font __ARGS((GuiFont font));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_w16.pro b/src/proto/gui_w16.pro
index 254a68f..4ca3ded 100644
--- a/src/proto/gui_w16.pro
+++ b/src/proto/gui_w16.pro
@@ -1,75 +1,75 @@
 /* gui_w16.c */
-void gui_mch_set_blinking __ARGS((long wait, long on, long off));
-void gui_mch_stop_blink __ARGS((void));
-void gui_mch_start_blink __ARGS((void));
-LRESULT WINAPI vim_WindowProc __ARGS((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam));
-void gui_mch_new_colors __ARGS((void));
-void gui_mch_def_colors __ARGS((void));
-int gui_mch_open __ARGS((void));
-int gui_mch_get_winpos __ARGS((int *x, int *y));
-void gui_mch_set_winpos __ARGS((int x, int y));
-void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-int gui_mch_adjust_charheight __ARGS((void));
-GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
-char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
-void gui_mch_free_font __ARGS((GuiFont font));
-guicolor_T gui_mch_get_color __ARGS((char_u *name));
-int gui_mch_haskey __ARGS((char_u *name));
-void gui_mch_beep __ARGS((void));
-void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
-void gui_mch_iconify __ARGS((void));
-void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
-void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
-void gui_mch_update __ARGS((void));
-int gui_mch_wait_for_chars __ARGS((int wtime));
-void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
-void gui_mch_clear_all __ARGS((void));
-void gui_mch_enable_menu __ARGS((int flag));
-void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
-void gui_mch_draw_menubar __ARGS((void));
-long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
-void gui_mch_activate_window __ARGS((void));
-void gui_mch_show_toolbar __ARGS((int showit));
-void ex_simalt __ARGS((exarg_T *eap));
-void gui_mch_find_dialog __ARGS((exarg_T *eap));
-void gui_mch_replace_dialog __ARGS((exarg_T *eap));
-void gui_mch_mousehide __ARGS((int hide));
-void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-void gui_mch_getmouse __ARGS((int *x, int *y));
-void gui_mch_setmouse __ARGS((int x, int y));
-void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
-void gui_mch_flash __ARGS((int msec));
-void gui_mch_delete_lines __ARGS((int row, int num_lines));
-void gui_mch_insert_lines __ARGS((int row, int num_lines));
-void gui_mch_exit __ARGS((int rc));
-int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
-int gui_mch_maximized __ARGS((void));
-void gui_mch_newfont __ARGS((void));
-void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_set_mouse_shape __ARGS((int shape));
-char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-int get_cmd_args __ARGS((char *prog, char *cmdline, char ***argvp, char **tofree));
-void gui_mch_prepare __ARGS((int *argc, char **argv));
-int gui_mch_init __ARGS((void));
-void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
-void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
-void gui_mch_set_font __ARGS((GuiFont font));
-void gui_mch_set_fg_color __ARGS((guicolor_T color));
-void gui_mch_set_bg_color __ARGS((guicolor_T color));
-void gui_mch_set_sp_color __ARGS((guicolor_T color));
-void gui_mch_draw_string __ARGS((int row, int col, char_u *text, int len, int flags));
-void gui_mch_flush __ARGS((void));
-void gui_mch_add_menu __ARGS((vimmenu_T *menu, int pos));
-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
-void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
-void gui_mch_set_foreground __ARGS((void));
+extern void gui_mch_set_blinking __ARGS((long wait, long on, long off));
+extern void gui_mch_stop_blink __ARGS((void));
+extern void gui_mch_start_blink __ARGS((void));
+extern LRESULT WINAPI vim_WindowProc __ARGS((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam));
+extern void gui_mch_new_colors __ARGS((void));
+extern void gui_mch_def_colors __ARGS((void));
+extern int gui_mch_open __ARGS((void));
+extern int gui_mch_get_winpos __ARGS((int *x, int *y));
+extern void gui_mch_set_winpos __ARGS((int x, int y));
+extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+extern int gui_mch_adjust_charheight __ARGS((void));
+extern GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
+extern char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
+extern void gui_mch_free_font __ARGS((GuiFont font));
+extern guicolor_T gui_mch_get_color __ARGS((char_u *name));
+extern int gui_mch_haskey __ARGS((char_u *name));
+extern void gui_mch_beep __ARGS((void));
+extern void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
+extern void gui_mch_iconify __ARGS((void));
+extern void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+extern void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+extern void gui_mch_update __ARGS((void));
+extern int gui_mch_wait_for_chars __ARGS((int wtime));
+extern void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+extern void gui_mch_clear_all __ARGS((void));
+extern void gui_mch_enable_menu __ARGS((int flag));
+extern void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+extern void gui_mch_draw_menubar __ARGS((void));
+extern long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+extern void gui_mch_activate_window __ARGS((void));
+extern void gui_mch_show_toolbar __ARGS((int showit));
+extern void ex_simalt __ARGS((exarg_T *eap));
+extern void gui_mch_find_dialog __ARGS((exarg_T *eap));
+extern void gui_mch_replace_dialog __ARGS((exarg_T *eap));
+extern void gui_mch_mousehide __ARGS((int hide));
+extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+extern void gui_mch_getmouse __ARGS((int *x, int *y));
+extern void gui_mch_setmouse __ARGS((int x, int y));
+extern void gui_mch_flash __ARGS((int msec));
+extern void gui_mch_delete_lines __ARGS((int row, int num_lines));
+extern void gui_mch_insert_lines __ARGS((int row, int num_lines));
+extern void gui_mch_exit __ARGS((int rc));
+extern int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
+extern int gui_mch_maximized __ARGS((void));
+extern void gui_mch_newfont __ARGS((void));
+extern void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void mch_set_mouse_shape __ARGS((int shape));
+extern char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
+extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+extern int get_cmd_args __ARGS((char *prog, char *cmdline, char ***argvp, char **tofree));
+extern void gui_mch_prepare __ARGS((int *argc, char **argv));
+extern int gui_mch_init __ARGS((void));
+extern void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
+extern void gui_mch_set_font __ARGS((GuiFont font));
+extern void gui_mch_set_fg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_bg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_sp_color __ARGS((guicolor_T color));
+extern void gui_mch_draw_string __ARGS((int row, int col, char_u *text, int len, int flags));
+extern void gui_mch_flush __ARGS((void));
+extern void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int pos));
+extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+extern void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
+extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+extern void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+extern void gui_mch_set_foreground __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_w32.pro b/src/proto/gui_w32.pro
index 31f44aa..9e41156 100644
--- a/src/proto/gui_w32.pro
+++ b/src/proto/gui_w32.pro
@@ -1,92 +1,92 @@
 /* gui_w32.c */
-void gui_mch_set_blinking __ARGS((long wait, long on, long off));
-void gui_mch_stop_blink __ARGS((void));
-void gui_mch_start_blink __ARGS((void));
-LRESULT WINAPI vim_WindowProc __ARGS((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam));
-void gui_mch_new_colors __ARGS((void));
-void gui_mch_def_colors __ARGS((void));
-int gui_mch_open __ARGS((void));
-int gui_mch_get_winpos __ARGS((int *x, int *y));
-void gui_mch_set_winpos __ARGS((int x, int y));
-void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-int gui_mch_adjust_charheight __ARGS((void));
-GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
-char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
-void gui_mch_free_font __ARGS((GuiFont font));
-guicolor_T gui_mch_get_color __ARGS((char_u *name));
-int gui_mch_haskey __ARGS((char_u *name));
-void gui_mch_beep __ARGS((void));
-void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
-void gui_mch_iconify __ARGS((void));
-void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
-void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
-void gui_mch_update __ARGS((void));
-int gui_mch_wait_for_chars __ARGS((int wtime));
-void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
-void gui_mch_clear_all __ARGS((void));
-void gui_mch_enable_menu __ARGS((int flag));
-void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
-void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
-void gui_mch_draw_menubar __ARGS((void));
-long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
-void gui_mch_activate_window __ARGS((void));
-void gui_mch_show_toolbar __ARGS((int showit));
-void ex_simalt __ARGS((exarg_T *eap));
-void gui_mch_find_dialog __ARGS((exarg_T *eap));
-void gui_mch_replace_dialog __ARGS((exarg_T *eap));
-void gui_mch_mousehide __ARGS((int hide));
-void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-void gui_mch_getmouse __ARGS((int *x, int *y));
-void gui_mch_setmouse __ARGS((int x, int y));
-void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
-void gui_mch_flash __ARGS((int msec));
-void gui_mch_delete_lines __ARGS((int row, int num_lines));
-void gui_mch_insert_lines __ARGS((int row, int num_lines));
-void gui_mch_exit __ARGS((int rc));
-int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
-int gui_mch_maximized __ARGS((void));
-void gui_mch_newfont __ARGS((void));
-void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_set_mouse_shape __ARGS((int shape));
-char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-int get_cmd_args __ARGS((char *prog, char *cmdline, char ***argvp, char **tofree));
-int gui_is_win32s __ARGS((void));
-void gui_mch_set_parent __ARGS((char *title));
-void gui_mch_prepare __ARGS((int *argc, char **argv));
-int gui_mch_init __ARGS((void));
-void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
-void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
-void gui_mch_set_font __ARGS((GuiFont font));
-void gui_mch_set_fg_color __ARGS((guicolor_T color));
-void gui_mch_set_bg_color __ARGS((guicolor_T color));
-void gui_mch_set_sp_color __ARGS((guicolor_T color));
-void im_set_font __ARGS((LOGFONT *lf));
-void im_set_position __ARGS((int row, int col));
-void im_set_active __ARGS((int active));
-int im_get_status __ARGS((void));
-void gui_mch_draw_string __ARGS((int row, int col, char_u *text, int len, int flags));
-void gui_mch_flush __ARGS((void));
-void gui_mch_add_menu __ARGS((vimmenu_T *menu, int pos));
-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
-void gui_make_tearoff __ARGS((char_u *path_name));
-void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
-void gui_mch_set_foreground __ARGS((void));
-void gui_mch_drawsign __ARGS((int row, int col, int typenr));
-void *gui_mch_register_sign __ARGS((char_u *signfile));
-void gui_mch_destroy_sign __ARGS((void *sign));
-int multiline_balloon_available __ARGS((void));
-void gui_mch_disable_beval_area __ARGS((BalloonEval *beval));
-void gui_mch_enable_beval_area __ARGS((BalloonEval *beval));
-void gui_mch_post_balloon __ARGS((BalloonEval *beval, char_u *mesg));
-BalloonEval *gui_mch_create_beval_area __ARGS((void *target, char_u *mesg, void (*mesgCB)(BalloonEval *, int), void *clientData));
-void gui_mch_destroy_beval_area __ARGS((BalloonEval *beval));
-void netbeans_draw_multisign_indicator __ARGS((int row));
+extern void gui_mch_set_blinking __ARGS((long wait, long on, long off));
+extern void gui_mch_stop_blink __ARGS((void));
+extern void gui_mch_start_blink __ARGS((void));
+extern LRESULT WINAPI vim_WindowProc __ARGS((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam));
+extern void gui_mch_new_colors __ARGS((void));
+extern void gui_mch_def_colors __ARGS((void));
+extern int gui_mch_open __ARGS((void));
+extern int gui_mch_get_winpos __ARGS((int *x, int *y));
+extern void gui_mch_set_winpos __ARGS((int x, int y));
+extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+extern int gui_mch_adjust_charheight __ARGS((void));
+extern GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
+extern char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
+extern void gui_mch_free_font __ARGS((GuiFont font));
+extern guicolor_T gui_mch_get_color __ARGS((char_u *name));
+extern int gui_mch_haskey __ARGS((char_u *name));
+extern void gui_mch_beep __ARGS((void));
+extern void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
+extern void gui_mch_iconify __ARGS((void));
+extern void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+extern void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+extern void gui_mch_update __ARGS((void));
+extern int gui_mch_wait_for_chars __ARGS((int wtime));
+extern void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+extern void gui_mch_clear_all __ARGS((void));
+extern void gui_mch_enable_menu __ARGS((int flag));
+extern void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h));
+extern void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+extern void gui_mch_draw_menubar __ARGS((void));
+extern long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+extern void gui_mch_activate_window __ARGS((void));
+extern void gui_mch_show_toolbar __ARGS((int showit));
+extern void ex_simalt __ARGS((exarg_T *eap));
+extern void gui_mch_find_dialog __ARGS((exarg_T *eap));
+extern void gui_mch_replace_dialog __ARGS((exarg_T *eap));
+extern void gui_mch_mousehide __ARGS((int hide));
+extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+extern void gui_mch_getmouse __ARGS((int *x, int *y));
+extern void gui_mch_setmouse __ARGS((int x, int y));
+extern void gui_mch_flash __ARGS((int msec));
+extern void gui_mch_delete_lines __ARGS((int row, int num_lines));
+extern void gui_mch_insert_lines __ARGS((int row, int num_lines));
+extern void gui_mch_exit __ARGS((int rc));
+extern int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
+extern int gui_mch_maximized __ARGS((void));
+extern void gui_mch_newfont __ARGS((void));
+extern void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void mch_set_mouse_shape __ARGS((int shape));
+extern char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
+extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+extern int get_cmd_args __ARGS((char *prog, char *cmdline, char ***argvp, char **tofree));
+extern int gui_is_win32s __ARGS((void));
+extern void gui_mch_set_parent __ARGS((char *title));
+extern void gui_mch_prepare __ARGS((int *argc, char **argv));
+extern int gui_mch_init __ARGS((void));
+extern void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
+extern void gui_mch_set_font __ARGS((GuiFont font));
+extern void gui_mch_set_fg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_bg_color __ARGS((guicolor_T color));
+extern void gui_mch_set_sp_color __ARGS((guicolor_T color));
+extern void im_set_font __ARGS((LOGFONT *lf));
+extern void im_set_position __ARGS((int row, int col));
+extern void im_set_active __ARGS((int active));
+extern int im_get_status __ARGS((void));
+extern void gui_mch_draw_string __ARGS((int row, int col, char_u *text, int len, int flags));
+extern void gui_mch_flush __ARGS((void));
+extern void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int pos));
+extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+extern void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
+extern void gui_make_tearoff __ARGS((char_u *path_name));
+extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+extern void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+extern void gui_mch_set_foreground __ARGS((void));
+extern void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+extern void *gui_mch_register_sign __ARGS((char_u *signfile));
+extern void gui_mch_destroy_sign __ARGS((void *sign));
+extern int multiline_balloon_available __ARGS((void));
+extern void gui_mch_disable_beval_area __ARGS((BalloonEval *beval));
+extern void gui_mch_enable_beval_area __ARGS((BalloonEval *beval));
+extern void gui_mch_post_balloon __ARGS((BalloonEval *beval, char_u *mesg));
+extern BalloonEval *gui_mch_create_beval_area __ARGS((void *target, char_u *mesg, void (*mesgCB)(BalloonEval *, int), void *clientData));
+extern void gui_mch_destroy_beval_area __ARGS((BalloonEval *beval));
+extern void netbeans_draw_multisign_indicator __ARGS((int row));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_xmdlg.pro b/src/proto/gui_xmdlg.pro
index 4f88c2f..dc6655a 100644
--- a/src/proto/gui_xmdlg.pro
+++ b/src/proto/gui_xmdlg.pro
@@ -1,3 +1,3 @@
 /* gui_xmdlg.c */
-char_u *gui_xm_select_font __ARGS((char_u *current));
+extern char_u *gui_xm_select_font __ARGS((char_u *current));
 /* vim: set ft=c : */
diff --git a/src/proto/hardcopy.pro b/src/proto/hardcopy.pro
index f192814..fde7c2a 100644
--- a/src/proto/hardcopy.pro
+++ b/src/proto/hardcopy.pro
@@ -1,21 +1,20 @@
 /* hardcopy.c */
-char_u *parse_printoptions __ARGS((void));
-char_u *parse_printmbfont __ARGS((void));
-int get_printer_page_num __ARGS((void));
-int prt_header_height __ARGS((void));
-int prt_use_number __ARGS((void));
-int prt_get_unit __ARGS((int idx));
-void ex_hardcopy __ARGS((exarg_T *eap));
-void mch_print_cleanup __ARGS((void));
-int mch_print_init __ARGS((prt_settings_T *psettings, char_u *jobname, int forceit));
-int mch_print_begin __ARGS((prt_settings_T *psettings));
-void mch_print_end __ARGS((prt_settings_T *psettings));
-int mch_print_end_page __ARGS((void));
-int mch_print_begin_page __ARGS((char_u *str));
-int mch_print_blank_page __ARGS((void));
-void mch_print_start_line __ARGS((int margin, int page_line));
-int mch_print_text_out __ARGS((char_u *p, int len));
-void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline));
-void mch_print_set_bg __ARGS((long_u bgcol));
-void mch_print_set_fg __ARGS((long_u fgcol));
+extern char_u *parse_printoptions __ARGS((void));
+extern char_u *parse_printmbfont __ARGS((void));
+extern int prt_header_height __ARGS((void));
+extern int prt_use_number __ARGS((void));
+extern int prt_get_unit __ARGS((int idx));
+extern void ex_hardcopy __ARGS((exarg_T *eap));
+extern void mch_print_cleanup __ARGS((void));
+extern int mch_print_init __ARGS((prt_settings_T *psettings, char_u *jobname, int forceit));
+extern int mch_print_begin __ARGS((prt_settings_T *psettings));
+extern void mch_print_end __ARGS((prt_settings_T *psettings));
+extern int mch_print_end_page __ARGS((void));
+extern int mch_print_begin_page __ARGS((char_u *str));
+extern int mch_print_blank_page __ARGS((void));
+extern void mch_print_start_line __ARGS((int margin, int page_line));
+extern int mch_print_text_out __ARGS((char_u *p, int len));
+extern void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline));
+extern void mch_print_set_bg __ARGS((long_u bgcol));
+extern void mch_print_set_fg __ARGS((long_u fgcol));
 /* vim: set ft=c : */
diff --git a/src/proto/hashtab.pro b/src/proto/hashtab.pro
new file mode 100644
index 0000000..90abb9f
--- /dev/null
+++ b/src/proto/hashtab.pro
@@ -0,0 +1,14 @@
+/* hashtab.c */
+extern void hash_init __ARGS((hashtab_T *ht));
+extern void hash_clear __ARGS((hashtab_T *ht));
+extern void hash_clear_all __ARGS((hashtab_T *ht, int off));
+extern hashitem_T *hash_find __ARGS((hashtab_T *ht, char_u *key));
+extern hashitem_T *hash_lookup __ARGS((hashtab_T *ht, char_u *key, hash_T hash));
+extern void hash_debug_results __ARGS((void));
+extern int hash_add __ARGS((hashtab_T *ht, char_u *key));
+extern int hash_add_item __ARGS((hashtab_T *ht, hashitem_T *hi, char_u *key, hash_T hash));
+extern void hash_remove __ARGS((hashtab_T *ht, hashitem_T *hi));
+extern void hash_lock __ARGS((hashtab_T *ht));
+extern void hash_unlock __ARGS((hashtab_T *ht));
+extern hash_T hash_hash __ARGS((char_u *key));
+/* vim: set ft=c : */
diff --git a/src/proto/if_cscope.pro b/src/proto/if_cscope.pro
index 0617d13..aae9edf 100644
--- a/src/proto/if_cscope.pro
+++ b/src/proto/if_cscope.pro
@@ -1,9 +1,9 @@
 /* if_cscope.c */
-void do_cscope __ARGS((exarg_T *eap));
-void do_scscope __ARGS((exarg_T *eap));
-void do_cstag __ARGS((exarg_T *eap));
-int cs_fgets __ARGS((char_u *buf, int size));
-void cs_free_tags __ARGS((void));
-void cs_print_tags __ARGS((void));
-int cs_connection __ARGS((int num, char_u *dbpath, char_u *ppath));
+extern void do_cscope __ARGS((exarg_T *eap));
+extern void do_scscope __ARGS((exarg_T *eap));
+extern void do_cstag __ARGS((exarg_T *eap));
+extern int cs_fgets __ARGS((char_u *buf, int size));
+extern void cs_free_tags __ARGS((void));
+extern void cs_print_tags __ARGS((void));
+extern int cs_connection __ARGS((int num, char_u *dbpath, char_u *ppath));
 /* vim: set ft=c : */
diff --git a/src/proto/if_perlsfio.pro b/src/proto/if_perlsfio.pro
index bb90468..14fa4cc 100644
--- a/src/proto/if_perlsfio.pro
+++ b/src/proto/if_perlsfio.pro
@@ -1,3 +1,3 @@
 /* if_perlsfio.c */
-int *sfdcnewvim __ARGS((void));
+extern int *sfdcnewvim __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/if_tcl.pro b/src/proto/if_tcl.pro
index 0679ed4..2af9174 100644
--- a/src/proto/if_tcl.pro
+++ b/src/proto/if_tcl.pro
@@ -1,10 +1,10 @@
 /* if_tcl.c */
-void vim_tcl_init __ARGS((char *arg));
-int tcl_enabled __ARGS((int verbose));
-void tcl_end __ARGS((void));
-void ex_tcl __ARGS((exarg_T *eap));
-void ex_tclfile __ARGS((exarg_T *eap));
-void ex_tcldo __ARGS((exarg_T *eap));
-void tcl_buffer_free __ARGS((buf_T *buf));
-void tcl_window_free __ARGS((win_T *win));
+extern void vim_tcl_init __ARGS((char *arg));
+extern int tcl_enabled __ARGS((int verbose));
+extern void tcl_end __ARGS((void));
+extern void ex_tcl __ARGS((exarg_T *eap));
+extern void ex_tclfile __ARGS((exarg_T *eap));
+extern void ex_tcldo __ARGS((exarg_T *eap));
+extern void tcl_buffer_free __ARGS((buf_T *buf));
+extern void tcl_window_free __ARGS((win_T *win));
 /* vim: set ft=c : */
diff --git a/src/proto/main.pro b/src/proto/main.pro
index 2ecce79..93a312f 100644
--- a/src/proto/main.pro
+++ b/src/proto/main.pro
@@ -1,26 +1,26 @@
 /* main.c */
-void main_loop __ARGS((int cmdwin, int noexmode));
-void getout_preserve_modified __ARGS((int exitval));
-void getout __ARGS((int exitval));
-int process_env __ARGS((char_u *env, int is_viminit));
-void mainerr_arg_missing __ARGS((char_u *str));
-void time_push __ARGS((void *tv_rel, void *tv_start));
-void time_pop __ARGS((void *tp));
-void time_msg __ARGS((char *msg, void *tv_start));
-void server_to_input_buf __ARGS((char_u *str));
-char_u *eval_client_expr_to_string __ARGS((char_u *expr));
-char_u *serverConvert __ARGS((char_u *client_enc, char_u *data, char_u **tofree));
-int toF_TyA __ARGS((int c));
-int fkmap __ARGS((int c));
-void conv_to_pvim __ARGS((void));
-void conv_to_pstd __ARGS((void));
-char_u *lrswap __ARGS((char_u *ibuf));
-char_u *lrFswap __ARGS((char_u *cmdbuf, int len));
-char_u *lrF_sub __ARGS((char_u *ibuf));
-int cmdl_fkmap __ARGS((int c));
-int F_isalpha __ARGS((int c));
-int F_isdigit __ARGS((int c));
-int F_ischar __ARGS((int c));
-void farsi_fkey __ARGS((cmdarg_T *cap));
-int arabic_shape __ARGS((int c, int *ccp, int *c1p, int prev_c, int prev_c1, int next_c));
+extern void main_loop __ARGS((int cmdwin, int noexmode));
+extern void getout_preserve_modified __ARGS((int exitval));
+extern void getout __ARGS((int exitval));
+extern int process_env __ARGS((char_u *env, int is_viminit));
+extern void mainerr_arg_missing __ARGS((char_u *str));
+extern void time_push __ARGS((void *tv_rel, void *tv_start));
+extern void time_pop __ARGS((void *tp));
+extern void time_msg __ARGS((char *msg, void *tv_start));
+extern void server_to_input_buf __ARGS((char_u *str));
+extern char_u *eval_client_expr_to_string __ARGS((char_u *expr));
+extern char_u *serverConvert __ARGS((char_u *client_enc, char_u *data, char_u **tofree));
+extern int toF_TyA __ARGS((int c));
+extern int fkmap __ARGS((int c));
+extern void conv_to_pvim __ARGS((void));
+extern void conv_to_pstd __ARGS((void));
+extern char_u *lrswap __ARGS((char_u *ibuf));
+extern char_u *lrFswap __ARGS((char_u *cmdbuf, int len));
+extern char_u *lrF_sub __ARGS((char_u *ibuf));
+extern int cmdl_fkmap __ARGS((int c));
+extern int F_isalpha __ARGS((int c));
+extern int F_isdigit __ARGS((int c));
+extern int F_ischar __ARGS((int c));
+extern void farsi_fkey __ARGS((cmdarg_T *cap));
+extern int arabic_shape __ARGS((int c, int *ccp, int *c1p, int prev_c, int prev_c1, int next_c));
 /* vim: set ft=c : */
diff --git a/src/proto/mark.pro b/src/proto/mark.pro
index 13e1868..fe44031 100644
--- a/src/proto/mark.pro
+++ b/src/proto/mark.pro
@@ -1,30 +1,30 @@
 /* mark.c */
-int setmark __ARGS((int c));
-int setmark_pos __ARGS((int c, pos_T *pos, int fnum));
-void setpcmark __ARGS((void));
-void checkpcmark __ARGS((void));
-pos_T *movemark __ARGS((int count));
-pos_T *movechangelist __ARGS((int count));
-pos_T *getmark __ARGS((int c, int changefile));
-pos_T *getmark_fnum __ARGS((int c, int changefile, int *fnum));
-pos_T *getnextmark __ARGS((pos_T *startpos, int dir, int begin_line));
-void fmarks_check_names __ARGS((buf_T *buf));
-int check_mark __ARGS((pos_T *pos));
-void clrallmarks __ARGS((buf_T *buf));
-char_u *fm_getname __ARGS((fmark_T *fmark, int lead_len));
-void do_marks __ARGS((exarg_T *eap));
-void ex_delmarks __ARGS((exarg_T *eap));
-void ex_jumps __ARGS((exarg_T *eap));
-void ex_changes __ARGS((exarg_T *eap));
-void mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
-void mark_col_adjust __ARGS((linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount));
-void copy_jumplist __ARGS((win_T *from, win_T *to));
-void free_jumplist __ARGS((win_T *wp));
-void set_last_cursor __ARGS((win_T *win));
-void free_all_marks __ARGS((void));
-int read_viminfo_filemark __ARGS((vir_T *virp, int force));
-void write_viminfo_filemarks __ARGS((FILE *fp));
-int removable __ARGS((char_u *name));
-int write_viminfo_marks __ARGS((FILE *fp_out));
-void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof));
+extern int setmark __ARGS((int c));
+extern int setmark_pos __ARGS((int c, pos_T *pos, int fnum));
+extern void setpcmark __ARGS((void));
+extern void checkpcmark __ARGS((void));
+extern pos_T *movemark __ARGS((int count));
+extern pos_T *movechangelist __ARGS((int count));
+extern pos_T *getmark __ARGS((int c, int changefile));
+extern pos_T *getmark_fnum __ARGS((int c, int changefile, int *fnum));
+extern pos_T *getnextmark __ARGS((pos_T *startpos, int dir, int begin_line));
+extern void fmarks_check_names __ARGS((buf_T *buf));
+extern int check_mark __ARGS((pos_T *pos));
+extern void clrallmarks __ARGS((buf_T *buf));
+extern char_u *fm_getname __ARGS((fmark_T *fmark, int lead_len));
+extern void do_marks __ARGS((exarg_T *eap));
+extern void ex_delmarks __ARGS((exarg_T *eap));
+extern void ex_jumps __ARGS((exarg_T *eap));
+extern void ex_changes __ARGS((exarg_T *eap));
+extern void mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
+extern void mark_col_adjust __ARGS((linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount));
+extern void copy_jumplist __ARGS((win_T *from, win_T *to));
+extern void free_jumplist __ARGS((win_T *wp));
+extern void set_last_cursor __ARGS((win_T *win));
+extern void free_all_marks __ARGS((void));
+extern int read_viminfo_filemark __ARGS((vir_T *virp, int force));
+extern void write_viminfo_filemarks __ARGS((FILE *fp));
+extern int removable __ARGS((char_u *name));
+extern int write_viminfo_marks __ARGS((FILE *fp_out));
+extern void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof));
 /* vim: set ft=c : */
diff --git a/src/proto/memfile.pro b/src/proto/memfile.pro
index 3983b47..6c4329a 100644
--- a/src/proto/memfile.pro
+++ b/src/proto/memfile.pro
@@ -1,18 +1,18 @@
 /* memfile.c */
-memfile_T *mf_open __ARGS((char_u *fname, int flags));
-int mf_open_file __ARGS((memfile_T *mfp, char_u *fname));
-void mf_close __ARGS((memfile_T *mfp, int del_file));
-void mf_close_file __ARGS((buf_T *buf, int getlines));
-void mf_new_page_size __ARGS((memfile_T *mfp, unsigned new_size));
-bhdr_T *mf_new __ARGS((memfile_T *mfp, int negative, int page_count));
-bhdr_T *mf_get __ARGS((memfile_T *mfp, blocknr_T nr, int page_count));
-void mf_put __ARGS((memfile_T *mfp, bhdr_T *hp, int dirty, int infile));
-void mf_free __ARGS((memfile_T *mfp, bhdr_T *hp));
-int mf_sync __ARGS((memfile_T *mfp, int flags));
-void mf_set_dirty __ARGS((memfile_T *mfp));
-int mf_release_all __ARGS((void));
-blocknr_T mf_trans_del __ARGS((memfile_T *mfp, blocknr_T old_nr));
-void mf_set_ffname __ARGS((memfile_T *mfp));
-void mf_fullname __ARGS((memfile_T *mfp));
-int mf_need_trans __ARGS((memfile_T *mfp));
+extern memfile_T *mf_open __ARGS((char_u *fname, int flags));
+extern int mf_open_file __ARGS((memfile_T *mfp, char_u *fname));
+extern void mf_close __ARGS((memfile_T *mfp, int del_file));
+extern void mf_close_file __ARGS((buf_T *buf, int getlines));
+extern void mf_new_page_size __ARGS((memfile_T *mfp, unsigned new_size));
+extern bhdr_T *mf_new __ARGS((memfile_T *mfp, int negative, int page_count));
+extern bhdr_T *mf_get __ARGS((memfile_T *mfp, blocknr_T nr, int page_count));
+extern void mf_put __ARGS((memfile_T *mfp, bhdr_T *hp, int dirty, int infile));
+extern void mf_free __ARGS((memfile_T *mfp, bhdr_T *hp));
+extern int mf_sync __ARGS((memfile_T *mfp, int flags));
+extern void mf_set_dirty __ARGS((memfile_T *mfp));
+extern int mf_release_all __ARGS((void));
+extern blocknr_T mf_trans_del __ARGS((memfile_T *mfp, blocknr_T old_nr));
+extern void mf_set_ffname __ARGS((memfile_T *mfp));
+extern void mf_fullname __ARGS((memfile_T *mfp));
+extern int mf_need_trans __ARGS((memfile_T *mfp));
 /* vim: set ft=c : */
diff --git a/src/proto/message.pro b/src/proto/message.pro
index e029964..9161b05 100644
--- a/src/proto/message.pro
+++ b/src/proto/message.pro
@@ -1,70 +1,70 @@
 /* message.c */
-int msg __ARGS((char_u *s));
-int verb_msg __ARGS((char_u *s));
-int msg_attr __ARGS((char_u *s, int attr));
-int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
-char_u *msg_strtrunc __ARGS((char_u *s, int force));
-void trunc_string __ARGS((char_u *s, char_u *buf, int room));
-void reset_last_sourcing __ARGS((void));
-void msg_source __ARGS((int attr));
-int emsg __ARGS((char_u *s));
-int emsg2 __ARGS((char_u *s, char_u *a1));
-void emsg_invreg __ARGS((int name));
-char_u *msg_trunc_attr __ARGS((char_u *s, int force, int attr));
-char_u *msg_may_trunc __ARGS((int force, char_u *s));
-int delete_first_msg __ARGS((void));
-void ex_messages __ARGS((exarg_T *eap));
-void msg_end_prompt __ARGS((void));
-void wait_return __ARGS((int redraw));
-void set_keep_msg __ARGS((char_u *s, int attr));
-void set_keep_msg_from_hist __ARGS((void));
-void msg_start __ARGS((void));
-void msg_starthere __ARGS((void));
-void msg_putchar __ARGS((int c));
-void msg_putchar_attr __ARGS((int c, int attr));
-void msg_outnum __ARGS((long n));
-void msg_home_replace __ARGS((char_u *fname));
-void msg_home_replace_hl __ARGS((char_u *fname));
-int msg_outtrans __ARGS((char_u *str));
-int msg_outtrans_attr __ARGS((char_u *str, int attr));
-int msg_outtrans_len __ARGS((char_u *str, int len));
-char_u *msg_outtrans_one __ARGS((char_u *p, int attr));
-int msg_outtrans_len_attr __ARGS((char_u *msgstr, int len, int attr));
-void msg_make __ARGS((char_u *arg));
-int msg_outtrans_special __ARGS((char_u *strstart, int from));
-char_u *str2special __ARGS((char_u **sp, int from));
-void str2specialbuf __ARGS((char_u *sp, char_u *buf, int len));
-void msg_prt_line __ARGS((char_u *s, int list));
-void msg_puts __ARGS((char_u *s));
-void msg_puts_title __ARGS((char_u *s));
-void msg_puts_long_attr __ARGS((char_u *longstr, int attr));
-void msg_puts_long_len_attr __ARGS((char_u *longstr, int len, int attr));
-void msg_puts_attr __ARGS((char_u *s, int attr));
-void may_clear_sb_text __ARGS((void));
-void clear_sb_text __ARGS((void));
-void show_sb_text __ARGS((void));
-int msg_use_printf __ARGS((void));
-void mch_errmsg __ARGS((char *str));
-void mch_msg __ARGS((char *str));
-void msg_moremsg __ARGS((int full));
-void repeat_message __ARGS((void));
-void msg_clr_eos __ARGS((void));
-void msg_clr_eos_force __ARGS((void));
-void msg_clr_cmdline __ARGS((void));
-int msg_end __ARGS((void));
-void msg_check __ARGS((void));
-void verbose_enter __ARGS((void));
-void verbose_leave __ARGS((void));
-void verbose_enter_scroll __ARGS((void));
-void verbose_leave_scroll __ARGS((void));
-void verbose_stop __ARGS((void));
-int verbose_open __ARGS((void));
-void give_warning __ARGS((char_u *message, int hl));
-void msg_advance __ARGS((int col));
-int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
-void display_confirm_msg __ARGS((void));
-int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
-int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
-int vim_dialog_yesnoallcancel __ARGS((int type, char_u *title, char_u *message, int dflt));
-char_u *do_browse __ARGS((int flags, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter, buf_T *buf));
+extern int msg __ARGS((char_u *s));
+extern int verb_msg __ARGS((char_u *s));
+extern int msg_attr __ARGS((char_u *s, int attr));
+extern int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
+extern char_u *msg_strtrunc __ARGS((char_u *s, int force));
+extern void trunc_string __ARGS((char_u *s, char_u *buf, int room));
+extern void reset_last_sourcing __ARGS((void));
+extern void msg_source __ARGS((int attr));
+extern int emsg __ARGS((char_u *s));
+extern int emsg2 __ARGS((char_u *s, char_u *a1));
+extern void emsg_invreg __ARGS((int name));
+extern char_u *msg_trunc_attr __ARGS((char_u *s, int force, int attr));
+extern char_u *msg_may_trunc __ARGS((int force, char_u *s));
+extern int delete_first_msg __ARGS((void));
+extern void ex_messages __ARGS((exarg_T *eap));
+extern void msg_end_prompt __ARGS((void));
+extern void wait_return __ARGS((int redraw));
+extern void set_keep_msg __ARGS((char_u *s, int attr));
+extern void set_keep_msg_from_hist __ARGS((void));
+extern void msg_start __ARGS((void));
+extern void msg_starthere __ARGS((void));
+extern void msg_putchar __ARGS((int c));
+extern void msg_putchar_attr __ARGS((int c, int attr));
+extern void msg_outnum __ARGS((long n));
+extern void msg_home_replace __ARGS((char_u *fname));
+extern void msg_home_replace_hl __ARGS((char_u *fname));
+extern int msg_outtrans __ARGS((char_u *str));
+extern int msg_outtrans_attr __ARGS((char_u *str, int attr));
+extern int msg_outtrans_len __ARGS((char_u *str, int len));
+extern char_u *msg_outtrans_one __ARGS((char_u *p, int attr));
+extern int msg_outtrans_len_attr __ARGS((char_u *msgstr, int len, int attr));
+extern void msg_make __ARGS((char_u *arg));
+extern int msg_outtrans_special __ARGS((char_u *strstart, int from));
+extern char_u *str2special __ARGS((char_u **sp, int from));
+extern void str2specialbuf __ARGS((char_u *sp, char_u *buf, int len));
+extern void msg_prt_line __ARGS((char_u *s, int list));
+extern void msg_puts __ARGS((char_u *s));
+extern void msg_puts_title __ARGS((char_u *s));
+extern void msg_puts_long_attr __ARGS((char_u *longstr, int attr));
+extern void msg_puts_long_len_attr __ARGS((char_u *longstr, int len, int attr));
+extern void msg_puts_attr __ARGS((char_u *s, int attr));
+extern void may_clear_sb_text __ARGS((void));
+extern void clear_sb_text __ARGS((void));
+extern void show_sb_text __ARGS((void));
+extern int msg_use_printf __ARGS((void));
+extern void mch_errmsg __ARGS((char *str));
+extern void mch_msg __ARGS((char *str));
+extern void msg_moremsg __ARGS((int full));
+extern void repeat_message __ARGS((void));
+extern void msg_clr_eos __ARGS((void));
+extern void msg_clr_eos_force __ARGS((void));
+extern void msg_clr_cmdline __ARGS((void));
+extern int msg_end __ARGS((void));
+extern void msg_check __ARGS((void));
+extern void verbose_enter __ARGS((void));
+extern void verbose_leave __ARGS((void));
+extern void verbose_enter_scroll __ARGS((void));
+extern void verbose_leave_scroll __ARGS((void));
+extern void verbose_stop __ARGS((void));
+extern int verbose_open __ARGS((void));
+extern void give_warning __ARGS((char_u *message, int hl));
+extern void msg_advance __ARGS((int col));
+extern int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+extern void display_confirm_msg __ARGS((void));
+extern int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
+extern int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
+extern int vim_dialog_yesnoallcancel __ARGS((int type, char_u *title, char_u *message, int dflt));
+extern char_u *do_browse __ARGS((int flags, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter, buf_T *buf));
 /* vim: set ft=c : */
diff --git a/src/proto/netbeans.pro b/src/proto/netbeans.pro
index 75d0149..71a5ec4 100644
--- a/src/proto/netbeans.pro
+++ b/src/proto/netbeans.pro
@@ -1,25 +1,25 @@
 /* netbeans.c */
-void messageFromNetbeansW32 __ARGS((void));
-int isNetbeansBuffer __ARGS((buf_T *bufp));
-int isNetbeansModified __ARGS((buf_T *bufp));
-void netbeans_end __ARGS((void));
-void ex_nbkey __ARGS((exarg_T *eap));
-void netbeans_beval_cb __ARGS((BalloonEval *beval, int state));
-void netbeans_startup_done __ARGS((void));
-void netbeans_send_disconnect __ARGS((void));
-void netbeans_frame_moved __ARGS((int new_x, int new_y));
-void netbeans_file_activated __ARGS((buf_T *bufp));
-void netbeans_file_opened __ARGS((buf_T *bufp));
-void netbeans_file_closed __ARGS((buf_T *bufp));
-void netbeans_inserted __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, char_u *txt, int newlen));
-void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len));
-void netbeans_unmodified __ARGS((buf_T *bufp));
-void netbeans_button_release __ARGS((int button));
-void netbeans_keycommand __ARGS((int key));
-void netbeans_save_buffer __ARGS((buf_T *bufp));
-void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
-int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
-void netbeans_draw_multisign_indicator __ARGS((int row));
-void netbeans_draw_multisign_indicator __ARGS((int row));
-void netbeans_gutter_click __ARGS((linenr_T lnum));
+extern void messageFromNetbeansW32 __ARGS((void));
+extern int isNetbeansBuffer __ARGS((buf_T *bufp));
+extern int isNetbeansModified __ARGS((buf_T *bufp));
+extern void netbeans_end __ARGS((void));
+extern void ex_nbkey __ARGS((exarg_T *eap));
+extern void netbeans_beval_cb __ARGS((BalloonEval *beval, int state));
+extern void netbeans_startup_done __ARGS((void));
+extern void netbeans_send_disconnect __ARGS((void));
+extern void netbeans_frame_moved __ARGS((int new_x, int new_y));
+extern void netbeans_file_activated __ARGS((buf_T *bufp));
+extern void netbeans_file_opened __ARGS((buf_T *bufp));
+extern void netbeans_file_closed __ARGS((buf_T *bufp));
+extern void netbeans_inserted __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, char_u *txt, int newlen));
+extern void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len));
+extern void netbeans_unmodified __ARGS((buf_T *bufp));
+extern void netbeans_button_release __ARGS((int button));
+extern void netbeans_keycommand __ARGS((int key));
+extern void netbeans_save_buffer __ARGS((buf_T *bufp));
+extern void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
+extern int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
+extern void netbeans_draw_multisign_indicator __ARGS((int row));
+extern void netbeans_draw_multisign_indicator __ARGS((int row));
+extern void netbeans_gutter_click __ARGS((linenr_T lnum));
 /* vim: set ft=c : */
diff --git a/src/proto/normal.pro b/src/proto/normal.pro
index 55e8163..8280e45 100644
--- a/src/proto/normal.pro
+++ b/src/proto/normal.pro
@@ -1,26 +1,26 @@
 /* normal.c */
-void init_normal_cmds __ARGS((void));
-void normal_cmd __ARGS((oparg_T *oap, int toplevel));
-void do_pending_operator __ARGS((cmdarg_T *cap, int old_col, int gui_yank));
-int do_mouse __ARGS((oparg_T *oap, int c, int dir, long count, int fixindent));
-void check_visual_highlight __ARGS((void));
-void end_visual_mode __ARGS((void));
-void reset_VIsual_and_resel __ARGS((void));
-void reset_VIsual __ARGS((void));
-int find_ident_under_cursor __ARGS((char_u **string, int find_type));
-int find_ident_at_pos __ARGS((win_T *wp, linenr_T lnum, colnr_T startcol, char_u **string, int find_type));
-void clear_showcmd __ARGS((void));
-int add_to_showcmd __ARGS((int c));
-void add_to_showcmd_c __ARGS((int c));
-void push_showcmd __ARGS((void));
-void pop_showcmd __ARGS((void));
-void do_check_scrollbind __ARGS((int check));
-void check_scrollbind __ARGS((linenr_T topline_diff, long leftcol_diff));
-int find_decl __ARGS((char_u *ptr, int len, int locally, int thisblock, int searchflags));
-void scroll_redraw __ARGS((int up, long count));
-void handle_tabmenu __ARGS((void));
-void do_nv_ident __ARGS((int c1, int c2));
-int get_visual_text __ARGS((cmdarg_T *cap, char_u **pp, int *lenp));
-void start_selection __ARGS((void));
-void may_start_select __ARGS((int c));
+extern void init_normal_cmds __ARGS((void));
+extern void normal_cmd __ARGS((oparg_T *oap, int toplevel));
+extern void do_pending_operator __ARGS((cmdarg_T *cap, int old_col, int gui_yank));
+extern int do_mouse __ARGS((oparg_T *oap, int c, int dir, long count, int fixindent));
+extern void check_visual_highlight __ARGS((void));
+extern void end_visual_mode __ARGS((void));
+extern void reset_VIsual_and_resel __ARGS((void));
+extern void reset_VIsual __ARGS((void));
+extern int find_ident_under_cursor __ARGS((char_u **string, int find_type));
+extern int find_ident_at_pos __ARGS((win_T *wp, linenr_T lnum, colnr_T startcol, char_u **string, int find_type));
+extern void clear_showcmd __ARGS((void));
+extern int add_to_showcmd __ARGS((int c));
+extern void add_to_showcmd_c __ARGS((int c));
+extern void push_showcmd __ARGS((void));
+extern void pop_showcmd __ARGS((void));
+extern void do_check_scrollbind __ARGS((int check));
+extern void check_scrollbind __ARGS((linenr_T topline_diff, long leftcol_diff));
+extern int find_decl __ARGS((char_u *ptr, int len, int locally, int thisblock, int searchflags));
+extern void scroll_redraw __ARGS((int up, long count));
+extern void handle_tabmenu __ARGS((void));
+extern void do_nv_ident __ARGS((int c1, int c2));
+extern int get_visual_text __ARGS((cmdarg_T *cap, char_u **pp, int *lenp));
+extern void start_selection __ARGS((void));
+extern void may_start_select __ARGS((int c));
 /* vim: set ft=c : */
diff --git a/src/proto/ops.pro b/src/proto/ops.pro
index 3b4c9c4..fb51cab 100644
--- a/src/proto/ops.pro
+++ b/src/proto/ops.pro
@@ -1,60 +1,60 @@
 /* ops.c */
-int get_op_type __ARGS((int char1, int char2));
-int op_on_lines __ARGS((int op));
-int get_op_char __ARGS((int optype));
-int get_extra_op_char __ARGS((int optype));
-void op_shift __ARGS((oparg_T *oap, int curs_top, int amount));
-void shift_line __ARGS((int left, int round, int amount));
-void op_reindent __ARGS((oparg_T *oap, int (*how)(void)));
-int get_expr_register __ARGS((void));
-void set_expr_line __ARGS((char_u *new_line));
-char_u *get_expr_line __ARGS((void));
-char_u *get_expr_line_src __ARGS((void));
-int valid_yank_reg __ARGS((int regname, int writing));
-void get_yank_register __ARGS((int regname, int writing));
-int may_get_selection __ARGS((int regname));
-void *get_register __ARGS((int name, int copy));
-void put_register __ARGS((int name, void *reg));
-int yank_register_mline __ARGS((int regname));
-int do_record __ARGS((int c));
-int do_execreg __ARGS((int regname, int colon, int addcr));
-int insert_reg __ARGS((int regname, int literally));
-int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg));
-int cmdline_paste_reg __ARGS((int regname, int literally));
-void adjust_clip_reg __ARGS((int *rp));
-int op_delete __ARGS((oparg_T *oap));
-int op_replace __ARGS((oparg_T *oap, int c));
-void op_tilde __ARGS((oparg_T *oap));
-int swapchar __ARGS((int op_type, pos_T *pos));
-void op_insert __ARGS((oparg_T *oap, long count1));
-int op_change __ARGS((oparg_T *oap));
-void init_yank __ARGS((void));
-void clear_registers __ARGS((void));
-int op_yank __ARGS((oparg_T *oap, int deleting, int mess));
-void do_put __ARGS((int regname, int dir, long count, int flags));
-int preprocs_left __ARGS((void));
-int get_register_name __ARGS((int num));
-void ex_display __ARGS((exarg_T *eap));
-void do_do_join __ARGS((long count, int insert_space));
-int do_join __ARGS((int insert_space));
-void op_format __ARGS((oparg_T *oap, int keep_cursor));
-void op_formatexpr __ARGS((oparg_T *oap));
-int fex_format __ARGS((linenr_T lnum, long count));
-void format_lines __ARGS((linenr_T line_count));
-int paragraph_start __ARGS((linenr_T lnum));
-int do_addsub __ARGS((int command, linenr_T Prenum1));
-int read_viminfo_register __ARGS((vir_T *virp, int force));
-void write_viminfo_registers __ARGS((FILE *fp));
-void x11_export_final_selection __ARGS((void));
-void clip_free_selection __ARGS((VimClipboard *cbd));
-void clip_get_selection __ARGS((VimClipboard *cbd));
-void clip_yank_selection __ARGS((int type, char_u *str, long len, VimClipboard *cbd));
-int clip_convert_selection __ARGS((char_u **str, long_u *len, VimClipboard *cbd));
-void dnd_yank_drag_data __ARGS((char_u *str, long len));
-char_u get_reg_type __ARGS((int regname, long *reglen));
-char_u *get_reg_contents __ARGS((int regname, int allowexpr, int expr_src));
-void write_reg_contents __ARGS((int name, char_u *str, int maxlen, int must_append));
-void write_reg_contents_ex __ARGS((int name, char_u *str, int maxlen, int must_append, int yank_type, long block_len));
-void clear_oparg __ARGS((oparg_T *oap));
-void cursor_pos_info __ARGS((void));
+extern int get_op_type __ARGS((int char1, int char2));
+extern int op_on_lines __ARGS((int op));
+extern int get_op_char __ARGS((int optype));
+extern int get_extra_op_char __ARGS((int optype));
+extern void op_shift __ARGS((oparg_T *oap, int curs_top, int amount));
+extern void shift_line __ARGS((int left, int round, int amount));
+extern void op_reindent __ARGS((oparg_T *oap, int (*how)(void)));
+extern int get_expr_register __ARGS((void));
+extern void set_expr_line __ARGS((char_u *new_line));
+extern char_u *get_expr_line __ARGS((void));
+extern char_u *get_expr_line_src __ARGS((void));
+extern int valid_yank_reg __ARGS((int regname, int writing));
+extern void get_yank_register __ARGS((int regname, int writing));
+extern int may_get_selection __ARGS((int regname));
+extern void *get_register __ARGS((int name, int copy));
+extern void put_register __ARGS((int name, void *reg));
+extern int yank_register_mline __ARGS((int regname));
+extern int do_record __ARGS((int c));
+extern int do_execreg __ARGS((int regname, int colon, int addcr));
+extern int insert_reg __ARGS((int regname, int literally));
+extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg));
+extern int cmdline_paste_reg __ARGS((int regname, int literally));
+extern void adjust_clip_reg __ARGS((int *rp));
+extern int op_delete __ARGS((oparg_T *oap));
+extern int op_replace __ARGS((oparg_T *oap, int c));
+extern void op_tilde __ARGS((oparg_T *oap));
+extern int swapchar __ARGS((int op_type, pos_T *pos));
+extern void op_insert __ARGS((oparg_T *oap, long count1));
+extern int op_change __ARGS((oparg_T *oap));
+extern void init_yank __ARGS((void));
+extern void clear_registers __ARGS((void));
+extern int op_yank __ARGS((oparg_T *oap, int deleting, int mess));
+extern void do_put __ARGS((int regname, int dir, long count, int flags));
+extern int preprocs_left __ARGS((void));
+extern int get_register_name __ARGS((int num));
+extern void ex_display __ARGS((exarg_T *eap));
+extern void do_do_join __ARGS((long count, int insert_space));
+extern int do_join __ARGS((int insert_space));
+extern void op_format __ARGS((oparg_T *oap, int keep_cursor));
+extern void op_formatexpr __ARGS((oparg_T *oap));
+extern int fex_format __ARGS((linenr_T lnum, long count));
+extern void format_lines __ARGS((linenr_T line_count));
+extern int paragraph_start __ARGS((linenr_T lnum));
+extern int do_addsub __ARGS((int command, linenr_T Prenum1));
+extern int read_viminfo_register __ARGS((vir_T *virp, int force));
+extern void write_viminfo_registers __ARGS((FILE *fp));
+extern void x11_export_final_selection __ARGS((void));
+extern void clip_free_selection __ARGS((VimClipboard *cbd));
+extern void clip_get_selection __ARGS((VimClipboard *cbd));
+extern void clip_yank_selection __ARGS((int type, char_u *str, long len, VimClipboard *cbd));
+extern int clip_convert_selection __ARGS((char_u **str, long_u *len, VimClipboard *cbd));
+extern void dnd_yank_drag_data __ARGS((char_u *str, long len));
+extern char_u get_reg_type __ARGS((int regname, long *reglen));
+extern char_u *get_reg_contents __ARGS((int regname, int allowexpr, int expr_src));
+extern void write_reg_contents __ARGS((int name, char_u *str, int maxlen, int must_append));
+extern void write_reg_contents_ex __ARGS((int name, char_u *str, int maxlen, int must_append, int yank_type, long block_len));
+extern void clear_oparg __ARGS((oparg_T *oap));
+extern void cursor_pos_info __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/option.pro b/src/proto/option.pro
index faeec63..621d781 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -1,57 +1,56 @@
 /* option.c */
-void set_init_1 __ARGS((void));
-void set_string_default __ARGS((char *name, char_u *val));
-void set_number_default __ARGS((char *name, long val));
-void free_all_options __ARGS((void));
-void set_init_2 __ARGS((void));
-void set_init_3 __ARGS((void));
-void set_helplang_default __ARGS((char_u *lang));
-void init_gui_options __ARGS((void));
-void set_title_defaults __ARGS((void));
-int do_set __ARGS((char_u *arg, int opt_flags));
-void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
-int get_viminfo_parameter __ARGS((int type));
-char_u *find_viminfo_parameter __ARGS((int type));
-void check_options __ARGS((void));
-void check_buf_options __ARGS((buf_T *buf));
-void free_string_option __ARGS((char_u *p));
-void clear_string_option __ARGS((char_u **pp));
-void set_term_option_alloced __ARGS((char_u **p));
-int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
-void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid));
-char_u *check_stl_option __ARGS((char_u *s));
-void set_option_scriptID __ARGS((char_u *name, int id));
-int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags));
-void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags));
-char_u *get_term_code __ARGS((char_u *tname));
-char_u *get_highlight_default __ARGS((void));
-char_u *get_encoding_default __ARGS((void));
-int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
-int makefoldset __ARGS((FILE *fd));
-void clear_termoptions __ARGS((void));
-void free_termoptions __ARGS((void));
-void set_term_defaults __ARGS((void));
-void comp_col __ARGS((void));
-char_u *get_equalprg __ARGS((void));
-void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
-void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
-void check_win_options __ARGS((win_T *win));
-void check_winopt __ARGS((winopt_T *wop));
-void clear_winopt __ARGS((winopt_T *wop));
-void buf_copy_options __ARGS((buf_T *buf, int flags));
-void reset_modifiable __ARGS((void));
-void set_iminsert_global __ARGS((void));
-void set_imsearch_global __ARGS((void));
-void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
-int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
-int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
-int has_format_option __ARGS((int x));
-int shortmess __ARGS((int x));
-void vimrc_found __ARGS((void));
-void change_compatible __ARGS((int on));
-int option_was_set __ARGS((char_u *name));
-int can_bs __ARGS((int what));
-void save_file_ff __ARGS((buf_T *buf));
-int file_ff_differs __ARGS((buf_T *buf));
-int check_ff_value __ARGS((char_u *p));
+extern void set_init_1 __ARGS((void));
+extern void set_string_default __ARGS((char *name, char_u *val));
+extern void set_number_default __ARGS((char *name, long val));
+extern void free_all_options __ARGS((void));
+extern void set_init_2 __ARGS((void));
+extern void set_init_3 __ARGS((void));
+extern void set_helplang_default __ARGS((char_u *lang));
+extern void init_gui_options __ARGS((void));
+extern void set_title_defaults __ARGS((void));
+extern int do_set __ARGS((char_u *arg, int opt_flags));
+extern void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
+extern int get_viminfo_parameter __ARGS((int type));
+extern char_u *find_viminfo_parameter __ARGS((int type));
+extern void check_options __ARGS((void));
+extern void check_buf_options __ARGS((buf_T *buf));
+extern void free_string_option __ARGS((char_u *p));
+extern void clear_string_option __ARGS((char_u **pp));
+extern void set_term_option_alloced __ARGS((char_u **p));
+extern int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
+extern void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid));
+extern char_u *check_stl_option __ARGS((char_u *s));
+extern int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags));
+extern void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags));
+extern char_u *get_term_code __ARGS((char_u *tname));
+extern char_u *get_highlight_default __ARGS((void));
+extern char_u *get_encoding_default __ARGS((void));
+extern int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
+extern int makefoldset __ARGS((FILE *fd));
+extern void clear_termoptions __ARGS((void));
+extern void free_termoptions __ARGS((void));
+extern void set_term_defaults __ARGS((void));
+extern void comp_col __ARGS((void));
+extern char_u *get_equalprg __ARGS((void));
+extern void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
+extern void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
+extern void check_win_options __ARGS((win_T *win));
+extern void check_winopt __ARGS((winopt_T *wop));
+extern void clear_winopt __ARGS((winopt_T *wop));
+extern void buf_copy_options __ARGS((buf_T *buf, int flags));
+extern void reset_modifiable __ARGS((void));
+extern void set_iminsert_global __ARGS((void));
+extern void set_imsearch_global __ARGS((void));
+extern void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
+extern int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+extern int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
+extern int has_format_option __ARGS((int x));
+extern int shortmess __ARGS((int x));
+extern void vimrc_found __ARGS((void));
+extern void change_compatible __ARGS((int on));
+extern int option_was_set __ARGS((char_u *name));
+extern int can_bs __ARGS((int what));
+extern void save_file_ff __ARGS((buf_T *buf));
+extern int file_ff_differs __ARGS((buf_T *buf));
+extern int check_ff_value __ARGS((char_u *p));
 /* vim: set ft=c : */
diff --git a/src/proto/os_amiga.pro b/src/proto/os_amiga.pro
index 317e211..479297d 100644
--- a/src/proto/os_amiga.pro
+++ b/src/proto/os_amiga.pro
@@ -1,46 +1,46 @@
 /* os_amiga.c */
-void win_resize_on __ARGS((void));
-void win_resize_off __ARGS((void));
-void mch_write __ARGS((char_u *p, int len));
-int mch_inchar __ARGS((char_u *buf, int maxlen, long time, int tb_change_cnt));
-int mch_char_avail __ARGS((void));
-long_u mch_avail_mem __ARGS((int special));
-void mch_delay __ARGS((long msec, int ignoreinput));
-void mch_suspend __ARGS((void));
-void mch_init __ARGS((void));
-int mch_check_win __ARGS((int argc, char **argv));
-int mch_input_isatty __ARGS((void));
-void fname_case __ARGS((char_u *name, int len));
-void mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_restore_title __ARGS((int which));
-int mch_can_restore_title __ARGS((void));
-int mch_can_restore_icon __ARGS((void));
-int mch_get_user_name __ARGS((char_u *s, int len));
-void mch_get_host_name __ARGS((char_u *s, int len));
-long mch_get_pid __ARGS((void));
-int mch_dirname __ARGS((char_u *buf, int len));
-int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-int mch_isFullName __ARGS((char_u *fname));
-long mch_getperm __ARGS((char_u *name));
-int mch_setperm __ARGS((char_u *name, long perm));
-void mch_hide __ARGS((char_u *name));
-int mch_isdir __ARGS((char_u *name));
-void mch_mkdir __ARGS((char_u *name));
-int mch_can_exe __ARGS((char_u *name));
-int mch_nodetype __ARGS((char_u *name));
-void mch_early_init __ARGS((void));
-void mch_exit __ARGS((int r));
-void mch_settmode __ARGS((int tmode));
-int mch_screenmode __ARGS((char_u *arg));
-int mch_get_shellsize __ARGS((void));
-void mch_set_shellsize __ARGS((void));
-void mch_new_shellsize __ARGS((void));
-int mch_call_shell __ARGS((char_u *cmd, int options));
-void mch_breakcheck __ARGS((void));
-long Chk_Abort __ARGS((void));
-int mch_expandpath __ARGS((garray_T *gap, char_u *pat, int flags));
-int mch_has_exp_wildcard __ARGS((char_u *p));
-int mch_has_wildcard __ARGS((char_u *p));
-char_u *mch_getenv __ARGS((char_u *var));
-int mch_setenv __ARGS((char *var, char *value, int x));
+extern void win_resize_on __ARGS((void));
+extern void win_resize_off __ARGS((void));
+extern void mch_write __ARGS((char_u *p, int len));
+extern int mch_inchar __ARGS((char_u *buf, int maxlen, long time, int tb_change_cnt));
+extern int mch_char_avail __ARGS((void));
+extern long_u mch_avail_mem __ARGS((int special));
+extern void mch_delay __ARGS((long msec, int ignoreinput));
+extern void mch_suspend __ARGS((void));
+extern void mch_init __ARGS((void));
+extern int mch_check_win __ARGS((int argc, char **argv));
+extern int mch_input_isatty __ARGS((void));
+extern void fname_case __ARGS((char_u *name, int len));
+extern void mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void mch_restore_title __ARGS((int which));
+extern int mch_can_restore_title __ARGS((void));
+extern int mch_can_restore_icon __ARGS((void));
+extern int mch_get_user_name __ARGS((char_u *s, int len));
+extern void mch_get_host_name __ARGS((char_u *s, int len));
+extern long mch_get_pid __ARGS((void));
+extern int mch_dirname __ARGS((char_u *buf, int len));
+extern int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+extern int mch_isFullName __ARGS((char_u *fname));
+extern long mch_getperm __ARGS((char_u *name));
+extern int mch_setperm __ARGS((char_u *name, long perm));
+extern void mch_hide __ARGS((char_u *name));
+extern int mch_isdir __ARGS((char_u *name));
+extern void mch_mkdir __ARGS((char_u *name));
+extern int mch_can_exe __ARGS((char_u *name));
+extern int mch_nodetype __ARGS((char_u *name));
+extern void mch_early_init __ARGS((void));
+extern void mch_exit __ARGS((int r));
+extern void mch_settmode __ARGS((int tmode));
+extern int mch_screenmode __ARGS((char_u *arg));
+extern int mch_get_shellsize __ARGS((void));
+extern void mch_set_shellsize __ARGS((void));
+extern void mch_new_shellsize __ARGS((void));
+extern int mch_call_shell __ARGS((char_u *cmd, int options));
+extern void mch_breakcheck __ARGS((void));
+extern long Chk_Abort __ARGS((void));
+extern int mch_expandpath __ARGS((garray_T *gap, char_u *pat, int flags));
+extern int mch_has_exp_wildcard __ARGS((char_u *p));
+extern int mch_has_wildcard __ARGS((char_u *p));
+extern char_u *mch_getenv __ARGS((char_u *var));
+extern int mch_setenv __ARGS((char *var, char *value, int x));
 /* vim: set ft=c : */
diff --git a/src/proto/os_mswin.pro b/src/proto/os_mswin.pro
index 966b018..aaef05b 100644
--- a/src/proto/os_mswin.pro
+++ b/src/proto/os_mswin.pro
@@ -1,63 +1,63 @@
 /* os_mswin.c */
-void mch_exit __ARGS((int r));
-void mch_early_init __ARGS((void));
-int mch_input_isatty __ARGS((void));
-void mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_restore_title __ARGS((int which));
-int mch_can_restore_title __ARGS((void));
-int mch_can_restore_icon __ARGS((void));
-int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-int mch_isFullName __ARGS((char_u *fname));
-void slash_adjust __ARGS((char_u *p));
-int vim_stat __ARGS((const char *name, struct stat *stp));
-void mch_settmode __ARGS((int tmode));
-int mch_get_shellsize __ARGS((void));
-void mch_set_shellsize __ARGS((void));
-void mch_new_shellsize __ARGS((void));
-void mch_suspend __ARGS((void));
-void display_errors __ARGS((void));
-int mch_has_exp_wildcard __ARGS((char_u *p));
-int mch_has_wildcard __ARGS((char_u *p));
-int mch_chdir __ARGS((char *path));
-int can_end_termcap_mode __ARGS((int give_msg));
-int mch_screenmode __ARGS((char_u *arg));
-int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
-int utf8_to_ucs2 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp));
-int ucs2_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr));
-void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen));
-void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef));
-int clip_mch_own_selection __ARGS((VimClipboard *cbd));
-void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
-short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp));
-char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp));
-void clip_mch_request_selection __ARGS((VimClipboard *cbd));
-void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
-void clip_mch_set_selection __ARGS((VimClipboard *cbd));
-void DumpPutS __ARGS((const char *psz));
-int mch_get_winpos __ARGS((int *x, int *y));
-void mch_set_winpos __ARGS((int x, int y));
-void mch_print_cleanup __ARGS((void));
-int mch_print_init __ARGS((prt_settings_T *psettings, char_u *jobname, int forceit));
-int mch_print_begin __ARGS((prt_settings_T *psettings));
-void mch_print_end __ARGS((prt_settings_T *psettings));
-int mch_print_end_page __ARGS((void));
-int mch_print_begin_page __ARGS((char_u *msg));
-int mch_print_blank_page __ARGS((void));
-void mch_print_start_line __ARGS((int margin, int page_line));
-int mch_print_text_out __ARGS((char_u *p, int len));
-void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline));
-void mch_print_set_bg __ARGS((unsigned long bgcol));
-void mch_print_set_fg __ARGS((unsigned long fgcol));
-char_u *mch_resolve_shortcut __ARGS((char_u *fname));
-void win32_set_foreground __ARGS((void));
-void serverInitMessaging __ARGS((void));
-void serverSetName __ARGS((char_u *name));
-char_u *serverGetVimNames __ARGS((void));
-int serverSendReply __ARGS((char_u *name, char_u *reply));
-int serverSendToVim __ARGS((char_u *name, char_u *cmd, char_u **result, void *ptarget, int asExpr, int silent));
-void serverForeground __ARGS((char_u *name));
-char_u *serverGetReply __ARGS((HWND server, int *expr_res, int remove, int wait));
-void serverProcessPendingMessages __ARGS((void));
-char *charset_id2name __ARGS((int id));
-int get_logfont __ARGS((LOGFONT *lf, char_u *name, HDC printer_dc, int verbose));
+extern void mch_exit __ARGS((int r));
+extern void mch_early_init __ARGS((void));
+extern int mch_input_isatty __ARGS((void));
+extern void mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void mch_restore_title __ARGS((int which));
+extern int mch_can_restore_title __ARGS((void));
+extern int mch_can_restore_icon __ARGS((void));
+extern int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+extern int mch_isFullName __ARGS((char_u *fname));
+extern void slash_adjust __ARGS((char_u *p));
+extern int vim_stat __ARGS((const char *name, struct stat *stp));
+extern void mch_settmode __ARGS((int tmode));
+extern int mch_get_shellsize __ARGS((void));
+extern void mch_set_shellsize __ARGS((void));
+extern void mch_new_shellsize __ARGS((void));
+extern void mch_suspend __ARGS((void));
+extern void display_errors __ARGS((void));
+extern int mch_has_exp_wildcard __ARGS((char_u *p));
+extern int mch_has_wildcard __ARGS((char_u *p));
+extern int mch_chdir __ARGS((char *path));
+extern int can_end_termcap_mode __ARGS((int give_msg));
+extern int mch_screenmode __ARGS((char_u *arg));
+extern int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
+extern int utf8_to_ucs2 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp));
+extern int ucs2_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr));
+extern void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen));
+extern void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef));
+extern int clip_mch_own_selection __ARGS((VimClipboard *cbd));
+extern void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
+extern short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp));
+extern char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp));
+extern void clip_mch_request_selection __ARGS((VimClipboard *cbd));
+extern void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
+extern void clip_mch_set_selection __ARGS((VimClipboard *cbd));
+extern void DumpPutS __ARGS((const char *psz));
+extern int mch_get_winpos __ARGS((int *x, int *y));
+extern void mch_set_winpos __ARGS((int x, int y));
+extern void mch_print_cleanup __ARGS((void));
+extern int mch_print_init __ARGS((prt_settings_T *psettings, char_u *jobname, int forceit));
+extern int mch_print_begin __ARGS((prt_settings_T *psettings));
+extern void mch_print_end __ARGS((prt_settings_T *psettings));
+extern int mch_print_end_page __ARGS((void));
+extern int mch_print_begin_page __ARGS((char_u *msg));
+extern int mch_print_blank_page __ARGS((void));
+extern void mch_print_start_line __ARGS((int margin, int page_line));
+extern int mch_print_text_out __ARGS((char_u *p, int len));
+extern void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline));
+extern void mch_print_set_bg __ARGS((unsigned long bgcol));
+extern void mch_print_set_fg __ARGS((unsigned long fgcol));
+extern char_u *mch_resolve_shortcut __ARGS((char_u *fname));
+extern void win32_set_foreground __ARGS((void));
+extern void serverInitMessaging __ARGS((void));
+extern void serverSetName __ARGS((char_u *name));
+extern char_u *serverGetVimNames __ARGS((void));
+extern int serverSendReply __ARGS((char_u *name, char_u *reply));
+extern int serverSendToVim __ARGS((char_u *name, char_u *cmd, char_u **result, void *ptarget, int asExpr, int silent));
+extern void serverForeground __ARGS((char_u *name));
+extern char_u *serverGetReply __ARGS((HWND server, int *expr_res, int remove, int wait));
+extern void serverProcessPendingMessages __ARGS((void));
+extern char *charset_id2name __ARGS((int id));
+extern int get_logfont __ARGS((LOGFONT *lf, char_u *name, HDC printer_dc, int verbose));
 /* vim: set ft=c : */
diff --git a/src/proto/os_riscos.pro b/src/proto/os_riscos.pro
index 9ea4cd5..ec8055b 100644
--- a/src/proto/os_riscos.pro
+++ b/src/proto/os_riscos.pro
@@ -1,49 +1,49 @@
 /* os_riscos.c */
-void mch_write __ARGS((char_u *s, int len));
-int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
-int mch_char_avail __ARGS((void));
-long_u mch_avail_mem __ARGS((int special));
-void mch_delay __ARGS((long msec, int ignoreinput));
-void mch_suspend __ARGS((void));
-void mch_init __ARGS((void));
-int mch_check_win __ARGS((int argc, char **argv));
-int mch_input_isatty __ARGS((void));
-int mch_can_restore_title __ARGS((void));
-int mch_can_restore_icon __ARGS((void));
-void mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_restore_title __ARGS((int which));
-int mch_get_user_name __ARGS((char_u *s, int len));
-void mch_get_host_name __ARGS((char_u *s, int len));
-long mch_get_pid __ARGS((void));
-int mch_dirname __ARGS((char_u *buf, int len));
-int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-int mch_isFullName __ARGS((char_u *fname));
-long mch_getperm __ARGS((char_u *name));
-int mch_setperm __ARGS((char_u *name, long perm));
-void mch_hide __ARGS((char_u *name));
-int mch_isdir __ARGS((char_u *name));
-int mch_can_exe __ARGS((char_u *name));
-int mch_nodetype __ARGS((char_u *name));
-void mch_early_init __ARGS((void));
-void mch_exit __ARGS((int r));
-void mch_settmode __ARGS((int tmode));
-void mch_setmouse __ARGS((int on));
-int mch_screenmode __ARGS((char_u *arg));
-int mch_get_shellsize __ARGS((void));
-void mch_set_shellsize __ARGS((void));
-void mch_new_shellsize __ARGS((void));
-int mch_call_shell __ARGS((char_u *cmd, int options));
-void mch_breakcheck __ARGS((void));
-int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
-int expand_section __ARGS((garray_T *gap, char_u *root, char_u *rest, int flags));
-int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-int mch_has_exp_wildcard __ARGS((char_u *p));
-int mch_has_wildcard __ARGS((char_u *p));
-int mch_remove __ARGS((char_u *file));
-char_u *mch_munge_fname __ARGS((char_u *fname));
-int ro_buflist_add __ARGS((char_u *old_name));
-int mch_chdir __ARGS((char_u *dir));
-void mch_read_filetype __ARGS((char_u *file));
-void mch_set_filetype __ARGS((char_u *file, char_u *type));
-int mch_check_filetype __ARGS((char_u *fname, char_u *type));
+extern void mch_write __ARGS((char_u *s, int len));
+extern int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
+extern int mch_char_avail __ARGS((void));
+extern long_u mch_avail_mem __ARGS((int special));
+extern void mch_delay __ARGS((long msec, int ignoreinput));
+extern void mch_suspend __ARGS((void));
+extern void mch_init __ARGS((void));
+extern int mch_check_win __ARGS((int argc, char **argv));
+extern int mch_input_isatty __ARGS((void));
+extern int mch_can_restore_title __ARGS((void));
+extern int mch_can_restore_icon __ARGS((void));
+extern void mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void mch_restore_title __ARGS((int which));
+extern int mch_get_user_name __ARGS((char_u *s, int len));
+extern void mch_get_host_name __ARGS((char_u *s, int len));
+extern long mch_get_pid __ARGS((void));
+extern int mch_dirname __ARGS((char_u *buf, int len));
+extern int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+extern int mch_isFullName __ARGS((char_u *fname));
+extern long mch_getperm __ARGS((char_u *name));
+extern int mch_setperm __ARGS((char_u *name, long perm));
+extern void mch_hide __ARGS((char_u *name));
+extern int mch_isdir __ARGS((char_u *name));
+extern int mch_can_exe __ARGS((char_u *name));
+extern int mch_nodetype __ARGS((char_u *name));
+extern void mch_early_init __ARGS((void));
+extern void mch_exit __ARGS((int r));
+extern void mch_settmode __ARGS((int tmode));
+extern void mch_setmouse __ARGS((int on));
+extern int mch_screenmode __ARGS((char_u *arg));
+extern int mch_get_shellsize __ARGS((void));
+extern void mch_set_shellsize __ARGS((void));
+extern void mch_new_shellsize __ARGS((void));
+extern int mch_call_shell __ARGS((char_u *cmd, int options));
+extern void mch_breakcheck __ARGS((void));
+extern int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+extern int expand_section __ARGS((garray_T *gap, char_u *root, char_u *rest, int flags));
+extern int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+extern int mch_has_exp_wildcard __ARGS((char_u *p));
+extern int mch_has_wildcard __ARGS((char_u *p));
+extern int mch_remove __ARGS((char_u *file));
+extern char_u *mch_munge_fname __ARGS((char_u *fname));
+extern int ro_buflist_add __ARGS((char_u *old_name));
+extern int mch_chdir __ARGS((char_u *dir));
+extern void mch_read_filetype __ARGS((char_u *file));
+extern void mch_set_filetype __ARGS((char_u *file, char_u *type));
+extern int mch_check_filetype __ARGS((char_u *fname, char_u *type));
 /* vim: set ft=c : */
diff --git a/src/proto/os_vms.pro b/src/proto/os_vms.pro
index 2ed6394..667f7ab 100644
--- a/src/proto/os_vms.pro
+++ b/src/proto/os_vms.pro
@@ -1,14 +1,14 @@
 /* os_vms.c */
-void mch_settmode __ARGS((int tmode));
-int mch_get_shellsize __ARGS((void));
-void mch_set_shellsize __ARGS((void));
-char_u *mch_getenv __ARGS((char_u *lognam));
-int mch_setenv __ARGS((char *var, char *value, int x));
-int vms_sys __ARGS((char *cmd, char *out, char *inp));
-int vms_sys_status __ARGS((int status));
-int vms_read __ARGS((char *inbuf, size_t nbytes));
-int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
-void *vms_fixfilename __ARGS((void *instring));
-void vms_remove_version __ARGS((void *fname));
+extern void mch_settmode __ARGS((int tmode));
+extern int mch_get_shellsize __ARGS((void));
+extern void mch_set_shellsize __ARGS((void));
+extern char_u *mch_getenv __ARGS((char_u *lognam));
+extern int mch_setenv __ARGS((char *var, char *value, int x));
+extern int vms_sys __ARGS((char *cmd, char *out, char *inp));
+extern int vms_sys_status __ARGS((int status));
+extern int vms_read __ARGS((char *inbuf, size_t nbytes));
+extern int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+extern int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+extern void *vms_fixfilename __ARGS((void *instring));
+extern void vms_remove_version __ARGS((void *fname));
 /* vim: set ft=c : */
diff --git a/src/proto/os_win16.pro b/src/proto/os_win16.pro
index 31fa72c..4bfd9b3 100644
--- a/src/proto/os_win16.pro
+++ b/src/proto/os_win16.pro
@@ -1,12 +1,12 @@
 /* os_win16.c */
-void mch_setmouse __ARGS((int on));
-void mch_init __ARGS((void));
-int mch_check_win __ARGS((int argc, char **argv));
-long mch_get_pid __ARGS((void));
-int mch_call_shell __ARGS((char_u *cmd, int options));
-void mch_delay __ARGS((long msec, int ignoreinput));
-void mch_breakcheck __ARGS((void));
-long_u mch_avail_mem __ARGS((int special));
-int mch_rename __ARGS((const char *pszOldFile, const char *pszNewFile));
-char *default_shell __ARGS((void));
+extern void mch_setmouse __ARGS((int on));
+extern void mch_init __ARGS((void));
+extern int mch_check_win __ARGS((int argc, char **argv));
+extern long mch_get_pid __ARGS((void));
+extern int mch_call_shell __ARGS((char_u *cmd, int options));
+extern void mch_delay __ARGS((long msec, int ignoreinput));
+extern void mch_breakcheck __ARGS((void));
+extern long_u mch_avail_mem __ARGS((int special));
+extern int mch_rename __ARGS((const char *pszOldFile, const char *pszNewFile));
+extern char *default_shell __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/popupmnu.pro b/src/proto/popupmnu.pro
new file mode 100644
index 0000000..5427dad
--- /dev/null
+++ b/src/proto/popupmnu.pro
@@ -0,0 +1,8 @@
+/* popupmnu.c */
+extern void pum_display __ARGS((pumitem_T *array, int size, int selected));
+extern void pum_redraw __ARGS((void));
+extern void pum_undisplay __ARGS((void));
+extern void pum_clear __ARGS((void));
+extern int pum_visible __ARGS((void));
+extern int pum_get_height __ARGS((void));
+/* vim: set ft=c : */
diff --git a/src/proto/regexp.pro b/src/proto/regexp.pro
index df2fde4..27597b2 100644
--- a/src/proto/regexp.pro
+++ b/src/proto/regexp.pro
@@ -1,17 +1,17 @@
 /* regexp.c */
-void free_regexp_stuff __ARGS((void));
-int re_multiline __ARGS((regprog_T *prog));
-int re_lookbehind __ARGS((regprog_T *prog));
-char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
-regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags));
-int vim_regcomp_had_eol __ARGS((void));
-int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
-int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
-long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col));
-reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
-void unref_extmatch __ARGS((reg_extmatch_T *em));
-char_u *regtilde __ARGS((char_u *source, int magic));
-int vim_regsub __ARGS((regmatch_T *rmp, char_u *source, char_u *dest, int copy, int magic, int backslash));
-int vim_regsub_multi __ARGS((regmmatch_T *rmp, linenr_T lnum, char_u *source, char_u *dest, int copy, int magic, int backslash));
-char_u *reg_submatch __ARGS((int no));
+extern void free_regexp_stuff __ARGS((void));
+extern int re_multiline __ARGS((regprog_T *prog));
+extern int re_lookbehind __ARGS((regprog_T *prog));
+extern char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
+extern regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags));
+extern int vim_regcomp_had_eol __ARGS((void));
+extern int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
+extern int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
+extern long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col));
+extern reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
+extern void unref_extmatch __ARGS((reg_extmatch_T *em));
+extern char_u *regtilde __ARGS((char_u *source, int magic));
+extern int vim_regsub __ARGS((regmatch_T *rmp, char_u *source, char_u *dest, int copy, int magic, int backslash));
+extern int vim_regsub_multi __ARGS((regmmatch_T *rmp, linenr_T lnum, char_u *source, char_u *dest, int copy, int magic, int backslash));
+extern char_u *reg_submatch __ARGS((int no));
 /* vim: set ft=c : */
diff --git a/src/proto/syntax.pro b/src/proto/syntax.pro
index 1204b89..3157108 100644
--- a/src/proto/syntax.pro
+++ b/src/proto/syntax.pro
@@ -1,46 +1,46 @@
 /* syntax.c */
-void syntax_start __ARGS((win_T *wp, linenr_T lnum));
-void syn_stack_free_all __ARGS((buf_T *buf));
-void syn_stack_apply_changes __ARGS((buf_T *buf));
-void syntax_end_parsing __ARGS((linenr_T lnum));
-int syntax_check_changed __ARGS((linenr_T lnum));
-int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
-void syntax_clear __ARGS((buf_T *buf));
-void ex_syntax __ARGS((exarg_T *eap));
-int syntax_present __ARGS((buf_T *buf));
-void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
-char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
-int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
-int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
-void init_highlight __ARGS((int both, int reset));
-int load_colors __ARGS((char_u *name));
-void do_highlight __ARGS((char_u *line, int forceit, int init));
-void free_highlight __ARGS((void));
-void restore_cterm_colors __ARGS((void));
-void set_normal_colors __ARGS((void));
-char_u *hl_get_font_name __ARGS((void));
-void hl_set_font_name __ARGS((char_u *font_name));
-void hl_set_bg_color_name __ARGS((char_u *name));
-void hl_set_fg_color_name __ARGS((char_u *name));
-void clear_hl_tables __ARGS((void));
-int hl_combine_attr __ARGS((int char_attr, int prim_attr));
-attrentry_T *syn_gui_attr2entry __ARGS((int attr));
-int syn_attr2attr __ARGS((int attr));
-attrentry_T *syn_term_attr2entry __ARGS((int attr));
-attrentry_T *syn_cterm_attr2entry __ARGS((int attr));
-char_u *highlight_has_attr __ARGS((int id, int flag, int modec));
-char_u *highlight_color __ARGS((int id, char_u *what, int modec));
-long_u highlight_gui_color_rgb __ARGS((int id, int fg));
-int syn_name2id __ARGS((char_u *name));
-int highlight_exists __ARGS((char_u *name));
-int syn_namen2id __ARGS((char_u *linep, int len));
-int syn_check_group __ARGS((char_u *pp, int len));
-int syn_id2attr __ARGS((int hl_id));
-int syn_id2colors __ARGS((int hl_id, guicolor_T *fgp, guicolor_T *bgp));
-int syn_get_final_id __ARGS((int hl_id));
-void highlight_gui_started __ARGS((void));
-int highlight_changed __ARGS((void));
-void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
-char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
-void free_highlight_fonts __ARGS((void));
+extern void syntax_start __ARGS((win_T *wp, linenr_T lnum));
+extern void syn_stack_free_all __ARGS((buf_T *buf));
+extern void syn_stack_apply_changes __ARGS((buf_T *buf));
+extern void syntax_end_parsing __ARGS((linenr_T lnum));
+extern int syntax_check_changed __ARGS((linenr_T lnum));
+extern int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
+extern void syntax_clear __ARGS((buf_T *buf));
+extern void ex_syntax __ARGS((exarg_T *eap));
+extern int syntax_present __ARGS((buf_T *buf));
+extern void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
+extern char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
+extern int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
+extern int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
+extern void init_highlight __ARGS((int both, int reset));
+extern int load_colors __ARGS((char_u *name));
+extern void do_highlight __ARGS((char_u *line, int forceit, int init));
+extern void free_highlight __ARGS((void));
+extern void restore_cterm_colors __ARGS((void));
+extern void set_normal_colors __ARGS((void));
+extern char_u *hl_get_font_name __ARGS((void));
+extern void hl_set_font_name __ARGS((char_u *font_name));
+extern void hl_set_bg_color_name __ARGS((char_u *name));
+extern void hl_set_fg_color_name __ARGS((char_u *name));
+extern void clear_hl_tables __ARGS((void));
+extern int hl_combine_attr __ARGS((int char_attr, int prim_attr));
+extern attrentry_T *syn_gui_attr2entry __ARGS((int attr));
+extern int syn_attr2attr __ARGS((int attr));
+extern attrentry_T *syn_term_attr2entry __ARGS((int attr));
+extern attrentry_T *syn_cterm_attr2entry __ARGS((int attr));
+extern char_u *highlight_has_attr __ARGS((int id, int flag, int modec));
+extern char_u *highlight_color __ARGS((int id, char_u *what, int modec));
+extern long_u highlight_gui_color_rgb __ARGS((int id, int fg));
+extern int syn_name2id __ARGS((char_u *name));
+extern int highlight_exists __ARGS((char_u *name));
+extern int syn_namen2id __ARGS((char_u *linep, int len));
+extern int syn_check_group __ARGS((char_u *pp, int len));
+extern int syn_id2attr __ARGS((int hl_id));
+extern int syn_id2colors __ARGS((int hl_id, guicolor_T *fgp, guicolor_T *bgp));
+extern int syn_get_final_id __ARGS((int hl_id));
+extern void highlight_gui_started __ARGS((void));
+extern int highlight_changed __ARGS((void));
+extern void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
+extern char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
+extern void free_highlight_fonts __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/undo.pro b/src/proto/undo.pro
index 58c6db8..ab70735 100644
--- a/src/proto/undo.pro
+++ b/src/proto/undo.pro
@@ -1,21 +1,21 @@
 /* undo.c */
-int u_save_cursor __ARGS((void));
-int u_save __ARGS((linenr_T top, linenr_T bot));
-int u_savesub __ARGS((linenr_T lnum));
-int u_inssub __ARGS((linenr_T lnum));
-int u_savedel __ARGS((linenr_T lnum, long nlines));
-void u_undo __ARGS((int count));
-void u_redo __ARGS((int count));
-void undo_time __ARGS((long step, int sec, int absolute));
-void u_sync __ARGS((void));
-void ex_undolist __ARGS((exarg_T *eap));
-void ex_undojoin __ARGS((exarg_T *eap));
-void u_unchanged __ARGS((buf_T *buf));
-void u_clearall __ARGS((buf_T *buf));
-void u_saveline __ARGS((linenr_T lnum));
-void u_clearline __ARGS((void));
-void u_undoline __ARGS((void));
-void u_blockfree __ARGS((buf_T *buf));
-int bufIsChanged __ARGS((buf_T *buf));
-int curbufIsChanged __ARGS((void));
+extern int u_save_cursor __ARGS((void));
+extern int u_save __ARGS((linenr_T top, linenr_T bot));
+extern int u_savesub __ARGS((linenr_T lnum));
+extern int u_inssub __ARGS((linenr_T lnum));
+extern int u_savedel __ARGS((linenr_T lnum, long nlines));
+extern void u_undo __ARGS((int count));
+extern void u_redo __ARGS((int count));
+extern void undo_time __ARGS((long step, int sec, int absolute));
+extern void u_sync __ARGS((void));
+extern void ex_undolist __ARGS((exarg_T *eap));
+extern void ex_undojoin __ARGS((exarg_T *eap));
+extern void u_unchanged __ARGS((buf_T *buf));
+extern void u_clearall __ARGS((buf_T *buf));
+extern void u_saveline __ARGS((linenr_T lnum));
+extern void u_clearline __ARGS((void));
+extern void u_undoline __ARGS((void));
+extern void u_blockfree __ARGS((buf_T *buf));
+extern int bufIsChanged __ARGS((buf_T *buf));
+extern int curbufIsChanged __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/version.pro b/src/proto/version.pro
index 3f371f9..00ca916 100644
--- a/src/proto/version.pro
+++ b/src/proto/version.pro
@@ -1,9 +1,9 @@
 /* version.c */
-void make_version __ARGS((void));
-int highest_patch __ARGS((void));
-int has_patch __ARGS((int n));
-void ex_version __ARGS((exarg_T *eap));
-void list_version __ARGS((void));
-void intro_message __ARGS((int colon));
-void ex_intro __ARGS((exarg_T *eap));
+extern void make_version __ARGS((void));
+extern int highest_patch __ARGS((void));
+extern int has_patch __ARGS((int n));
+extern void ex_version __ARGS((exarg_T *eap));
+extern void list_version __ARGS((void));
+extern void intro_message __ARGS((int colon));
+extern void ex_intro __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
diff --git a/src/proto/window.pro b/src/proto/window.pro
index 629ced3..362f00a 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -1,59 +1,59 @@
 /* window.c */
-void do_window __ARGS((int nchar, long Prenum, int xchar));
-int win_split __ARGS((int size, int flags));
-int win_valid __ARGS((win_T *win));
-int win_count __ARGS((void));
-int make_windows __ARGS((int count, int vertical));
-void win_move_after __ARGS((win_T *win1, win_T *win2));
-void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-void close_windows __ARGS((buf_T *buf, int keep_curwin));
-void win_close __ARGS((win_T *win, int free_buf));
-void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-void win_free_all __ARGS((void));
-void close_others __ARGS((int message, int forceit));
-void curwin_init __ARGS((void));
-int win_alloc_first __ARGS((void));
-void win_init_size __ARGS((void));
-int win_new_tabpage __ARGS((int after));
-int may_open_tabpage __ARGS((void));
-int make_tabpages __ARGS((int maxcount));
-int valid_tabpage __ARGS((tabpage_T *tpc));
-tabpage_T *find_tabpage __ARGS((int n));
-int tabpage_index __ARGS((tabpage_T *ftp));
-void goto_tabpage __ARGS((int n));
-void goto_tabpage_tp __ARGS((tabpage_T *tp));
-void tabpage_move __ARGS((int nr));
-void win_goto __ARGS((win_T *wp));
-win_T *win_find_nr __ARGS((int winnr));
-void win_enter __ARGS((win_T *wp, int undo_sync));
-win_T *buf_jump_open_win __ARGS((buf_T *buf));
-int win_alloc_lines __ARGS((win_T *wp));
-void win_free_lsize __ARGS((win_T *wp));
-void shell_new_rows __ARGS((void));
-void shell_new_columns __ARGS((void));
-void win_size_save __ARGS((garray_T *gap));
-void win_size_restore __ARGS((garray_T *gap));
-int win_comp_pos __ARGS((void));
-void win_setheight __ARGS((int height));
-void win_setheight_win __ARGS((int height, win_T *win));
-void win_setwidth __ARGS((int width));
-void win_setwidth_win __ARGS((int width, win_T *wp));
-void win_setminheight __ARGS((void));
-void win_drag_status_line __ARGS((win_T *dragwin, int offset));
-void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
-void win_comp_scroll __ARGS((win_T *wp));
-void command_height __ARGS((long old_p_ch));
-void last_status __ARGS((int morewin));
-int tabline_height __ARGS((void));
-char_u *grab_file_name __ARGS((long count, linenr_T *file_lnum));
-char_u *file_name_at_cursor __ARGS((int options, long count, linenr_T *file_lnum));
-char_u *file_name_in_line __ARGS((char_u *line, int col, int options, long count, char_u *rel_fname, linenr_T *file_lnum));
-char_u *find_file_name_in_path __ARGS((char_u *ptr, int len, int options, long count, char_u *rel_fname));
-int path_with_url __ARGS((char_u *fname));
-int vim_isAbsName __ARGS((char_u *name));
-int vim_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-int min_rows __ARGS((void));
-int only_one_window __ARGS((void));
-void check_lnums __ARGS((int do_curwin));
-int win_hasvertsplit __ARGS((void));
+extern void do_window __ARGS((int nchar, long Prenum, int xchar));
+extern int win_split __ARGS((int size, int flags));
+extern int win_valid __ARGS((win_T *win));
+extern int win_count __ARGS((void));
+extern int make_windows __ARGS((int count, int vertical));
+extern void win_move_after __ARGS((win_T *win1, win_T *win2));
+extern void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+extern void close_windows __ARGS((buf_T *buf, int keep_curwin));
+extern void win_close __ARGS((win_T *win, int free_buf));
+extern void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+extern void win_free_all __ARGS((void));
+extern void close_others __ARGS((int message, int forceit));
+extern void curwin_init __ARGS((void));
+extern int win_alloc_first __ARGS((void));
+extern void win_init_size __ARGS((void));
+extern int win_new_tabpage __ARGS((int after));
+extern int may_open_tabpage __ARGS((void));
+extern int make_tabpages __ARGS((int maxcount));
+extern int valid_tabpage __ARGS((tabpage_T *tpc));
+extern tabpage_T *find_tabpage __ARGS((int n));
+extern int tabpage_index __ARGS((tabpage_T *ftp));
+extern void goto_tabpage __ARGS((int n));
+extern void goto_tabpage_tp __ARGS((tabpage_T *tp));
+extern void tabpage_move __ARGS((int nr));
+extern void win_goto __ARGS((win_T *wp));
+extern win_T *win_find_nr __ARGS((int winnr));
+extern void win_enter __ARGS((win_T *wp, int undo_sync));
+extern win_T *buf_jump_open_win __ARGS((buf_T *buf));
+extern int win_alloc_lines __ARGS((win_T *wp));
+extern void win_free_lsize __ARGS((win_T *wp));
+extern void shell_new_rows __ARGS((void));
+extern void shell_new_columns __ARGS((void));
+extern void win_size_save __ARGS((garray_T *gap));
+extern void win_size_restore __ARGS((garray_T *gap));
+extern int win_comp_pos __ARGS((void));
+extern void win_setheight __ARGS((int height));
+extern void win_setheight_win __ARGS((int height, win_T *win));
+extern void win_setwidth __ARGS((int width));
+extern void win_setwidth_win __ARGS((int width, win_T *wp));
+extern void win_setminheight __ARGS((void));
+extern void win_drag_status_line __ARGS((win_T *dragwin, int offset));
+extern void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
+extern void win_comp_scroll __ARGS((win_T *wp));
+extern void command_height __ARGS((long old_p_ch));
+extern void last_status __ARGS((int morewin));
+extern int tabline_height __ARGS((void));
+extern char_u *grab_file_name __ARGS((long count, linenr_T *file_lnum));
+extern char_u *file_name_at_cursor __ARGS((int options, long count, linenr_T *file_lnum));
+extern char_u *file_name_in_line __ARGS((char_u *line, int col, int options, long count, char_u *rel_fname, linenr_T *file_lnum));
+extern char_u *find_file_name_in_path __ARGS((char_u *ptr, int len, int options, long count, char_u *rel_fname));
+extern int path_with_url __ARGS((char_u *fname));
+extern int vim_isAbsName __ARGS((char_u *name));
+extern int vim_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+extern int min_rows __ARGS((void));
+extern int only_one_window __ARGS((void));
+extern void check_lnums __ARGS((int do_curwin));
+extern int win_hasvertsplit __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/workshop.pro b/src/proto/workshop.pro
index 426fded..c72e215 100644
--- a/src/proto/workshop.pro
+++ b/src/proto/workshop.pro
@@ -1,49 +1,49 @@
 /* workshop.c */
-void workshop_init __ARGS((void));
-void workshop_postinit __ARGS((void));
-void ex_wsverb __ARGS((exarg_T *eap));
-char *workshop_get_editor_name __ARGS((void));
-char *workshop_get_editor_version __ARGS((void));
-void workshop_load_file __ARGS((char *filename, int line, char *frameid));
-void workshop_reload_file __ARGS((char *filename, int line));
-void workshop_show_file __ARGS((char *filename));
-void workshop_goto_line __ARGS((char *filename, int lineno));
-void workshop_front_file __ARGS((char *filename));
-void workshop_save_file __ARGS((char *filename));
-void workshop_save_files __ARGS((void));
-void workshop_quit __ARGS((void));
-void workshop_minimize __ARGS((void));
-void workshop_maximize __ARGS((void));
-void workshop_add_mark_type __ARGS((int idx, char *colorspec, char *sign));
-void workshop_set_mark __ARGS((char *filename, int lineno, int markId, int idx));
-void workshop_change_mark_type __ARGS((char *filename, int markId, int idx));
-void workshop_goto_mark __ARGS((char *filename, int markId, char *message));
-void workshop_delete_mark __ARGS((char *filename, int markId));
-int workshop_get_mark_lineno __ARGS((char *filename, int markId));
-void workshop_moved_marks __ARGS((char *filename));
-int workshop_get_font_height __ARGS((void));
-void workshop_footer_message __ARGS((char *message, int severity));
-void workshop_menu_begin __ARGS((char *label));
-void workshop_submenu_begin __ARGS((char *label));
-void workshop_submenu_end __ARGS((void));
-void workshop_menu_item __ARGS((char *label, char *verb, char *accelerator, char *acceleratorText, char *name, char *filepos, char *sensitive));
-void workshop_menu_end __ARGS((void));
-void workshop_toolbar_begin __ARGS((void));
-void workshop_toolbar_end __ARGS((void));
-void workshop_toolbar_button __ARGS((char *label, char *verb, char *senseVerb, char *filepos, char *help, char *sense, char *file, char *left));
-void workshop_frame_sensitivities __ARGS((VerbSense *vs));
-void workshop_set_option __ARGS((char *option, char *value));
-void workshop_balloon_mode __ARGS((Boolean on));
-void workshop_balloon_delay __ARGS((int delay));
-void workshop_show_balloon_tip __ARGS((char *tip));
-void workshop_hotkeys __ARGS((Boolean on));
-int workshop_get_positions __ARGS((void *clientData, char **filename, int *curLine, int *curCol, int *selStartLine, int *selStartCol, int *selEndLine, int *selEndCol, int *selLength, char **selection));
-char *workshop_test_getcurrentfile __ARGS((void));
-int workshop_test_getcursorrow __ARGS((void));
-int workshop_test_getcursorcol __ARGS((void));
-char *workshop_test_getcursorrowtext __ARGS((void));
-char *workshop_test_getselectedtext __ARGS((void));
-void workshop_save_sensitivity __ARGS((char *filename));
-void workshop_beval_cb __ARGS((BalloonEval *beval, int state));
-void findYourself __ARGS((char *argv0));
+extern void workshop_init __ARGS((void));
+extern void workshop_postinit __ARGS((void));
+extern void ex_wsverb __ARGS((exarg_T *eap));
+extern char *workshop_get_editor_name __ARGS((void));
+extern char *workshop_get_editor_version __ARGS((void));
+extern void workshop_load_file __ARGS((char *filename, int line, char *frameid));
+extern void workshop_reload_file __ARGS((char *filename, int line));
+extern void workshop_show_file __ARGS((char *filename));
+extern void workshop_goto_line __ARGS((char *filename, int lineno));
+extern void workshop_front_file __ARGS((char *filename));
+extern void workshop_save_file __ARGS((char *filename));
+extern void workshop_save_files __ARGS((void));
+extern void workshop_quit __ARGS((void));
+extern void workshop_minimize __ARGS((void));
+extern void workshop_maximize __ARGS((void));
+extern void workshop_add_mark_type __ARGS((int idx, char *colorspec, char *sign));
+extern void workshop_set_mark __ARGS((char *filename, int lineno, int markId, int idx));
+extern void workshop_change_mark_type __ARGS((char *filename, int markId, int idx));
+extern void workshop_goto_mark __ARGS((char *filename, int markId, char *message));
+extern void workshop_delete_mark __ARGS((char *filename, int markId));
+extern int workshop_get_mark_lineno __ARGS((char *filename, int markId));
+extern void workshop_moved_marks __ARGS((char *filename));
+extern int workshop_get_font_height __ARGS((void));
+extern void workshop_footer_message __ARGS((char *message, int severity));
+extern void workshop_menu_begin __ARGS((char *label));
+extern void workshop_submenu_begin __ARGS((char *label));
+extern void workshop_submenu_end __ARGS((void));
+extern void workshop_menu_item __ARGS((char *label, char *verb, char *accelerator, char *acceleratorText, char *name, char *filepos, char *sensitive));
+extern void workshop_menu_end __ARGS((void));
+extern void workshop_toolbar_begin __ARGS((void));
+extern void workshop_toolbar_end __ARGS((void));
+extern void workshop_toolbar_button __ARGS((char *label, char *verb, char *senseVerb, char *filepos, char *help, char *sense, char *file, char *left));
+extern void workshop_frame_sensitivities __ARGS((VerbSense *vs));
+extern void workshop_set_option __ARGS((char *option, char *value));
+extern void workshop_balloon_mode __ARGS((Boolean on));
+extern void workshop_balloon_delay __ARGS((int delay));
+extern void workshop_show_balloon_tip __ARGS((char *tip));
+extern void workshop_hotkeys __ARGS((Boolean on));
+extern int workshop_get_positions __ARGS((void *clientData, char **filename, int *curLine, int *curCol, int *selStartLine, int *selStartCol, int *selEndLine, int *selEndCol, int *selLength, char **selection));
+extern char *workshop_test_getcurrentfile __ARGS((void));
+extern int workshop_test_getcursorrow __ARGS((void));
+extern int workshop_test_getcursorcol __ARGS((void));
+extern char *workshop_test_getcursorrowtext __ARGS((void));
+extern char *workshop_test_getselectedtext __ARGS((void));
+extern void workshop_save_sensitivity __ARGS((char *filename));
+extern void workshop_beval_cb __ARGS((BalloonEval *beval, int state));
+extern void findYourself __ARGS((char *argv0));
 /* vim: set ft=c : */
diff --git a/src/tag.c b/src/tag.c
index 98a2c9b..6c8888c 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -3835,15 +3835,16 @@
 			char_u	*s, *n;
 			int	len;
 
-			/* Add extra field as a dict entry. */
+			/* Add extra field as a dict entry.  Fields are
+			 * separated by Tabs. */
 			n = p;
-			while (*p != NUL && *p > ' ' && *p < 127 && *p != ':')
+			while (*p != NUL && *p >= ' ' && *p < 127 && *p != ':')
 			    ++p;
 			len = p - n;
 			if (*p == ':' && len > 0)
 			{
 			    s = ++p;
-			    while (*p != NUL && *p > ' ' && *p < 127)
+			    while (*p != NUL && *p >= ' ' && *p < 127)
 				++p;
 			    n[len] = NUL;
 			    if (add_tag_field(dict, (char *)n, s, p) == FAIL)
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 66c9f9f..eec1f9b 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -37,7 +37,7 @@
 nongui:	fixff $(SCRIPTS16) $(SCRIPTS)
 	echo ALL DONE
 
-small:	fixff $(SCRIPTS16)
+small:
 	echo ALL DONE
 
 gui:	fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI)
diff --git a/src/version.h b/src/version.h
index f3a87f7..cef0851 100644
--- a/src/version.h
+++ b/src/version.h
@@ -19,13 +19,13 @@
 #define VIM_VERSION_MINOR_STR		"0"
 #define VIM_VERSION_100	    (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
 
-#define VIM_VERSION_BUILD		 256
-#define VIM_VERSION_BUILD_BCD		0x100
-#define VIM_VERSION_BUILD_STR		"256"
+#define VIM_VERSION_BUILD		 257
+#define VIM_VERSION_BUILD_BCD		0x101
+#define VIM_VERSION_BUILD_STR		"257"
 #define VIM_VERSION_PATCHLEVEL		 0
 #define VIM_VERSION_PATCHLEVEL_STR	"0"
 /* Used by MacOS port should be one of: development, alpha, beta, final */
-#define VIM_VERSION_RELEASE		alpha
+#define VIM_VERSION_RELEASE		beta
 
 /*
  * VIM_VERSION_NODOT is used for the runtime directory name.
@@ -33,8 +33,8 @@
  * VIM_VERSION_MEDIUM is used for the startup-screen.
  * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
  */
-#define VIM_VERSION_NODOT	"vim70aa"
-#define VIM_VERSION_SHORT	"7.0aa"
-#define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 23)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 23, compiled "
+#define VIM_VERSION_NODOT	"vim70b"
+#define VIM_VERSION_SHORT	"7.0b"
+#define VIM_VERSION_MEDIUM	"7.0b BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0b BETA (2006 Mar 24)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0b BETA (2006 Mar 24, compiled "
diff --git a/src/vim.h b/src/vim.h
index 1e4ae42..237383f 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1723,7 +1723,7 @@
 # define stat(a,b) (access(a,0) ? -1 : stat(a,b))
 #endif
 
-#if defined(FEAT_PROFILE) || defined(FEAT_RELTIME)
+#if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
 # ifdef WIN3264
 typedef LARGE_INTEGER proftime_T;
 # else