changeset 9403:9b048dced116 v7.4.1983

commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 2 20:27:50 2016 +0200 patch 7.4.1983 Problem: farsi.c and arabic.c are included in a strange way. Solution: Build them like other files.
author Christian Brabandt <cb@256bit.org>
date Sat, 02 Jul 2016 20:30:06 +0200
parents 165d9b2513e9
children 11be6f90a1f2
files Filelist src/Make_bc5.mak src/Make_cyg_ming.mak src/Make_dice.mak src/Make_ivc.mak src/Make_manx.mak src/Make_morph.mak src/Make_mvc.mak src/Make_sas.mak src/Makefile src/arabic.c src/farsi.c src/main.c src/proto.h src/proto/arabic.pro src/proto/farsi.pro src/proto/main.pro src/version.c
diffstat 18 files changed, 123 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -116,6 +116,7 @@ SRC_ALL =	\
 		src/testdir/bench*.vim \
 		src/testdir/samples/*.txt \
 		src/proto.h \
+		src/proto/arabic.pro \
 		src/proto/blowfish.pro \
 		src/proto/buffer.pro \
 		src/proto/channel.pro \
@@ -131,6 +132,7 @@ SRC_ALL =	\
 		src/proto/ex_docmd.pro \
 		src/proto/ex_eval.pro \
 		src/proto/ex_getln.pro \
+		src/proto/farsi.pro \
 		src/proto/fileio.pro \
 		src/proto/fold.pro \
 		src/proto/getchar.pro \
--- a/src/Make_bc5.mak
+++ b/src/Make_bc5.mak
@@ -537,6 +537,7 @@ vimwinmain = \
 !endif
 
 vimobj =  \
+	$(OBJDIR)\arabic.obj \
 	$(OBJDIR)\blowfish.obj \
 	$(OBJDIR)\buffer.obj \
 	$(OBJDIR)\charset.obj \
@@ -551,6 +552,7 @@ vimobj =  \
 	$(OBJDIR)\ex_docmd.obj \
 	$(OBJDIR)\ex_eval.obj \
 	$(OBJDIR)\ex_getln.obj \
+	$(OBJDIR)\farsi.obj \
 	$(OBJDIR)\fileio.obj \
 	$(OBJDIR)\fold.obj \
 	$(OBJDIR)\getchar.obj \
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -594,6 +594,7 @@ LIB = -lkernel32 -luser32 -lgdi32 -ladva
 GUIOBJ =  $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
 CUIOBJ = $(OUTDIR)/iscygpty.o
 OBJ = \
+	$(OUTDIR)/arabic.o \
 	$(OUTDIR)/blowfish.o \
 	$(OUTDIR)/buffer.o \
 	$(OUTDIR)/charset.o \
@@ -608,6 +609,7 @@ OBJ = \
 	$(OUTDIR)/ex_docmd.o \
 	$(OUTDIR)/ex_eval.o \
 	$(OUTDIR)/ex_getln.o \
+	$(OUTDIR)/farsi.o \
 	$(OUTDIR)/fileio.o \
 	$(OUTDIR)/fold.o \
 	$(OUTDIR)/getchar.o \
--- a/src/Make_dice.mak
+++ b/src/Make_dice.mak
@@ -26,6 +26,7 @@ LD = dcc
 	${CC} ${PRE} ${CFLAGS} $< -o $@
 
 SRC = \
+	arabic.c \
 	blowfish.c \
 	buffer.c \
 	charset.c \
@@ -40,6 +41,7 @@ SRC = \
 	ex_docmd.c \
 	ex_eval.c \
 	ex_getln.c \
+	farsi.c \
 	fileio.c \
 	fold.c \
 	getchar.c \
@@ -75,7 +77,8 @@ SRC = \
 	window.c \
 	version.c
 
-OBJ =	o/blowfish.o \
+OBJ =	o/arabic.o \
+	o/blowfish.o \
 	o/buffer.o \
 	o/charset.o \
 	o/crypt.o \
@@ -89,6 +92,7 @@ OBJ =	o/blowfish.o \
 	o/ex_docmd.o \
 	o/ex_eval.o \
 	o/ex_getln.o \
+	o/farsi.o \
 	o/fileio.o \
 	o/fold.o \
 	o/getchar.o \
@@ -143,6 +147,8 @@ clean:
 
 ###########################################################################
 
+o/arabic.o:	arabic.c  $(SYMS)
+
 o/blowfish.o:	blowfish.c  $(SYMS)
 
 o/buffer.o:	buffer.c  $(SYMS)
@@ -171,6 +177,8 @@ o/ex_eval.o:	ex_eval.c  $(SYMS) ex_cmds.
 
 o/ex_getln.o:	ex_getln.c  $(SYMS)
 
+o/farsi.o:	farsi.c  $(SYMS)
+
 o/fileio.o:	fileio.c  $(SYMS)
 
 o/fold.o:	fold.c  $(SYMS)
--- a/src/Make_ivc.mak
+++ b/src/Make_ivc.mak
@@ -210,6 +210,7 @@ ALL : .\$(VIM).exe vimrun.exe install.ex
 
 LINK32_OBJS= \
 	$(EXTRAS) \
+	"$(INTDIR)/arabic.obj" \
 	"$(INTDIR)/blowfish.obj" \
 	"$(INTDIR)/buffer.obj" \
 	"$(INTDIR)/charset.obj" \
@@ -224,6 +225,7 @@ LINK32_OBJS= \
 	"$(INTDIR)/ex_docmd.obj" \
 	"$(INTDIR)/ex_eval.obj" \
 	"$(INTDIR)/ex_getln.obj" \
+	"$(INTDIR)/farsi.obj" \
 	"$(INTDIR)/fileio.obj" \
 	"$(INTDIR)/fold.obj" \
 	"$(INTDIR)/getchar.obj" \
@@ -330,6 +332,10 @@ GvimExt/gvimext.dll: GvimExt/gvimext.cpp
 
 # Begin Source File
 
+SOURCE=.\arabic.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\blowfish.c
 # End Source File
 # Begin Source File
@@ -386,6 +392,10 @@ SOURCE=.\ex_getln.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\farsi.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\fileio.c
 # End Source File
 # Begin Source File
--- a/src/Make_manx.mak
+++ b/src/Make_manx.mak
@@ -36,7 +36,8 @@ SHELL = csh
 REN = $(SHELL) -c mv -f
 DEL = $(SHELL) -c rm -f
 
-SRC =	blowfish.c \
+SRC =	arabic.c \
+	blowfish.c \
 	buffer.c \
 	charset.c \
 	crypt.c \
@@ -50,6 +51,7 @@ SRC =	blowfish.c \
 	ex_docmd.c \
 	ex_eval.c \
 	ex_getln.c \
+	farsi.c \
 	fileio.c \
 	fold.c \
 	getchar.c \
@@ -87,7 +89,8 @@ SRC =	blowfish.c \
 
 INCL = vim.h feature.h keymap.h macros.h ascii.h term.h structs.h os_amiga.h
 
-OBJ =	obj/blowfish.o \
+OBJ =	obj/arabic.o \
+	obj/blowfish.o \
 	obj/buffer.o \
 	obj/charset.o \
 	obj/crypt.o \
@@ -101,6 +104,7 @@ OBJ =	obj/blowfish.o \
 	obj/ex_docmd.o \
 	obj/ex_eval.o \
 	obj/ex_getln.o \
+	obj/farsi.o \
 	obj/fileio.o \
 	obj/fold.o \
 	obj/getchar.o \
@@ -136,7 +140,8 @@ OBJ =	obj/blowfish.o \
 	obj/window.o \
 	$(TERMLIB)
 
-PRO =	proto/blowfish.pro \
+PRO =	proto/arabic.pro \
+	proto/blowfish.pro \
 	proto/buffer.pro \
 	proto/charset.pro \
 	proto/crypt.pro \
@@ -150,6 +155,7 @@ PRO =	proto/blowfish.pro \
 	proto/ex_docmd.pro \
 	proto/ex_eval.pro \
 	proto/ex_getln.pro \
+	proto/farsi.pro \
 	proto/fileio.pro \
 	proto/fold.pro \
 	proto/getchar.pro \
@@ -229,6 +235,9 @@ CCNOSYM = $(CC) $(CFLAGS) -o
 
 $(OBJ): $(SYMS)
 
+obj/arabic.o:	arabic.c
+	$(CCSYM) $@ arabic.c
+
 obj/blowfish.o:	blowfish.c
 	$(CCSYM) $@ blowfish.c
 
@@ -272,6 +281,9 @@ obj/ex_eval.o:	ex_eval.c ex_cmds.h
 obj/ex_getln.o:	ex_getln.c
 	$(CCSYM) $@ ex_getln.c
 
+obj/farsi.o:	farsi.c
+	$(CCSYM) $@ farsi.c
+
 obj/fileio.o:	fileio.c
 	$(CCSYM) $@ fileio.c
 
--- a/src/Make_morph.mak
+++ b/src/Make_morph.mak
@@ -24,7 +24,8 @@ RM =		rm
 .c.o:
 	${CC} ${CFLAGS} $< -o $@
 
-SRC =	blowfish.c						\
+SRC =	arabic.c						\
+	blowfish.c						\
 	buffer.c						\
 	charset.c						\
 	crypt.c							\
@@ -38,6 +39,7 @@ SRC =	blowfish.c						\
 	ex_docmd.c						\
 	ex_eval.c						\
 	ex_getln.c						\
+	farsi.c							\
 	fileio.c						\
 	fold.c							\
 	getchar.c						\
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -548,6 +548,7 @@ INCL =	vim.h os_win32.h ascii.h feature.
 	$(NBDEBUG_INCL)
 
 OBJ = \
+	$(OUTDIR)\arabic.obj \
 	$(OUTDIR)\blowfish.obj \
 	$(OUTDIR)\buffer.obj \
 	$(OUTDIR)\charset.obj \
@@ -562,6 +563,7 @@ OBJ = \
 	$(OUTDIR)\ex_docmd.obj \
 	$(OUTDIR)\ex_eval.obj \
 	$(OUTDIR)\ex_getln.obj \
+	$(OUTDIR)\farsi.obj \
 	$(OUTDIR)\fileio.obj \
 	$(OUTDIR)\fold.obj \
 	$(OUTDIR)\getchar.obj \
@@ -1148,6 +1150,8 @@ testclean:
 !ENDIF
 	$(CC) $(CFLAGS) $<
 
+$(OUTDIR)/arabic.obj:	$(OUTDIR) arabic.c  $(INCL)
+
 $(OUTDIR)/blowfish.obj:	$(OUTDIR) blowfish.c  $(INCL)
 
 $(OUTDIR)/buffer.obj:	$(OUTDIR) buffer.c  $(INCL)
@@ -1176,6 +1180,8 @@ testclean:
 
 $(OUTDIR)/ex_getln.obj:	$(OUTDIR) ex_getln.c  $(INCL)
 
+$(OUTDIR)/farsi.obj:	$(OUTDIR) farsi.c  $(INCL)
+
 $(OUTDIR)/fileio.obj:	$(OUTDIR) fileio.c  $(INCL)
 
 $(OUTDIR)/fold.obj:	$(OUTDIR) fold.c  $(INCL)
@@ -1346,6 +1352,7 @@ auto:
 
 # End Custom Build
 proto.h: \
+	proto/arabic.pro \
 	proto/blowfish.pro \
 	proto/buffer.pro \
 	proto/charset.pro \
@@ -1360,6 +1367,7 @@ proto.h: \
 	proto/ex_docmd.pro \
 	proto/ex_eval.pro \
 	proto/ex_getln.pro \
+	proto/farsi.pro \
 	proto/fileio.pro \
 	proto/getchar.pro \
 	proto/hardcopy.pro \
--- a/src/Make_sas.mak
+++ b/src/Make_sas.mak
@@ -89,6 +89,7 @@ CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORY
 PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS
 
 SRC = \
+	arabic.c \
 	blowfish.c \
 	buffer.c \
 	charset.c \
@@ -103,6 +104,7 @@ SRC = \
 	ex_docmd.c \
 	ex_eval.c \
 	ex_getln.c \
+	farsi.c \
 	fileio.c \
 	fold.c \
 	getchar.c \
@@ -139,6 +141,7 @@ SRC = \
 	version.c
 
 OBJ = \
+	arabic.o \
 	blowfish.o \
 	buffer.o \
 	charset.o \
@@ -153,6 +156,7 @@ OBJ = \
 	ex_docmd.o \
 	ex_eval.o \
 	ex_getln.o \
+	farsi.o \
 	fileio.o \
 	fold.o \
 	getchar.o \
@@ -189,6 +193,7 @@ OBJ = \
 	$(TERMLIB)
 
 PRO = \
+	proto/arabic.pro \
 	proto/blowfish.pro \
 	proto/buffer.pro \
 	proto/charset.pro \
@@ -203,6 +208,7 @@ PRO = \
 	proto/ex_docmd.pro \
 	proto/ex_eval.pro \
 	proto/ex_getln.pro \
+	proto/farsi.pro \
 	proto/fileio.pro \
 	proto/fold.pro \
 	proto/getchar.pro \
@@ -293,6 +299,8 @@ scoptions: Make_sas.mak
 	$(CC) $(CFLAGS) GPFILE=proto/$*.pro $(PROPT) $*.c
 
 # dependencies
+arabic.o:		arabic.c
+proto/arabic.pro:	arabic.c
 blowfish.o:		blowfish.c
 proto/blowfish.pro:	blowfish.c
 buffer.o:		buffer.c
@@ -321,6 +329,8 @@ ex_eval.o:		ex_eval.c ex_cmds.h
 proto/ex_eval.pro:	ex_eval.c ex_cmds.h
 ex_getln.o:		ex_getln.c
 proto/ex_getln.pro:	ex_getln.c
+farsi.o:		farsi.c
+proto/farsi.pro:	farsi.c
 fileio.o:		fileio.c
 proto/fileio.pro:	fileio.c
 fold.o:			fold.c
--- a/src/Makefile
+++ b/src/Makefile
@@ -1478,6 +1478,7 @@ DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8
 TAGS_INCL = *.h
 
 BASIC_SRC = \
+	arabic.c \
 	blowfish.c \
 	buffer.c \
 	charset.c \
@@ -1492,6 +1493,7 @@ BASIC_SRC = \
 	ex_docmd.c \
 	ex_eval.c \
 	ex_getln.c \
+	farsi.c \
 	fileio.c \
 	fold.c \
 	getchar.c \
@@ -1575,6 +1577,7 @@ LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HAN
 #LINT_SRC = $(BASIC_SRC)
 
 OBJ_COMMON = \
+	objects/arabic.o \
 	objects/buffer.o \
 	objects/blowfish.o \
 	objects/charset.o \
@@ -1589,6 +1592,7 @@ OBJ_COMMON = \
 	objects/ex_docmd.o \
 	objects/ex_eval.o \
 	objects/ex_getln.o \
+	objects/farsi.o \
 	objects/fileio.o \
 	objects/fold.o \
 	objects/getchar.o \
@@ -1652,6 +1656,7 @@ MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
 	objects/memfile_test.o
 
 PRO_AUTO = \
+	arabic.pro \
 	blowfish.pro \
 	buffer.pro \
 	charset.pro \
@@ -1666,6 +1671,7 @@ PRO_AUTO = \
 	ex_docmd.pro \
 	ex_eval.pro \
 	ex_getln.pro \
+	farsi.pro \
 	fileio.pro \
 	fold.pro \
 	getchar.pro \
@@ -2749,6 +2755,9 @@ auto/gui_gtk_gresources.h: gui_gtk_res.x
 objects:
 	mkdir objects
 
+objects/arabic.o: arabic.c
+	$(CCC) -o $@ arabic.c
+
 objects/blowfish.o: blowfish.c
 	$(CCC) -o $@ blowfish.c
 
@@ -2791,6 +2800,9 @@ objects/ex_eval.o: ex_eval.c
 objects/ex_getln.o: ex_getln.c
 	$(CCC) -o $@ ex_getln.c
 
+objects/farsi.o: farsi.c
+	$(CCC) -o $@ farsi.c
+
 objects/fileio.o: fileio.c
 	$(CCC) -o $@ fileio.c
 
@@ -3110,6 +3122,10 @@ bundle-language: bundle-dir
 ###############################################################################
 ### (automatically generated by 'make depend')
 ### Dependencies:
+objects/arabic.o: arabic.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+ gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
+ farsi.h arabic.h
 objects/blowfish.o: blowfish.c vim.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
  regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
@@ -3166,6 +3182,10 @@ objects/ex_getln.o: ex_getln.c vim.h aut
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
  regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
  globals.h farsi.h arabic.h
+objects/farsi.o: farsi.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+ gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
+ farsi.h arabic.h
 objects/fileio.o: fileio.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
  gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
@@ -3201,7 +3221,7 @@ objects/json.o: json.c vim.h auto/config
 objects/main.o: main.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
  gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
- farsi.h arabic.h farsi.c arabic.c
+ farsi.h arabic.h
 objects/mark.o: mark.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
  gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
@@ -3314,10 +3334,10 @@ objects/window.o: window.c vim.h auto/co
 objects/gui.o: gui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
  proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
-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 option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+objects/gui_gtk.o: gui_gtk.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+ gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
+ farsi.h arabic.h gui_gtk_f.h
 objects/gui_gtk_f.o: gui_gtk_f.c vim.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
  regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
@@ -3394,11 +3414,11 @@ objects/pty.o: pty.c vim.h auto/config.h
 objects/json_test.o: json_test.c main.c vim.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
  regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h farsi.c arabic.c json.c
+ globals.h farsi.h arabic.h json.c
 objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
  os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
  structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
- ex_cmds.h proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
+ ex_cmds.h proto.h globals.h farsi.h arabic.h memfile.c
 objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
  regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
--- a/src/arabic.c
+++ b/src/arabic.c
@@ -10,14 +10,13 @@
 /*
  * arabic.c: functions for Arabic language
  *
- * Included by main.c, when FEAT_ARABIC & FEAT_GUI is defined.
- *
- * --
- *
  * Author: Nadim Shaikli & Isam Bayazidi
- *
  */
 
