# HG changeset patch # User Bram Moolenaar # Date 1550326507 -3600 # Node ID a6ca8cf07a98169a4b20684298ec876f509d6f29 # Parent c478f5603556e2e60ba4a6f055f88658e1cfa05a patch 8.1.0932: Farsi support is outdated and unused commit https://github.com/vim/vim/commit/14184a3133b9a6ee5f711d493c04e41ba4fa7c2f Author: Bram Moolenaar Date: Sat Feb 16 15:10:30 2019 +0100 patch 8.1.0932: Farsi support is outdated and unused Problem: Farsi support is outdated and unused. Solution: Delete the Farsi support. diff --git a/Filelist b/Filelist --- 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 --- 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 ebd06caed1133abb5f8353306354d464d7cd497b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 GIT binary patch literal 0 Hc$@ - - -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 support has been removed in patch 8.1.0932. At that time it was +outdated and unused. -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. +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. -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 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -688,13 +688,8 @@ A jump table for the options with a shor {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 shor {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 --- 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: *opti '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 -'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 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -321,9 +321,8 @@ a slash. Thus "-R" means recovery and " 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 --- 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 --- 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 --- 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. 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 --- 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 --- 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 --- 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 --- 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 @@ testclean: $(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL) -$(OUTDIR)/farsi.obj: $(OUTDIR) farsi.c $(INCL) - $(OUTDIR)/fileio.obj: $(OUTDIR) fileio.c $(INCL) $(OUTDIR)/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 --- 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 --- a/src/Make_vms.mms +++ b/src/Make_vms.mms @@ -2,7 +2,7 @@ # Makefile for Vim on OpenVMS # # Maintainer: Zoltan Arpadffy -# 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_ 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 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 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]con 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 --- 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 @@ bundle-language: bundle-dir 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 p 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 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/x 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/xin 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 xdi 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/x 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 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 x 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 --- 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 @@ else 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 +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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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, ®match) == FAIL) { emsg(_(e_invcmd)); diff --git a/src/ex_getln.c b/src/ex_getln.c --- 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 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) + { + m = Columns * Rows; + if (m < 0) /* overflow, Columns or Rows at weird value */ + m = MAXCOL; + } + else + m = MAXCOL; + for (i = 0; i < len; ++i) { - if (KeyTyped) - { - m = Columns * Rows; - if (m < 0) /* overflow, Columns or Rows at weird value */ - m = MAXCOL; - } - 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 = 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; + 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 merg } #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 --- 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 --- 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 --- 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 --- a/src/globals.h +++ b/src/globals.h @@ -1450,9 +1450,7 @@ EXTERN char e_nogvim[] INIT(= N_("E25: G #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 --- 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 \tSet terminal type to ")); 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 --- 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 --- 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 *)NULL, PV_NONE, {(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 *)NULL, PV_NONE, {(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 * { 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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("\", 'x') - call assert_equal(1, &fkmap) - call assert_equal(1, &rl) - call feedkeys("\", '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("\", '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("\", '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\", '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\", '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 ` ! @ # $ % ^ & * () - _ = + \\ | : \" . / < > ? \", 'tx') - call assert_equal("¡ ô ú À ö æ ç Â [ ] ÷ ó ò ð õ ñ ¢ £  § ® ¤ ¥ ª ¬ è ¨© ­ é ½ « ë ê º » ¦  ¯ ¾ ¼ ¿ ", getline('.')) - - " all non-number special chars without spaces - call feedkeys("oBEFHIKLMOPQRTUWY`!@#$%^&*()-_=+\\|:\"./<>?\",'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 ; \ , [ ] \", 'tx') - call assert_equal("Ñ ù Ì Î Ï á þ Æ Ã Ü ø Á à Å ü Þ Ý Ä Ë Ë Ê É Ó Ù Ð û Ø Ö Í Í Ò Ô Ô × Õ ý Ú  ß Ç È ", getline('.')) - - " all letter chars without spaces - call feedkeys("oaAbcCdDefgGhijJklmnNopqrsStuvVwxXyzZ;\,[]\", '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(":\"\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 ; \\ , [ ]\", 'tx') - call assert_equal("\"\x88 Ç ß ë Ú Õ Õ × Ô Ô Ò Í Í Ö Ø û Ð Ù Ó É Ê Ë Ë Ä Ý Þ ü Å à Á ø Ü Ã Æ þ á Ï Î Ì ù Ñ", getreg(':')) - - " letter characters without spaces - call feedkeys(":\"\aAbcCdDefgGhijJklmnNopqrsStuvVwxXyzZ;\\,[]\", '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(":\"\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\", 'tx') - call assert_equal("\"ñ õ ð ò ó ÷ ] [ Â ç æ ö À ú ô ¡ ê } { ¼ ¾ § ~ ® º è é ­ «  ¿ ë ½ ©¨ ¯ ¬ ª ¥ ¤ »  £  ¦ ¢ ¹ ¸ · ¶ µ ´ ³ ² ± °", getreg(':')) - - " other characters without spaces - call feedkeys(":\"\0123456789`.!\"$%^&/()=\\?+-_*:#~@<>{}|BEFHIKLMOPQRTUWY\", 'tx') - call assert_equal("\"ñõðòó÷][ÂçæöÀúô¡ê}{¼¾§~®ºèé­«¿ë½©¨¯¬ª¥¤»£¦¢¹¸·¶µ´³²±°", getreg(':')) - - set noallowrevins noaltkeymap -endfunc diff --git a/src/version.c b/src/version.c --- 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 --- 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