annotate src/farsi.c @ 15521:6d949e552e99 v8.1.0768

patch 8.1.0768: updating completions may cause the popup menu to flicker commit https://github.com/vim/vim/commit/ae654385dfb2ae4c1d70789d1dce3676dba4dfbc Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 17 21:09:05 2019 +0100 patch 8.1.0768: updating completions may cause the popup menu to flicker Problem: Updating completions may cause the popup menu to flicker. Solution: Avoid updating the text below the popup menu before drawing the popup menu.
author Bram Moolenaar <Bram@vim.org>
date Thu, 17 Jan 2019 21:15:06 +0100
parents e45c6e4d78af
children dd725a8ab112
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10042
4aead6a9b7a9 commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents: 9403
diff changeset
1 /* vi:set ts=8 sts=4 sw=4 noet:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 * VIM - Vi IMproved by Bram Moolenaar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 * Do ":help uganda" in Vim to read copying and usage conditions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 * Do ":help credits" in Vim to see a list of people who contributed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 * See README.txt for an overview of the Vim source code.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 * farsi.c: functions for Farsi language
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13
9403
9b048dced116 commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9
Christian Brabandt <cb@256bit.org>
parents: 9399
diff changeset
14 #include "vim.h"
9b048dced116 commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9
Christian Brabandt <cb@256bit.org>
parents: 9399
diff changeset
15
9b048dced116 commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9
Christian Brabandt <cb@256bit.org>
parents: 9399
diff changeset
16 #if defined(FEAT_FKMAP) || defined(PROTO)
9b048dced116 commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9
Christian Brabandt <cb@256bit.org>
parents: 9399
diff changeset
17
7801
a1e71a01dbd6 commit https://github.com/vim/vim/commit/d25c16e2f2776d50245bf31d6e4d5364f12d188e
Christian Brabandt <cb@256bit.org>
parents: 4352
diff changeset
18 static int F_is_TyB_TyC_TyD(int src, int offset);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
21 * Convert the given Farsi character into a _X or _X_ type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
22 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
24 toF_Xor_X_(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
30 case BE: return _BE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
31 case PE: return _PE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
32 case TE: return _TE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
33 case SE: return _SE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
34 case JIM: return _JIM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
35 case CHE: return _CHE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
36 case HE_J: return _HE_J;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
37 case XE: return _XE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
38 case SIN: return _SIN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
39 case SHIN: return _SHIN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
40 case SAD: return _SAD;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
41 case ZAD: return _ZAD;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
42 case AYN: return _AYN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
43 case AYN_: return _AYN_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
44 case GHAYN: return _GHAYN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
45 case GHAYN_: return _GHAYN_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
46 case FE: return _FE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
47 case GHAF: return _GHAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
48 case KAF: return _KAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
49 case GAF: return _GAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
50 case LAM: return _LAM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
51 case MIM: return _MIM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
52 case NOON: return _NOON;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 case YE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
54 case YE_: return _YE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 case YEE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
56 case YEE_: return _YEE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 case IE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
58 case IE_: return _IE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 case F_HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 tempc = _HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61
1880
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
62 if (p_ri && (curwin->w_cursor.col + 1
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
63 < (colnr_T)STRLEN(ml_get_curline())))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 tempc = _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 if (!p_ri && STRLEN(ml_get_curline()))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 tempc = _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 return tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 return 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
88 * Convert the given Farsi character into Farsi capital character.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
89 */
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
90 static int
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
91 toF_TyA(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
95 case ALEF_: return ALEF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
96 case ALEF_U_H_: return ALEF_U_H;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
97 case _BE: return BE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
98 case _PE: return PE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
99 case _TE: return TE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
100 case _SE: return SE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
101 case _JIM: return JIM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
102 case _CHE: return CHE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
103 case _HE_J: return HE_J;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
104 case _XE: return XE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
105 case _SIN: return SIN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
106 case _SHIN: return SHIN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
107 case _SAD: return SAD;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
108 case _ZAD: return ZAD;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 case _AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 case AYN_:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
111 case _AYN_: return AYN;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 case _GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 case GHAYN_:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
114 case _GHAYN_: return GHAYN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
115 case _FE: return FE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
116 case _GHAF: return GHAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
117 /* I am not sure what it is !!! case _KAF_H: */
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
118 case _KAF: return KAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
119 case _GAF: return GAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
120 case _LAM: return LAM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
121 case _MIM: return MIM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
122 case _NOON: return NOON;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 case _YE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
124 case YE_: return YE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 case _YEE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
126 case YEE_: return YEE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
127 case TEE_: return TEE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 case _IE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
129 case IE_: return IE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 case _HE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
131 case _HE_: return F_HE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
137 * Is the character under the cursor+offset in the given buffer a join type.
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
138 * That is a character that is combined with the others.
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
139 * Note: the offset is used only for command line buffer.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
140 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
142 F_is_TyB_TyC_TyD(int src, int offset)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 int c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 if (src == SRC_EDT)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 c = gchar_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 c = cmd_gchar(AT_CURSOR+offset);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 case _LAM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 case _BE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 case _PE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 case _TE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 case _SE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 case _JIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 case _CHE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 case _HE_J:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 case _XE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 case _SIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 case _SHIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 case _SAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 case _ZAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 case _TA:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 case _ZA:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 case _AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 case _AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 case _GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 case _GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 case _FE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 case _GHAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 case _KAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 case _KAF_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 case _GAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 case _MIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 case _NOON:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 case _YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 case _YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 case _IE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 case _HE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 case _HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
190 * Is the Farsi character one of the terminating only type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
191 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
193 F_is_TyE(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 case ALEF_A:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 case ALEF_D_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 case DAL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 case ZAL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 case RE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 case ZE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 case JE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 case WAW:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 case WAW_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 case HAMZE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
213 * Is the Farsi character one of the none leading type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
214 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
216 F_is_TyC_TyD(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 case ALEF_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 case ALEF_U_H_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 case _AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 case AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 case _GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 case GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 case _HE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 case YE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 case IE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 case TEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 case YEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
237 * Convert a none leading Farsi char into a leading type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
238 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
240 toF_TyB(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 case ALEF_: return ALEF;
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
245 case ALEF_U_H_: return ALEF_U_H;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 case _AYN_: return _AYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 case AYN_: return AYN; /* exception - there are many of them */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 case _GHAYN_: return _GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 case GHAYN_: return GHAYN; /* exception - there are many of them */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 case _HE_: return _HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 case YE_: return YE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 case IE_: return IE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 case TEE_: return TEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 case YEE_: return YEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
259
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
260 static void
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
261 put_and_redo(int c)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
262 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
263 pchar_cursor(c);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
264 AppendCharToRedobuff(K_BS);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
265 AppendCharToRedobuff(c);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
266 }
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
267
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
269 * Overwrite the current redo and cursor characters + left adjust.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
270 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
272 put_curr_and_l_to_X(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 if (curwin->w_p_rl && p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278
1880
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
279 if ((curwin->w_cursor.col < (colnr_T)STRLEN(ml_get_curline())))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281 if ((p_ri && curwin->w_cursor.col) || !p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 if (F_is_TyC_TyD((tempc = gchar_cursor())))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 pchar_cursor(toF_TyB(tempc));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 AppendCharToRedobuff(K_BS);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 AppendCharToRedobuff(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 put_and_redo(c);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
306 * Change the char. under the cursor to a X_ or X type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
307 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
309 chg_c_toX_orX(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 int tempc, curc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313 switch ((curc = gchar_cursor()))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 case _BE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 tempc = BE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 case _PE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 tempc = PE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321 case _TE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 tempc = TE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 case _SE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 tempc = SE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 case _JIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 tempc = JIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 case _CHE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 tempc = CHE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 case _HE_J:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 tempc = HE_J;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 case _XE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 tempc = XE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 case _SIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 tempc = SIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 case _SHIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343 tempc = SHIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 case _SAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 tempc = SAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 case _ZAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 tempc = ZAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 case _FE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 tempc = FE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354 case _GHAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355 tempc = GHAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
357 case _KAF_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
358 case _KAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359 tempc = KAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
361 case _GAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 tempc = GAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 case _AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 tempc = AYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 case _AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368 tempc = AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 case _GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 tempc = GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373 case _GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 tempc = GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 case _LAM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 tempc = LAM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379 case _MIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 tempc = MIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 case _NOON:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 tempc = NOON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385 case _HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 case _HE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387 tempc = F_HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 case _YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 case _IE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 case _YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396 tempc = (curc == _YE ? YE_ :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 (curc == _IE ? IE_ : YEE_));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399 tempc = (curc == _YE ? YE :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400 (curc == _IE ? IE : YEE));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 if (curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409 tempc = (curc == _YE ? YE_ :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410 (curc == _IE ? IE_ : YEE_));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 tempc = (curc == _YE ? YE :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 (curc == _IE ? IE : YEE));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 tempc = (curc == _YE ? YE :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 (curc == _IE ? IE : YEE));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 tempc = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 if (tempc)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 put_and_redo(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
430 * Change the char. under the cursor to a _X_ or X_ type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
431 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
433 chg_c_to_X_orX_(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 switch (gchar_cursor())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 case ALEF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 tempc = ALEF_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 case ALEF_U_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 tempc = ALEF_U_H_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 case _AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 tempc = _AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448 case AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 tempc = AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 case _GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 tempc = _GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
453 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 case GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 tempc = GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457 case _HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
458 tempc = _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460 case YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 tempc = YE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 case IE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 tempc = IE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 case TEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 tempc = TEE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 case YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 tempc = YEE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 tempc = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476 if (tempc)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477 put_and_redo(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
481 * Change the char. under the cursor to a _X_ or _X type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
482 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
483 static void
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
484 chg_c_to_X_or_X(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
485 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 tempc = gchar_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
489
1880
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
490 if (curwin->w_cursor.col + 1 < (colnr_T)STRLEN(ml_get_curline()))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
491 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
492 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 if ((tempc == F_HE) && (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR)))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
495 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 tempc = _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
497
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
498 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
499
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
500 put_and_redo(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
501 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
502 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
503
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
504 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
505 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
506
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
507 if ((tempc = toF_Xor_X_(tempc)) != 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
508 put_and_redo(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
509 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
510
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
511 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
512 * Change the character left to the cursor to a _X_ or X_ type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
513 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
514 static void
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
515 chg_l_to_X_orX_(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
516 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
517 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
518
1880
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
519 if (curwin->w_cursor.col != 0 &&
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
520 (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline())))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
521 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
522
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 if (!curwin->w_cursor.col && p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
524 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
525
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
526 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
527 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
528 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
529 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
530
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
531 switch (gchar_cursor())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
533 case ALEF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
534 tempc = ALEF_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
535 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
536 case ALEF_U_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
537 tempc = ALEF_U_H_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
538 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
539 case _AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
540 tempc = _AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
541 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
542 case AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
543 tempc = AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
544 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
545 case _GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
546 tempc = _GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
547 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
548 case GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
549 tempc = GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
550 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
551 case _HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
552 tempc = _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
553 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
554 case YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
555 tempc = YE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
556 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
557 case IE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
558 tempc = IE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
559 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
560 case TEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
561 tempc = TEE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
562 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
563 case YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
564 tempc = YEE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
565 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
566 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
567 tempc = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
568 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
569
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
570 if (tempc)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
571 put_and_redo(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
572
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
573 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
574 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
575 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
576 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
577 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
578
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
579 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
580 * Change the character left to the cursor to a X or _X type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
581 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
582 static void
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
583 chg_l_toXor_X(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
584 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
585 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
586
1880
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
587 if (curwin->w_cursor.col != 0 &&
e5602d92da8c updated for version 7.2-177
vimboss
parents: 1624
diff changeset
588 (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline())))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
589 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
590
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
591 if (!curwin->w_cursor.col && p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
592 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
593
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
594 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
595 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
596 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
597 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
598
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
599 switch (gchar_cursor())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
600 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
601 case ALEF_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
602 tempc = ALEF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
603 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
604 case ALEF_U_H_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
605 tempc = ALEF_U_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
606 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
607 case _AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
608 tempc = _AYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
609 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
610 case AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
611 tempc = AYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
612 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
613 case _GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
614 tempc = _GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
615 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
616 case GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
617 tempc = GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
618 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
619 case _HE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
620 tempc = _HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
621 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
622 case YE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
623 tempc = YE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
624 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
625 case IE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
626 tempc = IE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
627 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
628 case TEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
629 tempc = TEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
630 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
631 case YEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
632 tempc = YEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
633 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
634 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
635 tempc = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
636 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
637
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
638 if (tempc)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
639 put_and_redo(tempc);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
640
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
641 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
642 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
643 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
644 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
645 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
646
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
647 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
648 * Change the character right to the cursor to a _X or _X_ type
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
649 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
650 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
651 chg_r_to_Xor_X_(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
652 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
653 int tempc, c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
654
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
655 if (curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
656 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
657 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
658 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
659
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
660 tempc = gchar_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
661
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
662 if ((c = toF_Xor_X_(tempc)) != 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
663 put_and_redo(c);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
664
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
665 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
666 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
667
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
668 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
669 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
670
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
671 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
672 * Map Farsi keyboard when in fkmap mode.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
673 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
674 int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
675 fkmap(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
676 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
677 int tempc;
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
678 int insert_mode = (State & INSERT);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
679 static int revins = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
680
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
681 if (IS_SPECIAL(c))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
682 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
683
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
684 if (insert_mode)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
685 {
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
686 if (VIM_ISDIGIT(c) || ((c == '.' || c == '+' || c == '-' ||
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
687 c == '^' || c == '%' || c == '#' || c == '=') && revins))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
688 {
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
689 /* Numbers are entered left-to-right. */
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
690 if (!revins)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
691 {
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
692 if (curwin->w_cursor.col)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
693 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
694 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
695 dec_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
696
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
697 chg_c_toX_orX ();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
698 chg_l_toXor_X ();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
699
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
700 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
701 inc_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
702 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
703 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
704
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
705 arrow_used = TRUE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
706 (void)stop_arrow();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
707
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
708 if (!curwin->w_p_rl && revins)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
709 inc_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
710
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
711 ++revins;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
712 p_ri = 1;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
713 }
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
714 else if (revins)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
715 {
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
716 /* Stop entering number. */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
717 arrow_used = TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
718 (void)stop_arrow();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
719
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
720 revins = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
721 if (curwin->w_p_rl)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
722 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
723 while ((F_isdigit(gchar_cursor())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
724 || (gchar_cursor() == F_PERIOD
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
725 || gchar_cursor() == F_PLUS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
726 || gchar_cursor() == F_MINUS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
727 || gchar_cursor() == F_MUL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
728 || gchar_cursor() == F_DIVIDE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
729 || gchar_cursor() == F_PERCENT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
730 || gchar_cursor() == F_EQUALS))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
731 && gchar_cursor() != NUL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
732 ++curwin->w_cursor.col;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
733 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
734 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
735 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
736 if (curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
737 while ((F_isdigit(gchar_cursor())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
738 || (gchar_cursor() == F_PERIOD
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
739 || gchar_cursor() == F_PLUS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
740 || gchar_cursor() == F_MINUS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
741 || gchar_cursor() == F_MUL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
742 || gchar_cursor() == F_DIVIDE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
743 || gchar_cursor() == F_PERCENT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
744 || gchar_cursor() == F_EQUALS))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
745 && --curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
746 ;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
747
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
748 if (!F_isdigit(gchar_cursor()))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
749 ++curwin->w_cursor.col;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
750 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
751 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
752 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
753
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
754 if (!revins)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
755 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
756 if (curwin->w_p_rl)
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
757 p_ri = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
758 if (!curwin->w_p_rl)
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
759 p_ri = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
760 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
761
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
762 if ((c < 0x100) && (isalpha(c) || c == '&' || c == '^' || c == ';' ||
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
763 c == '\''|| c == ',' || c == '[' ||
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
764 c == ']' || c == '{' || c == '}'))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
765 chg_r_to_Xor_X_();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
766
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
767 tempc = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
768
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
769 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
770 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
771 case '`':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
772 case ' ':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
773 case '.':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
774 case '!':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
775 case '"':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
776 case '$':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
777 case '%':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
778 case '^':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
779 case '&':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
780 case '/':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
781 case '(':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
782 case ')':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
783 case '=':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
784 case '\\':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
785 case '?':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
786 case '+':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
787 case '-':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
788 case '_':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
789 case '*':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
790 case ':':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
791 case '#':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
792 case '~':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
793 case '@':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
794 case '<':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
795 case '>':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
796 case '{':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
797 case '}':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
798 case '|':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
799 case '0':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
800 case '1':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
801 case '2':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
802 case '3':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
803 case '4':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
804 case '5':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
805 case '6':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
806 case '7':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
807 case '8':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
808 case '9':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
809 case 'B':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
810 case 'E':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
811 case 'F':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
812 case 'H':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
813 case 'I':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
814 case 'K':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
815 case 'L':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
816 case 'M':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
817 case 'O':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
818 case 'P':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
819 case 'Q':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
820 case 'R':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
821 case 'T':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
822 case 'U':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
823 case 'W':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
824 case 'Y':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
825 case NL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
826 case TAB:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
827
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
828 if (p_ri && c == NL && curwin->w_cursor.col && insert_mode)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
829 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
830 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
831 * If the char before the cursor is _X_ or X_ do not change
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
832 * the one under the cursor with X type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
833 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
834 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
835
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
836 if (F_isalpha(gchar_cursor()))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
837 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
838 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
839 return NL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
840 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
841
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
842 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
843 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
844
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
845 if (!p_ri && !curwin->w_cursor.col)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
846 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
847 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
848 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
849 case '0': return FARSI_0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
850 case '1': return FARSI_1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
851 case '2': return FARSI_2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
852 case '3': return FARSI_3;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
853 case '4': return FARSI_4;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
854 case '5': return FARSI_5;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
855 case '6': return FARSI_6;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
856 case '7': return FARSI_7;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
857 case '8': return FARSI_8;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
858 case '9': return FARSI_9;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
859 case 'B': return F_PSP;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
860 case 'E': return JAZR_N;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
861 case 'F': return ALEF_D_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
862 case 'H': return ALEF_A;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
863 case 'I': return TASH;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
864 case 'K': return F_LQUOT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
865 case 'L': return F_RQUOT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
866 case 'M': return HAMZE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
867 case 'O': return '[';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
868 case 'P': return ']';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
869 case 'Q': return OO;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
870 case 'R': return MAD_N;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
871 case 'T': return OW;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
872 case 'U': return MAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
873 case 'W': return OW_OW;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
874 case 'Y': return JAZR;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
875 case '`': return F_PCN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
876 case '!': return F_EXCL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
877 case '@': return F_COMMA;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
878 case '#': return F_DIVIDE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
879 case '$': return F_CURRENCY;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
880 case '%': return F_PERCENT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
881 case '^': return F_MUL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
882 case '&': return F_BCOMMA;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
883 case '*': return F_STAR;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
884 case '(': return F_LPARENT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
885 case ')': return F_RPARENT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
886 case '-': return F_MINUS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
887 case '_': return F_UNDERLINE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
888 case '=': return F_EQUALS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
889 case '+': return F_PLUS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
890 case '\\': return F_BSLASH;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
891 case '|': return F_PIPE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
892 case ':': return F_DCOLON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
893 case '"': return F_SEMICOLON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
894 case '.': return F_PERIOD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
895 case '/': return F_SLASH;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
896 case '<': return F_LESS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
897 case '>': return F_GREATER;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
898 case '?': return F_QUESTION;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
899 case ' ': return F_BLANK;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
900 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
901 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
902 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
903
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
904 if (insert_mode)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
905 {
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
906 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
907 dec_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
908
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
909 switch ((tempc = gchar_cursor()))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
910 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
911 case _BE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
912 case _PE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
913 case _TE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
914 case _SE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
915 case _JIM:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
916 case _CHE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
917 case _HE_J:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
918 case _XE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
919 case _SIN:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
920 case _SHIN:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
921 case _SAD:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
922 case _ZAD:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
923 case _FE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
924 case _GHAF:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
925 case _KAF:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
926 case _KAF_H:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
927 case _GAF:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
928 case _LAM:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
929 case _MIM:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
930 case _NOON:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
931 case _HE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
932 case _HE_:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
933 case _TA:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
934 case _ZA:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
935 put_curr_and_l_to_X(toF_TyA(tempc));
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
936 break;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
937 case _AYN:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
938 case _AYN_:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
939
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
940 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
941 if (!curwin->w_cursor.col)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
942 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
943 put_curr_and_l_to_X(AYN);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
944 break;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
945 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
946
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
947 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
948 inc_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
949 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
950 dec_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
951
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
952 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
953 tempc = AYN_;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
954 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
955 tempc = AYN;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
956
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
957 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
958 dec_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
959 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
960 inc_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
961
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
962 put_curr_and_l_to_X(tempc);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
963
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
964 break;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
965 case _GHAYN:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
966 case _GHAYN_:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
967
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
968 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
969 if (!curwin->w_cursor.col)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
970 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
971 put_curr_and_l_to_X(GHAYN);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
972 break;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
973 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
974
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
975 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
976 inc_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
977 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
978 dec_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
979
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
980 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
981 tempc = GHAYN_;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
982 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
983 tempc = GHAYN;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
984
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
985 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
986 dec_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
987 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
988 inc_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
989
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
990 put_curr_and_l_to_X(tempc);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
991 break;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
992 case _YE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
993 case _IE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
994 case _YEE:
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
995 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
996 if (!curwin->w_cursor.col)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
997 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
998 put_curr_and_l_to_X((tempc == _YE ? YE :
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
999 (tempc == _IE ? IE : YEE)));
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1000 break;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1001 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1002
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1003 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1004 inc_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1005 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1006 dec_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1007
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1008 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1009 tempc = (tempc == _YE ? YE_ :
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1010 (tempc == _IE ? IE_ : YEE_));
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1011 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1012 tempc = (tempc == _YE ? YE :
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1013 (tempc == _IE ? IE : YEE));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1014
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1015 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1016 dec_cursor();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1017 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1018 inc_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1019
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1020 put_curr_and_l_to_X(tempc);
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1021 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1022 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1023
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1024 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1025 inc_cursor();
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1026 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1027
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1028 tempc = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1029
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1030 switch (c)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1031 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1032 case '0': return FARSI_0;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1033 case '1': return FARSI_1;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1034 case '2': return FARSI_2;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1035 case '3': return FARSI_3;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1036 case '4': return FARSI_4;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1037 case '5': return FARSI_5;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1038 case '6': return FARSI_6;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1039 case '7': return FARSI_7;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1040 case '8': return FARSI_8;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1041 case '9': return FARSI_9;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1042 case 'B': return F_PSP;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1043 case 'E': return JAZR_N;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1044 case 'F': return ALEF_D_H;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1045 case 'H': return ALEF_A;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1046 case 'I': return TASH;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1047 case 'K': return F_LQUOT;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1048 case 'L': return F_RQUOT;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1049 case 'M': return HAMZE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1050 case 'O': return '[';
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1051 case 'P': return ']';
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1052 case 'Q': return OO;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1053 case 'R': return MAD_N;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1054 case 'T': return OW;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1055 case 'U': return MAD;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1056 case 'W': return OW_OW;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1057 case 'Y': return JAZR;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1058 case '`': return F_PCN;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1059 case '!': return F_EXCL;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1060 case '@': return F_COMMA;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1061 case '#': return F_DIVIDE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1062 case '$': return F_CURRENCY;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1063 case '%': return F_PERCENT;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1064 case '^': return F_MUL;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1065 case '&': return F_BCOMMA;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1066 case '*': return F_STAR;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1067 case '(': return F_LPARENT;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1068 case ')': return F_RPARENT;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1069 case '-': return F_MINUS;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1070 case '_': return F_UNDERLINE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1071 case '=': return F_EQUALS;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1072 case '+': return F_PLUS;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1073 case '\\': return F_BSLASH;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1074 case '|': return F_PIPE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1075 case ':': return F_DCOLON;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1076 case '"': return F_SEMICOLON;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1077 case '.': return F_PERIOD;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1078 case '/': return F_SLASH;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1079 case '<': return F_LESS;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1080 case '>': return F_GREATER;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1081 case '?': return F_QUESTION;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1082 case ' ': return F_BLANK;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1083 }
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1084 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1085
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1086 case 'a':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1087 tempc = _SHIN;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1088 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1089 case 'A':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1090 tempc = WAW_H;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1091 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1092 case 'b':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1093 tempc = ZAL;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1094 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1095 case 'c':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1096 tempc = ZE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1097 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1098 case 'C':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1099 tempc = JE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1100 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1101 case 'd':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1102 tempc = _YE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1103 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1104 case 'D':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1105 tempc = _YEE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1106 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1107 case 'e':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1108 tempc = _SE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1109 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1110 case 'f':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1111 tempc = _BE;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1112 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1113 case 'g':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1114 tempc = _LAM;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1115 break;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1116 case 'G':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1117 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1118 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1119
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1120 if (gchar_cursor() == _LAM)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1121 chg_c_toX_orX ();
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1122 else if (p_ri)
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1123 chg_c_to_X_or_X ();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1124 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1125
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1126 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1127 if (!curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1128 return ALEF_U_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1129
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1130 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1131 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1132
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1133 if (gchar_cursor() == _LAM)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1134 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1135 chg_c_toX_orX ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1136 chg_l_toXor_X ();
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1137 tempc = ALEF_U_H;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1138 }
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1139 else if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1140 {
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1141 tempc = ALEF_U_H_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1142 chg_l_toXor_X ();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1143 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1144 else
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1145 tempc = ALEF_U_H;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1147 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1148 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1149
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1150 return tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1151 case 'h':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1152 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1153 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1154 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1155 chg_c_to_X_or_X ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1156
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1157 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1158
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1159 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1160 if (!curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1161 return ALEF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1162
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1163 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1164 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1165
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1166 if (gchar_cursor() == _LAM)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1167 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1168 chg_l_toXor_X();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1169 del_char(FALSE);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1170 AppendCharToRedobuff(K_BS);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1171
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1172 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1173 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1174
8238
d7e1526ae1b9 commit https://github.com/vim/vim/commit/68c85fcdf31c104db21c96cd5871724e458c95ff
Christian Brabandt <cb@256bit.org>
parents: 7819
diff changeset
1175 tempc = LA;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1176 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1177 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1178 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1179 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1180 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1181 tempc = ALEF_;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1182 chg_l_toXor_X ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1183 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1184 else
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1185 tempc = ALEF;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1186 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1187
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1188 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1189 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1190
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1191 return tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1192 case 'i':
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1193 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1194 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1195 if (!p_ri && !F_is_TyE(tempc))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1196 chg_c_to_X_orX_ ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1197 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1198 chg_c_to_X_or_X ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1199
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1200 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1201
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1202 if (!p_ri && !curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1203 return _HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1204
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1205 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1206 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1207
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1208 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1209 tempc = _HE_;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1210 else
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1211 tempc = _HE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1212
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1213 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1214 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1215 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1216 case 'j':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1217 tempc = _TE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1218 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1219 case 'J':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1220 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1221 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1222 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1223 chg_c_to_X_or_X ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1224
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1225 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1226
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1227 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1228 if (!curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1229 return TEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1230
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1231 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1232 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1233
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1234 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1235 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1236 tempc = TEE_;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1237 chg_l_toXor_X ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1238 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1239 else
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1240 tempc = TEE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1241
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1242 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1243 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1244
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1245 return tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1246 case 'k':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1247 tempc = _NOON;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1248 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1249 case 'l':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1250 tempc = _MIM;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1251 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1252 case 'm':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1253 tempc = _PE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1254 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1255 case 'n':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1256 case 'N':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1257 tempc = DAL;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1258 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1259 case 'o':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1260 tempc = _XE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1261 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1262 case 'p':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1263 tempc = _HE_J;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1264 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1265 case 'q':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1266 tempc = _ZAD;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1267 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1268 case 'r':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1269 tempc = _GHAF;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1270 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1271 case 's':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1272 tempc = _SIN;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1273 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1274 case 'S':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1275 tempc = _IE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1276 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1277 case 't':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1278 tempc = _FE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1279 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1280 case 'u':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1281 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1282 {
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1283 if (!p_ri && !F_is_TyE(tempc))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1284 chg_c_to_X_orX_ ();
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1285 if (p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1286 chg_c_to_X_or_X ();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1287
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1288 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1289
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1290 if (!p_ri && !curwin->w_cursor.col)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1291 return _AYN;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1292
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1293 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1294 dec_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1295
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1296 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1297 tempc = _AYN_;
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1298 else
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1299 tempc = _AYN;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1300
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1301 if (!p_ri)
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1302 inc_cursor();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1303 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1304 case 'v':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1305 case 'V':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1306 tempc = RE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1307 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1308 case 'w':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1309 tempc = _SAD;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1310 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1311 case 'x':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1312 case 'X':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1313 tempc = _TA;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1314 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1315 case 'y':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1316 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1317 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1318 if (!p_ri && !F_is_TyE(tempc))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1319 chg_c_to_X_orX_ ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1320 if (p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1321 chg_c_to_X_or_X ();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1322
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1323 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1324
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1325 if (!p_ri && !curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1326 return _GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1327
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1328 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1329 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1330
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1331 if (F_is_TyB_TyC_TyD(SRC_EDT, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1332 tempc = _GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1333 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1334 tempc = _GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1335
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1336 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1337 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1338
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1339 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1340 case 'z':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1341 tempc = _ZA;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1342 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1343 case 'Z':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1344 tempc = _KAF_H;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1345 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1346 case ';':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1347 tempc = _KAF;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1348 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1349 case '\'':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1350 tempc = _GAF;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1351 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1352 case ',':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1353 tempc = WAW;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1354 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1355 case '[':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1356 tempc = _JIM;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1357 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1358 case ']':
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1359 tempc = _CHE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1360 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1361 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1362
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1363 if (F_isalpha(tempc) || F_isdigit(tempc))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1364 {
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1365 if (!curwin->w_cursor.col && STRLEN(ml_get_curline()))
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1366 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1367 if (!p_ri && !F_is_TyE(tempc))
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1368 chg_c_to_X_orX_();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1369 if (p_ri)
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1370 chg_c_to_X_or_X();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1371 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1372
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1373 if (curwin->w_cursor.col)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1374 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1375 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1376 dec_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1377
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1378 if (F_is_TyE(tempc))
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1379 chg_l_toXor_X();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1380 else
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1381 chg_l_to_X_orX_();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1382
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1383 if (!p_ri)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1384 inc_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1385 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1386 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1387 if (tempc)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1388 return tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1389 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1390 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1391
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1392 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1393 * Convert a none leading Farsi char into a leading type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1394 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1395 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1396 toF_leading(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1397 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1398 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1399 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1400 case ALEF_: return ALEF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1401 case ALEF_U_H_: return ALEF_U_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1402 case BE: return _BE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1403 case PE: return _PE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1404 case TE: return _TE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1405 case SE: return _SE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1406 case JIM: return _JIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1407 case CHE: return _CHE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1408 case HE_J: return _HE_J;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1409 case XE: return _XE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1410 case SIN: return _SIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1411 case SHIN: return _SHIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1412 case SAD: return _SAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1413 case ZAD: return _ZAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1414
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1415 case AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1416 case AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1417 case _AYN_: return _AYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1418
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1419 case GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1420 case GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1421 case _GHAYN_: return _GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1422
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1423 case FE: return _FE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1424 case GHAF: return _GHAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1425 case KAF: return _KAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1426 case GAF: return _GAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1427 case LAM: return _LAM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1428 case MIM: return _MIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1429 case NOON: return _NOON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1430
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1431 case _HE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1432 case F_HE: return _HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1433
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1434 case YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1435 case YE_: return _YE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1436
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1437 case IE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1438 case IE: return _IE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1439
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1440 case YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1441 case YEE_: return _YEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1442 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1443 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1444 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1445
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1446 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1447 * Convert a given Farsi char into right joining type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1448 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1449 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1450 toF_Rjoin(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1451 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1452 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1453 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1454 case ALEF: return ALEF_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1455 case ALEF_U_H: return ALEF_U_H_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1456 case BE: return _BE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1457 case PE: return _PE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1458 case TE: return _TE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1459 case SE: return _SE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1460 case JIM: return _JIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1461 case CHE: return _CHE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1462 case HE_J: return _HE_J;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1463 case XE: return _XE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1464 case SIN: return _SIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1465 case SHIN: return _SHIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1466 case SAD: return _SAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1467 case ZAD: return _ZAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1468
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1469 case AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1470 case AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1471 case _AYN: return _AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1472
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1473 case GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1474 case GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1475 case _GHAYN_: return _GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1476
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1477 case FE: return _FE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1478 case GHAF: return _GHAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1479 case KAF: return _KAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1480 case GAF: return _GAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1481 case LAM: return _LAM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1482 case MIM: return _MIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1483 case NOON: return _NOON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1484
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1485 case _HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1486 case F_HE: return _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1487
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1488 case YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1489 case YE_: return _YE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1490
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1491 case IE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1492 case IE: return _IE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1493
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1494 case TEE: return TEE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1495
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1496 case YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1497 case YEE_: return _YEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1498 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1499 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1500 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1501
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1502 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1503 * Can a given Farsi character join via its left edj.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1504 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1505 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1506 canF_Ljoin(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1507 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1508 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1509 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1510 case _BE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1511 case BE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1512 case PE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1513 case _PE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1514 case TE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1515 case _TE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1516 case SE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1517 case _SE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1518 case JIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1519 case _JIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1520 case CHE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1521 case _CHE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1522 case HE_J:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1523 case _HE_J:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1524 case XE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1525 case _XE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1526 case SIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1527 case _SIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1528 case SHIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1529 case _SHIN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1530 case SAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1531 case _SAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1532 case ZAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1533 case _ZAD:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1534 case _TA:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1535 case _ZA:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1536 case AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1537 case _AYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1538 case _AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1539 case AYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1540 case GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1541 case GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1542 case _GHAYN_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1543 case _GHAYN:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1544 case FE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1545 case _FE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1546 case GHAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1547 case _GHAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1548 case _KAF_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1549 case KAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1550 case _KAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1551 case GAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1552 case _GAF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1553 case LAM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1554 case _LAM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1555 case MIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1556 case _MIM:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1557 case NOON:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1558 case _NOON:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1559 case IE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1560 case _IE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1561 case IE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1562 case YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1563 case _YE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1564 case YE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1565 case YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1566 case _YEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1567 case YEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1568 case F_HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1569 case _HE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1570 case _HE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1571 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1572 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1573 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1574 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1575
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1576 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1577 * Can a given Farsi character join via its right edj.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1578 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1579 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1580 canF_Rjoin(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1581 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1582 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1583 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1584 case ALEF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1585 case ALEF_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1586 case ALEF_U_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1587 case ALEF_U_H_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1588 case DAL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1589 case ZAL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1590 case RE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1591 case JE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1592 case ZE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1593 case TEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1594 case TEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1595 case WAW:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1596 case WAW_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1597 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1598 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1599
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1600 return canF_Ljoin(c);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1601
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1602 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1603
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1604 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1605 * is a given Farsi character a terminating type.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1606 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1607 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1608 F_isterm(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1609 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1610 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1611 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1612 case ALEF:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1613 case ALEF_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1614 case ALEF_U_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1615 case ALEF_U_H_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1616 case DAL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1617 case ZAL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1618 case RE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1619 case JE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1620 case ZE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1621 case WAW:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1622 case WAW_H:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1623 case TEE:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1624 case TEE_:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1625 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1626 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1627
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1628 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1629 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1630
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1631 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1632 * Convert the given Farsi character into a ending type .
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1633 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1634 static int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1635 toF_ending(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1636 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1637 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1638 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1639 case _BE: return BE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1640 case _PE: return PE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1641 case _TE: return TE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1642 case _SE: return SE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1643 case _JIM: return JIM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1644 case _CHE: return CHE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1645 case _HE_J: return HE_J;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1646 case _XE: return XE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1647 case _SIN: return SIN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1648 case _SHIN: return SHIN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1649 case _SAD: return SAD;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1650 case _ZAD: return ZAD;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1651 case _AYN: return AYN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1652 case _AYN_: return AYN_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1653 case _GHAYN: return GHAYN;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1654 case _GHAYN_: return GHAYN_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1655 case _FE: return FE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1656 case _GHAF: return GHAF;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1657 case _KAF_H:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1658 case _KAF: return KAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1659 case _GAF: return GAF;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1660 case _LAM: return LAM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1661 case _MIM: return MIM;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1662 case _NOON: return NOON;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1663 case _YE: return YE_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1664 case YE_: return YE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1665 case _YEE: return YEE_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1666 case YEE_: return YEE;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1667 case TEE: return TEE_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1668 case _IE: return IE_;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1669 case IE_: return IE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1670 case _HE:
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1671 case _HE_: return F_HE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1672 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1673 return c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1674 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1675
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1676 /*
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1677 * Convert the Farsi 3342 standard into Farsi VIM.
10745
265268ea1adc patch 8.0.0262: Farsi support is barely tested
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
1678 */
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1679 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1680 conv_to_pvim(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1681 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1682 char_u *ptr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1683 int lnum, llen, i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1684
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1685 for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1686 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1687 ptr = ml_get((linenr_T)lnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1688
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1689 llen = (int)STRLEN(ptr);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1690
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1691 for (i = 0; i < llen-1; i++)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1692 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1693 if (canF_Ljoin(ptr[i]) && canF_Rjoin(ptr[i+1]))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1694 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1695 ptr[i] = toF_leading(ptr[i]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1696 ++i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1697
11317
e45c6e4d78af patch 8.0.0544: cppcheck warnings
Christian Brabandt <cb@256bit.org>
parents: 11158
diff changeset
1698 while (i < llen && canF_Rjoin(ptr[i]))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1699 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1700 ptr[i] = toF_Rjoin(ptr[i]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1701 if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1702 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1703 ++i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1704 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1705 if (!F_isalpha(ptr[i]) || !canF_Rjoin(ptr[i]))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1706 ptr[i-1] = toF_ending(ptr[i-1]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1707 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1708 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1709 ptr[i] = toF_TyA(ptr[i]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1710 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1711 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1712
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1713 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1714 * Following lines contains Farsi encoded character.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1715 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1716
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1717 do_cmdline_cmd((char_u *)"%s/\202\231/\232/ge");
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1718 do_cmdline_cmd((char_u *)"%s/\201\231/\370\334/ge");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1719
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1720 /* Assume the screen has been messed up: clear it and redraw. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1721 redraw_later(CLEAR);
11158
501f46f7644c patch 8.0.0466: still macros that should be all-caps
Christian Brabandt <cb@256bit.org>
parents: 10747
diff changeset
1722 MSG_ATTR(farsi_text_1, HL_ATTR(HLF_S));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1723 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1724
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1725 /*
4352
04736b4030ec updated for version 7.3.925
Bram Moolenaar <bram@vim.org>
parents: 3683
diff changeset
1726 * Convert the Farsi VIM into Farsi 3342 standard.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1727 */
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1728 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1729 conv_to_pstd(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1730 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1731 char_u *ptr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1732 int lnum, llen, i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1733
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1734 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1735 * Following line contains Farsi encoded character.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1736 */
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1737 do_cmdline_cmd((char_u *)"%s/\232/\202\231/ge");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1738
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1739 for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1740 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1741 ptr = ml_get((linenr_T)lnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1742 llen = (int)STRLEN(ptr);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1743
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
1744 for (i = 0; i < llen; i++)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1745 ptr[i] = toF_TyA(ptr[i]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1746 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1747
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1748 /* Assume the screen has been messed up: clear it and redraw. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1749 redraw_later(CLEAR);
11158
501f46f7644c patch 8.0.0466: still macros that should be all-caps
Christian Brabandt <cb@256bit.org>
parents: 10747
diff changeset
1750 MSG_ATTR(farsi_text_2, HL_ATTR(HLF_S));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1751 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1752
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1753 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1754 * left-right swap the characters in buf[len].
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1755 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1756 static void
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1757 lrswapbuf(char_u *buf, int len)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1758 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1759 char_u *s, *e;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1760 int c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1761
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1762 s = buf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1763 e = buf + len - 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1764
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1765 while (e > s)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1766 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1767 c = *s;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1768 *s = *e;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1769 *e = c;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1770 ++s;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1771 --e;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1772 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1773 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1774
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1775 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1776 * swap all the characters in reverse direction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1777 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1778 char_u *
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1779 lrswap(char_u *ibuf)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1780 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1781 if (ibuf != NULL && *ibuf != NUL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1782 lrswapbuf(ibuf, (int)STRLEN(ibuf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1783 return ibuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1784 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1785
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1786 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1787 * swap all the Farsi characters in reverse direction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1788 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1789 char_u *
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1790 lrFswap(char_u *cmdbuf, int len)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1791 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1792 int i, cnt;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1793
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1794 if (cmdbuf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1795 return cmdbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1796
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1797 if (len == 0 && (len = (int)STRLEN(cmdbuf)) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1798 return cmdbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1799
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1800 for (i = 0; i < len; i++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1801 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1802 for (cnt = 0; i + cnt < len
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1803 && (F_isalpha(cmdbuf[i + cnt])
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1804 || F_isdigit(cmdbuf[i + cnt])
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1805 || cmdbuf[i + cnt] == ' '); ++cnt)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1806 ;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1807
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1808 lrswapbuf(cmdbuf + i, cnt);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1809 i += cnt;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1810 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1811 return cmdbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1812 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1813
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1814 /*
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1224
diff changeset
1815 * Reverse the characters in the search path and substitute section
18ee39301b82 updated for version 7.2a
vimboss
parents: 1224
diff changeset
1816 * accordingly.
18ee39301b82 updated for version 7.2a
vimboss
parents: 1224
diff changeset
1817 * TODO: handle different separator characters. Use skip_regexp().
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1818 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1819 char_u *
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1820 lrF_sub(char_u *ibuf)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1821 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1822 char_u *p, *ep;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1823 int i, cnt;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1824
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1825 p = ibuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1826
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 7
diff changeset
1827 /* Find the boundary of the search path */
396
afc60a6339a6 updated for version 7.0104
vimboss
parents: 388
diff changeset
1828 while (((p = vim_strchr(p + 1, '/')) != NULL) && p[-1] == '\\')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1829 ;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1830
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1831 if (p == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1832 return ibuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1833
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1834 /* Reverse the Farsi characters in the search path. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1835 lrFswap(ibuf, (int)(p-ibuf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1836
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 7
diff changeset
1837 /* Now find the boundary of the substitute section */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1838 if ((ep = (char_u *)strrchr((char *)++p, '/')) != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1839 cnt = (int)(ep - p);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1840 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1841 cnt = (int)STRLEN(p);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1842
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1843 /* Reverse the characters in the substitute section and take care of '\' */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1844 for (i = 0; i < cnt-1; i++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1845 if (p[i] == '\\')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1846 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1847 p[i] = p[i+1] ;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1848 p[++i] = '\\';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1849 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1850
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1851 lrswapbuf(p, cnt);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1852
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1853 return ibuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1854 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1855
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1856 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1857 * Map Farsi keyboard when in cmd_fkmap mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1858 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1859 int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
1860 cmdl_fkmap(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1861 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1862 int tempc;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1863
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1864 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1865 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1866 case '0':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1867 case '1':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1868 case '2':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1869 case '3':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1870 case '4':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1871 case '5':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1872 case '6':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1873 case '7':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1874 case '8':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1875 case '9':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1876 case '`':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1877 case ' ':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1878 case '.':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1879 case '!':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1880 case '"':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1881 case '$':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1882 case '%':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1883 case '^':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1884 case '&':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1885 case '/':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1886 case '(':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1887 case ')':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1888 case '=':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1889 case '\\':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1890 case '?':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1891 case '+':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1892 case '-':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1893 case '_':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1894 case '*':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1895 case ':':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1896 case '#':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1897 case '~':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1898 case '@':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1899 case '<':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1900 case '>':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1901 case '{':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1902 case '}':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1903 case '|':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1904 case 'B':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1905 case 'E':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1906 case 'F':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1907 case 'H':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1908 case 'I':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1909 case 'K':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1910 case 'L':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1911 case 'M':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1912 case 'O':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1913 case 'P':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1914 case 'Q':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1915 case 'R':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1916 case 'T':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1917 case 'U':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1918 case 'W':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1919 case 'Y':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1920 case NL:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1921 case TAB:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1922
10747
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1923 switch ((tempc = cmd_gchar(AT_CURSOR)))
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1924 {
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1925 case _BE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1926 case _PE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1927 case _TE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1928 case _SE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1929 case _JIM:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1930 case _CHE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1931 case _HE_J:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1932 case _XE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1933 case _SIN:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1934 case _SHIN:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1935 case _SAD:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1936 case _ZAD:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1937 case _AYN:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1938 case _GHAYN:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1939 case _FE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1940 case _GHAF:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1941 case _KAF:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1942 case _GAF:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1943 case _LAM:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1944 case _MIM:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1945 case _NOON:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1946 case _HE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1947 case _HE_:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1948 cmd_pchar(toF_TyA(tempc), AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1949 break;
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1950 case _AYN_:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1951 cmd_pchar(AYN_, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1952 break;
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1953 case _GHAYN_:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1954 cmd_pchar(GHAYN_, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1955 break;
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1956 case _IE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1957 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1))
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1958 cmd_pchar(IE_, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1959 else
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1960 cmd_pchar(IE, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1961 break;
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1962 case _YEE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1963 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1))
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1964 cmd_pchar(YEE_, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1965 else
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1966 cmd_pchar(YEE, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1967 break;
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1968 case _YE:
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1969 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR+1))
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1970 cmd_pchar(YE_, AT_CURSOR);
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1971 else
b8a79277269a patch 8.0.0263: Farsi support is not tested enough
Christian Brabandt <cb@256bit.org>
parents: 10745
diff changeset
1972 cmd_pchar(YE, AT_CURSOR);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1973 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1974
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1975 switch (c)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1976 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1977 case '0': return FARSI_0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1978 case '1': return FARSI_1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1979 case '2': return FARSI_2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1980 case '3': return FARSI_3;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1981 case '4': return FARSI_4;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1982 case '5': return FARSI_5;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1983 case '6': return FARSI_6;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1984 case '7': return FARSI_7;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1985 case '8': return FARSI_8;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1986 case '9': return FARSI_9;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1987 case 'B': return F_PSP;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1988 case 'E': return JAZR_N;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1989 case 'F': return ALEF_D_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1990 case 'H': return ALEF_A;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1991 case 'I': return TASH;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1992 case 'K': return F_LQUOT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1993 case 'L': return F_RQUOT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1994 case 'M': return HAMZE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1995 case 'O': return '[';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1996 case 'P': return ']';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1997 case 'Q': return OO;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1998 case 'R': return MAD_N;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1999 case 'T': return OW;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2000 case 'U': return MAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2001 case 'W': return OW_OW;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2002 case 'Y': return JAZR;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2003 case '`': return F_PCN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2004 case '!': return F_EXCL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2005 case '@': return F_COMMA;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2006 case '#': return F_DIVIDE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2007 case '$': return F_CURRENCY;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2008 case '%': return F_PERCENT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2009 case '^': return F_MUL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2010 case '&': return F_BCOMMA;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2011 case '*': return F_STAR;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2012 case '(': return F_LPARENT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2013 case ')': return F_RPARENT;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2014 case '-': return F_MINUS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2015 case '_': return F_UNDERLINE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2016 case '=': return F_EQUALS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2017 case '+': return F_PLUS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2018 case '\\': return F_BSLASH;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2019 case '|': return F_PIPE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2020 case ':': return F_DCOLON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2021 case '"': return F_SEMICOLON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2022 case '.': return F_PERIOD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2023 case '/': return F_SLASH;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2024 case '<': return F_LESS;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2025 case '>': return F_GREATER;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2026 case '?': return F_QUESTION;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2027 case ' ': return F_BLANK;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2028 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2029
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2030 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2031
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2032 case 'a': return _SHIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2033 case 'A': return WAW_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2034 case 'b': return ZAL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2035 case 'c': return ZE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2036 case 'C': return JE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2037 case 'd': return _YE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2038 case 'D': return _YEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2039 case 'e': return _SE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2040 case 'f': return _BE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2041 case 'g': return _LAM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2042 case 'G':
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2043 if (cmd_gchar(AT_CURSOR) == _LAM)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2044 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2045 cmd_pchar(LAM, AT_CURSOR);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2046 return ALEF_U_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2047 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2048
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2049 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2050 return ALEF_U_H_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2051 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2052 return ALEF_U_H;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2053 case 'h':
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2054 if (cmd_gchar(AT_CURSOR) == _LAM)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2055 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2056 cmd_pchar(LA, AT_CURSOR);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2057 redrawcmdline();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2058 return K_IGNORE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2059 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2060
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2061 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2062 return ALEF_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2063 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2064 return ALEF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2065 case 'i':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2066 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2067 return _HE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2068 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2069 return _HE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2070 case 'j': return _TE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2071 case 'J':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2072 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2073 return TEE_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2074 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2075 return TEE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2076 case 'k': return _NOON;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2077 case 'l': return _MIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2078 case 'm': return _PE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2079 case 'n':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2080 case 'N': return DAL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2081 case 'o': return _XE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2082 case 'p': return _HE_J;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2083 case 'q': return _ZAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2084 case 'r': return _GHAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2085 case 's': return _SIN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2086 case 'S': return _IE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2087 case 't': return _FE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2088 case 'u':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2089 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2090 return _AYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2091 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2092 return _AYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2093 case 'v':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2094 case 'V': return RE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2095 case 'w': return _SAD;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2096 case 'x':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2097 case 'X': return _TA;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2098 case 'y':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2099 if (F_is_TyB_TyC_TyD(SRC_CMD, AT_CURSOR))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2100 return _GHAYN_;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2101 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2102 return _GHAYN;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2103 case 'z':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2104 case 'Z': return _ZA;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2105 case ';': return _KAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2106 case '\'': return _GAF;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2107 case ',': return WAW;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2108 case '[': return _JIM;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2109 case ']': return _CHE;
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2110 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2111
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2112 return c;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2113 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2114
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2115 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2116 * F_isalpha returns TRUE if 'c' is a Farsi alphabet
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2117 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2118 int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
2119 F_isalpha(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2120 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2121 return ((c >= TEE_ && c <= _YE)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2122 || (c >= ALEF_A && c <= YE)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2123 || (c >= _IE && c <= YE_));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2124 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2125
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2126 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2127 * F_isdigit returns TRUE if 'c' is a Farsi digit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2128 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2129 int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
2130 F_isdigit(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2131 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2132 return (c >= FARSI_0 && c <= FARSI_9);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2133 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2134
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2135 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2136 * F_ischar returns TRUE if 'c' is a Farsi character.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2137 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2138 int
7819
f86adafb28d4 commit https://github.com/vim/vim/commit/78c0b7d43e5048fd71d12816659667834170c76d
Christian Brabandt <cb@256bit.org>
parents: 7801
diff changeset
2139 F_ischar(int c)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2140 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2141 return (c >= TEE_ && c <= YE_);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2142 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2143
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2144 void
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2145 farsi_f8(cmdarg_T *cap UNUSED)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2146 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2147 if (p_altkeymap)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2148 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2149 if (curwin->w_farsi & W_R_L)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2150 {
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2151 p_fkmap = 0;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2152 do_cmdline_cmd((char_u *)"set norl");
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2153 MSG("");
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2154 }
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2155 else
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2156 {
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2157 p_fkmap = 1;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2158 do_cmdline_cmd((char_u *)"set rl");
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2159 MSG("");
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2160 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2161
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2162 curwin->w_farsi = curwin->w_farsi ^ W_R_L;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2163 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2164 }
9399
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2165
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2166 void
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2167 farsi_f9(cmdarg_T *cap UNUSED)
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2168 {
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2169 if (p_altkeymap && curwin->w_p_rl)
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2170 {
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2171 curwin->w_farsi = curwin->w_farsi ^ W_CONV;
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2172 if (curwin->w_farsi & W_CONV)
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2173 conv_to_pvim();
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2174 else
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2175 conv_to_pstd();
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2176 }
43b8570abbec commit https://github.com/vim/vim/commit/ee2615af64fdcee87d8e4b13b65356e77fbd969b
Christian Brabandt <cb@256bit.org>
parents: 8238
diff changeset
2177 }
9403
9b048dced116 commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9
Christian Brabandt <cb@256bit.org>
parents: 9399
diff changeset
2178
9b048dced116 commit https://github.com/vim/vim/commit/75464dc434c43efac60e8bfd9bec2a8b736407e9
Christian Brabandt <cb@256bit.org>
parents: 9399
diff changeset
2179 #endif /* FEAT_FKMAP */