+#include "vim.h"
+
+#if defined(FEAT_ARABIC) || defined(PROTO)
+
 static int  A_is_a(int cur_c);
 static int  A_is_s(int cur_c);
 static int  A_is_f(int cur_c);
@@ -1148,3 +1147,5 @@ A_is_special(int c)
 {
     return (c == a_HAMZA || c == a_s_HAMZA);
 }
+
+#endif /* FEAT_ARABIC */
--- a/src/farsi.c
+++ b/src/farsi.c
@@ -9,10 +9,12 @@
 
 /*
  * farsi.c: functions for Farsi language
- *
- * Included by main.c, when FEAT_FKMAP is defined.
  */
 
+#include "vim.h"
+
+#if defined(FEAT_FKMAP) || defined(PROTO)
+
 static int toF_Xor_X_(int c);
 static int F_is_TyE(int c);
 static int F_is_TyC_TyD(int c);
@@ -2189,3 +2191,5 @@ farsi_f9(cmdarg_T *cap UNUSED)
 	    conv_to_pstd();
     }
 }
+
+#endif /* FEAT_FKMAP */
--- a/src/main.c
+++ b/src/main.c
@@ -4186,17 +4186,3 @@ serverConvert(
     return res;
 }
 #endif
-
-/*
- * When FEAT_FKMAP is defined, also compile the Farsi source code.
- */
-#if defined(FEAT_FKMAP) || defined(PROTO)
-# include "farsi.c"
-#endif
-
-/*
- * When FEAT_ARABIC is defined, also compile the Arabic source code.
- */
-#if defined(FEAT_ARABIC) || defined(PROTO)
-# include "arabic.c"
-#endif
--- a/src/proto.h
+++ b/src/proto.h
@@ -92,6 +92,12 @@ extern int _stricoll(char *a, char *b);
 # ifdef FEAT_MENU
 #  include "menu.pro"
 # endif
