From 14184a3133b9a6ee5f711d493c04e41ba4fa7c2f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 16 Feb 2019 15:10:30 +0100 Subject: [PATCH] patch 8.1.0932: Farsi support is outdated and unused Problem: Farsi support is outdated and unused. Solution: Delete the Farsi support. --- Filelist | 5 - farsi/README.txt | 2 - farsi/fonts/DOS/far-a01.com | Bin 4673 -> 0 bytes farsi/fonts/SunOs/far-a01.fb | Bin 14988 -> 0 bytes farsi/fonts/UNIXs/far-a01.f16 | Bin 4096 -> 0 bytes farsi/fonts/UNIXs/far-a01.pcf.Z | Bin 7181 -> 0 bytes farsi/fonts/UNIXs/far-a01.pcf.gz | Bin 5350 -> 0 bytes farsi/fonts/WINDOWS/far-a01.fon | Bin 17408 -> 0 bytes runtime/doc/farsi.txt | 261 +--- runtime/doc/options.txt | 14 +- runtime/doc/quickref.txt | 2 - runtime/doc/starting.txt | 5 +- src/Make_bc5.mak | 1 - src/Make_cyg_ming.mak | 3 +- src/Make_dice.mak | 4 - src/Make_ivc.mak | 5 - src/Make_manx.mak | 6 - src/Make_morph.mak | 1 - src/Make_mvc.mak | 6 +- src/Make_sas.mak | 5 - src/Make_vms.mms | 173 ++- src/Makefile | 212 ++- src/auto/configure | 15 +- src/charset.c | 20 +- src/config.h.in | 3 - src/configure.ac | 13 +- src/edit.c | 51 +- src/evalfunc.c | 3 - src/ex_cmds.c | 9 - src/ex_getln.c | 122 +- src/farsi.c | 2179 ------------------------------ src/farsi.h | 234 ---- src/getchar.c | 9 - src/globals.h | 11 +- src/main.c | 21 +- src/normal.c | 9 - src/option.c | 83 -- src/proto.h | 3 - src/proto/farsi.pro | 12 - src/screen.c | 4 - src/search.c | 12 +- src/structs.h | 4 - src/testdir/Make_all.mak | 2 - src/testdir/test_farsi.vim | 133 -- src/version.c | 6 +- src/window.c | 6 - 46 files changed, 240 insertions(+), 3429 deletions(-) delete mode 100644 farsi/README.txt delete mode 100755 farsi/fonts/DOS/far-a01.com delete mode 100644 farsi/fonts/SunOs/far-a01.fb delete mode 100644 farsi/fonts/UNIXs/far-a01.f16 delete mode 100644 farsi/fonts/UNIXs/far-a01.pcf.Z delete mode 100644 farsi/fonts/UNIXs/far-a01.pcf.gz delete mode 100644 farsi/fonts/WINDOWS/far-a01.fon delete mode 100644 src/farsi.c delete mode 100644 src/farsi.h delete mode 100644 src/proto/farsi.pro delete mode 100644 src/testdir/test_farsi.vim diff --git a/Filelist b/Filelist index 211b487673..c621f8c937 100644 --- a/Filelist +++ b/Filelist @@ -37,8 +37,6 @@ SRC_ALL = \ src/ex_docmd.c \ src/ex_eval.c \ src/ex_getln.c \ - src/farsi.c \ - src/farsi.h \ src/feature.h \ src/fileio.c \ src/findfile.c \ @@ -169,7 +167,6 @@ SRC_ALL = \ src/proto/ex_docmd.pro \ src/proto/ex_eval.pro \ src/proto/ex_getln.pro \ - src/proto/farsi.pro \ src/proto/fileio.pro \ src/proto/findfile.pro \ src/proto/fold.pro \ @@ -837,8 +834,6 @@ EXTRA = \ $(SRC_EXTRA) \ README_extra.txt \ src/VisVim/VisVim.dll \ - farsi/README.txt \ - farsi/fonts/*/far-* \ runtime/vimlogo.xpm \ src/tee/Makefile \ src/tee/Make_mvc.mak \ diff --git a/farsi/README.txt b/farsi/README.txt deleted file mode 100644 index ef6129fb63..0000000000 --- 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..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 4673 zc-oa$Z)hCH72myE&#lz;dZox=;~uA#d{I^Eh*jL4H)Xj$u5l1?L3VIa(iT=e>te%V ziOcD@mgRI;yN(O04DFY;6jD%IOzDS|7IHQuTx7a!f>eDdsHG9YABy6Z5(ELoX~k}5 zXJ&V2S8__9Eo*=C-n@D5&HFR{$Lp-t7|$tZr>n1CRVuUBYRcEfl#)8GFo%23R%d3E zvvBQ%a%QHij6e5WPPz0g<*T#R+Vr=lmFLHl7q48cPG3_F_h!#juhwU(%C*^=V$M!q zp1G_%qr6&!%vWZV`qj%bvr2iodKn5b|AQokVeyyCu!&^KbtQ!Q`rS#;VVI@v$j@Hm zviv+4xt{+nC#9zDFaB|<`&KF0Vfx;be#_it*n13fzxVI+7bmj|da~ZHr)r|!S39Bi z*G8wt+_5S<_0usoQ)M6i+MPc-`QrHt;Nru(E?)a)>gAWdKDACHCNn3yOMm?X5ZF?3 zQ54z1srA-g-~5cu)%x^-+F?Cgdq!7lXOLE`DZ8`y-qH%R=S>Nl645((9$b85Xz|^p zcc8>wDPX=dwT?eqE|@>Jp7@vCfzGN@f+^X z|2*Ac#@B}SUtqKSi+201AGh00j0-0VDx|rc2N*Au7s}=GD<5ok$p%?|U;jXVUzS51 zF8qTjcOZStd>p~MV3&OP`=k6*>Z#a%H)69B+h2&upHd4Edv<~2Z*6rS>^yQF?L6qV z5KaIwlXvnN5hRFvdQ+C=rtZ5}!32LZ{|7mcV)~ji_Q($>qVPbtBsc;UT}Cw=L#4HM zyIqHZqo!kyQYEQrmgP8NF=?dS(vYuPJZ3xJ!p<$JJV z3$j|ViMVE(T77eMb+wLdS5+gT4$2~u1>&46Ad*85E4r)G(T35Xv&|116%ywFzk(eJ z0F@i$zM*}#y|H22rbgtn2Dt%@EgOs5PJn?90I)4$e_A(J9cXZd91SmHkK$_v#5N>? z9k?I+?CXOpitl|l;eMeJv7B<4VBcM29*i0YOBnt23GqCcK)*oUFIw2z+S=?|ezw4X zIG#Zm@4*bPyo}$&Sg))=54$TB9pgtPE(r4x@vm~}O5=)gsp3SiVeC-*w`{xeWsJR( z&~fBEofLpf^k+~u!2BWc*oH?n8t~9cx((^W!x*umzsbkMJKfspRs=3|?Zi_2}_dPA^+dSxCMMgv{374R(^CV=l>8lGgX zhVqE-Q2gApYQwWP$Y-YRiLY7$x>Bg$tXIPL!o1YzcmlwP08s^{9F)fiK;*SpzCiky z0|UGf`n^e7c4!}UKLOtgQoy&*FX_#CCCm@BA7+5RUsBb)=Uy%y@X>ZE9wY%M>?MF1 zVpG%Td%_vh1cF~ut1tol`xl|BbDqCqWL^aG!{d1}@*MVMbN>^~t8iZ(^H~On$DSQ7 z3}To)cj62ODV4;S69kUNxPvBH7w(s17>_JHz+|38F}kyJz;&tp1P3FJVBBA0*dz9Z z33r2h^8-5)bTIKk(K!Pk52r3m`|tqKvq#T8RtC4r<;}vwUb~l%)~-n zMUY^?OR(P5p**R7UQRzba=bLLK;EK7ONY7uNRa+qDwT8TbhzL9N~d$>QYpABT}K-p zGyaLU{z`1T@0AQtaB@xdMgPV;I(xhlLo1H6te3p#tvBAclQ|Qm}@S=t@8gqoz(_TxCa( zzP@z3(uE%wog5tq(@7c~=p7iP{`(Ps-qX($Jl~jbyv3e7 z{D73^rPzEawu-IP?OQj4ARW-}Fu%eGn(?>}=&=%q5?pNU;2ngKICOkKqn3v!a{EL< wPhY>^?Y!p7Qx(VY93Q!#kcs;+^6olyKe_1r!E`wOm7!839^rMGG5?$Y1zV|oIRF3v diff --git a/farsi/fonts/SunOs/far-a01.fb b/farsi/fonts/SunOs/far-a01.fb deleted file mode 100644 index c353f85319c2000c209a78a7606a5c736d6888ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 14988 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 A7XSbN diff --git a/farsi/fonts/UNIXs/far-a01.pcf.gz b/farsi/fonts/UNIXs/far-a01.pcf.gz deleted file mode 100644 index ab6fa9ddd6418b958d820eecd6d55dd2f2f24d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5350 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 lvqGwxqq2LnYNhjppW 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 tSFZ4j-&Jqe*u( +If you would like to bring Farsi support back, please have a look at the old +Farsi code, as it was present at the 8.1 release. It should be merged with +Arabic support using the Unicode character set. -Introduction ------------- -In right-to-left oriented files the characters appear on the screen from right -to left. This kind of file is most useful when writing Farsi documents, -composing faxes or writing Farsi memos. - -The commands, prompts and help files are not in Farsi, therefore the user -interface remains the standard Vi interface. - - -Highlights ----------- -o Editing left-to-right files as in the original Vim, no change. - -o Viewing and editing files in right-to-left windows. File orientation is - per window, so it is possible to view the same file in right-to-left and - left-to-right modes, simultaneously. - -o Compatibility to the original Vim. Almost all features work in - right-to-left mode (see bugs below). - -o Changing keyboard mapping and reverse insert modes using a single - command. - -o Backing from reverse insert mode to the correct place in the file - (if possible). - -o While in Farsi mode, numbers are entered from left to right. Upon entering - a none number character, that character will be inserted just into the - left of the last number. - -o No special terminal with right-to-left capabilities is required. The - right-to-left changes are completely hardware independent. Only - Farsi font is necessary. - -o Farsi keymapping on the command line in reverse insert mode. - -o Toggling between left-to-right and right-to-left via F8 function key. - -o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9 - function key. Since this makes sense only for the text written in - right-to-left mode, this function is also supported only in right-to-left - mode. - -Farsi Fonts *farsi-fonts* ------------ - -The following files are found in the subdirectories of the '$VIM/farsi/fonts' -directory: - - + far-a01.pcf X Windows fonts for Unix including Linux systems - + far-a01.bf X Windows fonts for SunOS - + far-a01.f16 a screen fonts for Unix including Linux systems - + far-a01.fon a monospaced fonts for Windows NT/95/98 - + far-a01.com a screen fonts for DOS - - -Font Installation ------------------ - -o Installation of fonts for MS Window systems (NT/95/98) - - From 'Control Panel' folder, start the 'Fonts' program. Then from 'file' - menu item select 'Install New Fonts ...'. Browse and select the - 'far-a01.fon', then follow the installation guide. - NOTE: several people have reported that this does not work. The solution - is unknown. - -o Installation of fonts for X Window systems (Unix/Linux) - - Depending on your system, copy far-a01.pcf.Z or far-a01.pcf.gz into a - directory of your choice. Change to the directory containing the Farsi - fonts and execute the following commands: - - > mkfontdir - > xset +fp path_name_of_farsi_fonts_directory - -o Installation of fonts for X Window systems (SunOS) - - Copy far-a01.bf font into a directory of your choice. - Change to the directory containing the far-a01.fb fonts and - execute the following commands: - - > fldfamily - > xset +fp path_name_of_fonts_directory - -o Installation of ASCII screen fonts (Unix/Linux) - - For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts - directory and execute the setfont program as "setfont far-a01.f16". For - other systems (e.g. SCO Unix), please refer to the fonts installation - section of your system administration manuals. - -o Installation of ASCII screen fonts (DOS) - - After system power on, prior to the first use of Vim, upload the Farsi - fonts by executing the far-a01.com font uploading program. - - -Usage ------ -Prior to starting Vim, the environment in which Vim can run in Farsi mode, -must be set. In addition to installation of Farsi fonts, following points -refer to some of the system environments, which you may need to set: -Key code mapping, loading graphic card in ASCII screen mode, setting the IO -driver in 8 bit clean mode ... . - -o Setting the Farsi fonts - - + For Vim GUI set the 'guifont' to far-a01. This is done by entering - ':set guifont=far-a01' in the Vim window. - - You can have 'guifont' set to far-a01 by Vim during the Vim startup - by appending the ':set guifont=far-a01' into your .vimrc file - (in case of NT/95/98 platforms _vimrc). - - Under the X Window environment, you can also start Vim with the - '-fn far-a01' option. - - + For Vim within a xterm, start a xterm with the Farsi fonts (e.g. - kterm -fn far-a01). Then start Vim inside the kterm. - - + For Vim under DOS, prior to the first usage of Vim, upload the Farsi - fonts by executing the far-a01.com fonts uploading program. - -o Farsi Keymapping Activation - - To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'. - This is done by entering ':set akm' or ':set fk' in the Vim window. - You can have 'altkeymap' or 'fkmap' set as default by appending ':set akm' - or ':set fk' in your .vimrc file or _vimrc in case of NT/95/98 platforms. - - To turn off the Farsi keymapping as a default second language keymapping, - reset the 'altkeymap' by entering ':set noakm'. - -o right-to-left Farsi Mode - - By default Vim starts in Left-to-right mode. Following are ways to change - the window orientation: - - + Start Vim with the -F option (e.g. vim -F ...). - - + Use the F8 function key to toggle between left-to-right and right-to-left. - - + While in Left-to-right mode, enter 'set rl' in the command line ('rl' is - the abbreviation for rightleft). - - + Put the 'set rl' line in your '.vimrc' file to start Vim in - right-to-left mode permanently. - -Encoding --------- - -The letter encoding used is the Vim extended ISIR-3342 standard with a built -in function to convert between Vim extended ISIR-3342 and ISIR-3342 standard. - -For document portability reasons, the letter encoding is kept the same across -different platforms (i.e. UNIX's, NT/95/98, MS DOS, ...). - - -o Keyboard - - + CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin - mode as follows: - - + CTRL-_ moves the cursor to the end of the typed text in edit mode. - - + CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/ - Latin. The Farsi text is then entered in reverse insert mode. - - + F8 - Toggles between left-to-right and right-to-left. - - + F9 - Toggles the encoding between ISIR-3342 standard and Vim extended - ISIR-3342 (supported only in right-to-left mode). - - + Keyboard mapping is based on the Iranian ISIRI-2901 standard. - Following table shows the keyboard mapping while Farsi(akm) mode set: - - ------------------------------------- - ` 1 2 3 4 5 6 7 8 9 0 - = - ¢ ± ² ³ ´ µ ¶ · ¸ ¹ ° ­ ½ - ------------------------------------- - ~ ! @ # $ % ^ & * ( ) _ + - ~ £ § ® ¤ ¥ ª ¬ è ¨ © é « - ------------------------------------- - q w e r t z u i o p [ ] - Ó Ò Æ Ù Ø Õ Ö à Ê É Ç ˆ - ------------------------------------- - Q W E R T Z U I O P { } - ÷ õ ô ó ò ý ð ö [ ] { } - ------------------------------------- - a s d f g h j k l ; ' \ - Ñ Ð á Ã Ü Á Å Þ Ý Ú Û ë - ------------------------------------- - A S D F G H J K L : " | - ù û  þ ú ø À ü æ ç º » ê - ------------------------------------- - < y x c v b n m , . / - ¾ × Ô Î Í Ì Ë Ä ß ¦ ¯ - ------------------------------------- - > Y X C V B N M < > ? - ¼ ñ Ô Ï Í ¡ Ë Â ¾ ¼ ¿ - ------------------------------------- - -Note: - ¡ stands for Farsi PSP (break without space) - - ¢ stands for Farsi PCN (for HAMZE attribute) - -Restrictions ------------- - -o In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not - supported. - -o If you change the character mapping between Latin/Farsi, the redo buffer - will be reset (emptied). That is, redo is valid and will function (using - '.') only within the mode you are in. - -o While numbers are entered in Farsi mode, the redo buffer will be reset - (emptied). That is, you cannot redo the last changes (using '.') after - entering numbers. - -o While in left-to-right mode and Farsi mode set, CTRL-R is not supported. - -o While in right-to-left mode, the search on 'Latin' pattern does not work, - except if you enter the Latin search pattern in reverse. - -o In command mode there is no support for entering numbers from left - to right and also for the sake of flexibility the keymapping logic is - restricted. - -o Under the X Window environment, if you want to run Vim within a xterm - terminal emulator and Farsi mode set, you need to have an ANSI compatible - xterm terminal emulator. This is because the letter codes above 128 decimal - have certain meanings in the standard xterm terminal emulator. - - Note: Under X Window environment, Vim GUI works fine in Farsi mode. - This eliminates the need of any xterm terminal emulator. - - -Bugs ----- -While in insert/replace and Farsi mode set, if you repeatedly change the -cursor position (via cursor movement) and enter new text and then try to undo -the last change, the undo will lag one change behind. But as you continue to -undo, you will reach the original line of text. You can also use U to undo all -changes made in the current line. - -For more information about the bugs refer to rileft.txt. - vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 3b62c0f530..e664c96217 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -688,13 +688,8 @@ A jump table for the options with a short description can be found at |Q_op|. {not in Vi} {only available when compiled with the |+farsi| feature} - When on, the second language is Farsi. In editing mode CTRL-_ toggles - the keyboard map between Farsi and English, when 'allowrevins' set. - - When off, the keyboard map toggles between Hebrew and English. This - is useful to start the Vim in native mode i.e. English (left-to-right - mode) and have default second language Farsi or Hebrew (right-to-left - mode). See |farsi.txt|. + This option was for using Farsi, which has been removed. See + |farsi.txt|. *'ambiwidth'* *'ambw'* 'ambiwidth' 'ambw' string (default: "single") @@ -3301,9 +3296,8 @@ A jump table for the options with a short description can be found at |Q_op|. {not in Vi} {only available when compiled with the |+rightleft| feature} - When on, the keyboard is mapped for the Farsi character set. - Normally you would set 'allowrevins' and use CTRL-_ in insert mode to - toggle this option |i_CTRL-_|. See |farsi.txt|. + This option was for using Farsi, which has been removed. See + |farsi.txt|. *'foldclose'* *'fcl'* 'foldclose' 'fcl' string (default "") diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index 75f400f6d7..4c6e249e8a 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -600,7 +600,6 @@ In Insert or Command-line mode: Short explanation of each option: *option-list* 'aleph' 'al' ASCII code of the letter Aleph (Hebrew) 'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode -'altkeymap' 'akm' for default second language (Farsi/Hebrew) 'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width 'antialias' 'anti' Mac OS X: use smooth, antialiased fonts 'autochdir' 'acd' change directory to the file in the current window @@ -700,7 +699,6 @@ Short explanation of each option: *option-list* 'filetype' 'ft' type of file, used for autocommands 'fillchars' 'fcs' characters to use for displaying special items 'fixendofline' 'fixeol' make sure last line in file has -'fkmap' 'fk' Farsi keyboard mapping 'foldclose' 'fcl' close a fold when the cursor leaves it 'foldcolumn' 'fdc' width of the column used to indicate folds 'foldenable' 'fen' set to display all folds open diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index 6289e9c8f7..9f6472670c 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -321,9 +321,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly. and exits.) {not in Vi} *-F* --F Farsi mode. Sets the 'fkmap' and 'rightleft' options on. - (Only when compiled with |+rightleft| and |+farsi| features, - otherwise Vim gives an error message and exits.) {not in Vi} +-F This was used for Farsi mode, which has been removed. + See |farsi.txt|. *-H* -H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on. diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak index eb38dd7ccd..30fe727b2e 100644 --- a/src/Make_bc5.mak +++ b/src/Make_bc5.mak @@ -542,7 +542,6 @@ vimobj = \ $(OBJDIR)\ex_docmd.obj \ $(OBJDIR)\ex_eval.obj \ $(OBJDIR)\ex_getln.obj \ - $(OBJDIR)\farsi.obj \ $(OBJDIR)\fileio.obj \ $(OBJDIR)\findfile.obj \ $(OBJDIR)\fold.obj \ diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak index 48ce3974d6..f6ae85316f 100644 --- a/src/Make_cyg_ming.mak +++ b/src/Make_cyg_ming.mak @@ -714,7 +714,6 @@ OBJ = \ $(OUTDIR)/ex_docmd.o \ $(OUTDIR)/ex_eval.o \ $(OUTDIR)/ex_getln.o \ - $(OUTDIR)/farsi.o \ $(OUTDIR)/fileio.o \ $(OUTDIR)/findfile.o \ $(OUTDIR)/fold.o \ @@ -1005,7 +1004,7 @@ endif $(MAKE) -C tee clean ########################################################################### -INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \ +INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \ keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \ spell.h structs.h term.h beval.h $(NBDEBUG_INCL) GUI_INCL = gui.h diff --git a/src/Make_dice.mak b/src/Make_dice.mak index ffce805d3c..2025974fc5 100644 --- a/src/Make_dice.mak +++ b/src/Make_dice.mak @@ -44,7 +44,6 @@ SRC = \ ex_docmd.c \ ex_eval.c \ ex_getln.c \ - farsi.c \ fileio.c \ findfile.c \ fold.c \ @@ -104,7 +103,6 @@ OBJ = o/arabic.o \ o/ex_docmd.o \ o/ex_eval.o \ o/ex_getln.o \ - o/farsi.o \ o/fileio.o \ o/findfile.o \ o/fold.o \ @@ -201,8 +199,6 @@ o/ex_eval.o: ex_eval.c $(SYMS) ex_cmds.h o/ex_getln.o: ex_getln.c $(SYMS) -o/farsi.o: farsi.c $(SYMS) - o/fileio.o: fileio.c $(SYMS) o/findfile.o: findfile.c $(SYMS) diff --git a/src/Make_ivc.mak b/src/Make_ivc.mak index a02ba960f1..26367e096b 100644 --- a/src/Make_ivc.mak +++ b/src/Make_ivc.mak @@ -228,7 +228,6 @@ LINK32_OBJS= \ "$(INTDIR)/ex_docmd.obj" \ "$(INTDIR)/ex_eval.obj" \ "$(INTDIR)/ex_getln.obj" \ - "$(INTDIR)/farsi.obj" \ "$(INTDIR)/fileio.obj" \ "$(INTDIR)/findfile.obj" \ "$(INTDIR)/fold.obj" \ @@ -413,10 +412,6 @@ SOURCE=.\ex_getln.c # End Source File # Begin Source File -SOURCE=.\farsi.c -# End Source File -# Begin Source File - SOURCE=.\fileio.c # End Source File # Begin Source File diff --git a/src/Make_manx.mak b/src/Make_manx.mak index 5314a86a13..2cbc3df6aa 100644 --- a/src/Make_manx.mak +++ b/src/Make_manx.mak @@ -54,7 +54,6 @@ SRC = arabic.c \ ex_docmd.c \ ex_eval.c \ ex_getln.c \ - farsi.c \ fileio.c \ findfile.c \ fold.c \ @@ -116,7 +115,6 @@ OBJ = obj/arabic.o \ obj/ex_docmd.o \ obj/ex_eval.o \ obj/ex_getln.o \ - obj/farsi.o \ obj/fileio.o \ obj/findfile.o \ obj/fold.o \ @@ -176,7 +174,6 @@ PRO = proto/arabic.pro \ proto/ex_docmd.pro \ proto/ex_eval.pro \ proto/ex_getln.pro \ - proto/farsi.pro \ proto/fileio.pro \ proto/findfile.pro \ proto/fold.pro \ @@ -317,9 +314,6 @@ obj/ex_eval.o: ex_eval.c ex_cmds.h obj/ex_getln.o: ex_getln.c $(CCSYM) $@ ex_getln.c -obj/farsi.o: farsi.c - $(CCSYM) $@ farsi.c - obj/fileio.o: fileio.c $(CCSYM) $@ fileio.c diff --git a/src/Make_morph.mak b/src/Make_morph.mak index a6e0dae178..af231fb7b5 100644 --- a/src/Make_morph.mak +++ b/src/Make_morph.mak @@ -42,7 +42,6 @@ SRC = arabic.c \ ex_docmd.c \ ex_eval.c \ ex_getln.c \ - farsi.c \ fileio.c \ findfile.c \ fold.c \ diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak index c948f37719..c81fbd2961 100644 --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -694,7 +694,7 @@ CFLAGS = $(CFLAGS) /Zl /MTd !include Make_all.mak !include testdir\Make_all.mak -INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \ +INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \ keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \ spell.h structs.h term.h beval.h $(NBDEBUG_INCL) @@ -719,7 +719,6 @@ OBJ = \ $(OUTDIR)\ex_docmd.obj \ $(OUTDIR)\ex_eval.obj \ $(OUTDIR)\ex_getln.obj \ - $(OUTDIR)\farsi.obj \ $(OUTDIR)\fileio.obj \ $(OUTDIR)\findfile.obj \ $(OUTDIR)\fold.obj \ @@ -1404,8 +1403,6 @@ $(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL) $(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL) -$(OUTDIR)/farsi.obj: $(OUTDIR) farsi.c $(INCL) - $(OUTDIR)/fileio.obj: $(OUTDIR) fileio.c $(INCL) $(OUTDIR)/findfile.obj: $(OUTDIR) findfile.c $(INCL) @@ -1646,7 +1643,6 @@ proto.h: \ proto/ex_docmd.pro \ proto/ex_eval.pro \ proto/ex_getln.pro \ - proto/farsi.pro \ proto/fileio.pro \ proto/findfile.pro \ proto/getchar.pro \ diff --git a/src/Make_sas.mak b/src/Make_sas.mak index deaa5eb5d6..6ba00fbd67 100644 --- a/src/Make_sas.mak +++ b/src/Make_sas.mak @@ -107,7 +107,6 @@ SRC = \ ex_docmd.c \ ex_eval.c \ ex_getln.c \ - farsi.c \ fileio.c \ findfile.c \ fold.c \ @@ -168,7 +167,6 @@ OBJ = \ ex_docmd.o \ ex_eval.o \ ex_getln.o \ - farsi.o \ fileio.o \ findfile.o \ fold.o \ @@ -229,7 +227,6 @@ PRO = \ proto/ex_docmd.pro \ proto/ex_eval.pro \ proto/ex_getln.pro \ - proto/farsi.pro \ proto/fileio.pro \ proto/findfile.pro \ proto/fold.pro \ @@ -362,8 +359,6 @@ ex_eval.o: ex_eval.c ex_cmds.h proto/ex_eval.pro: ex_eval.c ex_cmds.h ex_getln.o: ex_getln.c proto/ex_getln.pro: ex_getln.c -farsi.o: farsi.c -proto/farsi.pro: farsi.c fileio.o: fileio.c proto/fileio.pro: fileio.c findfile.o: findfile.c diff --git a/src/Make_vms.mms b/src/Make_vms.mms index 92f5ab12ef..d40c82022d 100644 --- 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_LIB) \ SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \ crypt.c crypt_zip.c dict.c diff.c digraph.c edit.c eval.c evalfunc.c \ ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c if_cscope.c \ - if_xcmdsrv.c farsi.c fileio.c findfile.c fold.c getchar.c hardcopy.c \ + if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c hardcopy.c \ hashtab.c indent.c json.c list.c main.c mark.c menu.c mbyte.c \ memfile.c memline.c message.c misc1.c misc2.c move.c normal.c ops.c \ option.c popupmnu.c quickfix.c regexp.c search.c sha256.c sign.c \ @@ -328,7 +328,7 @@ SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \ OBJ = arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj \ charset.obj crypt.obj crypt_zip.obj dict.obj diff.obj digraph.obj \ edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj ex_docmd.obj \ - ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj farsi.obj \ + ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \ fileio.obj findfile.obj fold.obj getchar.obj hardcopy.obj hashtab.obj \ indent.obj json.obj list.obj main.obj mark.obj menu.obj memfile.obj \ memline.obj message.obj misc1.obj misc2.obj move.obj mbyte.obj \ @@ -514,279 +514,278 @@ blob.obj : blob.c vim.h [.auto]config.h feature.h os_unix.h buffer.obj : buffer.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h charset.obj : charset.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h crypt.obj : crypt.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h crypt_zip.obj : crypt_zip.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h dict.obj : dict.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h diff.obj : diff.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h digraph.obj : digraph.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h edit.obj : edit.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h eval.obj : eval.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h version.h evalfunc.obj : evalfunc.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h ex_cmds.obj : ex_cmds.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h ex_cmds2.obj : ex_cmds2.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h ex_docmd.obj : ex_docmd.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h ex_eval.obj : ex_eval.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h ex_getln.obj : ex_getln.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h -farsi.obj : farsi.c vim.h + globals.h arabic.h fileio.obj : fileio.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h findfile.obj : findfile.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h fold.obj : fold.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h getchar.obj : getchar.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h hardcopy.obj : hardcopy.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h hashtab.obj : hashtab.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h if_cscope.h + globals.h arabic.h if_cscope.h if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h if_mzsch.obj : if_mzsch.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro ex_cmds.h proto.h \ - globals.h farsi.h arabic.h if_mzsch.h + globals.h arabic.h if_mzsch.h indent.obj : indent.c vim.h [.auto]config.h feature.h os_unix.h json.obj : json.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h version.h list.obj : list.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h main.obj : main.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ - arabic.h farsi.c arabic.c + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ + arabic.h arabic.c mark.obj : mark.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h memfile.obj : memfile.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h memline.obj : memline.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h menu.obj : menu.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h message.obj : message.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h misc1.obj : misc1.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h version.h misc2.obj : misc2.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h move.obj : move.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h mbyte.obj : mbyte.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h normal.obj : normal.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h option.obj : option.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h os_unix.obj : os_unix.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h os_unixx.h + globals.h arabic.h os_unixx.h os_vms.obj : os_vms.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h os_unixx.h + globals.h arabic.h os_unixx.h pathdef.obj : pathdef.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h popupmnu.obj : popupmnu.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h quickfix.obj : quickfix.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h regexp.obj : regexp.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h screen.obj : screen.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h search.obj : search.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h sha256.obj : sha256.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h sign.obj : sign.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h spell.obj : spell.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h spellfile.obj : spellfile.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h syntax.obj : syntax.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h tag.obj : tag.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h term.obj : term.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h termlib.obj : termlib.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h ui.obj : ui.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h undo.obj : undo.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h userfunc.obj : userfunc.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h version.obj : version.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h window.obj : window.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h gui.obj : gui.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h gui_gtk.obj : gui_gtk.c gui_gtk_f.h vim.h [.auto]config.h feature.h \ os_unix.h ascii.h keymap.h term.h macros.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \ - proto.h globals.h farsi.h arabic.h [-.pixmaps]stock_icons.h + proto.h globals.h arabic.h [-.pixmaps]stock_icons.h gui_gtk_f.obj : gui_gtk_f.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h gui_gtk_f.h + globals.h arabic.h gui_gtk_f.h gui_motif.obj : gui_motif.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \ + globals.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \ [-.pixmaps]generic.xpm [-.pixmaps]info.xpm [-.pixmaps]quest.xpm gui_athena.obj : gui_athena.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h gui_at_sb.h + globals.h arabic.h gui_at_sb.h gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \ + globals.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \ [-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h [-.runtime]vim32x32.xpm \ + globals.h arabic.h [-.runtime]vim32x32.xpm \ [-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm [-.pixmaps]tb_new.xpm \ [-.pixmaps]tb_open.xpm [-.pixmaps]tb_close.xpm [-.pixmaps]tb_save.xpm \ [-.pixmaps]tb_print.xpm [-.pixmaps]tb_cut.xpm [-.pixmaps]tb_copy.xpm \ @@ -806,60 +805,60 @@ gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \ gui_at_sb.obj : gui_at_sb.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h gui_at_sb.h + globals.h arabic.h gui_at_sb.h gui_at_fs.obj : gui_at_fs.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h gui_at_sb.h + globals.h arabic.h gui_at_sb.h pty.obj : pty.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \ - [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \ + [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \ arabic.h hangulin.obj : hangulin.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h if_perl.obj : [.auto]if_perl.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h if_perlsfio.obj : if_perlsfio.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h if_python.obj : if_python.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h if_tcl.obj : if_tcl.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h if_ruby.obj : if_ruby.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h gui_beval.obj : gui_beval.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h + globals.h arabic.h workshop.obj : workshop.c [.auto]config.h integration.h vim.h feature.h \ os_unix.h ascii.h keymap.h term.h macros.h structs.h \ regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \ - proto.h globals.h farsi.h arabic.h version.h workshop.h + proto.h globals.h arabic.h version.h workshop.h wsdebug.obj : wsdebug.c integration.obj : integration.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h integration.h + globals.h arabic.h integration.h netbeans.obj : netbeans.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h version.h + globals.h arabic.h version.h gui_xmdlg.obj : gui_xmdlg.c [.auto]config.h vim.h feature.h os_unix.h gui_xmebw.obj : gui_xmebw.c [.auto]config.h vim.h feature.h os_unix.h xdiffi.obj : [.xdiff]xdiffi.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h diff --git a/src/Makefile b/src/Makefile index 5575902a3d..be41f7725b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -492,9 +492,9 @@ CClink = $(CC) # MULTIBYTE - To edit multi-byte characters. # This is now always enabled. -# When building with at least "big" features, right-left, Arabic and Farsi +# When building with at least "big" features, right-left and Arabic # features are enabled. Use this to disable them. -#CONF_OPT_MULTIBYTE = --disable-rightleft --disable-farsi --disable-arabic +#CONF_OPT_MULTIBYTE = --disable-rightleft --disable-arabic # NLS - National Language Support # Uncomment this when you do not want to support translated messages, even @@ -1590,7 +1590,6 @@ BASIC_SRC = \ ex_docmd.c \ ex_eval.c \ ex_getln.c \ - farsi.c \ fileio.c \ findfile.c \ fold.c \ @@ -1704,7 +1703,6 @@ OBJ_COMMON = \ objects/ex_docmd.o \ objects/ex_eval.o \ objects/ex_getln.o \ - objects/farsi.o \ objects/fileio.o \ objects/findfile.o \ objects/fold.o \ @@ -1831,7 +1829,6 @@ PRO_AUTO = \ ex_docmd.pro \ ex_eval.pro \ ex_getln.pro \ - farsi.pro \ fileio.pro \ findfile.pro \ fold.pro \ @@ -2996,9 +2993,6 @@ objects/ex_eval.o: ex_eval.c objects/ex_getln.o: ex_getln.c $(CCC) -o $@ ex_getln.c -objects/farsi.o: farsi.c - $(CCC) -o $@ farsi.c - objects/fileio.o: fileio.c $(CCC) -o $@ fileio.c @@ -3392,290 +3386,286 @@ $(APPDIR)/Contents: objects/arabic.o: arabic.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/autocmd.o: autocmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/beval.o: beval.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/blob.o: blob.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/blowfish.o: blowfish.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/buffer.o: buffer.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/charset.o: charset.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/crypt.o: crypt.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/crypt_zip.o: crypt_zip.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/dict.o: dict.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/diff.o: diff.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h xdiff/xdiff.h vim.h + proto.h globals.h arabic.h xdiff/xdiff.h vim.h objects/digraph.o: digraph.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/edit.o: edit.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/eval.o: eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/evalfunc.o: evalfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/ex_cmds.o: ex_cmds.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/ex_cmds2.o: ex_cmds2.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/ex_docmd.o: ex_docmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h ex_cmdidxs.h + proto.h globals.h arabic.h ex_cmdidxs.h objects/ex_eval.o: ex_eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/ex_getln.o: ex_getln.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h -objects/farsi.o: farsi.c vim.h protodef.h auto/config.h feature.h os_unix.h \ - auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ - proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/fileio.o: fileio.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/findfile.o: findfile.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \ + proto.h globals.h arabic.h libvterm/include/vterm.h \ libvterm/include/vterm_keycodes.h objects/fold.o: fold.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/getchar.o: getchar.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/hardcopy.o: hardcopy.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/hashtab.o: hashtab.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/if_cscope.o: if_cscope.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h if_cscope.h + proto.h globals.h arabic.h if_cscope.h objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/indent.o: indent.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/json.o: json.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/list.o: list.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/main.o: main.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/mark.o: mark.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/memfile.o: memfile.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/memline.o: memline.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/menu.o: menu.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/message.o: message.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/misc1.o: misc1.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/misc2.o: misc2.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/mbyte.o: mbyte.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/ops.o: ops.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/option.o: option.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/os_unix.o: os_unix.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h os_unixx.h + proto.h globals.h arabic.h os_unixx.h objects/pathdef.o: auto/pathdef.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/popupmnu.o: popupmnu.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/pty.o: pty.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/quickfix.o: quickfix.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/regexp.o: regexp.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h regexp_nfa.c + proto.h globals.h arabic.h regexp_nfa.c objects/screen.o: screen.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/search.o: search.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/sha256.o: sha256.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/sign.o: sign.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/spell.o: spell.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/spellfile.o: spellfile.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/syntax.o: syntax.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/tag.o: tag.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/term.o: term.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \ + proto.h globals.h arabic.h libvterm/include/vterm.h \ libvterm/include/vterm_keycodes.h objects/terminal.o: terminal.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \ + proto.h globals.h arabic.h libvterm/include/vterm.h \ libvterm/include/vterm_keycodes.h objects/textprop.o: textprop.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/ui.o: ui.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/undo.o: undo.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/userfunc.o: userfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/version.o: version.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/window.o: window.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/gui.o: gui.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/gui_gtk.o: gui_gtk.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_gtk_f.h + proto.h globals.h arabic.h gui_gtk_f.h objects/gui_gtk_f.o: gui_gtk_f.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_gtk_f.h + proto.h globals.h arabic.h gui_gtk_f.h objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \ + proto.h globals.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \ ../pixmaps/error.xpm ../pixmaps/generic.xpm ../pixmaps/info.xpm \ ../pixmaps/quest.xpm gui_x11_pm.h ../pixmaps/tb_new.xpm \ ../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm ../pixmaps/tb_save.xpm \ @@ -3696,15 +3686,15 @@ objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \ objects/gui_xmdlg.o: gui_xmdlg.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/gui_xmebw.o: gui_xmebw.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_xmebwp.h gui_xmebw.h + proto.h globals.h arabic.h gui_xmebwp.h gui_xmebw.h objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_at_sb.h gui_x11_pm.h \ + proto.h globals.h arabic.h gui_at_sb.h gui_x11_pm.h \ ../pixmaps/tb_new.xpm ../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm \ ../pixmaps/tb_save.xpm ../pixmaps/tb_print.xpm ../pixmaps/tb_cut.xpm \ ../pixmaps/tb_copy.xpm ../pixmaps/tb_paste.xpm ../pixmaps/tb_find.xpm \ @@ -3723,85 +3713,85 @@ objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \ objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \ + proto.h globals.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \ ../runtime/vim32x32.xpm ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm objects/gui_x11.o: gui_x11.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h ../runtime/vim32x32.xpm \ + proto.h globals.h arabic.h ../runtime/vim32x32.xpm \ ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm objects/gui_at_sb.o: gui_at_sb.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_at_sb.h + proto.h globals.h arabic.h gui_at_sb.h objects/gui_at_fs.o: gui_at_fs.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h gui_at_sb.h + proto.h globals.h arabic.h gui_at_sb.h objects/json_test.o: json_test.c main.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h json.c + proto.h globals.h arabic.h json.c objects/kword_test.o: kword_test.c main.c vim.h protodef.h auto/config.h \ feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \ option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \ - ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h charset.c + ex_cmds.h spell.h proto.h globals.h arabic.h charset.c objects/memfile_test.o: memfile_test.c main.c vim.h protodef.h auto/config.h \ feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \ option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \ - ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h memfile.c + ex_cmds.h spell.h proto.h globals.h arabic.h memfile.c objects/message_test.o: message_test.c main.c vim.h protodef.h auto/config.h \ feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \ option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \ - ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h message.c + ex_cmds.h spell.h proto.h globals.h arabic.h message.c objects/hangulin.o: hangulin.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/if_lua.o: if_lua.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/if_mzsch.o: if_mzsch.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h if_mzsch.h + proto.h globals.h arabic.h if_mzsch.h objects/if_perl.o: auto/if_perl.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/if_perlsfio.o: if_perlsfio.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/if_python.o: if_python.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h if_py_both.h + proto.h globals.h arabic.h if_py_both.h objects/if_python3.o: if_python3.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h if_py_both.h + proto.h globals.h arabic.h if_py_both.h objects/if_tcl.o: if_tcl.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/if_ruby.o: if_ruby.c protodef.h auto/config.h vim.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/gui_beval.o: gui_beval.c vim.h protodef.h auto/config.h feature.h \ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/netbeans.o: netbeans.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h version.h + proto.h globals.h arabic.h version.h objects/channel.o: channel.c vim.h protodef.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \ proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \ - proto.h globals.h farsi.h arabic.h + proto.h globals.h arabic.h objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c objects/encoding.o: libvterm/src/encoding.c libvterm/src/vterm_internal.h \ libvterm/include/vterm.h libvterm/include/vterm_keycodes.h \ @@ -3833,7 +3823,7 @@ objects/xdiffi.o: xdiff/xdiffi.c xdiff/xinclude.h auto/config.h \ macros.h option.h beval.h proto/gui_beval.pro \ structs.h regexp.h gui.h alloc.h \ ex_cmds.h spell.h proto.h globals.h \ - farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \ + arabic.h xdiff/xtypes.h xdiff/xutils.h \ xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \ xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \ @@ -3842,7 +3832,7 @@ objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \ macros.h option.h beval.h proto/gui_beval.pro \ structs.h regexp.h gui.h alloc.h \ ex_cmds.h spell.h proto.h globals.h \ - farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \ + arabic.h xdiff/xtypes.h xdiff/xutils.h \ xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \ xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \ @@ -3851,7 +3841,7 @@ objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \ macros.h option.h beval.h proto/gui_beval.pro \ structs.h regexp.h gui.h alloc.h \ ex_cmds.h spell.h proto.h globals.h \ - farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \ + arabic.h xdiff/xtypes.h xdiff/xutils.h \ xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \ xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \ @@ -3860,7 +3850,7 @@ objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \ macros.h option.h beval.h proto/gui_beval.pro \ structs.h regexp.h gui.h alloc.h \ ex_cmds.h spell.h proto.h globals.h \ - farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \ + arabic.h xdiff/xtypes.h xdiff/xutils.h \ xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \ xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \ @@ -3869,7 +3859,7 @@ objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \ macros.h option.h beval.h proto/gui_beval.pro \ structs.h regexp.h gui.h alloc.h \ ex_cmds.h spell.h proto.h globals.h \ - farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \ + arabic.h xdiff/xtypes.h xdiff/xutils.h \ xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \ xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \ @@ -3878,5 +3868,5 @@ objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \ macros.h option.h beval.h proto/gui_beval.pro \ structs.h regexp.h gui.h alloc.h \ ex_cmds.h spell.h proto.h globals.h \ - farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \ + arabic.h xdiff/xtypes.h xdiff/xutils.h \ xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h diff --git a/src/auto/configure b/src/auto/configure index 8052cebf6e..db3e3b1e45 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -1498,7 +1498,7 @@ Optional Features: --enable-multibyte Include multibyte editing support. --disable-rightleft Do not include Right-to-Left language support. --disable-arabic Do not include Arabic language support. - --disable-farsi Do not include Farsi language support. + --disable-farsi Deprecated. --enable-hangulinput Include Hangul input support. --enable-xim Include XIM input support. --enable-fontset Include X fontset output support. @@ -7980,24 +7980,11 @@ $as_echo "yes" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-farsi argument" >&5 -$as_echo_n "checking --disable-farsi argument... " >&6; } # Check whether --enable-farsi was given. if test "${enable_farsi+set}" = set; then : enableval=$enable_farsi; -else - enable_farsi="yes" fi -if test "$enable_farsi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define DISABLE_FARSI 1" >>confdefs.h - -fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-hangulinput argument" >&5 $as_echo_n "checking --enable-hangulinput argument... " >&6; } diff --git a/src/charset.c b/src/charset.c index 5b091ec4d1..1d66d617ad 100644 --- a/src/charset.c +++ b/src/charset.c @@ -98,13 +98,6 @@ buf_init_chartab( while (c <= '~') #endif g_chartab[c++] = 1 + CT_PRINT_CHAR; -#ifdef FEAT_FKMAP - if (p_altkeymap) - { - while (c < YE) - g_chartab[c++] = 1 + CT_PRINT_CHAR; - } -#endif while (c < 256) { /* UTF-8: bytes 0xa0 - 0xff are printable (latin1) */ @@ -218,11 +211,7 @@ buf_init_chartab( /* Use the MB_ functions here, because isalpha() doesn't * work properly when 'encoding' is "latin1" and the locale is * "C". */ - if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c) -#ifdef FEAT_FKMAP - || (p_altkeymap && (F_isalpha(c) || F_isdigit(c))) -#endif - ) + if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c)) { if (i == 0) /* (re)set ID flag */ { @@ -236,10 +225,6 @@ buf_init_chartab( if ((c < ' ' #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. @@ -539,9 +524,6 @@ transchar(int c) (c >= 64 && c < 255) #else (c >= ' ' && c <= '~') -#endif -#ifdef FEAT_FKMAP - || (p_altkeymap && F_ischar(c)) #endif )) || (c < 256 && vim_isprintc_strict(c))) { diff --git a/src/config.h.in b/src/config.h.in index d1aaf708ea..7fe65de570 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -391,9 +391,6 @@ /* Define if you don't want to include right-left support. */ #undef DISABLE_RIGHTLEFT -/* Define if you don't want to include Farsi support. */ -#undef DISABLE_FARSI - /* Define if you don't want to include Arabic support. */ #undef DISABLE_ARABIC diff --git a/src/configure.ac b/src/configure.ac index 2b7725b0a7..2d409b3ca0 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -2155,18 +2155,9 @@ else AC_DEFINE(DISABLE_ARABIC) fi -dnl Farsi language support for vim will be included with big features, -dnl unless ENABLE_FARSI is undefined. -AC_MSG_CHECKING(--disable-farsi argument) +dnl Farsi language support has been removed, ignore --disable-farsi AC_ARG_ENABLE(farsi, - [ --disable-farsi Do not include Farsi language support.], - , [enable_farsi="yes"]) -if test "$enable_farsi" = "yes"; then - AC_MSG_RESULT(no) -else - AC_MSG_RESULT(yes) - AC_DEFINE(DISABLE_FARSI) -fi + [ --disable-farsi Deprecated.],,) AC_MSG_CHECKING(--enable-hangulinput argument) AC_ARG_ENABLE(hangulinput, diff --git a/src/edit.c b/src/edit.c index 042826a872..62ff03d962 100644 --- a/src/edit.c +++ b/src/edit.c @@ -467,15 +467,6 @@ edit( if (cmdchar == 'R') { -#ifdef FEAT_FKMAP - if (p_fkmap && p_ri) - { - beep_flush(); - emsg(farsi_text_3); /* encoded in Farsi */ - State = INSERT; - } - else -#endif State = REPLACE; } else if (cmdchar == 'V' || cmdchar == 'v') @@ -812,10 +803,6 @@ edit( if (p_hkmap && KeyTyped) c = hkmap(c); /* Hebrew mode mapping */ #endif -#ifdef FEAT_FKMAP - if (p_fkmap && KeyTyped) - c = fkmap(c); /* Farsi mode mapping */ -#endif #ifdef FEAT_INS_EXPAND /* @@ -6281,9 +6268,6 @@ insertchar( && !ISSPECIAL(c) && (!has_mbyte || MB_BYTE2LEN_CHECK(c) == 1) && i < INPUT_BUFLEN -# ifdef FEAT_FKMAP - && !(p_fkmap && KeyTyped) /* Farsi mode mapping moves cursor */ -# endif && (textwidth == 0 || (virtcol += byte2cells(buf[i - 1])) < (colnr_T)textwidth) && !(!no_abbr && !vim_iswordc(c) && vim_iswordc(buf[i - 1]))) @@ -8406,23 +8390,7 @@ ins_ctrl_(void) } else revins_scol = -1; -#ifdef FEAT_FKMAP - if (p_altkeymap) - { - /* - * to be consistent also for redo command, using '.' - * set arrow_used to true and stop it - causing to redo - * characters entered in one mode (normal/reverse insert). - */ - arrow_used = TRUE; - (void)stop_arrow(); - p_fkmap = curwin->w_p_rl ^ p_ri; - if (p_fkmap && p_ri) - State = INSERT; - } - else -#endif - p_hkmap = curwin->w_p_rl ^ p_ri; /* be consistent! */ + p_hkmap = curwin->w_p_rl ^ p_ri; // be consistent! showmode(); } #endif @@ -8488,21 +8456,12 @@ ins_start_select(int c) static void ins_insert(int replaceState) { -#ifdef FEAT_FKMAP - if (p_fkmap && p_ri) - { - beep_flush(); - emsg(farsi_text_3); /* encoded in Farsi */ - return; - } -#endif - -# ifdef FEAT_EVAL +#ifdef FEAT_EVAL set_vim_var_string(VV_INSERTMODE, (char_u *)((State & REPLACE_FLAG) ? "i" : replaceState == VREPLACE ? "v" : "r"), 1); -# endif +#endif ins_apply_autocmds(EVENT_INSERTCHANGE); if (State & REPLACE_FLAG) State = INSERT | (State & LANGMAP); @@ -9916,10 +9875,6 @@ ins_eol(int c) coladvance(getviscol()); #ifdef FEAT_RIGHTLEFT -# ifdef FEAT_FKMAP - if (p_altkeymap && p_fkmap) - fkmap(NL); -# endif /* NL in reverse insert will always start in the end of * current line. */ if (revins_on) diff --git a/src/evalfunc.c b/src/evalfunc.c index f1cb9dc607..e9f63423a8 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -6268,9 +6268,6 @@ f_has(typval_T *argvars, typval_T *rettv) #ifdef FEAT_SEARCH_EXTRA "extra_search", #endif -#ifdef FEAT_FKMAP - "farsi", -#endif #ifdef FEAT_SEARCHPATH "file_in_path", #endif diff --git a/src/ex_cmds.c b/src/ex_cmds.c index e9fa94f678..79b9bc11d4 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -4911,10 +4911,6 @@ do_sub(exarg_T *eap) } else /* find the end of the regexp */ { -#ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */ - if (p_altkeymap && curwin->w_p_rl) - lrF_sub(cmd); -#endif which_pat = RE_LAST; /* use last used regexp */ delimiter = *cmd++; /* remember delimiter character */ pat = cmd; /* remember start of search pat */ @@ -6070,11 +6066,6 @@ ex_global(exarg_T *eap) *cmd++ = NUL; /* replace it with a NUL */ } -#ifdef FEAT_FKMAP /* when in Farsi mode, reverse the character flow */ - if (p_altkeymap && curwin->w_p_rl) - lrFswap(pat,0); -#endif - if (search_regcomp(pat, RE_BOTH, which_pat, SEARCH_HIS, ®match) == FAIL) { emsg(_(e_invcmd)); diff --git a/src/ex_getln.c b/src/ex_getln.c index cba082a0bd..0096737b01 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -81,10 +81,6 @@ static int hist_char2type(int c); static int cmd_hkmap = 0; /* Hebrew mapping during command line */ #endif -#ifdef FEAT_FKMAP -static int cmd_fkmap = 0; /* Farsi mapping during command line */ -#endif - static char_u *getcmdline_int(int firstc, long count, int indent, int init_ccline); static int cmdline_charsize(int idx); static void set_cmdspos(void); @@ -1043,10 +1039,6 @@ getcmdline_int( #ifdef FEAT_RIGHTLEFT if (cmd_hkmap) c = hkmap(c); -# ifdef FEAT_FKMAP - if (cmd_fkmap) - c = cmdl_fkmap(c); -# endif if (cmdmsg_rl && !KeyStuffed) { /* Invert horizontal movements and operations. Only when @@ -1595,10 +1587,6 @@ getcmdline_int( case K_DEL: case K_KDEL: case Ctrl_W: -#ifdef FEAT_FKMAP - if (cmd_fkmap && c == K_BS) - c = K_DEL; -#endif if (c == K_KDEL) c = K_DEL; @@ -1694,13 +1682,6 @@ getcmdline_int( case K_INS: case K_KINS: -#ifdef FEAT_FKMAP - /* if Farsi mode set, we are in reverse insert mode - - Do not change the mode */ - if (cmd_fkmap) - beep_flush(); - else -#endif ccline.overstrike = !ccline.overstrike; #ifdef CURSOR_SHAPE ui_cursor_shape(); /* may show different cursor shape */ @@ -2309,16 +2290,7 @@ getcmdline_int( case Ctrl__: /* CTRL-_: switch language mode */ if (!p_ari) break; -# ifdef FEAT_FKMAP - if (p_altkeymap) - { - cmd_fkmap = !cmd_fkmap; - if (cmd_fkmap) /* in Farsi always in Insert mode */ - ccline.overstrike = FALSE; - } - else /* Hebrew is default */ -# endif - cmd_hkmap = !cmd_hkmap; + cmd_hkmap = !cmd_hkmap; goto cmdline_not_changed; #endif @@ -2421,10 +2393,6 @@ returncmd: cmdmsg_rl = FALSE; #endif -#ifdef FEAT_FKMAP - cmd_fkmap = 0; -#endif - ExpandCleanup(&xpc); ccline.xpc = NULL; @@ -3463,44 +3431,35 @@ put_on_cmdline(char_u *str, int len, int redraw) msg_clr_eos(); msg_no_more = FALSE; } -#ifdef FEAT_FKMAP - /* - * If we are in Farsi command mode, the character input must be in - * Insert mode. So do not advance the cmdpos. - */ - if (!cmd_fkmap) -#endif + if (KeyTyped) { - if (KeyTyped) - { - m = Columns * Rows; - if (m < 0) /* overflow, Columns or Rows at weird value */ - m = MAXCOL; - } - else + m = Columns * Rows; + if (m < 0) /* overflow, Columns or Rows at weird value */ m = MAXCOL; - for (i = 0; i < len; ++i) - { - c = cmdline_charsize(ccline.cmdpos); - /* count ">" for a double-wide char that doesn't fit. */ - if (has_mbyte) - correct_cmdspos(ccline.cmdpos, c); - /* Stop cursor at the end of the screen, but do increment the - * insert position, so that entering a very long command - * works, even though you can't see it. */ - if (ccline.cmdspos + c < m) - ccline.cmdspos += c; + } + else + m = MAXCOL; + for (i = 0; i < len; ++i) + { + c = cmdline_charsize(ccline.cmdpos); + /* count ">" for a double-wide char that doesn't fit. */ + if (has_mbyte) + correct_cmdspos(ccline.cmdpos, c); + /* Stop cursor at the end of the screen, but do increment the + * insert position, so that entering a very long command + * works, even though you can't see it. */ + if (ccline.cmdspos + c < m) + ccline.cmdspos += c; - if (has_mbyte) - { - c = (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos) - 1; - if (c > len - i - 1) - c = len - i - 1; - ccline.cmdpos += c; - i += c; - } - ++ccline.cmdpos; + if (has_mbyte) + { + c = (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos) - 1; + if (c > len - i - 1) + c = len - i - 1; + ccline.cmdpos += c; + i += c; } + ++ccline.cmdpos; } } if (redraw) @@ -7126,35 +7085,6 @@ write_viminfo_history(FILE *fp, int merge) } #endif /* FEAT_VIMINFO */ -#if defined(FEAT_FKMAP) || defined(PROTO) -/* - * Write a character at the current cursor+offset position. - * It is directly written into the command buffer block. - */ - void -cmd_pchar(int c, int offset) -{ - if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0) - { - emsg(_("E198: cmd_pchar beyond the command length")); - return; - } - ccline.cmdbuff[ccline.cmdpos + offset] = (char_u)c; - ccline.cmdbuff[ccline.cmdlen] = NUL; -} - - int -cmd_gchar(int offset) -{ - if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0) - { - // emsg(_("cmd_gchar beyond the command length")); - return NUL; - } - return (int)ccline.cmdbuff[ccline.cmdpos + offset]; -} -#endif - #if defined(FEAT_CMDWIN) || defined(PROTO) /* * Open a window on the current command line and history. Allow editing in diff --git a/src/farsi.c b/src/farsi.c deleted file mode 100644 index 48dd991b07..0000000000 --- a/src/farsi.c +++ /dev/null @@ -1,2179 +0,0 @@ -/* vi:set ts=8 sts=4 sw=4 noet: - * - * VIM - Vi IMproved by Bram Moolenaar - * - * Do ":help uganda" in Vim to read copying and usage conditions. - * Do ":help credits" in Vim to see a list of people who contributed. - * See README.txt for an overview of the Vim source code. - */ - -/* - * farsi.c: functions for Farsi language - */ - -#include "vim.h" - -#if defined(FEAT_FKMAP) || defined(PROTO) - -static int F_is_TyB_TyC_TyD(int src, int offset); - -/* - * Convert the given Farsi character into a _X or _X_ type - */ - static int -toF_Xor_X_(int c) -{ - int tempc; - - switch (c) - { - case BE: return _BE; - case PE: return _PE; - case TE: return _TE; - case SE: return _SE; - case JIM: return _JIM; - case CHE: return _CHE; - case HE_J: return _HE_J; - case XE: return _XE; - case SIN: return _SIN; - case SHIN: return _SHIN; - case SAD: return _SAD; - case ZAD: return _ZAD; - case AYN: return _AYN; - case AYN_: return _AYN_; - case GHAYN: return _GHAYN; - case GHAYN_: return _GHAYN_; - case FE: return _FE; - case GHAF: return _GHAF; - case KAF: return _KAF; - case GAF: return _GAF; - case LAM: return _LAM; - case MIM: return _MIM; - case NOON: return _NOON; - case YE: - case YE_: return _YE; - case YEE: - case YEE_: return _YEE; - case IE: - case IE_: return _IE; - case F_HE: - tempc = _HE; - - if (p_ri && (curwin->w_cursor.col + 1 - < (colnr_T)STRLEN(ml_get_curline()))) - { - inc_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = _HE_; - - dec_cursor(); - } - if (!p_ri && STRLEN(ml_get_curline())) - { - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = _HE_; - - inc_cursor(); - } - - return tempc; - } - return 0; -} - -/* - * Convert the given Farsi character into Farsi capital character. - */ - static int -toF_TyA(int c) -{ - switch (c) - { - case ALEF_: return ALEF; - case ALEF_U_H_: return ALEF_U_H; - case _BE: return BE; - case _PE: return PE; - case _TE: return TE; - case _SE: return SE; - case _JIM: return JIM; - case _CHE: return CHE; - case _HE_J: return HE_J; - case _XE: return XE; - case _SIN: return SIN; - case _SHIN: return SHIN; - case _SAD: return SAD; - case _ZAD: return ZAD; - case _AYN: - case AYN_: - case _AYN_: return AYN; - case _GHAYN: - case GHAYN_: - case _GHAYN_: return GHAYN; - case _FE: return FE; - case _GHAF: return GHAF; - /* I am not sure what it is !!! case _KAF_H: */ - case _KAF: return KAF; - case _GAF: return GAF; - case _LAM: return LAM; - case _MIM: return MIM; - case _NOON: return NOON; - case _YE: - case YE_: return YE; - case _YEE: - case YEE_: return YEE; - case TEE_: return TEE; - case _IE: - case IE_: return IE; - case _HE: - case _HE_: return F_HE; - } - return c; -} - -/* - * Is the character under the cursor+offset in the given buffer a join type. - * That is a character that is combined with the others. - * Note: the offset is used only for command line buffer. - */ - static int -F_is_TyB_TyC_TyD(int src, int offset) -{ - int c; - - if (src == SRC_EDT) - c = gchar_cursor(); - else - c = cmd_gchar(AT_CURSOR+offset); - - switch (c) - { - case _LAM: - case _BE: - case _PE: - case _TE: - case _SE: - case _JIM: - case _CHE: - case _HE_J: - case _XE: - case _SIN: - case _SHIN: - case _SAD: - case _ZAD: - case _TA: - case _ZA: - case _AYN: - case _AYN_: - case _GHAYN: - case _GHAYN_: - case _FE: - case _GHAF: - case _KAF: - case _KAF_H: - case _GAF: - case _MIM: - case _NOON: - case _YE: - case _YEE: - case _IE: - case _HE_: - case _HE: - return TRUE; - } - return FALSE; -} - -/* - * Is the Farsi character one of the terminating only type. - */ - static int -F_is_TyE(int c) -{ - switch (c) - { - case ALEF_A: - case ALEF_D_H: - case DAL: - case ZAL: - case RE: - case ZE: - case JE: - case WAW: - case WAW_H: - case HAMZE: - return TRUE; - } - return FALSE; -} - -/* - * Is the Farsi character one of the none leading type. - */ - static int -F_is_TyC_TyD(int c) -{ - switch (c) - { - case ALEF_: - case ALEF_U_H_: - case _AYN_: - case AYN_: - case _GHAYN_: - case GHAYN_: - case _HE_: - case YE_: - case IE_: - case TEE_: - case YEE_: - return TRUE; - } - return FALSE; -} - -/* - * Convert a none leading Farsi char into a leading type. - */ - static int -toF_TyB(int c) -{ - switch (c) - { - case ALEF_: return ALEF; - case ALEF_U_H_: return ALEF_U_H; - case _AYN_: return _AYN; - case AYN_: return AYN; /* exception - there are many of them */ - case _GHAYN_: return _GHAYN; - case GHAYN_: return GHAYN; /* exception - there are many of them */ - case _HE_: return _HE; - case YE_: return YE; - case IE_: return IE; - case TEE_: return TEE; - case YEE_: return YEE; - } - return c; -} - - - static void -put_and_redo(int c) -{ - pchar_cursor(c); - AppendCharToRedobuff(K_BS); - AppendCharToRedobuff(c); -} - -/* - * Overwrite the current redo and cursor characters + left adjust. - */ - static void -put_curr_and_l_to_X(int c) -{ - int tempc; - - if (curwin->w_p_rl && p_ri) - return; - - if ((curwin->w_cursor.col < (colnr_T)STRLEN(ml_get_curline()))) - { - if ((p_ri && curwin->w_cursor.col) || !p_ri) - { - if (p_ri) - dec_cursor(); - else - inc_cursor(); - - if (F_is_TyC_TyD((tempc = gchar_cursor()))) - { - pchar_cursor(toF_TyB(tempc)); - AppendCharToRedobuff(K_BS); - AppendCharToRedobuff(tempc); - } - - if (p_ri) - inc_cursor(); - else - dec_cursor(); - } - } - - put_and_redo(c); -} - -/* - * Change the char. under the cursor to a X_ or X type - */ - static void -chg_c_toX_orX(void) -{ - int tempc, curc; - - switch ((curc = gchar_cursor())) - { - case _BE: - tempc = BE; - break; - case _PE: - tempc = PE; - break; - case _TE: - tempc = TE; - break; - case _SE: - tempc = SE; - break; - case _JIM: - tempc = JIM; - break; - case _CHE: - tempc = CHE; - break; - case _HE_J: - tempc = HE_J; - break; - case _XE: - tempc = XE; - break; - case _SIN: - tempc = SIN; - break; - case _SHIN: - tempc = SHIN; - break; - case _SAD: - tempc = SAD; - break; - case _ZAD: - tempc = ZAD; - break; - case _FE: - tempc = FE; - break; - case _GHAF: - tempc = GHAF; - break; - case _KAF_H: - case _KAF: - tempc = KAF; - break; - case _GAF: - tempc = GAF; - break; - case _AYN: - tempc = AYN; - break; - case _AYN_: - tempc = AYN_; - break; - case _GHAYN: - tempc = GHAYN; - break; - case _GHAYN_: - tempc = GHAYN_; - break; - case _LAM: - tempc = LAM; - break; - case _MIM: - tempc = MIM; - break; - case _NOON: - tempc = NOON; - break; - case _HE: - case _HE_: - tempc = F_HE; - break; - case _YE: - case _IE: - case _YEE: - if (p_ri) - { - inc_cursor(); - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = (curc == _YE ? YE_ : - (curc == _IE ? IE_ : YEE_)); - else - tempc = (curc == _YE ? YE : - (curc == _IE ? IE : YEE)); - dec_cursor(); - } - else - { - if (curwin->w_cursor.col) - { - dec_cursor(); - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = (curc == _YE ? YE_ : - (curc == _IE ? IE_ : YEE_)); - else - tempc = (curc == _YE ? YE : - (curc == _IE ? IE : YEE)); - inc_cursor(); - } - else - tempc = (curc == _YE ? YE : - (curc == _IE ? IE : YEE)); - } - break; - default: - tempc = 0; - } - - if (tempc) - put_and_redo(tempc); -} - -/* - * Change the char. under the cursor to a _X_ or X_ type - */ - static void -chg_c_to_X_orX_(void) -{ - int tempc; - - switch (gchar_cursor()) - { - case ALEF: - tempc = ALEF_; - break; - case ALEF_U_H: - tempc = ALEF_U_H_; - break; - case _AYN: - tempc = _AYN_; - break; - case AYN: - tempc = AYN_; - break; - case _GHAYN: - tempc = _GHAYN_; - break; - case GHAYN: - tempc = GHAYN_; - break; - case _HE: - tempc = _HE_; - break; - case YE: - tempc = YE_; - break; - case IE: - tempc = IE_; - break; - case TEE: - tempc = TEE_; - break; - case YEE: - tempc = YEE_; - break; - default: - tempc = 0; - } - - if (tempc) - put_and_redo(tempc); -} - -/* - * Change the char. under the cursor to a _X_ or _X type - */ - static void -chg_c_to_X_or_X(void) -{ - int tempc; - - tempc = gchar_cursor(); - - if (curwin->w_cursor.col + 1 < (colnr_T)STRLEN(ml_get_curline())) - { - inc_cursor(); - - if ((tempc == F_HE) && (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))) - { - tempc = _HE_; - - dec_cursor(); - - put_and_redo(tempc); - return; - } - - dec_cursor(); - } - - if ((tempc = toF_Xor_X_(tempc)) != 0) - put_and_redo(tempc); -} - -/* - * Change the character left to the cursor to a _X_ or X_ type - */ - static void -chg_l_to_X_orX_(void) -{ - int tempc; - - if (curwin->w_cursor.col != 0 && - (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline()))) - return; - - if (!curwin->w_cursor.col && p_ri) - return; - - if (p_ri) - dec_cursor(); - else - inc_cursor(); - - switch (gchar_cursor()) - { - case ALEF: - tempc = ALEF_; - break; - case ALEF_U_H: - tempc = ALEF_U_H_; - break; - case _AYN: - tempc = _AYN_; - break; - case AYN: - tempc = AYN_; - break; - case _GHAYN: - tempc = _GHAYN_; - break; - case GHAYN: - tempc = GHAYN_; - break; - case _HE: - tempc = _HE_; - break; - case YE: - tempc = YE_; - break; - case IE: - tempc = IE_; - break; - case TEE: - tempc = TEE_; - break; - case YEE: - tempc = YEE_; - break; - default: - tempc = 0; - } - - if (tempc) - put_and_redo(tempc); - - if (p_ri) - inc_cursor(); - else - dec_cursor(); -} - -/* - * Change the character left to the cursor to a X or _X type - */ - static void -chg_l_toXor_X(void) -{ - int tempc; - - if (curwin->w_cursor.col != 0 && - (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline()))) - return; - - if (!curwin->w_cursor.col && p_ri) - return; - - if (p_ri) - dec_cursor(); - else - inc_cursor(); - - switch (gchar_cursor()) - { - case ALEF_: - tempc = ALEF; - break; - case ALEF_U_H_: - tempc = ALEF_U_H; - break; - case _AYN_: - tempc = _AYN; - break; - case AYN_: - tempc = AYN; - break; - case _GHAYN_: - tempc = _GHAYN; - break; - case GHAYN_: - tempc = GHAYN; - break; - case _HE_: - tempc = _HE; - break; - case YE_: - tempc = YE; - break; - case IE_: - tempc = IE; - break; - case TEE_: - tempc = TEE; - break; - case YEE_: - tempc = YEE; - break; - default: - tempc = 0; - } - - if (tempc) - put_and_redo(tempc); - - if (p_ri) - inc_cursor(); - else - dec_cursor(); -} - -/* - * Change the character right to the cursor to a _X or _X_ type - */ - static void -chg_r_to_Xor_X_(void) -{ - int tempc, c; - - if (curwin->w_cursor.col) - { - if (!p_ri) - dec_cursor(); - - tempc = gchar_cursor(); - - if ((c = toF_Xor_X_(tempc)) != 0) - put_and_redo(c); - - if (!p_ri) - inc_cursor(); - - } -} - -/* - * Map Farsi keyboard when in fkmap mode. - */ - int -fkmap(int c) -{ - int tempc; - int insert_mode = (State & INSERT); - static int revins = 0; - - if (IS_SPECIAL(c)) - return c; - - if (insert_mode) - { - if (VIM_ISDIGIT(c) || ((c == '.' || c == '+' || c == '-' || - c == '^' || c == '%' || c == '#' || c == '=') && revins)) - { - /* Numbers are entered left-to-right. */ - if (!revins) - { - if (curwin->w_cursor.col) - { - if (!p_ri) - dec_cursor(); - - chg_c_toX_orX (); - chg_l_toXor_X (); - - if (!p_ri) - inc_cursor(); - } - } - - arrow_used = TRUE; - (void)stop_arrow(); - - if (!curwin->w_p_rl && revins) - inc_cursor(); - - ++revins; - p_ri = 1; - } - else if (revins) - { - /* Stop entering number. */ - arrow_used = TRUE; - (void)stop_arrow(); - - revins = 0; - if (curwin->w_p_rl) - { - while ((F_isdigit(gchar_cursor()) - || (gchar_cursor() == F_PERIOD - || gchar_cursor() == F_PLUS - || gchar_cursor() == F_MINUS - || gchar_cursor() == F_MUL - || gchar_cursor() == F_DIVIDE - || gchar_cursor() == F_PERCENT - || gchar_cursor() == F_EQUALS)) - && gchar_cursor() != NUL) - ++curwin->w_cursor.col; - } - else - { - if (curwin->w_cursor.col) - while ((F_isdigit(gchar_cursor()) - || (gchar_cursor() == F_PERIOD - || gchar_cursor() == F_PLUS - || gchar_cursor() == F_MINUS - || gchar_cursor() == F_MUL - || gchar_cursor() == F_DIVIDE - || gchar_cursor() == F_PERCENT - || gchar_cursor() == F_EQUALS)) - && --curwin->w_cursor.col) - ; - - if (!F_isdigit(gchar_cursor())) - ++curwin->w_cursor.col; - } - } - } - - if (!revins) - { - if (curwin->w_p_rl) - p_ri = 0; - if (!curwin->w_p_rl) - p_ri = 1; - } - - if ((c < 0x100) && (isalpha(c) || c == '&' || c == '^' || c == ';' || - c == '\''|| c == ',' || c == '[' || - c == ']' || c == '{' || c == '}')) - chg_r_to_Xor_X_(); - - tempc = 0; - - switch (c) - { - case '`': - case ' ': - case '.': - case '!': - case '"': - case '$': - case '%': - case '^': - case '&': - case '/': - case '(': - case ')': - case '=': - case '\\': - case '?': - case '+': - case '-': - case '_': - case '*': - case ':': - case '#': - case '~': - case '@': - case '<': - case '>': - case '{': - case '}': - case '|': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'B': - case 'E': - case 'F': - case 'H': - case 'I': - case 'K': - case 'L': - case 'M': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'T': - case 'U': - case 'W': - case 'Y': - case NL: - case TAB: - - if (p_ri && c == NL && curwin->w_cursor.col && insert_mode) - { - /* - * If the char before the cursor is _X_ or X_ do not change - * the one under the cursor with X type. - */ - dec_cursor(); - - if (F_isalpha(gchar_cursor())) - { - inc_cursor(); - return NL; - } - - inc_cursor(); - } - - if (!p_ri && !curwin->w_cursor.col) - { - switch (c) - { - case '0': return FARSI_0; - case '1': return FARSI_1; - case '2': return FARSI_2; - case '3': return FARSI_3; - case '4': return FARSI_4; - case '5': return FARSI_5; - case '6': return FARSI_6; - case '7': return FARSI_7; - case '8': return FARSI_8; - case '9': return FARSI_9; - case 'B': return F_PSP; - case 'E': return JAZR_N; - case 'F': return ALEF_D_H; - case 'H': return ALEF_A; - case 'I': return TASH; - case 'K': return F_LQUOT; - case 'L': return F_RQUOT; - case 'M': return HAMZE; - case 'O': return '['; - case 'P': return ']'; - case 'Q': return OO; - case 'R': return MAD_N; - case 'T': return OW; - case 'U': return MAD; - case 'W': return OW_OW; - case 'Y': return JAZR; - case '`': return F_PCN; - case '!': return F_EXCL; - case '@': return F_COMMA; - case '#': return F_DIVIDE; - case '$': return F_CURRENCY; - case '%': return F_PERCENT; - case '^': return F_MUL; - case '&': return F_BCOMMA; - case '*': return F_STAR; - case '(': return F_LPARENT; - case ')': return F_RPARENT; - case '-': return F_MINUS; - case '_': return F_UNDERLINE; - case '=': return F_EQUALS; - case '+': return F_PLUS; - case '\\': return F_BSLASH; - case '|': return F_PIPE; - case ':': return F_DCOLON; - case '"': return F_SEMICOLON; - case '.': return F_PERIOD; - case '/': return F_SLASH; - case '<': return F_LESS; - case '>': return F_GREATER; - case '?': return F_QUESTION; - case ' ': return F_BLANK; - } - break; - } - - if (insert_mode) - { - if (!p_ri) - dec_cursor(); - - switch ((tempc = gchar_cursor())) - { - case _BE: - case _PE: - case _TE: - case _SE: - case _JIM: - case _CHE: - case _HE_J: - case _XE: - case _SIN: - case _SHIN: - case _SAD: - case _ZAD: - case _FE: - case _GHAF: - case _KAF: - case _KAF_H: - case _GAF: - case _LAM: - case _MIM: - case _NOON: - case _HE: - case _HE_: - case _TA: - case _ZA: - put_curr_and_l_to_X(toF_TyA(tempc)); - break; - case _AYN: - case _AYN_: - - if (!p_ri) - if (!curwin->w_cursor.col) - { - put_curr_and_l_to_X(AYN); - break; - } - - if (p_ri) - inc_cursor(); - else - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = AYN_; - else - tempc = AYN; - - if (p_ri) - dec_cursor(); - else - inc_cursor(); - - put_curr_and_l_to_X(tempc); - - break; - case _GHAYN: - case _GHAYN_: - - if (!p_ri) - if (!curwin->w_cursor.col) - { - put_curr_and_l_to_X(GHAYN); - break; - } - - if (p_ri) - inc_cursor(); - else - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = GHAYN_; - else - tempc = GHAYN; - - if (p_ri) - dec_cursor(); - else - inc_cursor(); - - put_curr_and_l_to_X(tempc); - break; - case _YE: - case _IE: - case _YEE: - if (!p_ri) - if (!curwin->w_cursor.col) - { - put_curr_and_l_to_X((tempc == _YE ? YE : - (tempc == _IE ? IE : YEE))); - break; - } - - if (p_ri) - inc_cursor(); - else - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = (tempc == _YE ? YE_ : - (tempc == _IE ? IE_ : YEE_)); - else - tempc = (tempc == _YE ? YE : - (tempc == _IE ? IE : YEE)); - - if (p_ri) - dec_cursor(); - else - inc_cursor(); - - put_curr_and_l_to_X(tempc); - break; - } - - if (!p_ri) - inc_cursor(); - } - - tempc = 0; - - switch (c) - { - case '0': return FARSI_0; - case '1': return FARSI_1; - case '2': return FARSI_2; - case '3': return FARSI_3; - case '4': return FARSI_4; - case '5': return FARSI_5; - case '6': return FARSI_6; - case '7': return FARSI_7; - case '8': return FARSI_8; - case '9': return FARSI_9; - case 'B': return F_PSP; - case 'E': return JAZR_N; - case 'F': return ALEF_D_H; - case 'H': return ALEF_A; - case 'I': return TASH; - case 'K': return F_LQUOT; - case 'L': return F_RQUOT; - case 'M': return HAMZE; - case 'O': return '['; - case 'P': return ']'; - case 'Q': return OO; - case 'R': return MAD_N; - case 'T': return OW; - case 'U': return MAD; - case 'W': return OW_OW; - case 'Y': return JAZR; - case '`': return F_PCN; - case '!': return F_EXCL; - case '@': return F_COMMA; - case '#': return F_DIVIDE; - case '$': return F_CURRENCY; - case '%': return F_PERCENT; - case '^': return F_MUL; - case '&': return F_BCOMMA; - case '*': return F_STAR; - case '(': return F_LPARENT; - case ')': return F_RPARENT; - case '-': return F_MINUS; - case '_': return F_UNDERLINE; - case '=': return F_EQUALS; - case '+': return F_PLUS; - case '\\': return F_BSLASH; - case '|': return F_PIPE; - case ':': return F_DCOLON; - case '"': return F_SEMICOLON; - case '.': return F_PERIOD; - case '/': return F_SLASH; - case '<': return F_LESS; - case '>': return F_GREATER; - case '?': return F_QUESTION; - case ' ': return F_BLANK; - } - break; - - case 'a': - tempc = _SHIN; - break; - case 'A': - tempc = WAW_H; - break; - case 'b': - tempc = ZAL; - break; - case 'c': - tempc = ZE; - break; - case 'C': - tempc = JE; - break; - case 'd': - tempc = _YE; - break; - case 'D': - tempc = _YEE; - break; - case 'e': - tempc = _SE; - break; - case 'f': - tempc = _BE; - break; - case 'g': - tempc = _LAM; - break; - case 'G': - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - - if (gchar_cursor() == _LAM) - chg_c_toX_orX (); - else if (p_ri) - chg_c_to_X_or_X (); - } - - if (!p_ri) - if (!curwin->w_cursor.col) - return ALEF_U_H; - - if (!p_ri) - dec_cursor(); - - if (gchar_cursor() == _LAM) - { - chg_c_toX_orX (); - chg_l_toXor_X (); - tempc = ALEF_U_H; - } - else if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - { - tempc = ALEF_U_H_; - chg_l_toXor_X (); - } - else - tempc = ALEF_U_H; - - if (!p_ri) - inc_cursor(); - - return tempc; - case 'h': - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - if (p_ri) - chg_c_to_X_or_X (); - - } - - if (!p_ri) - if (!curwin->w_cursor.col) - return ALEF; - - if (!p_ri) - dec_cursor(); - - if (gchar_cursor() == _LAM) - { - chg_l_toXor_X(); - del_char(FALSE); - AppendCharToRedobuff(K_BS); - - if (!p_ri) - dec_cursor(); - - tempc = LA; - } - else - { - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - { - tempc = ALEF_; - chg_l_toXor_X (); - } - else - tempc = ALEF; - } - - if (!p_ri) - inc_cursor(); - - return tempc; - case 'i': - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - if (!p_ri && !F_is_TyE(tempc)) - chg_c_to_X_orX_ (); - if (p_ri) - chg_c_to_X_or_X (); - - } - - if (!p_ri && !curwin->w_cursor.col) - return _HE; - - if (!p_ri) - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = _HE_; - else - tempc = _HE; - - if (!p_ri) - inc_cursor(); - break; - case 'j': - tempc = _TE; - break; - case 'J': - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - if (p_ri) - chg_c_to_X_or_X (); - - } - - if (!p_ri) - if (!curwin->w_cursor.col) - return TEE; - - if (!p_ri) - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - { - tempc = TEE_; - chg_l_toXor_X (); - } - else - tempc = TEE; - - if (!p_ri) - inc_cursor(); - - return tempc; - case 'k': - tempc = _NOON; - break; - case 'l': - tempc = _MIM; - break; - case 'm': - tempc = _PE; - break; - case 'n': - case 'N': - tempc = DAL; - break; - case 'o': - tempc = _XE; - break; - case 'p': - tempc = _HE_J; - break; - case 'q': - tempc = _ZAD; - break; - case 'r': - tempc = _GHAF; - break; - case 's': - tempc = _SIN; - break; - case 'S': - tempc = _IE; - break; - case 't': - tempc = _FE; - break; - case 'u': - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - if (!p_ri && !F_is_TyE(tempc)) - chg_c_to_X_orX_ (); - if (p_ri) - chg_c_to_X_or_X (); - - } - - if (!p_ri && !curwin->w_cursor.col) - return _AYN; - - if (!p_ri) - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = _AYN_; - else - tempc = _AYN; - - if (!p_ri) - inc_cursor(); - break; - case 'v': - case 'V': - tempc = RE; - break; - case 'w': - tempc = _SAD; - break; - case 'x': - case 'X': - tempc = _TA; - break; - case 'y': - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - if (!p_ri && !F_is_TyE(tempc)) - chg_c_to_X_orX_ (); - if (p_ri) - chg_c_to_X_or_X (); - - } - - if (!p_ri && !curwin->w_cursor.col) - return _GHAYN; - - if (!p_ri) - dec_cursor(); - - if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)) - tempc = _GHAYN_; - else - tempc = _GHAYN; - - if (!p_ri) - inc_cursor(); - - break; - case 'z': - tempc = _ZA; - break; - case 'Z': - tempc = _KAF_H; - break; - case ';': - tempc = _KAF; - break; - case '\'': - tempc = _GAF; - break; - case ',': - tempc = WAW; - break; - case '[': - tempc = _JIM; - break; - case ']': - tempc = _CHE; - break; - } - - if (F_isalpha(tempc) || F_isdigit(tempc)) - { - if (!curwin->w_cursor.col && STRLEN(ml_get_curline())) - { - if (!p_ri && !F_is_TyE(tempc)) - chg_c_to_X_orX_(); - if (p_ri) - chg_c_to_X_or_X(); - } - - if (curwin->w_cursor.col) - { - if (!p_ri) - dec_cursor(); - - if (F_is_TyE(tempc)) - chg_l_toXor_X(); - else - chg_l_to_X_orX_(); - - if (!p_ri) - inc_cursor(); - } - } - if (tempc) - return tempc; - return c; -} - -/* - * Convert a none leading Farsi char into a leading type. - */ - static int -toF_leading(int c) -{ - switch (c) - { - case ALEF_: return ALEF; - case ALEF_U_H_: return ALEF_U_H; - case BE: return _BE; - case PE: return _PE; - case TE: return _TE; - case SE: return _SE; - case JIM: return _JIM; - case CHE: return _CHE; - case HE_J: return _HE_J; - case XE: return _XE; - case SIN: return _SIN; - case SHIN: return _SHIN; - case SAD: return _SAD; - case ZAD: return _ZAD; - - case AYN: - case AYN_: - case _AYN_: return _AYN; - - case GHAYN: - case GHAYN_: - case _GHAYN_: return _GHAYN; - - case FE: return _FE; - case GHAF: return _GHAF; - case KAF: return _KAF; - case GAF: return _GAF; - case LAM: return _LAM; - case MIM: return _MIM; - case NOON: return _NOON; - - case _HE_: - case F_HE: return _HE; - - case YE: - case YE_: return _YE; - - case IE_: - case IE: return _IE; - - case YEE: - case YEE_: return _YEE; - } - return c; -} - -/* - * Convert a given Farsi char into right joining type. - */ - static int -toF_Rjoin(int c) -{ - switch (c) - { - case ALEF: return ALEF_; - case ALEF_U_H: return ALEF_U_H_; - case BE: return _BE; - case PE: return _PE; - case TE: return _TE; - case SE: return _SE; - case JIM: return _JIM; - case CHE: return _CHE; - case HE_J: return _HE_J; - case XE: return _XE; - case SIN: return _SIN; - case SHIN: return _SHIN; - case SAD: return _SAD; - case ZAD: return _ZAD; - - case AYN: - case AYN_: - case _AYN: return _AYN_; - - case GHAYN: - case GHAYN_: - case _GHAYN_: return _GHAYN_; - - case FE: return _FE; - case GHAF: return _GHAF; - case KAF: return _KAF; - case GAF: return _GAF; - case LAM: return _LAM; - case MIM: return _MIM; - case NOON: return _NOON; - - case _HE: - case F_HE: return _HE_; - - case YE: - case YE_: return _YE; - - case IE_: - case IE: return _IE; - - case TEE: return TEE_; - - case YEE: - case YEE_: return _YEE; - } - return c; -} - -/* - * Can a given Farsi character join via its left edj. - */ - static int -canF_Ljoin(int c) -{ - switch (c) - { - case _BE: - case BE: - case PE: - case _PE: - case TE: - case _TE: - case SE: - case _SE: - case JIM: - case _JIM: - case CHE: - case _CHE: - case HE_J: - case _HE_J: - case XE: - case _XE: - case SIN: - case _SIN: - case SHIN: - case _SHIN: - case SAD: - case _SAD: - case ZAD: - case _ZAD: - case _TA: - case _ZA: - case AYN: - case _AYN: - case _AYN_: - case AYN_: - case GHAYN: - case GHAYN_: - case _GHAYN_: - case _GHAYN: - case FE: - case _FE: - case GHAF: - case _GHAF: - case _KAF_H: - case KAF: - case _KAF: - case GAF: - case _GAF: - case LAM: - case _LAM: - case MIM: - case _MIM: - case NOON: - case _NOON: - case IE: - case _IE: - case IE_: - case YE: - case _YE: - case YE_: - case YEE: - case _YEE: - case YEE_: - case F_HE: - case _HE: - case _HE_: - return TRUE; - } - return FALSE; -} - -/* - * Can a given Farsi character join via its right edj. - */ - static int -canF_Rjoin(int c) -{ - switch (c) - { - case ALEF: - case ALEF_: - case ALEF_U_H: - case ALEF_U_H_: - case DAL: - case ZAL: - case RE: - case JE: - case ZE: - case TEE: - case TEE_: - case WAW: - case WAW_H: - return TRUE; - } - - return canF_Ljoin(c); - -} - -/* - * is a given Farsi character a terminating type. - */ - static int -F_isterm(int c) -{ - switch (c) - { - case ALEF: - case ALEF_: - case ALEF_U_H: - case ALEF_U_H_: - case DAL: - case ZAL: - case RE: - case JE: - case ZE: - case WAW: - case WAW_H: - case TEE: - case TEE_: - return TRUE; - } - - return FALSE; -} - -/* - * Convert the given Farsi character into a ending type . - */ - static int -toF_ending(int c) -{ - switch (c) - { - case _BE: return BE; - case _PE: return PE; - case _TE: return TE; - case _SE: return SE; - case _JIM: return JIM; - case _CHE: return CHE; - case _HE_J: return HE_J; - case _XE: return XE; - case _SIN: return SIN; - case _SHIN: return SHIN; - case _SAD: return SAD; - case _ZAD: return ZAD; - case _AYN: return AYN; - case _AYN_: return AYN_; - case _GHAYN: return GHAYN; - case _GHAYN_: return GHAYN_; - case _FE: return FE; - case _GHAF: return GHAF; - case _KAF_H: - case _KAF: return KAF; - case _GAF: return GAF; - case _LAM: return LAM; - case _MIM: return MIM; - case _NOON: return NOON; - case _YE: return YE_; - case YE_: return YE; - case _YEE: return YEE_; - case YEE_: return YEE; - case TEE: return TEE_; - case _IE: return IE_; - case IE_: return IE; - case _HE: - case _HE_: return F_HE; - } - return c; -} - -/* - * Convert the Farsi 3342 standard into Farsi VIM. - */ - static void -conv_to_pvim(void) -{ - char_u *ptr; - int lnum, llen, i; - - for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum) - { - ptr = ml_get((linenr_T)lnum); - - llen = (int)STRLEN(ptr); - - for (i = 0; i < llen-1; i++) - { - if (canF_Ljoin(ptr[i]) && canF_Rjoin(ptr[i+1])) - { - ptr[i] = toF_leading(ptr[i]); - ++i; - - while (i < llen && canF_Rjoin(ptr[i])) - { - ptr[i] = toF_Rjoin(ptr[i]); - if (F_isterm(ptr[i]) || !F_isalpha(ptr[i])) - break; - ++i; - } - if (!F_isalpha(ptr[i]) || !canF_Rjoin(ptr[i])) - ptr[i-1] = toF_ending(ptr[i-1]); - } - else - ptr[i] = toF_TyA(ptr[i]); - } - } - - /* - * Following lines contains Farsi encoded character. - */ - - do_cmdline_cmd((char_u *)"%s/\202\231/\232/ge"); - do_cmdline_cmd((char_u *)"%s/\201\231/\370\334/ge"); - - /* Assume the screen has been messed up: clear it and redraw. */ - redraw_later(CLEAR); - msg_attr(farsi_text_1, HL_ATTR(HLF_S)); -} - -/* - * Convert the Farsi VIM into Farsi 3342 standard. - */ - static void -conv_to_pstd(void) -{ - char_u *ptr; - int lnum, llen, i; - - /* - * Following line contains Farsi encoded character. - */ - do_cmdline_cmd((char_u *)"%s/\232/\202\231/ge"); - - for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum) - { - ptr = ml_get((linenr_T)lnum); - llen = (int)STRLEN(ptr); - - for (i = 0; i < llen; i++) - ptr[i] = toF_TyA(ptr[i]); - } - - /* Assume the screen has been messed up: clear it and redraw. */ - redraw_later(CLEAR); - msg_attr(farsi_text_2, HL_ATTR(HLF_S)); -} - -/* - * left-right swap the characters in buf[len]. - */ - static void -lrswapbuf(char_u *buf, int len) -{ - char_u *s, *e; - int c; - - s = buf; - e = buf + len - 1; - - while (e > s) - { - c = *s; - *s = *e; - *e = c; - ++s; - --e; - } -} - -/* - * swap all the characters in reverse direction - */ - char_u * -lrswap(char_u *ibuf) -{ - if (ibuf != NULL && *ibuf != NUL) - lrswapbuf(ibuf, (int)STRLEN(ibuf)); - return ibuf; -} - -/* - * swap all the Farsi characters in reverse direction - */ - char_u * -lrFswap(char_u *cmdbuf, int len) -{ - int i, cnt; - - if (cmdbuf == NULL) - return cmdbuf; - - if (len == 0 && (len = (int)STRLEN(cmdbuf)) == 0) - return cmdbuf; - - for (i = 0; i < len; i++) - { - for (cnt = 0; i + cnt < len - && (F_isalpha(cmdbuf[i + cnt]) - || F_isdigit(cmdbuf[i + cnt]) - || cmdbuf[i + cnt] == ' '); ++cnt) - ; - - lrswapbuf(cmdbuf + i, cnt); - i += cnt; - } - return cmdbuf; -} - -/* - * Reverse the characters in the search path and substitute section - * accordingly. - * TODO: handle different separator characters. Use skip_regexp(). - */ - char_u * -lrF_sub(char_u *ibuf) -{ - char_u *p, *ep; - int i, cnt; - - p = ibuf; - - /* Find the boundary of the search path */ - while (((p = vim_strchr(p + 1, '/')) != NULL) && p[-1] == '\\') - ; - - if (p == NULL) - return ibuf; - - /* Reverse the Farsi characters in the search path. */ - lrFswap(ibuf, (int)(p-ibuf)); - - /* Now find the boundary of the substitute section */ - if ((ep = (char_u *)strrchr((char *)++p, '/')) != NULL) - cnt = (int)(ep - p); - else - cnt = (int)STRLEN(p); - - /* Reverse the characters in the substitute section and take care of '\' */ - for (i = 0; i < cnt-1; i++) - if (p[i] == '\\') - { - p[i] = p[i+1] ; - p[++i] = '\\'; - } - - lrswapbuf(p, cnt); - - return ibuf; -} - -/* - * Map Farsi keyboard when in cmd_fkmap mode. - */ - int -cmdl_fkmap(int c) -{ - int tempc; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '`': - case ' ': - case '.': - case '!': - case '"': - case '$': - case '%': - case '^': - case '&': - case '/': - case '(': - case ')': - case '=': - case '\\': - case '?': - case '+': - case '-': - case '_': - case '*': - case ':': - case '#': - case '~': - case '@': - case '<': - case '>': - case '{': - case '}': - case '|': - case 'B': - case 'E': - case 'F': - case 'H': - case 'I': - case 'K': - case 'L': - case 'M': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'T': - case 'U': - case 'W': - case 'Y': - case NL: - case TAB: - - switch ((tempc = cmd_gchar(AT_CURSOR))) - { - case _BE: - case _PE: - case _TE: - case _SE: - case _JIM: - case _CHE: - case _HE_J: - case _XE: - case _SIN: - case _SHIN: - case _SAD: - case _ZAD: - case _AYN: - case _GHAYN: - case _FE: - case _GHAF: - case _KAF: - case _GAF: - case _LAM: - case _MIM: - case _NOON: - case _HE: - case _HE_: - cmd_pchar(toF_TyA(tempc), AT_CURSOR); - break; - case _AYN_: - cmd_pchar(AYN_, AT_CURSOR); - break; - case _GHAYN_: - cmd_pchar(GHAYN_, AT_CURSOR); - break; - case _IE: - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1)) - cmd_pchar(IE_, AT_CURSOR); - else - cmd_pchar(IE, AT_CURSOR); - break; - case _YEE: - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1)) - cmd_pchar(YEE_, AT_CURSOR); - else - cmd_pchar(YEE, AT_CURSOR); - break; - case _YE: - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1)) - cmd_pchar(YE_, AT_CURSOR); - else - cmd_pchar(YE, AT_CURSOR); - } - - switch (c) - { - case '0': return FARSI_0; - case '1': return FARSI_1; - case '2': return FARSI_2; - case '3': return FARSI_3; - case '4': return FARSI_4; - case '5': return FARSI_5; - case '6': return FARSI_6; - case '7': return FARSI_7; - case '8': return FARSI_8; - case '9': return FARSI_9; - case 'B': return F_PSP; - case 'E': return JAZR_N; - case 'F': return ALEF_D_H; - case 'H': return ALEF_A; - case 'I': return TASH; - case 'K': return F_LQUOT; - case 'L': return F_RQUOT; - case 'M': return HAMZE; - case 'O': return '['; - case 'P': return ']'; - case 'Q': return OO; - case 'R': return MAD_N; - case 'T': return OW; - case 'U': return MAD; - case 'W': return OW_OW; - case 'Y': return JAZR; - case '`': return F_PCN; - case '!': return F_EXCL; - case '@': return F_COMMA; - case '#': return F_DIVIDE; - case '$': return F_CURRENCY; - case '%': return F_PERCENT; - case '^': return F_MUL; - case '&': return F_BCOMMA; - case '*': return F_STAR; - case '(': return F_LPARENT; - case ')': return F_RPARENT; - case '-': return F_MINUS; - case '_': return F_UNDERLINE; - case '=': return F_EQUALS; - case '+': return F_PLUS; - case '\\': return F_BSLASH; - case '|': return F_PIPE; - case ':': return F_DCOLON; - case '"': return F_SEMICOLON; - case '.': return F_PERIOD; - case '/': return F_SLASH; - case '<': return F_LESS; - case '>': return F_GREATER; - case '?': return F_QUESTION; - case ' ': return F_BLANK; - } - - break; - - case 'a': return _SHIN; - case 'A': return WAW_H; - case 'b': return ZAL; - case 'c': return ZE; - case 'C': return JE; - case 'd': return _YE; - case 'D': return _YEE; - case 'e': return _SE; - case 'f': return _BE; - case 'g': return _LAM; - case 'G': - if (cmd_gchar(AT_CURSOR) == _LAM) - { - cmd_pchar(LAM, AT_CURSOR); - return ALEF_U_H; - } - - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR)) - return ALEF_U_H_; - else - return ALEF_U_H; - case 'h': - if (cmd_gchar(AT_CURSOR) == _LAM) - { - cmd_pchar(LA, AT_CURSOR); - redrawcmdline(); - return K_IGNORE; - } - - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR)) - return ALEF_; - else - return ALEF; - case 'i': - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR)) - return _HE_; - else - return _HE; - case 'j': return _TE; - case 'J': - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR)) - return TEE_; - else - return TEE; - case 'k': return _NOON; - case 'l': return _MIM; - case 'm': return _PE; - case 'n': - case 'N': return DAL; - case 'o': return _XE; - case 'p': return _HE_J; - case 'q': return _ZAD; - case 'r': return _GHAF; - case 's': return _SIN; - case 'S': return _IE; - case 't': return _FE; - case 'u': - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR)) - return _AYN_; - else - return _AYN; - case 'v': - case 'V': return RE; - case 'w': return _SAD; - case 'x': - case 'X': return _TA; - case 'y': - if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR)) - return _GHAYN_; - else - return _GHAYN; - case 'z': - case 'Z': return _ZA; - case ';': return _KAF; - case '\'': return _GAF; - case ',': return WAW; - case '[': return _JIM; - case ']': return _CHE; - } - - return c; -} - -/* - * F_isalpha returns TRUE if 'c' is a Farsi alphabet - */ - int -F_isalpha(int c) -{ - return ((c >= TEE_ && c <= _YE) - || (c >= ALEF_A && c <= YE) - || (c >= _IE && c <= YE_)); -} - -/* - * F_isdigit returns TRUE if 'c' is a Farsi digit - */ - int -F_isdigit(int c) -{ - return (c >= FARSI_0 && c <= FARSI_9); -} - -/* - * F_ischar returns TRUE if 'c' is a Farsi character. - */ - int -F_ischar(int c) -{ - return (c >= TEE_ && c <= YE_); -} - - void -farsi_f8(cmdarg_T *cap UNUSED) -{ - if (p_altkeymap) - { - if (curwin->w_farsi & W_R_L) - { - p_fkmap = 0; - do_cmdline_cmd((char_u *)"set norl"); - msg(""); - } - else - { - p_fkmap = 1; - do_cmdline_cmd((char_u *)"set rl"); - msg(""); - } - - curwin->w_farsi = curwin->w_farsi ^ W_R_L; - } -} - - void -farsi_f9(cmdarg_T *cap UNUSED) -{ - if (p_altkeymap && curwin->w_p_rl) - { - curwin->w_farsi = curwin->w_farsi ^ W_CONV; - if (curwin->w_farsi & W_CONV) - conv_to_pvim(); - else - conv_to_pstd(); - } -} - -#endif /* FEAT_FKMAP */ diff --git a/src/farsi.h b/src/farsi.h deleted file mode 100644 index e91bdf7272..0000000000 --- a/src/farsi.h +++ /dev/null @@ -1,234 +0,0 @@ -/* vi:set ts=8 sts=4 sw=4 noet: - * - * VIM - Vi IMproved by Bram Moolenaar - * - * Do ":help uganda" in Vim to read copying and usage conditions. - * Do ":help credits" in Vim to see a list of people who contributed. - */ - -/* - * Farsi characters are categorized into following types: - * - * TyA (for capital letter representation) - * TyB (for types that look like _X e.g. AYN) - * TyC (for types that look like X_ e.g. YE_) - * TyD (for types that look like _X_ e.g. _AYN_) - * TyE (for types that look like X e.g. RE) - */ - -/* - * Farsi character set definition - */ - -/* - * Begin of the non-standard part - */ - -#define TEE_ 0x80 -#define ALEF_U_H_ 0x81 -#define ALEF_ 0x82 -#define _BE 0x83 -#define _PE 0x84 -#define _TE 0x85 -#define _SE 0x86 -#define _JIM 0x87 -#define _CHE 0x88 -#define _HE_J 0x89 -#define _XE 0x8a -#define _SIN 0x8b -#define _SHIN 0x8c -#define _SAD 0x8d -#define _ZAD 0x8e -#define _AYN 0x8f -#define _AYN_ 0x90 -#define AYN_ 0x91 -#define _GHAYN 0x92 -#define _GHAYN_ 0x93 -#define GHAYN_ 0x94 -#define _FE 0x95 -#define _GHAF 0x96 -#define _KAF 0x97 -#define _GAF 0x98 -#define _LAM 0x99 -#define LA 0x9a -#define _MIM 0x9b -#define _NOON 0x9c -#define _HE 0x9d -#define _HE_ 0x9e -#define _YE 0x9f -#define _IE 0xec -#define IE_ 0xed -#define IE 0xfb -#define _YEE 0xee -#define YEE_ 0xef -#define YE_ 0xff - -/* - * End of the non-standard part - */ - -/* - * Standard part - */ - -#define F_BLANK 0xa0 /* Farsi ' ' (SP) character */ -#define F_PSP 0xa1 /* PSP for capitalizing of a character */ -#define F_PCN 0xa2 /* PCN for redefining of the hamye meaning */ -#define F_EXCL 0xa3 /* Farsi ! character */ -#define F_CURRENCY 0xa4 /* Farsi Rial character */ -#define F_PERCENT 0xa5 /* Farsi % character */ -#define F_PERIOD 0xa6 /* Farsi '.' character */ -#define F_COMMA 0xa7 /* Farsi ',' character */ -#define F_LPARENT 0xa8 /* Farsi '(' character */ -#define F_RPARENT 0xa9 /* Farsi ')' character */ -#define F_MUL 0xaa /* Farsi 'x' character */ -#define F_PLUS 0xab /* Farsi '+' character */ -#define F_BCOMMA 0xac /* Farsi comma character */ -#define F_MINUS 0xad /* Farsi '-' character */ -#define F_DIVIDE 0xae /* Farsi divide (/) character */ -#define F_SLASH 0xaf /* Farsi '/' character */ - -#define FARSI_0 0xb0 -#define FARSI_1 0xb1 -#define FARSI_2 0xb2 -#define FARSI_3 0xb3 -#define FARSI_4 0xb4 -#define FARSI_5 0xb5 -#define FARSI_6 0xb6 -#define FARSI_7 0xb7 -#define FARSI_8 0xb8 -#define FARSI_9 0xb9 - -#define F_DCOLON 0xba /* Farsi ':' character */ -#define F_SEMICOLON 0xbb /* Farsi ';' character */ -#define F_GREATER 0xbc /* Farsi '>' character */ -#define F_EQUALS 0xbd /* Farsi '=' character */ -#define F_LESS 0xbe /* Farsi '<' character */ -#define F_QUESTION 0xbf /* Farsi ? character */ - -#define ALEF_A 0xc0 -#define ALEF 0xc1 -#define HAMZE 0xc2 -#define BE 0xc3 -#define PE 0xc4 -#define TE 0xc5 -#define SE 0xc6 -#define JIM 0xc7 -#define CHE 0xc8 -#define HE_J 0xc9 -#define XE 0xca -#define DAL 0xcb -#define ZAL 0xcc -#define RE 0xcd -#define ZE 0xce -#define JE 0xcf -#define SIN 0xd0 -#define SHIN 0xd1 -#define SAD 0xd2 -#define ZAD 0xd3 -#define _TA 0xd4 -#define _ZA 0xd5 -#define AYN 0xd6 -#define GHAYN 0xd7 -#define FE 0xd8 -#define GHAF 0xd9 -#define KAF 0xda -#define GAF 0xdb -#define LAM 0xdc -#define MIM 0xdd -#define NOON 0xde -#define WAW 0xdf -#define F_HE 0xe0 /* F_ added for name clash with Perl */ -#define YE 0xe1 -#define TEE 0xfc -#define _KAF_H 0xfd -#define YEE 0xfe - -#define F_LBRACK 0xe2 /* Farsi '[' character */ -#define F_RBRACK 0xe3 /* Farsi ']' character */ -#define F_LBRACE 0xe4 /* Farsi '{' character */ -#define F_RBRACE 0xe5 /* Farsi '}' character */ -#define F_LQUOT 0xe6 /* Farsi left quotation character */ -#define F_RQUOT 0xe7 /* Farsi right quotation character */ -#define F_STAR 0xe8 /* Farsi '*' character */ -#define F_UNDERLINE 0xe9 /* Farsi '_' character */ -#define F_PIPE 0xea /* Farsi '|' character */ -#define F_BSLASH 0xeb /* Farsi '\' character */ - -#define MAD 0xf0 -#define JAZR 0xf1 -#define OW 0xf2 -#define MAD_N 0xf3 -#define JAZR_N 0xf4 -#define OW_OW 0xf5 -#define TASH 0xf6 -#define OO 0xf7 -#define ALEF_U_H 0xf8 -#define WAW_H 0xf9 -#define ALEF_D_H 0xfa - -/* - * global definitions - * ================== - */ - -#define SRC_EDT 0 -#define SRC_CMD 1 - -#define AT_CURSOR 0 - -/* - * definitions for the window dependent functions (w_farsi). - */ -#define W_CONV 0x1 -#define W_R_L 0x2 - - -/* special Farsi text messages */ - -EXTERN char farsi_text_1[] -#ifdef DO_INIT - = { YE_, _SIN, RE, ALEF_, _FE, ' ', 'V', 'I', 'M', - ' ', F_HE, _BE, ' ', SHIN, RE, _GAF, DAL,' ', NOON, - ALEF_, _YE, ALEF_, _PE, '\0'} -#endif - ; - -EXTERN char farsi_text_2[] -#ifdef DO_INIT - = { YE_, _SIN, RE, ALEF_, _FE, ' ', FARSI_3, FARSI_3, - FARSI_4, FARSI_2, ' ', DAL, RE, ALEF, DAL, _NOON, - ALEF_, _TE, _SIN, ALEF, ' ', F_HE, _BE, ' ', SHIN, - RE, _GAF, DAL, ' ', NOON, ALEF_, _YE, ALEF_, _PE, '\0'} -#endif - ; - -EXTERN char farsi_text_3[] -#ifdef DO_INIT - = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON, - ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L', - 'A','C','E', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, ALEF, - ' ', 'R', 'E', 'V', 'E', 'R', 'S', 'E', ' ', 'I', 'N', - 'S', 'E', 'R', 'T', ' ', SHIN, WAW, RE, ' ', ALEF_, _BE, - ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', RE, - ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'} -#endif - ; - -#if 0 /* not used */ -EXTERN char_u farsi_text_4[] -#ifdef DO_INIT - = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON, - ALEF_, _BE, _YE, _TE, _SHIN, _PE, ' ', '<', 'C','T','R', - 'L','-','B','>', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, - ALEF, ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', - RE, ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'} -#endif - ; -#endif - -EXTERN char farsi_text_5[] -#ifdef DO_INIT - = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'} -#endif - ; diff --git a/src/getchar.c b/src/getchar.c index fe74dbfa1c..eaef1ab7e4 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -3361,15 +3361,6 @@ do_map( rhs = replace_termcodes(rhs, &arg_buf, FALSE, TRUE, special); } -#ifdef FEAT_FKMAP - /* - * When in right-to-left mode and alternate keymap option set, - * reverse the character flow in the rhs in Farsi. - */ - if (p_altkeymap && curwin->w_p_rl) - lrswap(rhs); -#endif - /* * check arguments and translate function keys */ diff --git a/src/globals.h b/src/globals.h index 6cc3be2158..82e663e9c6 100644 --- a/src/globals.h +++ b/src/globals.h @@ -1450,9 +1450,7 @@ EXTERN char e_nogvim[] INIT(= N_("E25: GUI cannot be used: Not enabled at compil #ifndef FEAT_RIGHTLEFT EXTERN char e_nohebrew[] INIT(= N_("E26: Hebrew cannot be used: Not enabled at compile time\n")); #endif -#ifndef FEAT_FKMAP -EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi cannot be used: Not enabled at compile time\n")); -#endif +EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi support has been removed\n")); #ifndef FEAT_ARABIC EXTERN char e_noarabic[] INIT(= N_("E800: Arabic cannot be used: Not enabled at compile time\n")); #endif @@ -1655,13 +1653,6 @@ EXTERN int ctrl_break_was_pressed INIT(= FALSE); 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. */ diff --git a/src/main.c b/src/main.c index df204bc0a9..6ad6fff7c5 100644 --- a/src/main.c +++ b/src/main.c @@ -535,17 +535,6 @@ vim_main2(void) if (params.no_swap_file) p_uc = 0; -#ifdef FEAT_FKMAP - if (curwin->w_p_rl && p_altkeymap) - { - p_hkmap = FALSE; /* Reset the Hebrew keymap mode */ -# ifdef FEAT_ARABIC - curwin->w_p_arab = FALSE; /* Reset the Arabic keymap mode */ -# endif - p_fkmap = TRUE; /* Set the Farsi keymap mode */ - } -#endif - #ifdef FEAT_GUI if (gui.starting) { @@ -2025,14 +2014,9 @@ command_line_scan(mparm_T *parmp) main_start_gui(); break; - case 'F': /* "-F" start in Farsi mode: rl + fkmap set */ -#ifdef FEAT_FKMAP - p_fkmap = TRUE; - set_option_value((char_u *)"rl", 1L, NULL, 0); -#else + case 'F': /* "-F" was for Farsi mode */ mch_errmsg(_(e_nofarsi)); mch_exit(2); -#endif break; case '?': /* "-?" give help message (for MS-Windows) */ @@ -3350,9 +3334,6 @@ usage(void) #endif #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")); diff --git a/src/normal.c b/src/normal.c index 41af966288..624e34751c 100644 --- a/src/normal.c +++ b/src/normal.c @@ -397,10 +397,6 @@ static const struct nv_cmd {K_TABLINE, nv_tabline, 0, 0}, {K_TABMENU, nv_tabmenu, 0, 0}, #endif -#ifdef FEAT_FKMAP - {K_F8, farsi_f8, 0, 0}, - {K_F9, farsi_f9, 0, 0}, -#endif #ifdef FEAT_NETBEANS_INTG {K_F21, nv_nbcmd, NV_NCH_ALW, 0}, #endif @@ -987,11 +983,6 @@ getcount: /* adjust Hebrew mapped char */ if (p_hkmap && lang && KeyTyped) *cp = hkmap(*cp); -# ifdef FEAT_FKMAP - /* adjust Farsi mapped char */ - if (p_fkmap && lang && KeyTyped) - *cp = fkmap(*cp); -# endif #endif } diff --git a/src/option.c b/src/option.c index c8808be041..b9fe3dabef 100644 --- a/src/option.c +++ b/src/option.c @@ -542,11 +542,7 @@ static struct vimoption options[] = #endif {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, {"altkeymap", "akm", P_BOOL|P_VI_DEF, -#ifdef FEAT_FKMAP - (char_u *)&p_altkeymap, PV_NONE, -#else (char_u *)NULL, PV_NONE, -#endif {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, {"ambiwidth", "ambw", P_STRING|P_VI_DEF|P_RCLR, (char_u *)&p_ambw, PV_NONE, @@ -1141,11 +1137,7 @@ static struct vimoption options[] = (char_u *)&p_fixeol, PV_FIXEOL, {(char_u *)TRUE, (char_u *)0L} SCTX_INIT}, {"fkmap", "fk", P_BOOL|P_VI_DEF, -#ifdef FEAT_FKMAP - (char_u *)&p_fkmap, PV_NONE, -#else (char_u *)NULL, PV_NONE, -#endif {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, {"flash", "fl", P_BOOL|P_VI_DEF, (char_u *)NULL, PV_NONE, @@ -8707,69 +8699,6 @@ set_bool_option( } #endif -#ifdef FEAT_FKMAP - else if ((int *)varp == &p_altkeymap) - { - if (old_value != p_altkeymap) - { - if (!p_altkeymap) - { - p_hkmap = p_fkmap; - p_fkmap = 0; - } - else - { - p_fkmap = p_hkmap; - p_hkmap = 0; - } - (void)init_chartab(); - } - } - - /* - * In case some second language keymapping options have changed, check - * and correct the setting in a consistent way. - */ - - /* - * If hkmap or fkmap are set, reset Arabic keymapping. - */ - if ((p_hkmap || p_fkmap) && p_altkeymap) - { - p_altkeymap = p_fkmap; -# ifdef FEAT_ARABIC - curwin->w_p_arab = FALSE; -# endif - (void)init_chartab(); - } - - /* - * If hkmap set, reset Farsi keymapping. - */ - if (p_hkmap && p_altkeymap) - { - p_altkeymap = 0; - p_fkmap = 0; -# ifdef FEAT_ARABIC - curwin->w_p_arab = FALSE; -# endif - (void)init_chartab(); - } - - /* - * If fkmap set, reset Hebrew keymapping. - */ - if (p_fkmap && !p_altkeymap) - { - p_altkeymap = 1; - p_hkmap = 0; -# ifdef FEAT_ARABIC - curwin->w_p_arab = FALSE; -# endif - (void)init_chartab(); - } -#endif - #ifdef FEAT_ARABIC if ((int *)varp == &curwin->w_p_arab) { @@ -8815,12 +8744,6 @@ set_bool_option( /* Force-set the necessary keymap for arabic */ set_option_value((char_u *)"keymap", 0L, (char_u *)"arabic", OPT_LOCAL); -# endif -# ifdef FEAT_FKMAP - p_altkeymap = 0; - p_hkmap = 0; - p_fkmap = 0; - (void)init_chartab(); # endif } else @@ -11085,12 +11008,6 @@ win_copy_options(win_T *wp_from, win_T *wp_to) { copy_winopt(&wp_from->w_onebuf_opt, &wp_to->w_onebuf_opt); copy_winopt(&wp_from->w_allbuf_opt, &wp_to->w_allbuf_opt); -# ifdef FEAT_RIGHTLEFT -# ifdef FEAT_FKMAP - /* Is this right? */ - wp_to->w_farsi = wp_from->w_farsi; -# endif -# endif #if defined(FEAT_LINEBREAK) briopt_check(wp_to); #endif diff --git a/src/proto.h b/src/proto.h index 1ab5cf78c3..c19d155169 100644 --- a/src/proto.h +++ b/src/proto.h @@ -99,9 +99,6 @@ extern int _stricoll(char *a, char *b); # ifdef FEAT_MENU # include "menu.pro" # endif -# ifdef FEAT_FKMAP -# include "farsi.pro" -# endif # ifdef FEAT_ARABIC # include "arabic.pro" # endif diff --git a/src/proto/farsi.pro b/src/proto/farsi.pro deleted file mode 100644 index b6e1836511..0000000000 --- a/src/proto/farsi.pro +++ /dev/null @@ -1,12 +0,0 @@ -/* farsi.c */ -int fkmap(int c); -char_u *lrswap(char_u *ibuf); -char_u *lrFswap(char_u *cmdbuf, int len); -char_u *lrF_sub(char_u *ibuf); -int cmdl_fkmap(int c); -int F_isalpha(int c); -int F_isdigit(int c); -int F_ischar(int c); -void farsi_f8(cmdarg_T *cap); -void farsi_f9(cmdarg_T *cap); -/* vim: set ft=c : */ diff --git a/src/screen.c b/src/screen.c index caf6e2c8ba..d06cc3fcb7 100644 --- a/src/screen.c +++ b/src/screen.c @@ -10247,10 +10247,6 @@ showmode(void) #ifdef FEAT_RIGHTLEFT if (p_hkmap) msg_puts_attr(_(" Hebrew"), attr); -# ifdef FEAT_FKMAP - if (p_fkmap) - msg_puts_attr(farsi_text_5, attr); -# endif #endif #ifdef FEAT_KEYMAP if (State & LANGMAP) diff --git a/src/search.c b/src/search.c index df7067b08f..9a47ed4608 100644 --- a/src/search.c +++ b/src/search.c @@ -1477,12 +1477,8 @@ do_search( } } -#ifdef FEAT_FKMAP /* when in Farsi mode, reverse the character flow */ - if (p_altkeymap && curwin->w_p_rl) - lrFswap(searchstr,0); -#endif - - c = searchit(curwin, curbuf, &pos, NULL, dirc == '/' ? FORWARD : BACKWARD, + c = searchit(curwin, curbuf, &pos, NULL, + dirc == '/' ? FORWARD : BACKWARD, searchstr, count, spats[0].off.end + (options & (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS + SEARCH_MSG + SEARCH_START @@ -2976,10 +2972,6 @@ cls(void) int c; c = gchar_cursor(); -#ifdef FEAT_FKMAP /* when 'akm' (Farsi mode), take care of Farsi blank */ - if (p_altkeymap && c == F_BLANK) - return 0; -#endif if (c == ' ' || c == '\t' || c == NUL) return 0; if (enc_dbcs != 0 && c > 0xFF) diff --git a/src/structs.h b/src/structs.h index 4464c4b8d1..fdef811e47 100644 --- a/src/structs.h +++ b/src/structs.h @@ -2952,10 +2952,6 @@ struct window_S dict_T *w_vars; /* internal variables, local to window */ #endif -#if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP) - int w_farsi; /* for the window dependent Farsi functions */ -#endif - /* * The w_prev_pcmark field is used to check whether we really did jump to * a new line after setting the w_pcmark. If not, then we revert to diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 92e2ae3680..7cc5e7eae6 100644 --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -118,7 +118,6 @@ NEW_TESTS = \ test_expand_func \ test_expr \ test_expr_utf8 \ - test_farsi \ test_feedkeys \ test_file_perm \ test_file_size \ @@ -318,7 +317,6 @@ NEW_TESTS_RES = \ test_exists.res \ test_exists_autocmd.res \ test_exit.res \ - test_farsi.res \ test_file_size.res \ test_filechanged.res \ test_find_complete.res \ diff --git a/src/testdir/test_farsi.vim b/src/testdir/test_farsi.vim deleted file mode 100644 index dcfa0248c1..0000000000 --- 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 index 00c63e53ce..aa73ebd878 100644 --- a/src/version.c +++ b/src/version.c @@ -255,11 +255,7 @@ static char *(features[]) = #else "-extra_search", #endif -#ifdef FEAT_FKMAP - "+farsi", -#else "-farsi", -#endif #ifdef FEAT_SEARCHPATH "+file_in_path", #else @@ -783,6 +779,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 932, /**/ 931, /**/ diff --git a/src/window.c b/src/window.c index 7dc3848e42..c4b543de39 100644 --- a/src/window.c +++ b/src/window.c @@ -3445,12 +3445,6 @@ win_init_empty(win_T *wp) wp->w_topfill = 0; #endif wp->w_botline = 2; -#ifdef FEAT_FKMAP - if (wp->w_p_rl) - wp->w_farsi = W_CONV + W_R_L; - else - wp->w_farsi = W_CONV; -#endif #ifdef FEAT_SYN_HL wp->w_s = &wp->w_buffer->b_s; #endif -- 2.47.3