summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-02-16 15:10:30 +0100
committerBram Moolenaar <Bram@vim.org>2019-02-16 15:10:30 +0100
commit14184a3133b9a6ee5f711d493c04e41ba4fa7c2f (patch)
tree2fefdfea751bfbfdbbec793f880073bd8387bb4f
parent6902c0eb27a3e4479445badfef31443f2227fe60 (diff)
downloadvim-git-14184a3133b9a6ee5f711d493c04e41ba4fa7c2f.tar.gz
patch 8.1.0932: Farsi support is outdated and unusedv8.1.0932
Problem: Farsi support is outdated and unused. Solution: Delete the Farsi support.
-rw-r--r--Filelist5
-rw-r--r--farsi/README.txt2
-rwxr-xr-xfarsi/fonts/DOS/far-a01.combin4673 -> 0 bytes
-rw-r--r--farsi/fonts/SunOs/far-a01.fbbin14988 -> 0 bytes
-rw-r--r--farsi/fonts/UNIXs/far-a01.f16bin4096 -> 0 bytes
-rw-r--r--farsi/fonts/UNIXs/far-a01.pcf.Zbin7181 -> 0 bytes
-rw-r--r--farsi/fonts/UNIXs/far-a01.pcf.gzbin5350 -> 0 bytes
-rw-r--r--farsi/fonts/WINDOWS/far-a01.fonbin17408 -> 0 bytes
-rw-r--r--runtime/doc/farsi.txt261
-rw-r--r--runtime/doc/options.txt14
-rw-r--r--runtime/doc/quickref.txt2
-rw-r--r--runtime/doc/starting.txt5
-rw-r--r--src/Make_bc5.mak1
-rw-r--r--src/Make_cyg_ming.mak3
-rw-r--r--src/Make_dice.mak4
-rw-r--r--src/Make_ivc.mak5
-rw-r--r--src/Make_manx.mak6
-rw-r--r--src/Make_morph.mak1
-rw-r--r--src/Make_mvc.mak6
-rw-r--r--src/Make_sas.mak5
-rw-r--r--src/Make_vms.mms173
-rw-r--r--src/Makefile212
-rwxr-xr-xsrc/auto/configure15
-rw-r--r--src/charset.c20
-rw-r--r--src/config.h.in3
-rw-r--r--src/configure.ac13
-rw-r--r--src/edit.c51
-rw-r--r--src/evalfunc.c3
-rw-r--r--src/ex_cmds.c9
-rw-r--r--src/ex_getln.c122
-rw-r--r--src/farsi.c2179
-rw-r--r--src/farsi.h234
-rw-r--r--src/getchar.c9
-rw-r--r--src/globals.h11
-rw-r--r--src/main.c21
-rw-r--r--src/normal.c9
-rw-r--r--src/option.c83
-rw-r--r--src/proto.h3
-rw-r--r--src/proto/farsi.pro12
-rw-r--r--src/screen.c4
-rw-r--r--src/search.c12
-rw-r--r--src/structs.h4
-rw-r--r--src/testdir/Make_all.mak2
-rw-r--r--src/testdir/test_farsi.vim133
-rw-r--r--src/version.c6
-rw-r--r--src/window.c6
46 files changed, 240 insertions, 3429 deletions
diff --git a/Filelist b/Filelist
index 211b48767..c621f8c93 100644
--- a/Filelist
+++ b/Filelist
@@ -37,8 +37,6 @@ SRC_ALL = \
src/ex_docmd.c \
src/ex_eval.c \
src/ex_getln.c \
- src/farsi.c \
- src/farsi.h \
src/feature.h \
src/fileio.c \
src/findfile.c \
@@ -169,7 +167,6 @@ 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/findfile.pro \
src/proto/fold.pro \
@@ -837,8 +834,6 @@ EXTRA = \
$(SRC_EXTRA) \
README_extra.txt \
src/VisVim/VisVim.dll \
- farsi/README.txt \
- farsi/fonts/*/far-* \
runtime/vimlogo.xpm \
src/tee/Makefile \
src/tee/Make_mvc.mak \
diff --git a/farsi/README.txt b/farsi/README.txt
deleted file mode 100644
index ef6129fb6..000000000
--- a/farsi/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-For information about installation of Farsi fonts and Vim usage in Farsi mode,
-refer to the Farsi help file by typing ":help farsi" in Vim.
diff --git a/farsi/fonts/DOS/far-a01.com b/farsi/fonts/DOS/far-a01.com
deleted file mode 100755
index ebd06caed..000000000
--- a/farsi/fonts/DOS/far-a01.com
+++ /dev/null
Binary files differ
diff --git a/farsi/fonts/SunOs/far-a01.fb b/farsi/fonts/SunOs/far-a01.fb
deleted file mode 100644
index c353f8531..000000000
--- a/farsi/fonts/SunOs/far-a01.fb
+++ /dev/null
Binary files differ
diff --git a/farsi/fonts/UNIXs/far-a01.f16 b/farsi/fonts/UNIXs/far-a01.f16
deleted file mode 100644
index 471eb3a3a..000000000
--- a/farsi/fonts/UNIXs/far-a01.f16
+++ /dev/null
Binary files differ
diff --git a/farsi/fonts/UNIXs/far-a01.pcf.Z b/farsi/fonts/UNIXs/far-a01.pcf.Z
deleted file mode 100644
index d8e44605f..000000000
--- a/farsi/fonts/UNIXs/far-a01.pcf.Z
+++ /dev/null
Binary files differ
diff --git a/farsi/fonts/UNIXs/far-a01.pcf.gz b/farsi/fonts/UNIXs/far-a01.pcf.gz
deleted file mode 100644
index ab6fa9ddd..000000000
--- a/farsi/fonts/UNIXs/far-a01.pcf.gz
+++ /dev/null
Binary files differ
diff --git a/farsi/fonts/WINDOWS/far-a01.fon b/farsi/fonts/WINDOWS/far-a01.fon
deleted file mode 100644
index 3121097d8..000000000
--- a/farsi/fonts/WINDOWS/far-a01.fon
+++ /dev/null
Binary files differ
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index 493714e4d..27298593f 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt* For Vim version 8.1. Last change: 2015 Aug 29
+*farsi.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
@@ -9,261 +9,12 @@ Right to Left and Farsi Mapping for Vim *farsi* *Farsi*
{Vi does not have any of these commands}
*E27*
-In order to use right-to-left and Farsi mapping support, it is necessary to
-compile Vim with the |+farsi| feature.
+Farsi support has been removed in patch 8.1.0932. At that time it was
+outdated and unused.
-These functions have been made by Mortaza G. Shiran <shiran@jps.net>
+If you would like to bring Farsi support back, please have a look at the old
+Farsi code, as it was present at the 8.1 release. It should be merged with
+Arabic support using the Unicode character set.
-Introduction
-------------
-In right-to-left oriented files the characters appear on the screen from right
-to left. This kind of file is most useful when writing Farsi documents,
-composing faxes or writing Farsi memos.
-
-The commands, prompts and help files are not in Farsi, therefore the user
-interface remains the standard Vi interface.
-
-
-Highlights
-----------
-o Editing left-to-right files as in the original Vim, no change.
-
-o Viewing and editing files in right-to-left windows. File orientation is
- per window, so it is possible to view the same file in right-to-left and
- left-to-right modes, simultaneously.
-
-o Compatibility to the original Vim. Almost all features work in
- right-to-left mode (see bugs below).
-
-o Changing keyboard mapping and reverse insert modes using a single
- command.
-
-o Backing from reverse insert mode to the correct place in the file
- (if possible).
-
-o While in Farsi mode, numbers are entered from left to right. Upon entering
- a none number character, that character will be inserted just into the
- left of the last number.
-
-o No special terminal with right-to-left capabilities is required. The
- right-to-left changes are completely hardware independent. Only
- Farsi font is necessary.
-
-o Farsi keymapping on the command line in reverse insert mode.
-
-o Toggling between left-to-right and right-to-left via F8 function key.
-
-o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
- function key. Since this makes sense only for the text written in
- right-to-left mode, this function is also supported only in right-to-left
- mode.
-
-Farsi Fonts *farsi-fonts*
------------
-
-The following files are found in the subdirectories of the '$VIM/farsi/fonts'
-directory:
-
- + far-a01.pcf X Windows fonts for Unix including Linux systems
- + far-a01.bf X Windows fonts for SunOS
- + far-a01.f16 a screen fonts for Unix including Linux systems
- + far-a01.fon a monospaced fonts for Windows NT/95/98
- + far-a01.com a screen fonts for DOS
-
-
-Font Installation
------------------
-
-o Installation of fonts for MS Window systems (NT/95/98)
-
- From 'Control Panel' folder, start the 'Fonts' program. Then from 'file'
- menu item select 'Install New Fonts ...'. Browse and select the
- 'far-a01.fon', then follow the installation guide.
- NOTE: several people have reported that this does not work. The solution
- is unknown.
-
-o Installation of fonts for X Window systems (Unix/Linux)
-
- Depending on your system, copy far-a01.pcf.Z or far-a01.pcf.gz into a
- directory of your choice. Change to the directory containing the Farsi
- fonts and execute the following commands:
-
- > mkfontdir
- > xset +fp path_name_of_farsi_fonts_directory
-
-o Installation of fonts for X Window systems (SunOS)
-
- Copy far-a01.bf font into a directory of your choice.
- Change to the directory containing the far-a01.fb fonts and
- execute the following commands:
-
- > fldfamily
- > xset +fp path_name_of_fonts_directory
-
-o Installation of ASCII screen fonts (Unix/Linux)
-
- For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts
- directory and execute the setfont program as "setfont far-a01.f16". For
- other systems (e.g. SCO Unix), please refer to the fonts installation
- section of your system administration manuals.
-
-o Installation of ASCII screen fonts (DOS)
-
- After system power on, prior to the first use of Vim, upload the Farsi
- fonts by executing the far-a01.com font uploading program.
-
-
-Usage
------
-Prior to starting Vim, the environment in which Vim can run in Farsi mode,
-must be set. In addition to installation of Farsi fonts, following points
-refer to some of the system environments, which you may need to set:
-Key code mapping, loading graphic card in ASCII screen mode, setting the IO
-driver in 8 bit clean mode ... .
-
-o Setting the Farsi fonts
-
- + For Vim GUI set the 'guifont' to far-a01. This is done by entering
- ':set guifont=far-a01' in the Vim window.
-
- You can have 'guifont' set to far-a01 by Vim during the Vim startup
- by appending the ':set guifont=far-a01' into your .vimrc file
- (in case of NT/95/98 platforms _vimrc).
-
- Under the X Window environment, you can also start Vim with the
- '-fn far-a01' option.
-
- + For Vim within a xterm, start a xterm with the Farsi fonts (e.g.
- kterm -fn far-a01). Then start Vim inside the kterm.
-
- + For Vim under DOS, prior to the first usage of Vim, upload the Farsi
- fonts by executing the far-a01.com fonts uploading program.
-
-o Farsi Keymapping Activation
-
- To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'.
- This is done by entering ':set akm' or ':set fk' in the Vim window.
- You can have 'altkeymap' or 'fkmap' set as default by appending ':set akm'
- or ':set fk' in your .vimrc file or _vimrc in case of NT/95/98 platforms.
-
- To turn off the Farsi keymapping as a default second language keymapping,
- reset the 'altkeymap' by entering ':set noakm'.
-
-o right-to-left Farsi Mode
-
- By default Vim starts in Left-to-right mode. Following are ways to change
- the window orientation:
-
- + Start Vim with the -F option (e.g. vim -F ...).
-
- + Use the F8 function key to toggle between left-to-right and right-to-left.
-
- + While in Left-to-right mode, enter 'set rl' in the command line ('rl' is
- the abbreviation for rightleft).
-
- + Put the 'set rl' line in your '.vimrc' file to start Vim in
- right-to-left mode permanently.
-
-Encoding
---------
-
-The letter encoding used is the Vim extended ISIR-3342 standard with a built
-in function to convert between Vim extended ISIR-3342 and ISIR-3342 standard.
-
-For document portability reasons, the letter encoding is kept the same across
-different platforms (i.e. UNIX's, NT/95/98, MS DOS, ...).
-
-
-o Keyboard
-
- + CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin
- mode as follows:
-
- + CTRL-_ moves the cursor to the end of the typed text in edit mode.
-
- + CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/
- Latin. The Farsi text is then entered in reverse insert mode.
-
- + F8 - Toggles between left-to-right and right-to-left.
-
- + F9 - Toggles the encoding between ISIR-3342 standard and Vim extended
- ISIR-3342 (supported only in right-to-left mode).
-
- + Keyboard mapping is based on the Iranian ISIRI-2901 standard.
- Following table shows the keyboard mapping while Farsi(akm) mode set:
-
- -------------------------------------
- ` 1 2 3 4 5 6 7 8 9 0 - =
- ¢ ± ² ³ ´ µ ¶ · ¸ ¹ ° ­ ½
- -------------------------------------
- ~ ! @ # $ % ^ & * ( ) _ +
- ~ £ § ® ¤ ¥ ª ¬ è ¨ © é «
- -------------------------------------
- q w e r t z u i o p [ ]
- Ó Ò Æ Ù Ø Õ Ö à Ê É Ç ˆ
- -------------------------------------
- Q W E R T Z U I O P { }
- ÷ õ ô ó ò ý ð ö [ ] { }
- -------------------------------------
- a s d f g h j k l ; ' \
- Ñ Ð á Ã Ü Á Å Þ Ý Ú Û ë
- -------------------------------------
- A S D F G H J K L : " |
- ù û  þ ú ø À ü æ ç º » ê
- -------------------------------------
- < y x c v b n m , . /
- ¾ × Ô Î Í Ì Ë Ä ß ¦ ¯
- -------------------------------------
- > Y X C V B N M < > ?
- ¼ ñ Ô Ï Í ¡ Ë Â ¾ ¼ ¿
- -------------------------------------
-
-Note:
- ¡ stands for Farsi PSP (break without space)
-
- ¢ stands for Farsi PCN (for HAMZE attribute)
-
-Restrictions
-------------
-
-o In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not
- supported.
-
-o If you change the character mapping between Latin/Farsi, the redo buffer
- will be reset (emptied). That is, redo is valid and will function (using
- '.') only within the mode you are in.
-
-o While numbers are entered in Farsi mode, the redo buffer will be reset
- (emptied). That is, you cannot redo the last changes (using '.') after
- entering numbers.
-
-o While in left-to-right mode and Farsi mode set, CTRL-R is not supported.
-
-o While in right-to-left mode, the search on 'Latin' pattern does not work,
- except if you enter the Latin search pattern in reverse.
-
-o In command mode there is no support for entering numbers from left
- to right and also for the sake of flexibility the keymapping logic is
- restricted.
-
-o Under the X Window environment, if you want to run Vim within a xterm
- terminal emulator and Farsi mode set, you need to have an ANSI compatible
- xterm terminal emulator. This is because the letter codes above 128 decimal
- have certain meanings in the standard xterm terminal emulator.
-
- Note: Under X Window environment, Vim GUI works fine in Farsi mode.
- This eliminates the need of any xterm terminal emulator.
-
-
-Bugs
-----
-While in insert/replace and Farsi mode set, if you repeatedly change the
-cursor position (via cursor movement) and enter new text and then try to undo
-the last change, the undo will lag one change behind. But as you continue to
-undo, you will reach the original line of text. You can also use U to undo all
-changes made in the current line.
-
-For more information about the bugs refer to rileft.txt.
-
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 3b62c0f53..e664c9621 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -688,13 +688,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{only available when compiled with the |+farsi|
feature}
- When on, the second language is Farsi. In editing mode CTRL-_ toggles
- the keyboard map between Farsi and English, when 'allowrevins' set.
-
- When off, the keyboard map toggles between Hebrew and English. This
- is useful to start the Vim in native mode i.e. English (left-to-right
- mode) and have default second language Farsi or Hebrew (right-to-left
- mode). See |farsi.txt|.
+ This option was for using Farsi, which has been removed. See
+ |farsi.txt|.
*'ambiwidth'* *'ambw'*
'ambiwidth' 'ambw' string (default: "single")
@@ -3301,9 +3296,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{only available when compiled with the |+rightleft|
feature}
- When on, the keyboard is mapped for the Farsi character set.
- Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
- toggle this option |i_CTRL-_|. See |farsi.txt|.
+ This option was for using Farsi, which has been removed. See
+ |farsi.txt|.
*'foldclose'* *'fcl'*
'foldclose' 'fcl' string (default "")
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 75f400f6d..4c6e249e8 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -600,7 +600,6 @@ In Insert or Command-line mode:
Short explanation of each option: *option-list*
'aleph' 'al' ASCII code of the letter Aleph (Hebrew)
'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode
-'altkeymap' 'akm' for default second language (Farsi/Hebrew)
'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width
'antialias' 'anti' Mac OS X: use smooth, antialiased fonts
'autochdir' 'acd' change directory to the file in the current window
@@ -700,7 +699,6 @@ Short explanation of each option: *option-list*
'filetype' 'ft' type of file, used for autocommands
'fillchars' 'fcs' characters to use for displaying special items
'fixendofline' 'fixeol' make sure last line in file has <EOL>
-'fkmap' 'fk' Farsi keyboard mapping
'foldclose' 'fcl' close a fold when the cursor leaves it
'foldcolumn' 'fdc' width of the column used to indicate folds
'foldenable' 'fen' set to display all folds open
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 6289e9c8f..9f6472670 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -321,9 +321,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
and exits.) {not in Vi}
*-F*
--F Farsi mode. Sets the 'fkmap' and 'rightleft' options on.
- (Only when compiled with |+rightleft| and |+farsi| features,
- otherwise Vim gives an error message and exits.) {not in Vi}
+-F This was used for Farsi mode, which has been removed.
+ See |farsi.txt|.
*-H*
-H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.
diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak
index eb38dd7cc..30fe727b2 100644
--- a/src/Make_bc5.mak
+++ b/src/Make_bc5.mak
@@ -542,7 +542,6 @@ vimobj = \
$(OBJDIR)\ex_docmd.obj \
$(OBJDIR)\ex_eval.obj \
$(OBJDIR)\ex_getln.obj \
- $(OBJDIR)\farsi.obj \
$(OBJDIR)\fileio.obj \
$(OBJDIR)\findfile.obj \
$(OBJDIR)\fold.obj \
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
index 48ce3974d..f6ae85316 100644
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -714,7 +714,6 @@ OBJ = \
$(OUTDIR)/ex_docmd.o \
$(OUTDIR)/ex_eval.o \
$(OUTDIR)/ex_getln.o \
- $(OUTDIR)/farsi.o \
$(OUTDIR)/fileio.o \
$(OUTDIR)/findfile.o \
$(OUTDIR)/fold.o \
@@ -1005,7 +1004,7 @@ endif
$(MAKE) -C tee clean
###########################################################################
-INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
+INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
GUI_INCL = gui.h
diff --git a/src/Make_dice.mak b/src/Make_dice.mak
index ffce805d3..2025974fc 100644
--- a/src/Make_dice.mak
+++ b/src/Make_dice.mak
@@ -44,7 +44,6 @@ SRC = \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
- farsi.c \
fileio.c \
findfile.c \
fold.c \
@@ -104,7 +103,6 @@ OBJ = o/arabic.o \
o/ex_docmd.o \
o/ex_eval.o \
o/ex_getln.o \
- o/farsi.o \
o/fileio.o \
o/findfile.o \
o/fold.o \
@@ -201,8 +199,6 @@ o/ex_eval.o: ex_eval.c $(SYMS) ex_cmds.h
o/ex_getln.o: ex_getln.c $(SYMS)
-o/farsi.o: farsi.c $(SYMS)
-
o/fileio.o: fileio.c $(SYMS)
o/findfile.o: findfile.c $(SYMS)
diff --git a/src/Make_ivc.mak b/src/Make_ivc.mak
index a02ba960f..26367e096 100644
--- a/src/Make_ivc.mak
+++ b/src/Make_ivc.mak
@@ -228,7 +228,6 @@ LINK32_OBJS= \
"$(INTDIR)/ex_docmd.obj" \
"$(INTDIR)/ex_eval.obj" \
"$(INTDIR)/ex_getln.obj" \
- "$(INTDIR)/farsi.obj" \
"$(INTDIR)/fileio.obj" \
"$(INTDIR)/findfile.obj" \
"$(INTDIR)/fold.obj" \
@@ -413,10 +412,6 @@ 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
diff --git a/src/Make_manx.mak b/src/Make_manx.mak
index 5314a86a1..2cbc3df6a 100644
--- a/src/Make_manx.mak
+++ b/src/Make_manx.mak
@@ -54,7 +54,6 @@ SRC = arabic.c \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
- farsi.c \
fileio.c \
findfile.c \
fold.c \
@@ -116,7 +115,6 @@ OBJ = obj/arabic.o \
obj/ex_docmd.o \
obj/ex_eval.o \
obj/ex_getln.o \
- obj/farsi.o \
obj/fileio.o \
obj/findfile.o \
obj/fold.o \
@@ -176,7 +174,6 @@ PRO = proto/arabic.pro \
proto/ex_docmd.pro \
proto/ex_eval.pro \
proto/ex_getln.pro \
- proto/farsi.pro \
proto/fileio.pro \
proto/findfile.pro \
proto/fold.pro \
@@ -317,9 +314,6 @@ 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
diff --git a/src/Make_morph.mak b/src/Make_morph.mak
index a6e0dae17..af231fb7b 100644
--- a/src/Make_morph.mak
+++ b/src/Make_morph.mak
@@ -42,7 +42,6 @@ SRC = arabic.c \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
- farsi.c \
fileio.c \
findfile.c \
fold.c \
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index c948f3771..c81fbd296 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -694,7 +694,7 @@ CFLAGS = $(CFLAGS) /Zl /MTd
!include Make_all.mak
!include testdir\Make_all.mak
-INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
+INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
@@ -719,7 +719,6 @@ OBJ = \
$(OUTDIR)\ex_docmd.obj \
$(OUTDIR)\ex_eval.obj \
$(OUTDIR)\ex_getln.obj \
- $(OUTDIR)\farsi.obj \
$(OUTDIR)\fileio.obj \
$(OUTDIR)\findfile.obj \
$(OUTDIR)\fold.obj \
@@ -1404,8 +1403,6 @@ $(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL)
$(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL)
-$(OUTDIR)/farsi.obj: $(OUTDIR) farsi.c $(INCL)
-
$(OUTDIR)/fileio.obj: $(OUTDIR) fileio.c $(INCL)
$(OUTDIR)/findfile.obj: $(OUTDIR) findfile.c $(INCL)
@@ -1646,7 +1643,6 @@ proto.h: \
proto/ex_docmd.pro \
proto/ex_eval.pro \
proto/ex_getln.pro \
- proto/farsi.pro \
proto/fileio.pro \
proto/findfile.pro \
proto/getchar.pro \
diff --git a/src/Make_sas.mak b/src/Make_sas.mak
index deaa5eb5d..6ba00fbd6 100644
--- a/src/Make_sas.mak
+++ b/src/Make_sas.mak
@@ -107,7 +107,6 @@ SRC = \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
- farsi.c \
fileio.c \
findfile.c \
fold.c \
@@ -168,7 +167,6 @@ OBJ = \
ex_docmd.o \
ex_eval.o \
ex_getln.o \
- farsi.o \
fileio.o \
findfile.o \
fold.o \
@@ -229,7 +227,6 @@ PRO = \
proto/ex_docmd.pro \
proto/ex_eval.pro \
proto/ex_getln.pro \
- proto/farsi.pro \
proto/fileio.pro \
proto/findfile.pro \
proto/fold.pro \
@@ -362,8 +359,6 @@ 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
findfile.o: findfile.c
diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index 92f5ab12e..d40c82022 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
-# Last change: 2019 Jan 18
+# Last change: 2019 Feb 16
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
@@ -315,7 +315,7 @@ ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \
SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \
crypt.c crypt_zip.c dict.c diff.c digraph.c edit.c eval.c evalfunc.c \
ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c if_cscope.c \
- if_xcmdsrv.c farsi.c fileio.c findfile.c fold.c getchar.c hardcopy.c \
+ if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c hardcopy.c \
hashtab.c indent.c json.c list.c main.c mark.c menu.c mbyte.c \
memfile.c memline.c message.c misc1.c misc2.c move.c normal.c ops.c \
option.c popupmnu.c quickfix.c regexp.c search.c sha256.c sign.c \
@@ -328,7 +328,7 @@ SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \
OBJ = arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj \
charset.obj crypt.obj crypt_zip.obj dict.obj diff.obj digraph.obj \
edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj ex_docmd.obj \
- ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj farsi.obj \
+ ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
fileio.obj findfile.obj fold.obj getchar.obj hardcopy.obj hashtab.obj \
indent.obj json.obj list.obj main.obj mark.obj menu.obj memfile.obj \
memline.obj message.obj misc1.obj misc2.obj move.obj mbyte.obj \
@@ -514,279 +514,278 @@ blob.obj : blob.c vim.h [.auto]config.h feature.h os_unix.h
buffer.obj : buffer.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
charset.obj : charset.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
crypt.obj : crypt.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
crypt_zip.obj : crypt_zip.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
dict.obj : dict.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
diff.obj : diff.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
digraph.obj : digraph.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
edit.obj : edit.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
eval.obj : eval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h version.h
evalfunc.obj : evalfunc.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
ex_cmds.obj : ex_cmds.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
ex_cmds2.obj : ex_cmds2.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
ex_docmd.obj : ex_docmd.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
ex_eval.obj : ex_eval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
ex_getln.obj : ex_getln.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
-farsi.obj : farsi.c vim.h
+ globals.h arabic.h
fileio.obj : fileio.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
findfile.obj : findfile.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
fold.obj : fold.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
getchar.obj : getchar.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
hardcopy.obj : hardcopy.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
hashtab.obj : hashtab.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h if_cscope.h
+ globals.h arabic.h if_cscope.h
if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
if_mzsch.obj : if_mzsch.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro ex_cmds.h proto.h \
- globals.h farsi.h arabic.h if_mzsch.h
+ globals.h arabic.h if_mzsch.h
indent.obj : indent.c vim.h [.auto]config.h feature.h os_unix.h
json.obj : json.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h version.h
list.obj : list.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
main.obj : main.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
- arabic.h farsi.c arabic.c
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
+ arabic.h arabic.c
mark.obj : mark.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
memfile.obj : memfile.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
memline.obj : memline.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
menu.obj : menu.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
message.obj : message.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
misc1.obj : misc1.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h version.h
misc2.obj : misc2.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
move.obj : move.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
mbyte.obj : mbyte.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
normal.obj : normal.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
option.obj : option.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
os_unix.obj : os_unix.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h os_unixx.h
+ globals.h arabic.h os_unixx.h
os_vms.obj : os_vms.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h os_unixx.h
+ globals.h arabic.h os_unixx.h
pathdef.obj : pathdef.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
popupmnu.obj : popupmnu.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
quickfix.obj : quickfix.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
regexp.obj : regexp.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
screen.obj : screen.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
search.obj : search.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
sha256.obj : sha256.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
sign.obj : sign.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
spell.obj : spell.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
spellfile.obj : spellfile.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
syntax.obj : syntax.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
tag.obj : tag.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
term.obj : term.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
termlib.obj : termlib.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
ui.obj : ui.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
undo.obj : undo.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
userfunc.obj : userfunc.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
version.obj : version.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
window.obj : window.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
gui.obj : gui.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
gui_gtk.obj : gui_gtk.c gui_gtk_f.h vim.h [.auto]config.h feature.h \
os_unix.h ascii.h keymap.h term.h macros.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
- proto.h globals.h farsi.h arabic.h [-.pixmaps]stock_icons.h
+ proto.h globals.h arabic.h [-.pixmaps]stock_icons.h
gui_gtk_f.obj : gui_gtk_f.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h gui_gtk_f.h
+ globals.h arabic.h gui_gtk_f.h
gui_motif.obj : gui_motif.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
+ globals.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
[-.pixmaps]generic.xpm [-.pixmaps]info.xpm [-.pixmaps]quest.xpm
gui_athena.obj : gui_athena.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h gui_at_sb.h
+ globals.h arabic.h gui_at_sb.h
gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
+ globals.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm
gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h [-.runtime]vim32x32.xpm \
+ globals.h arabic.h [-.runtime]vim32x32.xpm \
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm [-.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 \
@@ -806,60 +805,60 @@ gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
gui_at_sb.obj : gui_at_sb.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h gui_at_sb.h
+ globals.h arabic.h gui_at_sb.h
gui_at_fs.obj : gui_at_fs.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h gui_at_sb.h
+ globals.h arabic.h gui_at_sb.h
pty.obj : pty.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
hangulin.obj : hangulin.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
if_perl.obj : [.auto]if_perl.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
if_perlsfio.obj : if_perlsfio.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
if_python.obj : if_python.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
if_tcl.obj : if_tcl.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
if_ruby.obj : if_ruby.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
gui_beval.obj : gui_beval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h
+ globals.h arabic.h
workshop.obj : workshop.c [.auto]config.h integration.h vim.h feature.h \
os_unix.h ascii.h keymap.h term.h macros.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
- proto.h globals.h farsi.h arabic.h version.h workshop.h
+ proto.h globals.h arabic.h version.h workshop.h
wsdebug.obj : wsdebug.c
integration.obj : integration.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h integration.h
+ globals.h arabic.h integration.h
netbeans.obj : netbeans.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h farsi.h arabic.h version.h
+ globals.h arabic.h version.h
gui_xmdlg.obj : gui_xmdlg.c [.auto]config.h vim.h feature.h os_unix.h
gui_xmebw.obj : gui_xmebw.c [.auto]config.h vim.h feature.h os_unix.h
xdiffi.obj : [.xdiff]xdiffi.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
diff --git a/src/Makefile b/src/Makefile
index 5575902a3..be41f7725 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -492,9 +492,9 @@ CClink = $(CC)
# MULTIBYTE - To edit multi-byte characters.
# This is now always enabled.
-# When building with at least "big" features, right-left, Arabic and Farsi
+# When building with at least "big" features, right-left and Arabic
# features are enabled. Use this to disable them.
-#CONF_OPT_MULTIBYTE = --disable-rightleft --disable-farsi --disable-arabic
+#CONF_OPT_MULTIBYTE = --disable-rightleft --disable-arabic
# NLS - National Language Support
# Uncomment this when you do not want to support translated messages, even
@@ -1590,7 +1590,6 @@ BASIC_SRC = \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
- farsi.c \
fileio.c \
findfile.c \
fold.c \
@@ -1704,7 +1703,6 @@ OBJ_COMMON = \
objects/ex_docmd.o \
objects/ex_eval.o \
objects/ex_getln.o \
- objects/farsi.o \
objects/fileio.o \
objects/findfile.o \
objects/fold.o \
@@ -1831,7 +1829,6 @@ PRO_AUTO = \
ex_docmd.pro \
ex_eval.pro \
ex_getln.pro \
- farsi.pro \
fileio.pro \
findfile.pro \
fold.pro \
@@ -2996,9 +2993,6 @@ 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
@@ -3392,290 +3386,286 @@ $(APPDIR)/Contents:
objects/arabic.o: arabic.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/autocmd.o: autocmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/beval.o: beval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/blob.o: blob.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/blowfish.o: blowfish.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/buffer.o: buffer.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/charset.o: charset.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/crypt.o: crypt.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/crypt_zip.o: crypt_zip.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/dict.o: dict.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/diff.o: diff.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h xdiff/xdiff.h vim.h
+ proto.h globals.h arabic.h xdiff/xdiff.h vim.h
objects/digraph.o: digraph.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/edit.o: edit.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/eval.o: eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/evalfunc.o: evalfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/ex_cmds.o: ex_cmds.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/ex_cmds2.o: ex_cmds2.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/ex_docmd.o: ex_docmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h ex_cmdidxs.h
+ proto.h globals.h arabic.h ex_cmdidxs.h
objects/ex_eval.o: ex_eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/ex_getln.o: ex_getln.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
-objects/farsi.o: farsi.c vim.h protodef.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
- proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/fileio.o: fileio.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/findfile.o: findfile.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \
+ proto.h globals.h arabic.h libvterm/include/vterm.h \
libvterm/include/vterm_keycodes.h
objects/fold.o: fold.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/getchar.o: getchar.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/hardcopy.o: hardcopy.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/hashtab.o: hashtab.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/if_cscope.o: if_cscope.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h if_cscope.h
+ proto.h globals.h arabic.h if_cscope.h
objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/indent.o: indent.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/json.o: json.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/list.o: list.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/main.o: main.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/mark.o: mark.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/memfile.o: memfile.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/memline.o: memline.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/menu.o: menu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/message.o: message.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/misc1.o: misc1.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/misc2.o: misc2.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/mbyte.o: mbyte.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/ops.o: ops.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/option.o: option.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/os_unix.o: os_unix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h os_unixx.h
+ proto.h globals.h arabic.h os_unixx.h
objects/pathdef.o: auto/pathdef.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/popupmnu.o: popupmnu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/pty.o: pty.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/quickfix.o: quickfix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/regexp.o: regexp.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h regexp_nfa.c
+ proto.h globals.h arabic.h regexp_nfa.c
objects/screen.o: screen.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/search.o: search.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/sha256.o: sha256.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/sign.o: sign.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/spell.o: spell.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/spellfile.o: spellfile.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/syntax.o: syntax.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/tag.o: tag.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/term.o: term.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \
+ proto.h globals.h arabic.h libvterm/include/vterm.h \
libvterm/include/vterm_keycodes.h
objects/terminal.o: terminal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \
+ proto.h globals.h arabic.h libvterm/include/vterm.h \
libvterm/include/vterm_keycodes.h
objects/textprop.o: textprop.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/ui.o: ui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/undo.o: undo.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/userfunc.o: userfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/version.o: version.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/window.o: window.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/gui.o: gui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/gui_gtk.o: gui_gtk.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_gtk_f.h
+ proto.h globals.h arabic.h gui_gtk_f.h
objects/gui_gtk_f.o: gui_gtk_f.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_gtk_f.h
+ proto.h globals.h arabic.h gui_gtk_f.h
objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \
+ proto.h globals.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 \
@@ -3696,15 +3686,15 @@ objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \
objects/gui_xmdlg.o: gui_xmdlg.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/gui_xmebw.o: gui_xmebw.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_xmebwp.h gui_xmebw.h
+ proto.h globals.h arabic.h gui_xmebwp.h gui_xmebw.h
objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_at_sb.h gui_x11_pm.h \
+ proto.h globals.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 \
@@ -3723,85 +3713,85 @@ objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \
objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
+ proto.h globals.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
../runtime/vim32x32.xpm ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
objects/gui_x11.o: gui_x11.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h ../runtime/vim32x32.xpm \
+ proto.h globals.h arabic.h ../runtime/vim32x32.xpm \
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
objects/gui_at_sb.o: gui_at_sb.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_at_sb.h
+ proto.h globals.h arabic.h gui_at_sb.h
objects/gui_at_fs.o: gui_at_fs.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h gui_at_sb.h
+ proto.h globals.h arabic.h gui_at_sb.h
objects/json_test.o: json_test.c main.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h json.c
+ proto.h globals.h arabic.h json.c
objects/kword_test.o: kword_test.c main.c vim.h protodef.h auto/config.h \
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
- ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h charset.c
+ ex_cmds.h spell.h proto.h globals.h arabic.h charset.c
objects/memfile_test.o: memfile_test.c main.c vim.h protodef.h auto/config.h \
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
- ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h memfile.c
+ ex_cmds.h spell.h proto.h globals.h arabic.h memfile.c
objects/message_test.o: message_test.c main.c vim.h protodef.h auto/config.h \
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
- ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h message.c
+ ex_cmds.h spell.h proto.h globals.h arabic.h message.c
objects/hangulin.o: hangulin.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/if_lua.o: if_lua.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/if_mzsch.o: if_mzsch.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h if_mzsch.h
+ proto.h globals.h arabic.h if_mzsch.h
objects/if_perl.o: auto/if_perl.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/if_perlsfio.o: if_perlsfio.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/if_python.o: if_python.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h if_py_both.h
+ proto.h globals.h arabic.h if_py_both.h
objects/if_python3.o: if_python3.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h if_py_both.h
+ proto.h globals.h arabic.h if_py_both.h
objects/if_tcl.o: if_tcl.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/if_ruby.o: if_ruby.c protodef.h auto/config.h vim.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/gui_beval.o: gui_beval.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/netbeans.o: netbeans.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h version.h
+ proto.h globals.h arabic.h version.h
objects/channel.o: channel.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h farsi.h arabic.h
+ proto.h globals.h arabic.h
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
objects/encoding.o: libvterm/src/encoding.c libvterm/src/vterm_internal.h \
libvterm/include/vterm.h libvterm/include/vterm_keycodes.h \
@@ -3833,7 +3823,7 @@ objects/xdiffi.o: xdiff/xdiffi.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
- farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
+ arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3842,7 +3832,7 @@ objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
- farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
+ arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3851,7 +3841,7 @@ objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
- farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
+ arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3860,7 +3850,7 @@ objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
- farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
+ arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3869,7 +3859,7 @@ objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
- farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
+ arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3878,5 +3868,5 @@ objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
- farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
+ arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
diff --git a/src/auto/configure b/src/auto/configure
index 8052cebf6..db3e3b1e4 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -1498,7 +1498,7 @@ Optional Features:
--enable-multibyte Include multibyte editing support.
--disable-rightleft Do not include Right-to-Left language support.
--disable-arabic Do not include Arabic language support.
- --disable-farsi Do not include Farsi language support.
+ --disable-farsi Deprecated.
--enable-hangulinput Include Hangul input support.
--enable-xim Include XIM input support.
--enable-fontset Include X fontset output support.
@@ -7980,24 +7980,11 @@ $as_echo "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-farsi argument" >&5
-$as_echo_n "checking --disable-farsi argument... " >&6; }
# Check whether --enable-farsi was given.
if test "${enable_farsi+set}" = set; then :
enableval=$enable_farsi;
-else
- enable_farsi="yes"
fi
-if test "$enable_farsi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- $as_echo "#define DISABLE_FARSI 1" >>confdefs.h
-
-fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-hangulinput argument" >&5
$as_echo_n "checking --enable-hangulinput argument... " >&6; }
diff --git a/src/charset.c b/src/charset.c
index 5b091ec4d..1d66d617a 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -98,13 +98,6 @@ buf_init_chartab(
while (c <= '~')
#endif
g_chartab[c++] = 1 + CT_PRINT_CHAR;
-#ifdef FEAT_FKMAP
- if (p_altkeymap)
- {
- while (c < YE)
- g_chartab[c++] = 1 + CT_PRINT_CHAR;
- }
-#endif
while (c < 256)
{
/* UTF-8: bytes 0xa0 - 0xff are printable (latin1) */
@@ -218,11 +211,7 @@ buf_init_chartab(
/* Use the MB_ functions here, because isalpha() doesn't
* work properly when 'encoding' is "latin1" and the locale is
* "C". */
- if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c)
-#ifdef FEAT_FKMAP
- || (p_altkeymap && (F_isalpha(c) || F_isdigit(c)))
-#endif
- )
+ if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c))
{
if (i == 0) /* (re)set ID flag */
{
@@ -237,10 +226,6 @@ buf_init_chartab(
#ifndef EBCDIC
|| c > '~'
#endif
-#ifdef FEAT_FKMAP
- || (p_altkeymap
- && (F_isalpha(c) || F_isdigit(c)))
-#endif
// For double-byte we keep the cell width, so
// that we can detect it from the first byte.
) && !(enc_dbcs && MB_BYTE2LEN(c) == 2))
@@ -540,9 +525,6 @@ transchar(int c)
#else
(c >= ' ' && c <= '~')
#endif
-#ifdef FEAT_FKMAP
- || (p_altkeymap && F_ischar(c))
-#endif
)) || (c < 256 && vim_isprintc_strict(c)))
{
/* printable character */
diff --git a/src/config.h.in b/src/config.h.in
index d1aaf708e..7fe65de57 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -391,9 +391,6 @@
/* Define if you don't want to include right-left support. */
#undef DISABLE_RIGHTLEFT
-/* Define if you don't want to include Farsi support. */
-#undef DISABLE_FARSI
-
/* Define if you don't want to include Arabic support. */
#undef DISABLE_ARABIC
diff --git a/src/configure.ac b/src/configure.ac
index 2b7725b0a..2d409b3ca 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -2155,18 +2155,9 @@ else
AC_DEFINE(DISABLE_ARABIC)
fi
-dnl Farsi language support for vim will be included with big features,
-dnl unless ENABLE_FARSI is undefined.
-AC_MSG_CHECKING(--disable-farsi argument)
+dnl Farsi language support has been removed, ignore --disable-farsi
AC_ARG_ENABLE(farsi,
- [ --disable-farsi Do not include Farsi language support.],
- , [enable_farsi="yes"])
-if test "$enable_farsi" = "yes"; then
- AC_MSG_RESULT(no)
-else
- AC_MSG_RESULT(yes)
- AC_DEFINE(DISABLE_FARSI)
-fi
+ [ --disable-farsi Deprecated.],,)
AC_MSG_CHECKING(--enable-hangulinput argument)
AC_ARG_ENABLE(hangulinput,
diff --git a/src/edit.c b/src/edit.c
index 042826a87..62ff03d96 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -467,15 +467,6 @@ edit(
if (cmdchar == 'R')
{
-#ifdef FEAT_FKMAP
- if (p_fkmap && p_ri)
- {
- beep_flush();
- emsg(farsi_text_3); /* encoded in Farsi */
- State = INSERT;
- }
- else
-#endif
State = REPLACE;
}
else if (cmdchar == 'V' || cmdchar == 'v')
@@ -812,10 +803,6 @@ edit(
if (p_hkmap && KeyTyped)
c = hkmap(c); /* Hebrew mode mapping */
#endif
-#ifdef FEAT_FKMAP
- if (p_fkmap && KeyTyped)
- c = fkmap(c); /* Farsi mode mapping */
-#endif
#ifdef FEAT_INS_EXPAND
/*
@@ -6281,9 +6268,6 @@ insertchar(
&& !ISSPECIAL(c)
&& (!has_mbyte || MB_BYTE2LEN_CHECK(c) == 1)
&& i < INPUT_BUFLEN
-# ifdef FEAT_FKMAP
- && !(p_fkmap && KeyTyped) /* Farsi mode mapping moves cursor */
-# endif
&& (textwidth == 0
|| (virtcol += byte2cells(buf[i - 1])) < (colnr_T)textwidth)
&& !(!no_abbr && !vim_iswordc(c) && vim_iswordc(buf[i - 1])))
@@ -8406,23 +8390,7 @@ ins_ctrl_(void)
}
else
revins_scol = -1;
-#ifdef FEAT_FKMAP
- if (p_altkeymap)
- {
- /*
- * to be consistent also for redo command, using '.'
- * set arrow_used to true and stop it - causing to redo
- * characters entered in one mode (normal/reverse insert).
- */
- arrow_used = TRUE;
- (void)stop_arrow();
- p_fkmap = curwin->w_p_rl ^ p_ri;
- if (p_fkmap && p_ri)
- State = INSERT;
- }
- else
-#endif
- p_hkmap = curwin->w_p_rl ^ p_ri; /* be consistent! */
+ p_hkmap = curwin->w_p_rl ^ p_ri; // be consistent!
showmode();
}
#endif
@@ -8488,21 +8456,12 @@ ins_start_select(int c)
static void
ins_insert(int replaceState)
{
-#ifdef FEAT_FKMAP
- if (p_fkmap && p_ri)
- {
- beep_flush();
- emsg(farsi_text_3); /* encoded in Farsi */
- return;
- }
-#endif
-
-# ifdef FEAT_EVAL
+#ifdef FEAT_EVAL
set_vim_var_string(VV_INSERTMODE,
(char_u *)((State & REPLACE_FLAG) ? "i"
: replaceState == VREPLACE ? "v"
: "r"), 1);
-# endif
+#endif
ins_apply_autocmds(EVENT_INSERTCHANGE);
if (State & REPLACE_FLAG)
State = INSERT | (State & LANGMAP);
@@ -9916,10 +9875,6 @@ ins_eol(int c)
coladvance(getviscol());
#ifdef FEAT_RIGHTLEFT
-# ifdef FEAT_FKMAP
- if (p_altkeymap && p_fkmap)
- fkmap(NL);
-# endif
/* NL in reverse insert will always start in the end of
* current line. */
if (revins_on)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index f1cb9dc60..e9f63423a 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6268,9 +6268,6 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_SEARCH_EXTRA
"extra_search",
#endif
-#ifdef FEAT_FKMAP
- "farsi",
-#endif
#ifdef FEAT_SEARCHPATH
"file_in_path",
#endif
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index e9fa94f67..79b9bc11d 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -4911,10 +4911,6 @@ do_sub(exarg_T *eap)
}
else /* find the end of the regexp */
{
-#ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */
- if (p_altkeymap && curwin->w_p_rl)
- lrF_sub(cmd);
-#endif
which_pat = RE_LAST; /* use last used regexp */
delimiter = *cmd++; /* remember delimiter character */
pat = cmd; /* remember start of search pat */
@@ -6070,11 +6066,6 @@ ex_global(exarg_T *eap)
*cmd++ = NUL; /* replace it with a NUL */
}
-#ifdef FEAT_FKMAP /* when in Farsi mode, reverse the character flow */
- if (p_altkeymap && curwin->w_p_rl)
- lrFswap(pat,0);
-#endif
-
if (search_regcomp(pat, RE_BOTH, which_pat, SEARCH_HIS, &regmatch) == FAIL)
{
emsg(_(e_invcmd));
diff --git a/src/ex_getln.c b/src/ex_getln.c
index cba082a0b..0096737b0 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -81,10 +81,6 @@ static int hist_char2type(int c);
static int cmd_hkmap = 0; /* Hebrew mapping during command line */
#endif
-#ifdef FEAT_FKMAP
-static int cmd_fkmap = 0; /* Farsi mapping during command line */
-#endif
-
static char_u *getcmdline_int(int firstc, long count, int indent, int init_ccline);
static int cmdline_charsize(int idx);
static void set_cmdspos(void);
@@ -1043,10 +1039,6 @@ getcmdline_int(
#ifdef FEAT_RIGHTLEFT
if (cmd_hkmap)
c = hkmap(c);
-# ifdef FEAT_FKMAP
- if (cmd_fkmap)
- c = cmdl_fkmap(c);
-# endif
if (cmdmsg_rl && !KeyStuffed)
{
/* Invert horizontal movements and operations. Only when
@@ -1595,10 +1587,6 @@ getcmdline_int(
case K_DEL:
case K_KDEL:
case Ctrl_W:
-#ifdef FEAT_FKMAP
- if (cmd_fkmap && c == K_BS)
- c = K_DEL;
-#endif
if (c == K_KDEL)
c = K_DEL;
@@ -1694,13 +1682,6 @@ getcmdline_int(
case K_INS:
case K_KINS:
-#ifdef FEAT_FKMAP
- /* if Farsi mode set, we are in reverse insert mode -
- Do not change the mode */
- if (cmd_fkmap)
- beep_flush();
- else
-#endif
ccline.overstrike = !ccline.overstrike;
#ifdef CURSOR_SHAPE
ui_cursor_shape(); /* may show different cursor shape */
@@ -2309,16 +2290,7 @@ getcmdline_int(
case Ctrl__: /* CTRL-_: switch language mode */
if (!p_ari)
break;
-# ifdef FEAT_FKMAP
- if (p_altkeymap)
- {
- cmd_fkmap = !cmd_fkmap;
- if (cmd_fkmap) /* in Farsi always in Insert mode */
- ccline.overstrike = FALSE;
- }
- else /* Hebrew is default */
-# endif
- cmd_hkmap = !cmd_hkmap;
+ cmd_hkmap = !cmd_hkmap;
goto cmdline_not_changed;
#endif
@@ -2421,10 +2393,6 @@ returncmd:
cmdmsg_rl = FALSE;
#endif
-#ifdef FEAT_FKMAP
- cmd_fkmap = 0;
-#endif
-
ExpandCleanup(&xpc);
ccline.xpc = NULL;
@@ -3463,44 +3431,35 @@ put_on_cmdline(char_u *str, int len, int redraw)
msg_clr_eos();
msg_no_more = FALSE;
}
-#ifdef FEAT_FKMAP
- /*
- * If we are in Farsi command mode, the character input must be in
- * Insert mode. So do not advance the cmdpos.
- */
- if (!cmd_fkmap)
-#endif
+ if (KeyTyped)
{
- if (KeyTyped)
- {
- m = Columns * Rows;
- if (m < 0) /* overflow, Columns or Rows at weird value */
- m = MAXCOL;
- }
- else
+ m = Columns * Rows;
+ if (m < 0) /* overflow, Columns or Rows at weird value */
m = MAXCOL;
- for (i = 0; i < len; ++i)
- {
- c = cmdline_charsize(ccline.cmdpos);
- /* count ">" for a double-wide char that doesn't fit. */
- if (has_mbyte)
- correct_cmdspos(ccline.cmdpos, c);
- /* Stop cursor at the end of the screen, but do increment the
- * insert position, so that entering a very long command
- * works, even though you can't see it. */
- if (ccline.cmdspos + c < m)
- ccline.cmdspos += c;
+ }
+ else
+ m = MAXCOL;
+ for (i = 0; i < len; ++i)
+ {
+ c = cmdline_charsize(ccline.cmdpos);
+ /* count ">" for a double-wide char that doesn't fit. */
+ if (has_mbyte)
+ correct_cmdspos(ccline.cmdpos, c);
+ /* Stop cursor at the end of the screen, but do increment the
+ * insert position, so that entering a very long command
+ * works, even though you can't see it. */
+ if (ccline.cmdspos + c < m)
+ ccline.cmdspos += c;
- if (has_mbyte)
- {
- c = (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos) - 1;
- if (c > len - i - 1)
- c = len - i - 1;
- ccline.cmdpos += c;
- i += c;
- }
- ++ccline.cmdpos;
+ if (has_mbyte)
+ {
+ c = (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos) - 1;
+ if (c > len - i - 1)
+ c = len - i - 1;
+ ccline.cmdpos += c;
+ i += c;
}
+ ++ccline.cmdpos;
}
}
if (redraw)
@@ -7126,35 +7085,6 @@ write_viminfo_history(FILE *fp, int merge)
}
#endif /* FEAT_VIMINFO */
-#if defined(FEAT_FKMAP) || defined(PROTO)
-/*
- * Write a character at the current cursor+offset position.
- * It is directly written into the command buffer block.
- */
- void
-cmd_pchar(int c, int offset)
-{
- if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
- {
- emsg(_("E198: cmd_pchar beyond the command length"));
- return;
- }
- ccline.cmdbuff[ccline.cmdpos + offset] = (char_u)c;
- ccline.cmdbuff[ccline.cmdlen] = NUL;
-}
-
- int
-cmd_gchar(int offset)
-{
- if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
- {
- // emsg(_("cmd_gchar beyond the command length"));
- return NUL;
- }
- return (int)ccline.cmdbuff[ccline.cmdpos + offset];
-}
-#endif
-
#if defined(FEAT_CMDWIN) || defined(PROTO)
/*
* Open a window on the current command line and history. Allow editing in
diff --git a/src/farsi.c b/src/farsi.c
deleted file mode 100644
index 48dd991b0..000000000
--- a/src/farsi.c
+++ /dev/null
@@ -1,2179 +0,0 @@
-/* vi:set ts=8 sts=4 sw=4 noet:
- *
- * 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.
- */
-
-/*
- * farsi.c: functions for Farsi language
- */
-
-#include "vim.h"
-
-#if defined(FEAT_FKMAP) || defined(PROTO)
-
-static int F_is_TyB_TyC_TyD(int src, int offset);
-
-/*
- * Convert the given Farsi character into a _X or _X_ type
- */
- static int
-toF_Xor_X_(int c)
-{
- int tempc;
-
- switch (c)
- {
- case BE: return _BE;
- case PE: return _PE;
- case TE: return _TE;
- case SE: return _SE;
- case JIM: return _JIM;
- case CHE: return _CHE;
- case HE_J: return _HE_J;
- case XE: return _XE;
- case SIN: return _SIN;
- case SHIN: return _SHIN;
- case SAD: return _SAD;
- case ZAD: return _ZAD;
- case AYN: return _AYN;
- case AYN_: return _AYN_;
- case GHAYN: return _GHAYN;
- case GHAYN_: return _GHAYN_;
- case FE: return _FE;
- case GHAF: return _GHAF;
- case KAF: return _KAF;
- case GAF: return _GAF;
- case LAM: return _LAM;
- case MIM: return _MIM;
- case NOON: return _NOON;
- case YE:
- case YE_: return _YE;
- case YEE:
- case YEE_: return _YEE;
- case IE:
- case IE_: return _IE;
- case F_HE:
- tempc = _HE;
-
- if (p_ri && (curwin->w_cursor.col + 1
- < (colnr_T)STRLEN(ml_get_curline())))
- {
- inc_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = _HE_;
-
- dec_cursor();
- }
- if (!p_ri && STRLEN(ml_get_curline()))
- {
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = _HE_;
-
- inc_cursor();
- }
-
- return tempc;
- }
- return 0;
-}
-
-/*
- * Convert the given Farsi character into Farsi capital character.
- */
- static int
-toF_TyA(int c)
-{
- switch (c)
- {
- case ALEF_: return ALEF;
- case ALEF_U_H_: return ALEF_U_H;
- case _BE: return BE;
- case _PE: return PE;
- case _TE: return TE;
- case _SE: return SE;
- case _JIM: return JIM;
- case _CHE: return CHE;
- case _HE_J: return HE_J;
- case _XE: return XE;
- case _SIN: return SIN;
- case _SHIN: return SHIN;
- case _SAD: return SAD;
- case _ZAD: return ZAD;
- case _AYN:
- case AYN_:
- case _AYN_: return AYN;
- case _GHAYN:
- case GHAYN_:
- case _GHAYN_: return GHAYN;
- case _FE: return FE;
- case _GHAF: return GHAF;
- /* I am not sure what it is !!! case _KAF_H: */
- case _KAF: return KAF;
- case _GAF: return GAF;
- case _LAM: return LAM;
- case _MIM: return MIM;
- case _NOON: return NOON;
- case _YE:
- case YE_: return YE;
- case _YEE:
- case YEE_: return YEE;
- case TEE_: return TEE;
- case _IE:
- case IE_: return IE;
- case _HE:
- case _HE_: return F_HE;
- }
- return c;
-}
-
-/*
- * Is the character under the cursor+offset in the given buffer a join type.
- * That is a character that is combined with the others.
- * Note: the offset is used only for command line buffer.
- */
- static int
-F_is_TyB_TyC_TyD(int src, int offset)
-{
- int c;
-
- if (src == SRC_EDT)
- c = gchar_cursor();
- else
- c = cmd_gchar(AT_CURSOR+offset);
-
- switch (c)
- {
- case _LAM:
- case _BE:
- case _PE:
- case _TE:
- case _SE:
- case _JIM:
- case _CHE:
- case _HE_J:
- case _XE:
- case _SIN:
- case _SHIN:
- case _SAD:
- case _ZAD:
- case _TA:
- case _ZA:
- case _AYN:
- case _AYN_:
- case _GHAYN:
- case _GHAYN_:
- case _FE:
- case _GHAF:
- case _KAF:
- case _KAF_H:
- case _GAF:
- case _MIM:
- case _NOON:
- case _YE:
- case _YEE:
- case _IE:
- case _HE_:
- case _HE:
- return TRUE;
- }
- return FALSE;
-}
-
-/*
- * Is the Farsi character one of the terminating only type.
- */
- static int
-F_is_TyE(int c)
-{
- switch (c)
- {
- case ALEF_A:
- case ALEF_D_H:
- case DAL:
- case ZAL:
- case RE:
- case ZE:
- case JE:
- case WAW:
- case WAW_H:
- case HAMZE:
- return TRUE;
- }
- return FALSE;
-}
-
-/*
- * Is the Farsi character one of the none leading type.
- */
- static int
-F_is_TyC_TyD(int c)
-{
- switch (c)
- {
- case ALEF_:
- case ALEF_U_H_:
- case _AYN_:
- case AYN_:
- case _GHAYN_:
- case GHAYN_:
- case _HE_:
- case YE_:
- case IE_:
- case TEE_:
- case YEE_:
- return TRUE;
- }
- return FALSE;
-}
-
-/*
- * Convert a none leading Farsi char into a leading type.
- */
- static int
-toF_TyB(int c)
-{
- switch (c)
- {
- case ALEF_: return ALEF;
- case ALEF_U_H_: return ALEF_U_H;
- case _AYN_: return _AYN;
- case AYN_: return AYN; /* exception - there are many of them */
- case _GHAYN_: return _GHAYN;
- case GHAYN_: return GHAYN; /* exception - there are many of them */
- case _HE_: return _HE;
- case YE_: return YE;
- case IE_: return IE;
- case TEE_: return TEE;
- case YEE_: return YEE;
- }
- return c;
-}
-
-
- static void
-put_and_redo(int c)
-{
- pchar_cursor(c);
- AppendCharToRedobuff(K_BS);
- AppendCharToRedobuff(c);
-}
-
-/*
- * Overwrite the current redo and cursor characters + left adjust.
- */
- static void
-put_curr_and_l_to_X(int c)
-{
- int tempc;
-
- if (curwin->w_p_rl && p_ri)
- return;
-
- if ((curwin->w_cursor.col < (colnr_T)STRLEN(ml_get_curline())))
- {
- if ((p_ri && curwin->w_cursor.col) || !p_ri)
- {
- if (p_ri)
- dec_cursor();
- else
- inc_cursor();
-
- if (F_is_TyC_TyD((tempc = gchar_cursor())))
- {
- pchar_cursor(toF_TyB(tempc));
- AppendCharToRedobuff(K_BS);
- AppendCharToRedobuff(tempc);
- }
-
- if (p_ri)
- inc_cursor();
- else
- dec_cursor();
- }
- }
-
- put_and_redo(c);
-}
-
-/*
- * Change the char. under the cursor to a X_ or X type
- */
- static void
-chg_c_toX_orX(void)
-{
- int tempc, curc;
-
- switch ((curc = gchar_cursor()))
- {
- case _BE:
- tempc = BE;
- break;
- case _PE:
- tempc = PE;
- break;
- case _TE:
- tempc = TE;
- break;
- case _SE:
- tempc = SE;
- break;
- case _JIM:
- tempc = JIM;
- break;
- case _CHE:
- tempc = CHE;
- break;
- case _HE_J:
- tempc = HE_J;
- break;
- case _XE:
- tempc = XE;
- break;
- case _SIN:
- tempc = SIN;
- break;
- case _SHIN:
- tempc = SHIN;
- break;
- case _SAD:
- tempc = SAD;
- break;
- case _ZAD:
- tempc = ZAD;
- break;
- case _FE:
- tempc = FE;
- break;
- case _GHAF:
- tempc = GHAF;
- break;
- case _KAF_H:
- case _KAF:
- tempc = KAF;
- break;
- case _GAF:
- tempc = GAF;
- break;
- case _AYN:
- tempc = AYN;
- break;
- case _AYN_:
- tempc = AYN_;
- break;
- case _GHAYN:
- tempc = GHAYN;
- break;
- case _GHAYN_:
- tempc = GHAYN_;
- break;
- case _LAM:
- tempc = LAM;
- break;
- case _MIM:
- tempc = MIM;
- break;
- case _NOON:
- tempc = NOON;
- break;
- case _HE:
- case _HE_:
- tempc = F_HE;
- break;
- case _YE:
- case _IE:
- case _YEE:
- if (p_ri)
- {
- inc_cursor();
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = (curc == _YE ? YE_ :
- (curc == _IE ? IE_ : YEE_));
- else
- tempc = (curc == _YE ? YE :
- (curc == _IE ? IE : YEE));
- dec_cursor();
- }
- else
- {
- if (curwin->w_cursor.col)
- {
- dec_cursor();
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = (curc == _YE ? YE_ :
- (curc == _IE ? IE_ : YEE_));
- else
- tempc = (curc == _YE ? YE :
- (curc == _IE ? IE : YEE));
- inc_cursor();
- }
- else
- tempc = (curc == _YE ? YE :
- (curc == _IE ? IE : YEE));
- }
- break;
- default:
- tempc = 0;
- }
-
- if (tempc)
- put_and_redo(tempc);
-}
-
-/*
- * Change the char. under the cursor to a _X_ or X_ type
- */
- static void
-chg_c_to_X_orX_(void)
-{
- int tempc;
-
- switch (gchar_cursor())
- {
- case ALEF:
- tempc = ALEF_;
- break;
- case ALEF_U_H:
- tempc = ALEF_U_H_;
- break;
- case _AYN:
- tempc = _AYN_;
- break;
- case AYN:
- tempc = AYN_;
- break;
- case _GHAYN:
- tempc = _GHAYN_;
- break;
- case GHAYN:
- tempc = GHAYN_;
- break;
- case _HE:
- tempc = _HE_;
- break;
- case YE:
- tempc = YE_;
- break;
- case IE:
- tempc = IE_;
- break;
- case TEE:
- tempc = TEE_;
- break;
- case YEE:
- tempc = YEE_;
- break;
- default:
- tempc = 0;
- }
-
- if (tempc)
- put_and_redo(tempc);
-}
-
-/*
- * Change the char. under the cursor to a _X_ or _X type
- */
- static void
-chg_c_to_X_or_X(void)
-{
- int tempc;
-
- tempc = gchar_cursor();
-
- if (curwin->w_cursor.col + 1 < (colnr_T)STRLEN(ml_get_curline()))
- {
- inc_cursor();
-
- if ((tempc == F_HE) && (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)))
- {
- tempc = _HE_;
-
- dec_cursor();
-
- put_and_redo(tempc);
- return;
- }
-
- dec_cursor();
- }
-
- if ((tempc = toF_Xor_X_(tempc)) != 0)
- put_and_redo(tempc);
-}
-
-/*
- * Change the character left to the cursor to a _X_ or X_ type
- */
- static void
-chg_l_to_X_orX_(void)
-{
- int tempc;
-
- if (curwin->w_cursor.col != 0 &&
- (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline())))
- return;
-
- if (!curwin->w_cursor.col && p_ri)
- return;
-
- if (p_ri)
- dec_cursor();
- else
- inc_cursor();
-
- switch (gchar_cursor())
- {
- case ALEF:
- tempc = ALEF_;
- break;
- case ALEF_U_H:
- tempc = ALEF_U_H_;
- break;
- case _AYN:
- tempc = _AYN_;
- break;
- case AYN:
- tempc = AYN_;
- break;
- case _GHAYN:
- tempc = _GHAYN_;
- break;
- case GHAYN:
- tempc = GHAYN_;
- break;
- case _HE:
- tempc = _HE_;
- break;
- case YE:
- tempc = YE_;
- break;
- case IE:
- tempc = IE_;
- break;
- case TEE:
- tempc = TEE_;
- break;
- case YEE:
- tempc = YEE_;
- break;
- default:
- tempc = 0;
- }
-
- if (tempc)
- put_and_redo(tempc);
-
- if (p_ri)
- inc_cursor();
- else
- dec_cursor();
-}
-
-/*
- * Change the character left to the cursor to a X or _X type
- */
- static void
-chg_l_toXor_X(void)
-{
- int tempc;
-
- if (curwin->w_cursor.col != 0 &&
- (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline())))
- return;
-
- if (!curwin->w_cursor.col && p_ri)
- return;
-
- if (p_ri)
- dec_cursor();
- else
- inc_cursor();
-
- switch (gchar_cursor())
- {
- case ALEF_:
- tempc = ALEF;
- break;
- case ALEF_U_H_:
- tempc = ALEF_U_H;
- break;
- case _AYN_:
- tempc = _AYN;
- break;
- case AYN_:
- tempc = AYN;
- break;
- case _GHAYN_:
- tempc = _GHAYN;
- break;
- case GHAYN_:
- tempc = GHAYN;
- break;
- case _HE_:
- tempc = _HE;
- break;
- case YE_:
- tempc = YE;
- break;
- case IE_:
- tempc = IE;
- break;
- case TEE_:
- tempc = TEE;
- break;
- case YEE_:
- tempc = YEE;
- break;
- default:
- tempc = 0;
- }
-
- if (tempc)
- put_and_redo(tempc);
-
- if (p_ri)
- inc_cursor();
- else
- dec_cursor();
-}
-
-/*
- * Change the character right to the cursor to a _X or _X_ type
- */
- static void
-chg_r_to_Xor_X_(void)
-{
- int tempc, c;
-
- if (curwin->w_cursor.col)
- {
- if (!p_ri)
- dec_cursor();
-
- tempc = gchar_cursor();
-
- if ((c = toF_Xor_X_(tempc)) != 0)
- put_and_redo(c);
-
- if (!p_ri)
- inc_cursor();
-
- }
-}
-
-/*
- * Map Farsi keyboard when in fkmap mode.
- */
- int
-fkmap(int c)
-{
- int tempc;
- int insert_mode = (State & INSERT);
- static int revins = 0;
-
- if (IS_SPECIAL(c))
- return c;
-
- if (insert_mode)
- {
- if (VIM_ISDIGIT(c) || ((c == '.' || c == '+' || c == '-' ||
- c == '^' || c == '%' || c == '#' || c == '=') && revins))
- {
- /* Numbers are entered left-to-right. */
- if (!revins)
- {
- if (curwin->w_cursor.col)
- {
- if (!p_ri)
- dec_cursor();
-
- chg_c_toX_orX ();
- chg_l_toXor_X ();
-
- if (!p_ri)
- inc_cursor();
- }
- }
-
- arrow_used = TRUE;
- (void)stop_arrow();
-
- if (!curwin->w_p_rl && revins)
- inc_cursor();
-
- ++revins;
- p_ri = 1;
- }
- else if (revins)
- {
- /* Stop entering number. */
- arrow_used = TRUE;
- (void)stop_arrow();
-
- revins = 0;
- if (curwin->w_p_rl)
- {
- while ((F_isdigit(gchar_cursor())
- || (gchar_cursor() == F_PERIOD
- || gchar_cursor() == F_PLUS
- || gchar_cursor() == F_MINUS
- || gchar_cursor() == F_MUL
- || gchar_cursor() == F_DIVIDE
- || gchar_cursor() == F_PERCENT
- || gchar_cursor() == F_EQUALS))
- && gchar_cursor() != NUL)
- ++curwin->w_cursor.col;
- }
- else
- {
- if (curwin->w_cursor.col)
- while ((F_isdigit(gchar_cursor())
- || (gchar_cursor() == F_PERIOD
- || gchar_cursor() == F_PLUS
- || gchar_cursor() == F_MINUS
- || gchar_cursor() == F_MUL
- || gchar_cursor() == F_DIVIDE
- || gchar_cursor() == F_PERCENT
- || gchar_cursor() == F_EQUALS))
- && --curwin->w_cursor.col)
- ;
-
- if (!F_isdigit(gchar_cursor()))
- ++curwin->w_cursor.col;
- }
- }
- }
-
- if (!revins)
- {
- if (curwin->w_p_rl)
- p_ri = 0;
- if (!curwin->w_p_rl)
- p_ri = 1;
- }
-
- if ((c < 0x100) && (isalpha(c) || c == '&' || c == '^' || c == ';' ||
- c == '\''|| c == ',' || c == '[' ||
- c == ']' || c == '{' || c == '}'))
- chg_r_to_Xor_X_();
-
- tempc = 0;
-
- switch (c)
- {
- case '`':
- case ' ':
- case '.':
- case '!':
- case '"':
- case '$':
- case '%':
- case '^':
- case '&':
- case '/':
- case '(':
- case ')':
- case '=':
- case '\\':
- case '?':
- case '+':
- case '-':
- case '_':
- case '*':
- case ':':
- case '#':
- case '~':
- case '@':
- case '<':
- case '>':
- case '{':
- case '}':
- case '|':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case 'B':
- case 'E':
- case 'F':
- case 'H':
- case 'I':
- case 'K':
- case 'L':
- case 'M':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'T':
- case 'U':
- case 'W':
- case 'Y':
- case NL:
- case TAB:
-
- if (p_ri && c == NL && curwin->w_cursor.col && insert_mode)
- {
- /*
- * If the char before the cursor is _X_ or X_ do not change
- * the one under the cursor with X type.
- */
- dec_cursor();
-
- if (F_isalpha(gchar_cursor()))
- {
- inc_cursor();
- return NL;
- }
-
- inc_cursor();
- }
-
- if (!p_ri && !curwin->w_cursor.col)
- {
- switch (c)
- {
- case '0': return FARSI_0;
- case '1': return FARSI_1;
- case '2': return FARSI_2;
- case '3': return FARSI_3;
- case '4': return FARSI_4;
- case '5': return FARSI_5;
- case '6': return FARSI_6;
- case '7': return FARSI_7;
- case '8': return FARSI_8;
- case '9': return FARSI_9;
- case 'B': return F_PSP;
- case 'E': return JAZR_N;
- case 'F': return ALEF_D_H;
- case 'H': return ALEF_A;
- case 'I': return TASH;
- case 'K': return F_LQUOT;
- case 'L': return F_RQUOT;
- case 'M': return HAMZE;
- case 'O': return '[';
- case 'P': return ']';
- case 'Q': return OO;
- case 'R': return MAD_N;
- case 'T': return OW;
- case 'U': return MAD;
- case 'W': return OW_OW;
- case 'Y': return JAZR;
- case '`': return F_PCN;
- case '!': return F_EXCL;
- case '@': return F_COMMA;
- case '#': return F_DIVIDE;
- case '$': return F_CURRENCY;
- case '%': return F_PERCENT;
- case '^': return F_MUL;
- case '&': return F_BCOMMA;
- case '*': return F_STAR;
- case '(': return F_LPARENT;
- case ')': return F_RPARENT;
- case '-': return F_MINUS;
- case '_': return F_UNDERLINE;
- case '=': return F_EQUALS;
- case '+': return F_PLUS;
- case '\\': return F_BSLASH;
- case '|': return F_PIPE;
- case ':': return F_DCOLON;
- case '"': return F_SEMICOLON;
- case '.': return F_PERIOD;
- case '/': return F_SLASH;
- case '<': return F_LESS;
- case '>': return F_GREATER;
- case '?': return F_QUESTION;
- case ' ': return F_BLANK;
- }
- break;
- }
-
- if (insert_mode)
- {
- if (!p_ri)
- dec_cursor();
-
- switch ((tempc = gchar_cursor()))
- {
- case _BE:
- case _PE:
- case _TE:
- case _SE:
- case _JIM:
- case _CHE:
- case _HE_J:
- case _XE:
- case _SIN:
- case _SHIN:
- case _SAD:
- case _ZAD:
- case _FE:
- case _GHAF:
- case _KAF:
- case _KAF_H:
- case _GAF:
- case _LAM:
- case _MIM:
- case _NOON:
- case _HE:
- case _HE_:
- case _TA:
- case _ZA:
- put_curr_and_l_to_X(toF_TyA(tempc));
- break;
- case _AYN:
- case _AYN_:
-
- if (!p_ri)
- if (!curwin->w_cursor.col)
- {
- put_curr_and_l_to_X(AYN);
- break;
- }
-
- if (p_ri)
- inc_cursor();
- else
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = AYN_;
- else
- tempc = AYN;
-
- if (p_ri)
- dec_cursor();
- else
- inc_cursor();
-
- put_curr_and_l_to_X(tempc);
-
- break;
- case _GHAYN:
- case _GHAYN_:
-
- if (!p_ri)
- if (!curwin->w_cursor.col)
- {
- put_curr_and_l_to_X(GHAYN);
- break;
- }
-
- if (p_ri)
- inc_cursor();
- else
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = GHAYN_;
- else
- tempc = GHAYN;
-
- if (p_ri)
- dec_cursor();
- else
- inc_cursor();
-
- put_curr_and_l_to_X(tempc);
- break;
- case _YE:
- case _IE:
- case _YEE:
- if (!p_ri)
- if (!curwin->w_cursor.col)
- {
- put_curr_and_l_to_X((tempc == _YE ? YE :
- (tempc == _IE ? IE : YEE)));
- break;
- }
-
- if (p_ri)
- inc_cursor();
- else
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = (tempc == _YE ? YE_ :
- (tempc == _IE ? IE_ : YEE_));
- else
- tempc = (tempc == _YE ? YE :
- (tempc == _IE ? IE : YEE));
-
- if (p_ri)
- dec_cursor();
- else
- inc_cursor();
-
- put_curr_and_l_to_X(tempc);
- break;
- }
-
- if (!p_ri)
- inc_cursor();
- }
-
- tempc = 0;
-
- switch (c)
- {
- case '0': return FARSI_0;
- case '1': return FARSI_1;
- case '2': return FARSI_2;
- case '3': return FARSI_3;
- case '4': return FARSI_4;
- case '5': return FARSI_5;
- case '6': return FARSI_6;
- case '7': return FARSI_7;
- case '8': return FARSI_8;
- case '9': return FARSI_9;
- case 'B': return F_PSP;
- case 'E': return JAZR_N;
- case 'F': return ALEF_D_H;
- case 'H': return ALEF_A;
- case 'I': return TASH;
- case 'K': return F_LQUOT;
- case 'L': return F_RQUOT;
- case 'M': return HAMZE;
- case 'O': return '[';
- case 'P': return ']';
- case 'Q': return OO;
- case 'R': return MAD_N;
- case 'T': return OW;
- case 'U': return MAD;
- case 'W': return OW_OW;
- case 'Y': return JAZR;
- case '`': return F_PCN;
- case '!': return F_EXCL;
- case '@': return F_COMMA;
- case '#': return F_DIVIDE;
- case '$': return F_CURRENCY;
- case '%': return F_PERCENT;
- case '^': return F_MUL;
- case '&': return F_BCOMMA;
- case '*': return F_STAR;
- case '(': return F_LPARENT;
- case ')': return F_RPARENT;
- case '-': return F_MINUS;
- case '_': return F_UNDERLINE;
- case '=': return F_EQUALS;
- case '+': return F_PLUS;
- case '\\': return F_BSLASH;
- case '|': return F_PIPE;
- case ':': return F_DCOLON;
- case '"': return F_SEMICOLON;
- case '.': return F_PERIOD;
- case '/': return F_SLASH;
- case '<': return F_LESS;
- case '>': return F_GREATER;
- case '?': return F_QUESTION;
- case ' ': return F_BLANK;
- }
- break;
-
- case 'a':
- tempc = _SHIN;
- break;
- case 'A':
- tempc = WAW_H;
- break;
- case 'b':
- tempc = ZAL;
- break;
- case 'c':
- tempc = ZE;
- break;
- case 'C':
- tempc = JE;
- break;
- case 'd':
- tempc = _YE;
- break;
- case 'D':
- tempc = _YEE;
- break;
- case 'e':
- tempc = _SE;
- break;
- case 'f':
- tempc = _BE;
- break;
- case 'g':
- tempc = _LAM;
- break;
- case 'G':
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
-
- if (gchar_cursor() == _LAM)
- chg_c_toX_orX ();
- else if (p_ri)
- chg_c_to_X_or_X ();
- }
-
- if (!p_ri)
- if (!curwin->w_cursor.col)
- return ALEF_U_H;
-
- if (!p_ri)
- dec_cursor();
-
- if (gchar_cursor() == _LAM)
- {
- chg_c_toX_orX ();
- chg_l_toXor_X ();
- tempc = ALEF_U_H;
- }
- else if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- {
- tempc = ALEF_U_H_;
- chg_l_toXor_X ();
- }
- else
- tempc = ALEF_U_H;
-
- if (!p_ri)
- inc_cursor();
-
- return tempc;
- case 'h':
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
- if (p_ri)
- chg_c_to_X_or_X ();
-
- }
-
- if (!p_ri)
- if (!curwin->w_cursor.col)
- return ALEF;
-
- if (!p_ri)
- dec_cursor();
-
- if (gchar_cursor() == _LAM)
- {
- chg_l_toXor_X();
- del_char(FALSE);
- AppendCharToRedobuff(K_BS);
-
- if (!p_ri)
- dec_cursor();
-
- tempc = LA;
- }
- else
- {
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- {
- tempc = ALEF_;
- chg_l_toXor_X ();
- }
- else
- tempc = ALEF;
- }
-
- if (!p_ri)
- inc_cursor();
-
- return tempc;
- case 'i':
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
- if (!p_ri && !F_is_TyE(tempc))
- chg_c_to_X_orX_ ();
- if (p_ri)
- chg_c_to_X_or_X ();
-
- }
-
- if (!p_ri && !curwin->w_cursor.col)
- return _HE;
-
- if (!p_ri)
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = _HE_;
- else
- tempc = _HE;
-
- if (!p_ri)
- inc_cursor();
- break;
- case 'j':
- tempc = _TE;
- break;
- case 'J':
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
- if (p_ri)
- chg_c_to_X_or_X ();
-
- }
-
- if (!p_ri)
- if (!curwin->w_cursor.col)
- return TEE;
-
- if (!p_ri)
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- {
- tempc = TEE_;
- chg_l_toXor_X ();
- }
- else
- tempc = TEE;
-
- if (!p_ri)
- inc_cursor();
-
- return tempc;
- case 'k':
- tempc = _NOON;
- break;
- case 'l':
- tempc = _MIM;
- break;
- case 'm':
- tempc = _PE;
- break;
- case 'n':
- case 'N':
- tempc = DAL;
- break;
- case 'o':
- tempc = _XE;
- break;
- case 'p':
- tempc = _HE_J;
- break;
- case 'q':
- tempc = _ZAD;
- break;
- case 'r':
- tempc = _GHAF;
- break;
- case 's':
- tempc = _SIN;
- break;
- case 'S':
- tempc = _IE;
- break;
- case 't':
- tempc = _FE;
- break;
- case 'u':
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
- if (!p_ri && !F_is_TyE(tempc))
- chg_c_to_X_orX_ ();
- if (p_ri)
- chg_c_to_X_or_X ();
-
- }
-
- if (!p_ri && !curwin->w_cursor.col)
- return _AYN;
-
- if (!p_ri)
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = _AYN_;
- else
- tempc = _AYN;
-
- if (!p_ri)
- inc_cursor();
- break;
- case 'v':
- case 'V':
- tempc = RE;
- break;
- case 'w':
- tempc = _SAD;
- break;
- case 'x':
- case 'X':
- tempc = _TA;
- break;
- case 'y':
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
- if (!p_ri && !F_is_TyE(tempc))
- chg_c_to_X_orX_ ();
- if (p_ri)
- chg_c_to_X_or_X ();
-
- }
-
- if (!p_ri && !curwin->w_cursor.col)
- return _GHAYN;
-
- if (!p_ri)
- dec_cursor();
-
- if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
- tempc = _GHAYN_;
- else
- tempc = _GHAYN;
-
- if (!p_ri)
- inc_cursor();
-
- break;
- case 'z':
- tempc = _ZA;
- break;
- case 'Z':
- tempc = _KAF_H;
- break;
- case ';':
- tempc = _KAF;
- break;
- case '\'':
- tempc = _GAF;
- break;
- case ',':
- tempc = WAW;
- break;
- case '[':
- tempc = _JIM;
- break;
- case ']':
- tempc = _CHE;
- break;
- }
-
- if (F_isalpha(tempc) || F_isdigit(tempc))
- {
- if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
- {
- if (!p_ri && !F_is_TyE(tempc))
- chg_c_to_X_orX_();
- if (p_ri)
- chg_c_to_X_or_X();
- }
-
- if (curwin->w_cursor.col)
- {
- if (!p_ri)
- dec_cursor();
-
- if (F_is_TyE(tempc))
- chg_l_toXor_X();
- else
- chg_l_to_X_orX_();
-
- if (!p_ri)
- inc_cursor();
- }
- }
- if (tempc)
- return tempc;
- return c;
-}
-
-/*
- * Convert a none leading Farsi char into a leading type.
- */
- static int
-toF_leading(int c)
-{
- switch (c)
- {
- case ALEF_: return ALEF;
- case ALEF_U_H_: return ALEF_U_H;
- case BE: return _BE;
- case PE: return _PE;
- case TE: return _TE;
- case SE: return _SE;
- case JIM: return _JIM;
- case CHE: return _CHE;
- case HE_J: return _HE_J;
- case XE: return _XE;
- case SIN: return _SIN;
- case SHIN: return _SHIN;
- case SAD: return _SAD;
- case ZAD: return _ZAD;
-
- case AYN:
- case AYN_:
- case _AYN_: return _AYN;
-
- case GHAYN:
- case GHAYN_:
- case _GHAYN_: return _GHAYN;
-
- case FE: return _FE;
- case GHAF: return _GHAF;
- case KAF: return _KAF;
- case GAF: return _GAF;
- case LAM: return _LAM;
- case MIM: return _MIM;
- case NOON: return _NOON;
-
- case _HE_:
- case F_HE: return _HE;
-
- case YE:
- case YE_: return _YE;
-
- case IE_:
- case IE: return _IE;
-
- case YEE:
- case YEE_: return _YEE;
- }
- return c;
-}
-
-/*
- * Convert a given Farsi char into right joining type.
- */
- static int
-toF_Rjoin(int c)
-{
- switch (c)
- {
- case ALEF: return ALEF_;
- case ALEF_U_H: return ALEF_U_H_;
- case BE: return _BE;
- case PE: return _PE;
- case TE: return _TE;
- case SE: return _SE;
- case JIM: return _JIM;
- case CHE: return _CHE;
- case HE_J: return _HE_J;
- case XE: return _XE;
- case SIN: return _SIN;
- case SHIN: return _SHIN;
- case SAD: return _SAD;
- case ZAD: return _ZAD;
-
- case AYN:
- case AYN_:
- case _AYN: return _AYN_;
-
- case GHAYN:
- case GHAYN_:
- case _GHAYN_: return _GHAYN_;
-
- case FE: return _FE;
- case GHAF: return _GHAF;
- case KAF: return _KAF;
- case GAF: return _GAF;
- case LAM: return _LAM;
- case MIM: return _MIM;
- case NOON: return _NOON;
-
- case _HE:
- case F_HE: return _HE_;
-
- case YE:
- case YE_: return _YE;
-
- case IE_:
- case IE: return _IE;
-
- case TEE: return TEE_;
-
- case YEE:
- case YEE_: return _YEE;
- }
- return c;
-}
-
-/*
- * Can a given Farsi character join via its left edj.
- */
- static int
-canF_Ljoin(int c)
-{
- switch (c)
- {
- case _BE:
- case BE:
- case PE:
- case _PE:
- case TE:
- case _TE:
- case SE:
- case _SE:
- case JIM:
- case _JIM:
- case CHE:
- case _CHE:
- case HE_J:
- case _HE_J:
- case XE:
- case _XE:
- case SIN:
- case _SIN:
- case SHIN:
- case _SHIN:
- case SAD:
- case _SAD:
- case ZAD:
- case _ZAD:
- case _TA:
- case _ZA:
- case AYN:
- case _AYN:
- case _AYN_:
- case AYN_:
- case GHAYN:
- case GHAYN_:
- case _GHAYN_:
- case _GHAYN:
- case FE:
- case _FE:
- case GHAF:
- case _GHAF:
- case _KAF_H:
- case KAF:
- case _KAF:
- case GAF:
- case _GAF:
- case LAM:
- case _LAM:
- case MIM:
- case _MIM:
- case NOON:
- case _NOON:
- case IE:
- case _IE:
- case IE_:
- case YE:
- case _YE:
- case YE_:
- case YEE:
- case _YEE:
- case YEE_:
- case F_HE:
- case _HE:
- case _HE_:
- return TRUE;
- }
- return FALSE;
-}
-
-/*
- * Can a given Farsi character join via its right edj.
- */
- static int
-canF_Rjoin(int c)
-{
- switch (c)
- {
- case ALEF:
- case ALEF_:
- case ALEF_U_H:
- case ALEF_U_H_:
- case DAL:
- case ZAL:
- case RE:
- case JE:
- case ZE:
- case TEE:
- case TEE_:
- case WAW:
- case WAW_H:
- return TRUE;
- }
-
- return canF_Ljoin(c);
-
-}
-
-/*
- * is a given Farsi character a terminating type.
- */
- static int
-F_isterm(int c)
-{
- switch (c)
- {
- case ALEF:
- case ALEF_:
- case ALEF_U_H:
- case ALEF_U_H_:
- case DAL:
- case ZAL:
- case RE:
- case JE:
- case ZE:
- case WAW:
- case WAW_H:
- case TEE:
- case TEE_:
- return TRUE;
- }
-
- return FALSE;
-}
-
-/*
- * Convert the given Farsi character into a ending type .
- */
- static int
-toF_ending(int c)
-{
- switch (c)
- {
- case _BE: return BE;
- case _PE: return PE;
- case _TE: return TE;
- case _SE: return SE;
- case _JIM: return JIM;
- case _CHE: return CHE;
- case _HE_J: return HE_J;
- case _XE: return XE;
- case _SIN: return SIN;
- case _SHIN: return SHIN;
- case _SAD: return SAD;
- case _ZAD: return ZAD;
- case _AYN: return AYN;
- case _AYN_: return AYN_;
- case _GHAYN: return GHAYN;
- case _GHAYN_: return GHAYN_;
- case _FE: return FE;
- case _GHAF: return GHAF;
- case _KAF_H:
- case _KAF: return KAF;
- case _GAF: return GAF;
- case _LAM: return LAM;
- case _MIM: return MIM;
- case _NOON: return NOON;
- case _YE: return YE_;
- case YE_: return YE;
- case _YEE: return YEE_;
- case YEE_: return YEE;
- case TEE: return TEE_;
- case _IE: return IE_;
- case IE_: return IE;
- case _HE:
- case _HE_: return F_HE;
- }
- return c;
-}
-
-/*
- * Convert the Farsi 3342 standard into Farsi VIM.
- */
- static void
-conv_to_pvim(void)
-{
- char_u *ptr;
- int lnum, llen, i;
-
- for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
- {
- ptr = ml_get((linenr_T)lnum);
-
- llen = (int)STRLEN(ptr);
-
- for (i = 0; i < llen-1; i++)
- {
- if (canF_Ljoin(ptr[i]) && canF_Rjoin(ptr[i+1]))
- {
- ptr[i] = toF_leading(ptr[i]);
- ++i;
-
- while (i < llen && canF_Rjoin(ptr[i]))
- {
- ptr[i] = toF_Rjoin(ptr[i]);
- if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
- break;
- ++i;
- }
- if (!F_isalpha(ptr[i]) || !canF_Rjoin(ptr[i]))
- ptr[i-1] = toF_ending(ptr[i-1]);
- }
- else
- ptr[i] = toF_TyA(ptr[i]);
- }
- }
-
- /*
- * Following lines contains Farsi encoded character.
- */
-
- do_cmdline_cmd((char_u *)"%s/\202\231/\232/ge");
- do_cmdline_cmd((char_u *)"%s/\201\231/\370\334/ge");
-
- /* Assume the screen has been messed up: clear it and redraw. */
- redraw_later(CLEAR);
- msg_attr(farsi_text_1, HL_ATTR(HLF_S));
-}
-
-/*
- * Convert the Farsi VIM into Farsi 3342 standard.
- */
- static void
-conv_to_pstd(void)
-{
- char_u *ptr;
- int lnum, llen, i;
-
- /*
- * Following line contains Farsi encoded character.
- */
- do_cmdline_cmd((char_u *)"%s/\232/\202\231/ge");
-
- for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
- {
- ptr = ml_get((linenr_T)lnum);
- llen = (int)STRLEN(ptr);
-
- for (i = 0; i < llen; i++)
- ptr[i] = toF_TyA(ptr[i]);
- }
-
- /* Assume the screen has been messed up: clear it and redraw. */
- redraw_later(CLEAR);
- msg_attr(farsi_text_2, HL_ATTR(HLF_S));
-}
-
-/*
- * left-right swap the characters in buf[len].
- */
- static void
-lrswapbuf(char_u *buf, int len)
-{
- char_u *s, *e;
- int c;
-
- s = buf;
- e = buf + len - 1;
-
- while (e > s)
- {
- c = *s;
- *s = *e;
- *e = c;
- ++s;
- --e;
- }
-}
-
-/*
- * swap all the characters in reverse direction
- */
- char_u *
-lrswap(char_u *ibuf)
-{
- if (ibuf != NULL && *ibuf != NUL)
- lrswapbuf(ibuf, (int)STRLEN(ibuf));
- return ibuf;
-}
-
-/*
- * swap all the Farsi characters in reverse direction
- */
- char_u *
-lrFswap(char_u *cmdbuf, int len)
-{
- int i, cnt;
-
- if (cmdbuf == NULL)
- return cmdbuf;
-
- if (len == 0 && (len = (int)STRLEN(cmdbuf)) == 0)
- return cmdbuf;
-
- for (i = 0; i < len; i++)
- {
- for (cnt = 0; i + cnt < len
- && (F_isalpha(cmdbuf[i + cnt])
- || F_isdigit(cmdbuf[i + cnt])
- || cmdbuf[i + cnt] == ' '); ++cnt)
- ;
-
- lrswapbuf(cmdbuf + i, cnt);
- i += cnt;
- }
- return cmdbuf;
-}
-
-/*
- * Reverse the characters in the search path and substitute section
- * accordingly.
- * TODO: handle different separator characters. Use skip_regexp().
- */
- char_u *
-lrF_sub(char_u *ibuf)
-{
- char_u *p, *ep;
- int i, cnt;
-
- p = ibuf;
-
- /* Find the boundary of the search path */
- while (((p = vim_strchr(p + 1, '/')) != NULL) && p[-1] == '\\')
- ;
-
- if (p == NULL)
- return ibuf;
-
- /* Reverse the Farsi characters in the search path. */
- lrFswap(ibuf, (int)(p-ibuf));
-
- /* Now find the boundary of the substitute section */
- if ((ep = (char_u *)strrchr((char *)++p, '/')) != NULL)
- cnt = (int)(ep - p);
- else
- cnt = (int)STRLEN(p);
-
- /* Reverse the characters in the substitute section and take care of '\' */
- for (i = 0; i < cnt-1; i++)
- if (p[i] == '\\')
- {
- p[i] = p[i+1] ;
- p[++i] = '\\';
- }
-
- lrswapbuf(p, cnt);
-
- return ibuf;
-}
-
-/*
- * Map Farsi keyboard when in cmd_fkmap mode.
- */
- int
-cmdl_fkmap(int c)
-{
- int tempc;
-
- switch (c)
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case '`':
- case ' ':
- case '.':
- case '!':
- case '"':
- case '$':
- case '%':
- case '^':
- case '&':
- case '/':
- case '(':
- case ')':
- case '=':
- case '\\':
- case '?':
- case '+':
- case '-':
- case '_':
- case '*':
- case ':':
- case '#':
- case '~':
- case '@':
- case '<':
- case '>':
- case '{':
- case '}':
- case '|':
- case 'B':
- case 'E':
- case 'F':
- case 'H':
- case 'I':
- case 'K':
- case 'L':
- case 'M':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'T':
- case 'U':
- case 'W':
- case 'Y':
- case NL:
- case TAB:
-
- switch ((tempc = cmd_gchar(AT_CURSOR)))
- {
- case _BE:
- case _PE:
- case _TE:
- case _SE:
- case _JIM:
- case _CHE:
- case _HE_J:
- case _XE:
- case _SIN:
- case _SHIN:
- case _SAD:
- case _ZAD:
- case _AYN:
- case _GHAYN:
- case _FE:
- case _GHAF:
- case _KAF:
- case _GAF:
- case _LAM:
- case _MIM:
- case _NOON:
- case _HE:
- case _HE_:
- cmd_pchar(toF_TyA(tempc), AT_CURSOR);
- break;
- case _AYN_:
- cmd_pchar(AYN_, AT_CURSOR);
- break;
- case _GHAYN_:
- cmd_pchar(GHAYN_, AT_CURSOR);
- break;
- case _IE:
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1))
- cmd_pchar(IE_, AT_CURSOR);
- else
- cmd_pchar(IE, AT_CURSOR);
- break;
- case _YEE:
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1))
- cmd_pchar(YEE_, AT_CURSOR);
- else
- cmd_pchar(YEE, AT_CURSOR);
- break;
- case _YE:
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1))
- cmd_pchar(YE_, AT_CURSOR);
- else
- cmd_pchar(YE, AT_CURSOR);
- }
-
- switch (c)
- {
- case '0': return FARSI_0;
- case '1': return FARSI_1;
- case '2': return FARSI_2;
- case '3': return FARSI_3;
- case '4': return FARSI_4;
- case '5': return FARSI_5;
- case '6': return FARSI_6;
- case '7': return FARSI_7;
- case '8': return FARSI_8;
- case '9': return FARSI_9;
- case 'B': return F_PSP;
- case 'E': return JAZR_N;
- case 'F': return ALEF_D_H;
- case 'H': return ALEF_A;
- case 'I': return TASH;
- case 'K': return F_LQUOT;
- case 'L': return F_RQUOT;
- case 'M': return HAMZE;
- case 'O': return '[';
- case 'P': return ']';
- case 'Q': return OO;
- case 'R': return MAD_N;
- case 'T': return OW;
- case 'U': return MAD;
- case 'W': return OW_OW;
- case 'Y': return JAZR;
- case '`': return F_PCN;
- case '!': return F_EXCL;
- case '@': return F_COMMA;
- case '#': return F_DIVIDE;
- case '$': return F_CURRENCY;
- case '%': return F_PERCENT;
- case '^': return F_MUL;
- case '&': return F_BCOMMA;
- case '*': return F_STAR;
- case '(': return F_LPARENT;
- case ')': return F_RPARENT;
- case '-': return F_MINUS;
- case '_': return F_UNDERLINE;
- case '=': return F_EQUALS;
- case '+': return F_PLUS;
- case '\\': return F_BSLASH;
- case '|': return F_PIPE;
- case ':': return F_DCOLON;
- case '"': return F_SEMICOLON;
- case '.': return F_PERIOD;
- case '/': return F_SLASH;
- case '<': return F_LESS;
- case '>': return F_GREATER;
- case '?': return F_QUESTION;
- case ' ': return F_BLANK;
- }
-
- break;
-
- case 'a': return _SHIN;
- case 'A': return WAW_H;
- case 'b': return ZAL;
- case 'c': return ZE;
- case 'C': return JE;
- case 'd': return _YE;
- case 'D': return _YEE;
- case 'e': return _SE;
- case 'f': return _BE;
- case 'g': return _LAM;
- case 'G':
- if (cmd_gchar(AT_CURSOR) == _LAM)
- {
- cmd_pchar(LAM, AT_CURSOR);
- return ALEF_U_H;
- }
-
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
- return ALEF_U_H_;
- else
- return ALEF_U_H;
- case 'h':
- if (cmd_gchar(AT_CURSOR) == _LAM)
- {
- cmd_pchar(LA, AT_CURSOR);
- redrawcmdline();
- return K_IGNORE;
- }
-
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
- return ALEF_;
- else
- return ALEF;
- case 'i':
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
- return _HE_;
- else
- return _HE;
- case 'j': return _TE;
- case 'J':
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
- return TEE_;
- else
- return TEE;
- case 'k': return _NOON;
- case 'l': return _MIM;
- case 'm': return _PE;
- case 'n':
- case 'N': return DAL;
- case 'o': return _XE;
- case 'p': return _HE_J;
- case 'q': return _ZAD;
- case 'r': return _GHAF;
- case 's': return _SIN;
- case 'S': return _IE;
- case 't': return _FE;
- case 'u':
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
- return _AYN_;
- else
- return _AYN;
- case 'v':
- case 'V': return RE;
- case 'w': return _SAD;
- case 'x':
- case 'X': return _TA;
- case 'y':
- if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
- return _GHAYN_;
- else
- return _GHAYN;
- case 'z':
- case 'Z': return _ZA;
- case ';': return _KAF;
- case '\'': return _GAF;
- case ',': return WAW;
- case '[': return _JIM;
- case ']': return _CHE;
- }
-
- return c;
-}
-
-/*
- * F_isalpha returns TRUE if 'c' is a Farsi alphabet
- */
- int
-F_isalpha(int c)
-{
- return ((c >= TEE_ && c <= _YE)
- || (c >= ALEF_A && c <= YE)
- || (c >= _IE && c <= YE_));
-}
-
-/*
- * F_isdigit returns TRUE if 'c' is a Farsi digit
- */
- int
-F_isdigit(int c)
-{
- return (c >= FARSI_0 && c <= FARSI_9);
-}
-
-/*
- * F_ischar returns TRUE if 'c' is a Farsi character.
- */
- int
-F_ischar(int c)
-{
- return (c >= TEE_ && c <= YE_);
-}
-
- void
-farsi_f8(cmdarg_T *cap UNUSED)
-{
- if (p_altkeymap)
- {
- if (curwin->w_farsi & W_R_L)
- {
- p_fkmap = 0;
- do_cmdline_cmd((char_u *)"set norl");
- msg("");
- }
- else
- {
- p_fkmap = 1;
- do_cmdline_cmd((char_u *)"set rl");
- msg("");
- }
-
- curwin->w_farsi = curwin->w_farsi ^ W_R_L;
- }
-}
-
- void
-farsi_f9(cmdarg_T *cap UNUSED)
-{
- if (p_altkeymap && curwin->w_p_rl)
- {
- curwin->w_farsi = curwin->w_farsi ^ W_CONV;
- if (curwin->w_farsi & W_CONV)
- conv_to_pvim();
- else
- conv_to_pstd();
- }
-}
-
-#endif /* FEAT_FKMAP */
diff --git a/src/farsi.h b/src/farsi.h
deleted file mode 100644
index e91bdf727..000000000
--- a/src/farsi.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/* vi:set ts=8 sts=4 sw=4 noet:
- *
- * 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.
- */
-
-/*
- * Farsi characters are categorized into following types:
- *
- * TyA (for capital letter representation)
- * TyB (for types that look like _X e.g. AYN)
- * TyC (for types that look like X_ e.g. YE_)
- * TyD (for types that look like _X_ e.g. _AYN_)
- * TyE (for types that look like X e.g. RE)
- */
-
-/*
- * Farsi character set definition
- */
-
-/*
- * Begin of the non-standard part
- */
-
-#define TEE_ 0x80
-#define ALEF_U_H_ 0x81
-#define ALEF_ 0x82
-#define _BE 0x83
-#define _PE 0x84
-#define _TE 0x85
-#define _SE 0x86
-#define _JIM 0x87
-#define _CHE 0x88
-#define _HE_J 0x89
-#define _XE 0x8a
-#define _SIN 0x8b
-#define _SHIN 0x8c
-#define _SAD 0x8d
-#define _ZAD 0x8e
-#define _AYN 0x8f
-#define _AYN_ 0x90
-#define AYN_ 0x91
-#define _GHAYN 0x92
-#define _GHAYN_ 0x93
-#define GHAYN_ 0x94
-#define _FE 0x95
-#define _GHAF 0x96
-#define _KAF 0x97
-#define _GAF 0x98
-#define _LAM 0x99
-#define LA 0x9a
-#define _MIM 0x9b
-#define _NOON 0x9c
-#define _HE 0x9d
-#define _HE_ 0x9e
-#define _YE 0x9f
-#define _IE 0xec
-#define IE_ 0xed
-#define IE 0xfb
-#define _YEE 0xee
-#define YEE_ 0xef
-#define YE_ 0xff
-
-/*
- * End of the non-standard part
- */
-
-/*
- * Standard part
- */
-
-#define F_BLANK 0xa0 /* Farsi ' ' (SP) character */
-#define F_PSP 0xa1 /* PSP for capitalizing of a character */
-#define F_PCN 0xa2 /* PCN for redefining of the hamye meaning */
-#define F_EXCL 0xa3 /* Farsi ! character */
-#define F_CURRENCY 0xa4 /* Farsi Rial character */
-#define F_PERCENT 0xa5 /* Farsi % character */
-#define F_PERIOD 0xa6 /* Farsi '.' character */
-#define F_COMMA 0xa7 /* Farsi ',' character */
-#define F_LPARENT 0xa8 /* Farsi '(' character */
-#define F_RPARENT 0xa9 /* Farsi ')' character */
-#define F_MUL 0xaa /* Farsi 'x' character */
-#define F_PLUS 0xab /* Farsi '+' character */
-#define F_BCOMMA 0xac /* Farsi comma character */
-#define F_MINUS 0xad /* Farsi '-' character */
-#define F_DIVIDE 0xae /* Farsi divide (/) character */
-#define F_SLASH 0xaf /* Farsi '/' character */
-
-#define FARSI_0 0xb0
-#define FARSI_1 0xb1
-#define FARSI_2 0xb2
-#define FARSI_3 0xb3
-#define FARSI_4 0xb4
-#define FARSI_5 0xb5
-#define FARSI_6 0xb6
-#define FARSI_7 0xb7
-#define FARSI_8 0xb8
-#define FARSI_9 0xb9
-
-#define F_DCOLON 0xba /* Farsi ':' character */
-#define F_SEMICOLON 0xbb /* Farsi ';' character */
-#define F_GREATER 0xbc /* Farsi '>' character */
-#define F_EQUALS 0xbd /* Farsi '=' character */
-#define F_LESS 0xbe /* Farsi '<' character */
-#define F_QUESTION 0xbf /* Farsi ? character */
-
-#define ALEF_A 0xc0
-#define ALEF 0xc1
-#define HAMZE 0xc2
-#define BE 0xc3
-#define PE 0xc4
-#define TE 0xc5
-#define SE 0xc6
-#define JIM 0xc7
-#define CHE 0xc8
-#define HE_J 0xc9
-#define XE 0xca
-#define DAL 0xcb
-#define ZAL 0xcc
-#define RE 0xcd
-#define ZE 0xce
-#define JE 0xcf
-#define SIN 0xd0
-#define SHIN 0xd1
-#define SAD 0xd2
-#define ZAD 0xd3
-#define _TA 0xd4
-#define _ZA 0xd5
-#define AYN 0xd6
-#define GHAYN 0xd7
-#define FE 0xd8
-#define GHAF 0xd9
-#define KAF 0xda
-#define GAF 0xdb
-#define LAM 0xdc
-#define MIM 0xdd
-#define NOON 0xde
-#define WAW 0xdf
-#define F_HE 0xe0 /* F_ added for name clash with Perl */
-#define YE 0xe1
-#define TEE 0xfc
-#define _KAF_H 0xfd
-#define YEE 0xfe
-
-#define F_LBRACK 0xe2 /* Farsi '[' character */
-#define F_RBRACK 0xe3 /* Farsi ']' character */
-#define F_LBRACE 0xe4 /* Farsi '{' character */
-#define F_RBRACE 0xe5 /* Farsi '}' character */
-#define F_LQUOT 0xe6 /* Farsi left quotation character */
-#define F_RQUOT 0xe7 /* Farsi right quotation character */
-#define F_STAR 0xe8 /* Farsi '*' character */
-#define F_UNDERLINE 0xe9 /* Farsi '_' character */
-#define F_PIPE 0xea /* Farsi '|' character */
-#define F_BSLASH 0xeb /* Farsi '\' character */
-
-#define MAD 0xf0
-#define JAZR 0xf1
-#define OW 0xf2
-#define MAD_N 0xf3
-#define JAZR_N 0xf4
-#define OW_OW 0xf5
-#define TASH 0xf6
-#define OO 0xf7
-#define ALEF_U_H 0xf8
-#define WAW_H 0xf9
-#define ALEF_D_H 0xfa
-
-/*
- * global definitions
- * ==================
- */
-
-#define SRC_EDT 0
-#define SRC_CMD 1
-
-#define AT_CURSOR 0
-
-/*
- * definitions for the window dependent functions (w_farsi).
- */
-#define W_CONV 0x1
-#define W_R_L 0x2
-
-
-/* special Farsi text messages */
-
-EXTERN char farsi_text_1[]
-#ifdef DO_INIT
- = { YE_, _SIN, RE, ALEF_, _FE, ' ', 'V', 'I', 'M',
- ' ', F_HE, _BE, ' ', SHIN, RE, _GAF, DAL,' ', NOON,
- ALEF_, _YE, ALEF_, _PE, '\0'}
-#endif
- ;
-
-EXTERN char farsi_text_2[]
-#ifdef DO_INIT
- = { YE_, _SIN, RE, ALEF_, _FE, ' ', FARSI_3, FARSI_3,
- FARSI_4, FARSI_2, ' ', DAL, RE, ALEF, DAL, _NOON,
- ALEF_, _TE, _SIN, ALEF, ' ', F_HE, _BE, ' ', SHIN,
- RE, _GAF, DAL, ' ', NOON, ALEF_, _YE, ALEF_, _PE, '\0'}
-#endif
- ;
-
-EXTERN char farsi_text_3[]
-#ifdef DO_INIT
- = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
- ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L',
- 'A','C','E', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, ALEF,
- ' ', 'R', 'E', 'V', 'E', 'R', 'S', 'E', ' ', 'I', 'N',
- 'S', 'E', 'R', 'T', ' ', SHIN, WAW, RE, ' ', ALEF_, _BE,
- ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', RE,
- ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
-#endif
- ;
-
-#if 0 /* not used */
-EXTERN char_u farsi_text_4[]
-#ifdef DO_INIT
- = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
- ALEF_, _BE, _YE, _TE, _SHIN, _PE, ' ', '<', 'C','T','R',
- 'L','-','B','>', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE,
- ALEF, ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ',
- RE, ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
-#endif
- ;
-#endif
-
-EXTERN char farsi_text_5[]
-#ifdef DO_INIT
- = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'}
-#endif
- ;
diff --git a/src/getchar.c b/src/getchar.c
index fe74dbfa1..eaef1ab7e 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3361,15 +3361,6 @@ do_map(
rhs = replace_termcodes(rhs, &arg_buf, FALSE, TRUE, special);
}
-#ifdef FEAT_FKMAP
- /*
- * When in right-to-left mode and alternate keymap option set,
- * reverse the character flow in the rhs in Farsi.
- */
- if (p_altkeymap && curwin->w_p_rl)
- lrswap(rhs);
-#endif
-
/*
* check arguments and translate function keys
*/
diff --git a/src/globals.h b/src/globals.h
index 6cc3be215..82e663e9c 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1450,9 +1450,7 @@ EXTERN char e_nogvim[] INIT(= N_("E25: GUI cannot be used: Not enabled at compil
#ifndef FEAT_RIGHTLEFT
EXTERN char e_nohebrew[] INIT(= N_("E26: Hebrew cannot be used: Not enabled at compile time\n"));
#endif
-#ifndef FEAT_FKMAP
-EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi cannot be used: Not enabled at compile time\n"));
-#endif
+EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi support has been removed\n"));
#ifndef FEAT_ARABIC
EXTERN char e_noarabic[] INIT(= N_("E800: Arabic cannot be used: Not enabled at compile time\n"));
#endif
@@ -1656,13 +1654,6 @@ EXTERN int text_prop_frozen INIT(= 0);
#endif
/*
- * Optional Farsi support. Include it here, so EXTERN and INIT are defined.
- */
-#ifdef FEAT_FKMAP
-# include "farsi.h"
-#endif
-
-/*
* Optional Arabic support. Include it here, so EXTERN and INIT are defined.
*/
#ifdef FEAT_ARABIC
diff --git a/src/main.c b/src/main.c
index df204bc0a..6ad6fff7c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -535,17 +535,6 @@ vim_main2(void)
if (params.no_swap_file)
p_uc = 0;
-#ifdef FEAT_FKMAP
- if (curwin->w_p_rl && p_altkeymap)
- {
- p_hkmap = FALSE; /* Reset the Hebrew keymap mode */
-# ifdef FEAT_ARABIC
- curwin->w_p_arab = FALSE; /* Reset the Arabic keymap mode */
-# endif
- p_fkmap = TRUE; /* Set the Farsi keymap mode */
- }
-#endif
-
#ifdef FEAT_GUI
if (gui.starting)
{
@@ -2025,14 +2014,9 @@ command_line_scan(mparm_T *parmp)
main_start_gui();
break;
- case 'F': /* "-F" start in Farsi mode: rl + fkmap set */
-#ifdef FEAT_FKMAP
- p_fkmap = TRUE;
- set_option_value((char_u *)"rl", 1L, NULL, 0);
-#else
+ case 'F': /* "-F" was for Farsi mode */
mch_errmsg(_(e_nofarsi));
mch_exit(2);
-#endif
break;
case '?': /* "-?" give help message (for MS-Windows) */
@@ -3351,9 +3335,6 @@ usage(void)
#ifdef FEAT_RIGHTLEFT
main_msg(_("-H\t\t\tStart in Hebrew mode"));
#endif
-#ifdef FEAT_FKMAP
- main_msg(_("-F\t\t\tStart in Farsi mode"));
-#endif
main_msg(_("-T <terminal>\tSet terminal type to <terminal>"));
main_msg(_("--not-a-term\t\tSkip warning for input/output not being a terminal"));
main_msg(_("--ttyfail\t\tExit if input or output is not a terminal"));
diff --git a/src/normal.c b/src/normal.c
index 41af96628..624e34751 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -397,10 +397,6 @@ static const struct nv_cmd
{K_TABLINE, nv_tabline, 0, 0},
{K_TABMENU, nv_tabmenu, 0, 0},
#endif
-#ifdef FEAT_FKMAP
- {K_F8, farsi_f8, 0, 0},
- {K_F9, farsi_f9, 0, 0},
-#endif
#ifdef FEAT_NETBEANS_INTG
{K_F21, nv_nbcmd, NV_NCH_ALW, 0},
#endif
@@ -987,11 +983,6 @@ getcount:
/* adjust Hebrew mapped char */
if (p_hkmap && lang && KeyTyped)
*cp = hkmap(*cp);
-# ifdef FEAT_FKMAP
- /* adjust Farsi mapped char */
- if (p_fkmap && lang && KeyTyped)
- *cp = fkmap(*cp);
-# endif
#endif
}
diff --git a/src/option.c b/src/option.c
index c8808be04..b9fe3dabe 100644
--- a/src/option.c
+++ b/src/option.c
@@ -542,11 +542,7 @@ static struct vimoption options[] =
#endif
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"altkeymap", "akm", P_BOOL|P_VI_DEF,
-#ifdef FEAT_FKMAP
- (char_u *)&p_altkeymap, PV_NONE,
-#else
(char_u *)NULL, PV_NONE,
-#endif
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"ambiwidth", "ambw", P_STRING|P_VI_DEF|P_RCLR,
(char_u *)&p_ambw, PV_NONE,
@@ -1141,11 +1137,7 @@ static struct vimoption options[] =
(char_u *)&p_fixeol, PV_FIXEOL,
{(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
{"fkmap", "fk", P_BOOL|P_VI_DEF,
-#ifdef FEAT_FKMAP
- (char_u *)&p_fkmap, PV_NONE,
-#else
(char_u *)NULL, PV_NONE,
-#endif
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"flash", "fl", P_BOOL|P_VI_DEF,
(char_u *)NULL, PV_NONE,
@@ -8707,69 +8699,6 @@ set_bool_option(
}
#endif
-#ifdef FEAT_FKMAP
- else if ((int *)varp == &p_altkeymap)
- {
- if (old_value != p_altkeymap)
- {
- if (!p_altkeymap)
- {
- p_hkmap = p_fkmap;
- p_fkmap = 0;
- }
- else
- {
- p_fkmap = p_hkmap;
- p_hkmap = 0;
- }
- (void)init_chartab();
- }
- }
-
- /*
- * In case some second language keymapping options have changed, check
- * and correct the setting in a consistent way.
- */
-
- /*
- * If hkmap or fkmap are set, reset Arabic keymapping.
- */
- if ((p_hkmap || p_fkmap) && p_altkeymap)
- {
- p_altkeymap = p_fkmap;
-# ifdef FEAT_ARABIC
- curwin->w_p_arab = FALSE;
-# endif
- (void)init_chartab();
- }
-
- /*
- * If hkmap set, reset Farsi keymapping.
- */
- if (p_hkmap && p_altkeymap)
- {
- p_altkeymap = 0;
- p_fkmap = 0;
-# ifdef FEAT_ARABIC
- curwin->w_p_arab = FALSE;
-# endif
- (void)init_chartab();
- }
-
- /*
- * If fkmap set, reset Hebrew keymapping.
- */
- if (p_fkmap && !p_altkeymap)
- {
- p_altkeymap = 1;
- p_hkmap = 0;
-# ifdef FEAT_ARABIC
- curwin->w_p_arab = FALSE;
-# endif
- (void)init_chartab();
- }
-#endif
-
#ifdef FEAT_ARABIC
if ((int *)varp == &curwin->w_p_arab)
{
@@ -8816,12 +8745,6 @@ set_bool_option(
set_option_value((char_u *)"keymap", 0L, (char_u *)"arabic",
OPT_LOCAL);
# endif
-# ifdef FEAT_FKMAP
- p_altkeymap = 0;
- p_hkmap = 0;
- p_fkmap = 0;
- (void)init_chartab();
-# endif
}
else
{
@@ -11085,12 +11008,6 @@ win_copy_options(win_T *wp_from, win_T *wp_to)
{
copy_winopt(&wp_from->w_onebuf_opt, &wp_to->w_onebuf_opt);
copy_winopt(&wp_from->w_allbuf_opt, &wp_to->w_allbuf_opt);
-# ifdef FEAT_RIGHTLEFT
-# ifdef FEAT_FKMAP
- /* Is this right? */
- wp_to->w_farsi = wp_from->w_farsi;
-# endif
-# endif
#if defined(FEAT_LINEBREAK)
briopt_check(wp_to);
#endif
diff --git a/src/proto.h b/src/proto.h
index 1ab5cf78c..c19d15516 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -99,9 +99,6 @@ 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
diff --git a/src/proto/farsi.pro b/src/proto/farsi.pro
deleted file mode 100644
index b6e183651..000000000
--- a/src/proto/farsi.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-/* 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 : */
diff --git a/src/screen.c b/src/screen.c
index caf6e2c8b..d06cc3fcb 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -10247,10 +10247,6 @@ showmode(void)
#ifdef FEAT_RIGHTLEFT
if (p_hkmap)
msg_puts_attr(_(" Hebrew"), attr);
-# ifdef FEAT_FKMAP
- if (p_fkmap)
- msg_puts_attr(farsi_text_5, attr);
-# endif
#endif
#ifdef FEAT_KEYMAP
if (State & LANGMAP)
diff --git a/src/search.c b/src/search.c
index df7067b08..9a47ed460 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1477,12 +1477,8 @@ do_search(
}
}
-#ifdef FEAT_FKMAP /* when in Farsi mode, reverse the character flow */
- if (p_altkeymap && curwin->w_p_rl)
- lrFswap(searchstr,0);
-#endif
-
- c = searchit(curwin, curbuf, &pos, NULL, dirc == '/' ? FORWARD : BACKWARD,
+ c = searchit(curwin, curbuf, &pos, NULL,
+ dirc == '/' ? FORWARD : BACKWARD,
searchstr, count, spats[0].off.end + (options &
(SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
+ SEARCH_MSG + SEARCH_START
@@ -2976,10 +2972,6 @@ cls(void)
int c;
c = gchar_cursor();
-#ifdef FEAT_FKMAP /* when 'akm' (Farsi mode), take care of Farsi blank */
- if (p_altkeymap && c == F_BLANK)
- return 0;
-#endif
if (c == ' ' || c == '\t' || c == NUL)
return 0;
if (enc_dbcs != 0 && c > 0xFF)
diff --git a/src/structs.h b/src/structs.h
index 4464c4b8d..fdef811e4 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -2952,10 +2952,6 @@ struct window_S
dict_T *w_vars; /* internal variables, local to window */
#endif
-#if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP)
- int w_farsi; /* for the window dependent Farsi functions */
-#endif
-
/*
* The w_prev_pcmark field is used to check whether we really did jump to
* a new line after setting the w_pcmark. If not, then we revert to
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 92e2ae368..7cc5e7eae 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -118,7 +118,6 @@ NEW_TESTS = \
test_expand_func \
test_expr \
test_expr_utf8 \
- test_farsi \
test_feedkeys \
test_file_perm \
test_file_size \
@@ -318,7 +317,6 @@ NEW_TESTS_RES = \
test_exists.res \
test_exists_autocmd.res \
test_exit.res \
- test_farsi.res \
test_file_size.res \
test_filechanged.res \
test_find_complete.res \
diff --git a/src/testdir/test_farsi.vim b/src/testdir/test_farsi.vim
deleted file mode 100644
index dcfa0248c..000000000
--- a/src/testdir/test_farsi.vim
+++ /dev/null
@@ -1,133 +0,0 @@
-" Simplistic testing of Farsi mode.
-" Note: must be edited with latin1 encoding.
-
-if !has('farsi')
- finish
-endif
-" Farsi uses a single byte encoding.
-set enc=latin1
-
-func Test_farsi_toggle()
- new
-
- set altkeymap
- call assert_equal(0, &fkmap)
- call assert_equal(0, &rl)
- call feedkeys("\<F8>", 'x')
- call assert_equal(1, &fkmap)
- call assert_equal(1, &rl)
- call feedkeys("\<F8>", 'x')
- call assert_equal(0, &fkmap)
- call assert_equal(0, &rl)
-
- set rl
- " conversion from Farsi 3342 to Farsi VIM.
- call setline(1, join(map(range(0x80, 0xff), 'nr2char(v:val)'), ''))
- call feedkeys("\<F9>", 'x')
- let exp = [0xfc, 0xf8, 0xc1, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
- \ 0xc8, 0xc9, 0xca, 0xd0, 0xd1, 0xd2, 0xd3, 0xd6,
- \ 0xd6, 0xd6, 0xd7, 0xd7, 0xd7, 0xd8, 0xd9, 0xda,
- \ 0xdb, 0xdc, 0xdc, 0xc1, 0xdd, 0xde, 0xe0, 0xe0,
- \ 0xe1, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
- \ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae,
- \ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
- \ 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe,
- \ 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,
- \ 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,
- \ 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
- \ 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde,
- \ 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
- \ 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xfb, 0xfb, 0xfe,
- \ 0xfe, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6,
- \ 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xe1,
- \ ]
- call assert_equal(join(map(exp, 'nr2char(v:val)'), ''), getline(1))
-
- " conversion from Farsi VIM to Farsi 3342.
- call setline(1, join(map(range(0x80, 0xff), 'nr2char(v:val)'), ''))
- call feedkeys("\<F9>", 'x')
- let exp = [0xfc, 0xf8, 0xc1, 0x83, 0x84, 0x85, 0x86, 0x87,
- \ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x90,
- \ 0x90, 0x90, 0x92, 0x93, 0x93, 0x95, 0x96, 0x97,
- \ 0x98, 0xdc, 0x9a, 0x9b, 0x9c, 0x9e, 0x9e, 0xff,
- \ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
- \ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
- \ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
- \ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
- \ 0xc0, 0xc1, 0xc2, 0x83, 0x84, 0x85, 0x86, 0x87,
- \ 0x88, 0x89, 0x8a, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
- \ 0x8b, 0x8c, 0x8d, 0x8e, 0xd4, 0xd5, 0x90, 0x93,
- \ 0x95, 0x96, 0x97, 0x98, 0x99, 0x9b, 0x9c, 0xdf,
- \ 0x9d, 0xff, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
- \ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xec, 0xee, 0xef,
- \ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
- \ 0xf8, 0xf9, 0xfa, 0xec, 0x80, 0xfd, 0xee, 0xff,
- \ ]
- call assert_equal(join(map(exp, 'nr2char(v:val)'), ''), getline(1))
-
- bwipe!
-endfunc
-
-func Test_farsi_map()
- new
-
- set altkeymap
- set rl
- " RHS of mapping is reversed.
- imap xyz abc
- call feedkeys("axyz\<Esc>", 'tx')
- call assert_equal('cba', getline(1))
-
- set norl
- iunmap xyz
- set noaltkeymap
- bwipe!
-endfunc
-
-func Test_input_farsi()
- new
- setlocal rightleft fkmap
- " numbers switch input direction
- call feedkeys("aabc0123456789.+-^%#=xyz\<Esc>", 'tx')
- call assert_equal("\x8cÌν®¥ª­«¦¹¸·¶µ´³²±°Ô\x93Õ", getline('.'))
-
- " all non-number special chars with spaces
- call feedkeys("oB E F H I K L M O P Q R T U W Y ` ! @ # $ % ^ & * () - _ = + \\ | : \" . / < > ? \<Esc>", 'tx')
- call assert_equal("¡ ô ú À ö æ ç Â [ ] ÷ ó ò ð õ ñ ¢ £  § ® ¤ ¥ ª ¬ è ¨© ­ é ½ « ë ê º » ¦  ¯ ¾ ¼ ¿ ", getline('.'))
-
- " all non-number special chars without spaces
- call feedkeys("oBEFHIKLMOPQRTUWY`!@#$%^&*()-_=+\\|:\"./<>?\<Esc>",'tx')
- call assert_equal("¡ôúÀöæçÂ[]÷óòðõñ¢£§®¤¥ª¬è¨©­é½«ë꺻¦¯¾¼¿", getline('.'))
-
- " all letter chars with spaces
- call feedkeys("oa A b c C d D e f g G h i j J k l m n N o p q r s S t u v V w x X y z Z ; \ , [ ] \<Esc>", 'tx')
- call assert_equal("Ñ ù Ì Î Ï á þ Æ Ã Ü ø Á à Å ü Þ Ý Ä Ë Ë Ê É Ó Ù Ð û Ø Ö Í Í Ò Ô Ô × Õ ý Ú  ß Ç È ", getline('.'))
-
- " all letter chars without spaces
- call feedkeys("oaAbcCdDefgGhijJklmnNopqrsStuvVwxXyzZ;\,[]\<Esc>", 'tx')
- call assert_equal("\x8cùÌÎÏ\x9fî\x86\x83ÜøÁ\x9d\x85\x80\x9c\x9b\x84ËË\x8a\x89\x8e\x96\x8bì\x95\x90ÍÍ\x8dÔÔ\x93Õý\x97ß\x87\x88", getline('.'))
-
- bwipe!
-endfunc
-
-func Test_command_line_farsi()
- set allowrevins altkeymap
-
- " letter characters with spaces
- call feedkeys(":\"\<C-_>a A b c C d D e f g G h i j J k l m n N o p q r s S t u v V w x X y z Z ; \\ , [ ]\<CR>", 'tx')
- call assert_equal("\"\x88 Ç ß ë Ú Õ Õ × Ô Ô Ò Í Í Ö Ø û Ð Ù Ó É Ê Ë Ë Ä Ý Þ ü Å à Á ø Ü Ã Æ þ á Ï Î Ì ù Ñ", getreg(':'))
-
- " letter characters without spaces
- call feedkeys(":\"\<C-_>aAbcCdDefgGhijJklmnNopqrsStuvVwxXyzZ;\\,[]\<CR>", 'tx')
- call assert_equal("\"\x88\x87ßëÚÕÕ\x93ÔÔ\x8dÍÍ\x90\x95ì\x8b\x96\x8e\x89\x8aËË\x84\x9b\x9c\x80\x85\x9dÁøÜ\x83\x86î\x9fÏÎÌù\x8c", getreg(':'))
-
- " other characters with spaces
- call feedkeys(":\"\<C-_>0 1 2 3 4 5 6 7 8 9 ` . ! \" $ % ^ & / () = \\ ? + - _ * : # ~ @ < > { } | B E F H I K L M O P Q R T U W Y\<CR>", 'tx')
- call assert_equal("\"ñ õ ð ò ó ÷ ] [ Â ç æ ö À ú ô ¡ ê } { ¼ ¾ § ~ ® º è é ­ «  ¿ ë ½ ©¨ ¯ ¬ ª ¥ ¤ »  £  ¦ ¢ ¹ ¸ · ¶ µ ´ ³ ² ± °", getreg(':'))
-
- " other characters without spaces
- call feedkeys(":\"\<C-_>0123456789`.!\"$%^&/()=\\?+-_*:#~@<>{}|BEFHIKLMOPQRTUWY\<CR>", 'tx')
- call assert_equal("\"ñõðòó÷][ÂçæöÀúô¡ê}{¼¾§~®ºèé­«¿ë½©¨¯¬ª¥¤»£¦¢¹¸·¶µ´³²±°", getreg(':'))
-
- set noallowrevins noaltkeymap
-endfunc
diff --git a/src/version.c b/src/version.c
index 00c63e53c..aa73ebd87 100644
--- a/src/version.c
+++ b/src/version.c
@@ -255,11 +255,7 @@ static char *(features[]) =
#else
"-extra_search",
#endif
-#ifdef FEAT_FKMAP
- "+farsi",
-#else
"-farsi",
-#endif
#ifdef FEAT_SEARCHPATH
"+file_in_path",
#else
@@ -784,6 +780,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 932,
+/**/
931,
/**/
930,
diff --git a/src/window.c b/src/window.c
index 7dc3848e4..c4b543de3 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3445,12 +3445,6 @@ win_init_empty(win_T *wp)
wp->w_topfill = 0;
#endif
wp->w_botline = 2;
-#ifdef FEAT_FKMAP
- if (wp->w_p_rl)
- wp->w_farsi = W_CONV + W_R_L;
- else
- wp->w_farsi = W_CONV;
-#endif
#ifdef FEAT_SYN_HL
wp->w_s = &wp->w_buffer->b_s;
#endif