+# ifdef FEAT_FKMAP
+#  include "farsi.pro"
+# endif
+# ifdef FEAT_ARABIC
+#  include "arabic.pro"
+# endif
 
 /* These prototypes cannot be produced automatically. */
 int
new file mode 100644
--- /dev/null
+++ b/src/proto/arabic.pro
@@ -0,0 +1,3 @@
+/* arabic.c */
+int arabic_shape(int c, int *ccp, int *c1p, int prev_c, int prev_c1, int next_c);
+/* vim: set ft=c : */
new file mode 100644
--- /dev/null
+++ b/src/proto/farsi.pro
@@ -0,0 +1,12 @@
+/* farsi.c */
+int fkmap(int c);
+char_u *lrswap(char_u *ibuf);
+char_u *lrFswap(char_u *cmdbuf, int len);
+char_u *lrF_sub(char_u *ibuf);
+int cmdl_fkmap(int c);
+int F_isalpha(int c);
+int F_isdigit(int c);
+int F_ischar(int c);
+void farsi_f8(cmdarg_T *cap);
+void farsi_f9(cmdarg_T *cap);
+/* vim: set ft=c : */
--- a/src/proto/main.pro
+++ b/src/proto/main.pro
@@ -10,15 +10,4 @@ void time_msg(char *mesg, void *tv_start
 void server_to_input_buf(char_u *str);
 char_u *eval_client_expr_to_string(char_u *expr);
 char_u *serverConvert(char_u *client_enc, char_u *data, char_u **tofree);
-int fkmap(int c);
-char_u *lrswap(char_u *ibuf);
-char_u *lrFswap(char_u *cmdbuf, int len);
-char_u *lrF_sub(char_u *ibuf);
-int cmdl_fkmap(int c);
-int F_isalpha(int c);
-int F_isdigit(int c);
-int F_ischar(int c);
-void farsi_f8(cmdarg_T *cap);
-void farsi_f9(cmdarg_T *cap);
-int arabic_shape(int c, int *ccp, int *c1p, int prev_c, int prev_c1, int next_c);
 /* vim: set ft=c : */
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1983,
+/**/
     1982,
 /**/
     1981,