aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/hebrew.txt19
-rw-r--r--runtime/doc/insert.txt8
-rw-r--r--runtime/doc/news.txt2
-rw-r--r--runtime/doc/options.txt24
-rw-r--r--runtime/doc/starting.txt2
-rw-r--r--runtime/doc/vim_diff.txt4
-rw-r--r--src/nvim/edit.c105
-rw-r--r--src/nvim/ex_getln.c11
-rw-r--r--src/nvim/main.c4
-rw-r--r--src/nvim/normal.c4
-rw-r--r--src/nvim/option.c4
-rw-r--r--src/nvim/option_defs.h3
-rw-r--r--src/nvim/options.lua10
-rw-r--r--src/nvim/screen.c3
-rw-r--r--src/nvim/testdir/test_charsearch.vim1
-rw-r--r--src/nvim/testdir/test_cmdline.vim3
-rw-r--r--src/nvim/testdir/test_edit.vim4
-rw-r--r--src/nvim/testdir/test_paste.vim7
-rw-r--r--src/nvim/testdir/test_startup.vim8
19 files changed, 38 insertions, 188 deletions
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 76266d777f..e38385e13a 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -30,17 +30,10 @@ Details
+ 'rightleft' ('rl') sets window orientation to right-to-left. This means
that the logical text 'ABC' will be displayed as 'CBA', and will start
drawing at the right edge of the window, not the left edge.
- + 'hkmap' ('hk') sets keyboard mapping to Hebrew, in insert/replace modes.
- + 'aleph' ('al'), numeric, holds the decimal code of Aleph, for keyboard
- mapping.
- + 'hkmapp' ('hkp') sets keyboard mapping to "phonetic hebrew"
-
- NOTE: these three ('hkmap', 'hkmapp' and 'aleph') are obsolete. You should
- use ":set keymap=hebrewp" instead.
-
- + 'delcombine' ('deco'), boolean, if editing UTF-8 encoded Hebrew, allows
- one to remove the niqud or te`amim by pressing 'x' on a character (with
- associated niqud).
+ + 'keymap' ('kmp') sets keyboard mapping. use values "hebrew" or "heprewp"
+ (the latter option enables phonetic mapping)
+ + 'delcombine' ('deco'), boolean, allows one to remove the niqud or
+ te`amim by pressing 'x' on a character (with associated niqud).
+ 'rightleftcmd' ('rlc') makes the command-prompt for searches show up on
the right side. It only takes effect if the window is 'rightleft'.
@@ -62,10 +55,10 @@ Details
+ CTRL-_ in insert/replace modes toggles 'revins' and 'hkmap' as follows:
- When in rightleft window, 'revins' and 'nohkmap' are toggled, since
+ When in rightleft window, 'revins' is toggled, since
English will likely be inserted in this case.
- When in norightleft window, 'revins' 'hkmap' are toggled, since Hebrew
+ When in norightleft window, 'revins' is toggled, since Hebrew
will likely be inserted in this case.
CTRL-_ moves the cursor to the end of the typed text.
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 84aee43af4..49aa2a79a4 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -221,11 +221,11 @@ CTRL-Y Insert the character which is above the cursor.
able to copy characters from a long line.
*i_CTRL-_*
-CTRL-_ Switch between languages, as follows:
- - When in a rightleft window, revins and nohkmap are toggled,
+CTRL-_ Switch between insert direction, by toggling 'revins', as follows:
+ - When in a rightleft window, 'revins' is toggled,
since English will likely be inserted in this case.
- - When in a norightleft window, revins and hkmap are toggled,
- since Hebrew will likely be inserted in this case.
+ - When in a norightleft window, 'revins' is toggled,
+ since a rightleft language will likely be inserted in this case.
CTRL-_ moves the cursor to the end of the typed text.
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index c5261b739d..86a81e0c95 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -211,6 +211,8 @@ The following deprecated functions or APIs were removed.
changes need to be contributed there first.)
See https://github.com/neovim/neovim/pull/20674.
+- 'hkmap', 'hkmapp' and 'aleph' options were removed. Use 'keymap' option instead.
+
==============================================================================
DEPRECATIONS *news-deprecations*
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index f44b6f28e3..6c5b168402 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -575,16 +575,6 @@ supported use something like this: >
*E355*
A jump table for the options with a short description can be found at |Q_op|.
- *'aleph'* *'al'* *aleph* *Aleph*
-'aleph' 'al' number (default 224)
- global
- The ASCII code for the first letter of the Hebrew alphabet. The
- routine that maps the keyboard in Hebrew mode, both in Insert mode
- (when hkmap is set) and on the command-line (when hitting CTRL-_)
- outputs the Hebrew characters in the range [aleph..aleph+26].
- aleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8.
- See |rileft.txt|.
-
*'allowrevins'* *'ari'* *'noallowrevins'* *'noari'*
'allowrevins' 'ari' boolean (default off)
global
@@ -3195,20 +3185,6 @@ A jump table for the options with a short description can be found at |Q_op|.
each of these histories (see |cmdline-editing|).
The maximum value is 10000.
- *'hkmap'* *'hk'* *'nohkmap'* *'nohk'*
-'hkmap' 'hk' boolean (default off)
- global
- When on, the keyboard is mapped for the Hebrew character set.
- Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
- toggle this option. See |rileft.txt|.
-
- *'hkmapp'* *'hkp'* *'nohkmapp'* *'nohkp'*
-'hkmapp' 'hkp' boolean (default off)
- global
- When on, phonetic keyboard mapping is used. 'hkmap' must also be on.
- This is useful if you have a non-Hebrew keyboard.
- See |rileft.txt|.
-
*'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
'hlsearch' 'hls' boolean (default on)
global
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index a8a149def8..8c9ec7df9c 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -258,7 +258,7 @@ argument.
-A Arabic mode. Sets the 'arabic' option on.
*-H*
--H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.
+-H Hebrew mode. Sets the 'rightleft' option on and 'keymap' to "hebrew"
*-V* *verbose*
-V[N] Verbose. Sets the 'verbose' option to [N] (default: 10).
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 79808eccc9..5efe094226 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -594,6 +594,7 @@ Highlight groups:
<
Options:
+ *'aleph'* *'al'*
antialias
*'balloondelay'* *'bdlay'*
*'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
@@ -617,6 +618,9 @@ Options:
*'guifontset'* *'gfs'* (Use 'guifont' instead.)
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
'highlight' (Names of builtin |highlight-groups| cannot be changed.)
+ *'hkmap'* *'hk'* use `set keymap=hebrew` instead.
+ *'hkmapp'* *'hkp'* use `set keymap=hebrewp` instead.
+
*'imactivatefunc'* *'imaf'*
*'imactivatekey'* *'imak'*
*'imstatusfunc'* *'imsf'*
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 8143af7d1f..7522cc202e 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -523,10 +523,6 @@ static int insert_execute(VimState *state, int key)
did_cursorhold = true;
}
- if (p_hkmap && KeyTyped) {
- s->c = hkmap(s->c); // Hebrew mode mapping
- }
-
// Special handling of keys while the popup menu is visible or wanted
// and the cursor is still in the completed word. Only when there is
// a match, skip this when no matches were found.
@@ -2140,9 +2136,6 @@ void insertchar(int c, int flags, int second_indent)
|| (virtcol += byte2cells((uint8_t)buf[i - 1])) < (colnr_T)textwidth)
&& !(!no_abbr && !vim_iswordc(c) && vim_iswordc((uint8_t)buf[i - 1]))) {
c = vgetc();
- if (p_hkmap && KeyTyped) {
- c = hkmap(c); // Hebrew mode mapping
- }
buf[i++] = (char)c;
}
@@ -3212,101 +3205,6 @@ bool in_cinkeys(int keytyped, int when, bool line_is_empty)
return false;
}
-// Map Hebrew keyboard when in hkmap mode.
-int hkmap(int c)
- FUNC_ATTR_PURE
-{
- if (p_hkmapp) { // phonetic mapping, by Ilya Dogolazky
- enum {
- hALEF = 0, BET, GIMEL, DALET, HEI, VAV, ZAIN, HET, TET, IUD,
- KAFsofit, hKAF, LAMED, MEMsofit, MEM, NUNsofit, NUN, SAMEH, AIN,
- PEIsofit, PEI, ZADIsofit, ZADI, KOF, RESH, hSHIN, TAV,
- };
- static char_u map[26] = {
- (char_u)hALEF, // a
- (char_u)BET, // b
- (char_u)hKAF, // c
- (char_u)DALET, // d
- (char_u) - 1, // e
- (char_u)PEIsofit, // f
- (char_u)GIMEL, // g
- (char_u)HEI, // h
- (char_u)IUD, // i
- (char_u)HET, // j
- (char_u)KOF, // k
- (char_u)LAMED, // l
- (char_u)MEM, // m
- (char_u)NUN, // n
- (char_u)SAMEH, // o
- (char_u)PEI, // p
- (char_u) - 1, // q
- (char_u)RESH, // r
- (char_u)ZAIN, // s
- (char_u)TAV, // t
- (char_u)TET, // u
- (char_u)VAV, // v
- (char_u)hSHIN, // w
- (char_u) - 1, // x
- (char_u)AIN, // y
- (char_u)ZADI, // z
- };
-
- if (c == 'N' || c == 'M' || c == 'P' || c == 'C' || c == 'Z') {
- return (int)(map[CHAR_ORD(c)] - 1 + p_aleph);
- } else if (c == 'x') { // '-1'='sofit'
- return 'X';
- } else if (c == 'q') {
- return '\''; // {geresh}={'}
- } else if (c == 246) {
- return ' '; // \"o --> ' ' for a german keyboard
- } else if (c == 228) {
- return ' '; // \"a --> ' ' -- / --
- } else if (c == 252) {
- return ' '; // \"u --> ' ' -- / --
- } else if (c >= 'a' && c <= 'z') {
- // NOTE: islower() does not do the right thing for us on Linux so we
- // do this the same was as 5.7 and previous, so it works correctly on
- // all systems. Specifically, the e.g. Delete and Arrow keys are
- // munged and won't work if e.g. searching for Hebrew text.
- return (int)(map[CHAR_ORD_LOW(c)] + p_aleph);
- } else {
- return c;
- }
- } else {
- switch (c) {
- case '`':
- return ';';
- case '/':
- return '.';
- case '\'':
- return ',';
- case 'q':
- return '/';
- case 'w':
- return '\'';
-
- // Hebrew letters - set offset from 'a'
- case ',':
- c = '{'; break;
- case '.':
- c = 'v'; break;
- case ';':
- c = 't'; break;
- default: {
- static char_u str[] = "zqbcxlsjphmkwonu ydafe rig";
-
- if (c < 'a' || c > 'z') {
- return c;
- }
- c = str[CHAR_ORD_LOW(c)];
- break;
- }
- }
-
- return (int)(CHAR_ORD_LOW(c) + p_aleph);
- }
-}
-
static void ins_reg(void)
{
bool need_redraw = false;
@@ -3581,7 +3479,7 @@ static bool ins_esc(long *count, int cmdchar, bool nomove)
return true;
}
-// Toggle language: hkmap and revins_on.
+// Toggle language: revins_on.
// Move to end of reverse inserted text.
static void ins_ctrl_(void)
{
@@ -3600,7 +3498,6 @@ static void ins_ctrl_(void)
} else {
revins_scol = -1;
}
- p_hkmap = curwin->w_p_rl ^ p_ri; // be consistent!
showmode();
}
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index af26fe8a1c..376352a13b 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -189,8 +189,6 @@ static int cedit_key = -1; ///< key value of 'cedit' option
static handle_T cmdpreview_bufnr = 0;
static long cmdpreview_ns = 0;
-static int cmd_hkmap = 0; // Hebrew mapping during command line
-
static void save_viewstate(win_T *wp, viewstate_T *vs)
FUNC_ATTR_NONNULL_ALL
{
@@ -680,11 +678,6 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool clea
s->break_ctrl_c = true;
}
- // start without Hebrew mapping for a command line
- if (s->firstc == ':' || s->firstc == '=' || s->firstc == '>') {
- cmd_hkmap = 0;
- }
-
init_ccline(s->firstc, s->indent);
ccline.prompt_id = last_prompt_id++;
ccline.level = cmdline_level;
@@ -1166,9 +1159,6 @@ static int command_line_execute(VimState *state, int key)
if (KeyTyped) {
s->some_key_typed = true;
- if (cmd_hkmap) {
- s->c = hkmap(s->c);
- }
if (cmdmsg_rl && !KeyStuffed) {
// Invert horizontal movements and operations. Only when
@@ -2101,7 +2091,6 @@ static int command_line_handle_key(CommandLineState *s)
if (!p_ari) {
break;
}
- cmd_hkmap = !cmd_hkmap;
return command_line_not_changed(s);
default:
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 5f4e639b06..975772169b 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -1147,8 +1147,8 @@ static void command_line_scan(mparm_T *parmp)
case 'h': // "-h" give help message
usage();
os_exit(0);
- case 'H': // "-H" start in Hebrew mode: rl + hkmap set.
- p_hkmap = true;
+ case 'H': // "-H" start in Hebrew mode: rl + keymap=hebrew set.
+ set_option_value_give_err("keymap", 0L, "hebrew", 0);
set_option_value_give_err("rl", 1L, NULL, 0);
break;
case 'M': // "-M" no changes or writing of files
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index ef8f6e7b0f..f7c99d5991 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -769,10 +769,6 @@ static void normal_get_additional_char(NormalState *s)
// adjust chars > 127, except after "tTfFr" commands
LANGMAP_ADJUST(*cp, !lang);
- // adjust Hebrew mapped char
- if (p_hkmap && lang && KeyTyped) {
- *cp = hkmap(*cp);
- }
}
// When the next character is CTRL-\ a following CTRL-N means the
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 069304d9e1..0303f0bccd 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -5026,7 +5026,6 @@ static void paste_option_changed(void)
static int save_sta = 0;
static int save_ru = 0;
static int save_ri = 0;
- static int save_hkmap = 0;
if (p_paste) {
// Paste switched from off to on.
@@ -5052,7 +5051,6 @@ static void paste_option_changed(void)
save_sta = p_sta;
save_ru = p_ru;
save_ri = p_ri;
- save_hkmap = p_hkmap;
// save global values for local buffer options
p_ai_nopaste = p_ai;
p_et_nopaste = p_et;
@@ -5089,7 +5087,6 @@ static void paste_option_changed(void)
}
p_ru = 0; // no ruler
p_ri = 0; // no reverse insert
- p_hkmap = 0; // no Hebrew keyboard
// set global values for local buffer options
p_tw = 0;
p_wm = 0;
@@ -5129,7 +5126,6 @@ static void paste_option_changed(void)
}
p_ru = save_ru;
p_ri = save_ri;
- p_hkmap = save_hkmap;
// set global values for local buffer options
p_ai = p_ai_nopaste;
p_et = p_et_nopaste;
diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h
index 0e0cc4c983..0c78d7ada5 100644
--- a/src/nvim/option_defs.h
+++ b/src/nvim/option_defs.h
@@ -386,7 +386,6 @@ enum {
// The following are actual variables for the options
-EXTERN long p_aleph; // 'aleph'
EXTERN char *p_ambw; ///< 'ambiwidth'
EXTERN int p_acd; ///< 'autochdir'
EXTERN int p_ai; ///< 'autoindent'
@@ -544,8 +543,6 @@ EXTERN int p_hid; // 'hidden'
EXTERN char *p_hl; // 'highlight'
EXTERN int p_hls; // 'hlsearch'
EXTERN long p_hi; // 'history'
-EXTERN int p_hkmap; // 'hkmap'
-EXTERN int p_hkmapp; // 'hkmapp'
EXTERN int p_arshape; // 'arabicshape'
EXTERN int p_icon; // 'icon'
EXTERN char *p_iconstring; // 'iconstring'
diff --git a/src/nvim/options.lua b/src/nvim/options.lua
index 387ccd0888..a4ee114f39 100644
--- a/src/nvim/options.lua
+++ b/src/nvim/options.lua
@@ -55,8 +55,6 @@ return {
full_name='aleph', abbreviation='al',
short_desc=N_("ASCII code of the letter Aleph (Hebrew)"),
type='number', scope={'global'},
- redraw={'curswant'},
- varname='p_aleph',
defaults={if_true=224}
},
{
@@ -1071,16 +1069,16 @@ return {
},
{
full_name='hkmap', abbreviation='hk',
- short_desc=N_("Hebrew keyboard mapping"),
+ short_desc=N_("No description"),
type='bool', scope={'global'},
- varname='p_hkmap',
+ varname='p_force_off',
defaults={if_true=false}
},
{
full_name='hkmapp', abbreviation='hkp',
- short_desc=N_("phonetic Hebrew keyboard mapping"),
+ short_desc=N_("No description"),
type='bool', scope={'global'},
- varname='p_hkmapp',
+ varname='p_force_off',
defaults={if_true=false}
},
{
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index da9178bdff..61594860d2 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -534,9 +534,6 @@ int showmode(void)
} else if (restart_edit == 'V') {
msg_puts_attr(_(" (vreplace)"), attr);
}
- if (p_hkmap) {
- msg_puts_attr(_(" Hebrew"), attr);
- }
if (State & MODE_LANGMAP) {
if (curwin->w_p_arab) {
msg_puts_attr(_(" Arabic"), attr);
diff --git a/src/nvim/testdir/test_charsearch.vim b/src/nvim/testdir/test_charsearch.vim
index 54e0a62ce5..f8f3e958ca 100644
--- a/src/nvim/testdir/test_charsearch.vim
+++ b/src/nvim/testdir/test_charsearch.vim
@@ -86,6 +86,7 @@ endfunc
" Test for character search with 'hkmap'
func Test_charsearch_hkmap()
+ throw "Skipped: Nvim does not support 'hkmap'"
new
set hkmap
call setline(1, "ùðáâ÷ëòéïçìêöî")
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
index d568b5d425..1dceb43e5d 100644
--- a/src/nvim/testdir/test_cmdline.vim
+++ b/src/nvim/testdir/test_cmdline.vim
@@ -2111,7 +2111,8 @@ func Test_cmdline_revins()
call assert_equal("\"abc\<c-_>", @:)
set allowrevins
call feedkeys(":\"abc\<c-_>xyz\<c-_>\<CR>", 'xt')
- call assert_equal('"abcñèæ', @:)
+ " call assert_equal('"abcñèæ', @:)
+ call assert_equal('"abcxyz', @:)
set allowrevins&
endfunc
diff --git a/src/nvim/testdir/test_edit.vim b/src/nvim/testdir/test_edit.vim
index b6078a1e22..075f78ec76 100644
--- a/src/nvim/testdir/test_edit.vim
+++ b/src/nvim/testdir/test_edit.vim
@@ -516,7 +516,8 @@ func Test_edit_CTRL_()
call setline(1, ['abc'])
call cursor(1, 1)
call feedkeys("i\<c-_>xyz\<esc>", 'tnix')
- call assert_equal(["æèñabc"], getline(1, '$'))
+ " call assert_equal(["æèñabc"], getline(1, '$'))
+ call assert_equal(["zyxabc"], getline(1, '$'))
call assert_true(&revins)
call setline(1, ['abc'])
call cursor(1, 1)
@@ -1913,6 +1914,7 @@ endfunc
" Test for 'hkmap' and 'hkmapp'
func Test_edit_hkmap()
+ throw "Skipped: Nvim does not support 'hkmap'"
CheckFeature rightleft
if has('win32') && !has('gui')
" Test fails on the MS-Windows terminal version
diff --git a/src/nvim/testdir/test_paste.vim b/src/nvim/testdir/test_paste.vim
index dad3c2c6a0..923f4f42a6 100644
--- a/src/nvim/testdir/test_paste.vim
+++ b/src/nvim/testdir/test_paste.vim
@@ -20,7 +20,8 @@ endfunc
func Test_paste_opt_restore()
set autoindent expandtab ruler showmatch
if has('rightleft')
- set revins hkmap
+ " set hkmap
+ set revins
endif
set smarttab softtabstop=3 textwidth=27 wrapmargin=12
if has('vartabs')
@@ -33,7 +34,7 @@ func Test_paste_opt_restore()
call assert_false(&expandtab)
if has('rightleft')
call assert_false(&revins)
- call assert_false(&hkmap)
+ " call assert_false(&hkmap)
endif
call assert_false(&ruler)
call assert_false(&showmatch)
@@ -51,7 +52,7 @@ func Test_paste_opt_restore()
call assert_true(&expandtab)
if has('rightleft')
call assert_true(&revins)
- call assert_true(&hkmap)
+ " call assert_true(&hkmap)
endif
call assert_true(&ruler)
call assert_true(&showmatch)
diff --git a/src/nvim/testdir/test_startup.vim b/src/nvim/testdir/test_startup.vim
index 1ee1d0dfe3..8216b1a894 100644
--- a/src/nvim/testdir/test_startup.vim
+++ b/src/nvim/testdir/test_startup.vim
@@ -389,7 +389,7 @@ endfunc
" Test the -A, -F and -H arguments (Arabic, Farsi and Hebrew modes).
func Test_A_F_H_arg()
let after =<< trim [CODE]
- call writefile([&rightleft, &arabic, 0, &hkmap], "Xtestout")
+ call writefile([&rightleft, &arabic, 0, &hkmap, &keymap], "Xtestout")
qall
[CODE]
@@ -397,17 +397,17 @@ func Test_A_F_H_arg()
" 'encoding' is not utf-8.
if has('arabic') && &encoding == 'utf-8' && RunVim([], after, '-e -s -A')
let lines = readfile('Xtestout')
- call assert_equal(['1', '1', '0', '0'], lines)
+ call assert_equal(['1', '1', '0', '0', 'arabic'], lines)
endif
if has('farsi') && RunVim([], after, '-F')
let lines = readfile('Xtestout')
- call assert_equal(['1', '0', '1', '0'], lines)
+ call assert_equal(['1', '0', '1', '0', '???'], lines)
endif
if has('rightleft') && RunVim([], after, '-H')
let lines = readfile('Xtestout')
- call assert_equal(['1', '0', '0', '1'], lines)
+ call assert_equal(['1', '0', '0', '0', 'hebrew'], lines)
endif
call delete('Xtestout')