diff --git a/runtime/keymap/ukrainian-jcuken.vim b/runtime/keymap/ukrainian-jcuken.vim new file mode 100644 index 0000000000000000000000000000000000000000..09e56dff8637e2b774b64071a220aa0ea10e5158 --- /dev/null +++ b/runtime/keymap/ukrainian-jcuken.vim @@ -0,0 +1,90 @@ +" Vim Keymap file for ukrainian characters, layout 'jcuken', classical variant +" (compatible with XFree86 'uk' keymap) +" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru> +" Useful mainly with utf-8 but may work with other encodings + +" Maintainer: Anatoli Sakhnik <sakhnik@gmail.com> +" Last Changed: 2006 Mar 15 + +" All characters are given literally, conversion to another encoding (e.g., +" UTF-8) should work. +scriptencoding utf-8 + +let b:keymap_name = "uk" + +loadkeymap +~ ~ +` ' +F Ð CYRILLIC CAPITAL LETTER A +< Б CYRILLIC CAPITAL LETTER BE +D Ð’ CYRILLIC CAPITAL LETTER VE +U Г CYRILLIC CAPITAL LETTER GHE +L Д CYRILLIC CAPITAL LETTER DE +T Е CYRILLIC CAPITAL LETTER IE +: Ж CYRILLIC CAPITAL LETTER ZHE +P З CYRILLIC CAPITAL LETTER ZE +B И CYRILLIC CAPITAL LETTER I +Q Й CYRILLIC CAPITAL LETTER SHORT I +R К CYRILLIC CAPITAL LETTER KA +K Л CYRILLIC CAPITAL LETTER EL +V Ðœ CYRILLIC CAPITAL LETTER EM +Y Ð CYRILLIC CAPITAL LETTER EN +J О CYRILLIC CAPITAL LETTER O +G П CYRILLIC CAPITAL LETTER PE +H Ð CYRILLIC CAPITAL LETTER ER +C С CYRILLIC CAPITAL LETTER ES +N Т CYRILLIC CAPITAL LETTER TE +E У CYRILLIC CAPITAL LETTER U +A Ф CYRILLIC CAPITAL LETTER EF +{ Ð¥ CYRILLIC CAPITAL LETTER HA +W Ц CYRILLIC CAPITAL LETTER TSE +X Ч CYRILLIC CAPITAL LETTER CHE +I Ш CYRILLIC CAPITAL LETTER SHA +O Щ CYRILLIC CAPITAL LETTER SHCHA +} Ї CYRILLIC CAPITAL LETTER YI +S І CYRILLIC CAPITAL LETTER BYELORUSSION-UKRAINIAN I +M Ь CYRILLIC CAPITAL LETTER SOFT SIGN +\" Є CYRILLIC CAPITAL LETTER UKRAINIAN IE +> Ю CYRILLIC CAPITAL LETTER YU +Z Я CYRILLIC CAPITAL LETTER YA +| Ò CYRILLIC CAPITAL LETTER GHE WITH UPTURN +f а CYRILLIC SMALL LETTER A +, б CYRILLIC SMALL LETTER BE +d в CYRILLIC SMALL LETTER VE +u г CYRILLIC SMALL LETTER GHE +l д CYRILLIC SMALL LETTER DE +t е CYRILLIC SMALL LETTER IE +; ж CYRILLIC SMALL LETTER ZHE +p з CYRILLIC SMALL LETTER ZE +b и CYRILLIC SMALL LETTER I +q й CYRILLIC SMALL LETTER SHORT I +r к CYRILLIC SMALL LETTER KA +k л CYRILLIC SMALL LETTER EL +v м CYRILLIC SMALL LETTER EM +y н CYRILLIC SMALL LETTER EN +j о CYRILLIC SMALL LETTER O +g п CYRILLIC SMALL LETTER PE +h Ñ€ CYRILLIC SMALL LETTER ER +c Ñ CYRILLIC SMALL LETTER ES +n Ñ‚ CYRILLIC SMALL LETTER TE +e у CYRILLIC SMALL LETTER U +a Ñ„ CYRILLIC SMALL LETTER EF +[ Ñ… CYRILLIC SMALL LETTER HA +w ц CYRILLIC SMALL LETTER TSE +x ч CYRILLIC SMALL LETTER CHE +i ш CYRILLIC SMALL LETTER SHA +o щ CYRILLIC SMALL LETTER SHCHA +] Ñ— CYRILLIC SMALL LETTER YI +s Ñ– CYRILLIC SMALL LETTER BYELORUSSION-UKRAINIAN I +m ÑŒ CYRILLIC SMALL LETTER SOFT SIGN +' Ñ” CYRILLIC SMALL LETTER UKRAINIAN IE +. ÑŽ CYRILLIC SMALL LETTER YU +z Ñ CYRILLIC SMALL LETTER YA +\\ Ò‘ CYRILLIC SMALL LETTER GHE WITH UPTURN +@ " +# ' +$ * +% : +^ , +& . +* ; diff --git a/src/diff.c b/src/diff.c index fec3382630a36d95d1aa85e657a4c4187f07cf25..3927338340907fc8f669b31f9f6e58ae1934e8d2 100644 --- a/src/diff.c +++ b/src/diff.c @@ -21,6 +21,8 @@ static int diff_busy = FALSE; /* ex_diffgetput() is busy */ #define DIFF_FILLER 1 /* display filler lines */ #define DIFF_ICASE 2 /* ignore case */ #define DIFF_IWHITE 4 /* ignore change in white space */ +#define DIFF_HORIZONTAL 8 /* horizontal splits */ +#define DIFF_VERTICAL 16 /* vertical splits */ static int diff_flags = DIFF_FILLER; #define LBUFLEN 50 /* length of line in diff file */ @@ -977,7 +979,7 @@ ex_diffpatch(eap) /* don't use a new tab page, each tab page has its own diffs */ cmdmod.tab = 0; - if (win_split(0, 0) != FAIL) + if (win_split(0, (diff_flags & DIFF_VERTICAL) ? WSP_VERT : 0) != FAIL) { /* Pretend it was a ":split fname" command */ eap->cmdidx = CMD_split; @@ -1037,7 +1039,7 @@ ex_diffsplit(eap) /* don't use a new tab page, each tab page has its own diffs */ cmdmod.tab = 0; - if (win_split(0, 0) != FAIL) + if (win_split(0, (diff_flags & DIFF_VERTICAL) ? WSP_VERT : 0) != FAIL) { /* Pretend it was a ":split fname" command */ eap->cmdidx = CMD_split; @@ -1086,7 +1088,7 @@ diff_win_options(wp, addbuf) OPT_LOCAL|OPT_FREE, 0); curwin = old_curwin; curbuf = curwin->w_buffer; - wp->w_p_fdc = 2; + wp->w_p_fdc = diff_foldcolumn; wp->w_p_fen = TRUE; wp->w_p_fdl = 0; foldUpdateAll(wp); @@ -1700,6 +1702,7 @@ diffopt_changed() char_u *p; int diff_context_new = 6; int diff_flags_new = 0; + int diff_foldcolumn_new = 2; tabpage_T *tp; p = p_dip; @@ -1725,12 +1728,31 @@ diffopt_changed() p += 6; diff_flags_new |= DIFF_IWHITE; } + else if (STRNCMP(p, "horizontal", 10) == 0) + { + p += 10; + diff_flags_new |= DIFF_HORIZONTAL; + } + else if (STRNCMP(p, "vertical", 8) == 0) + { + p += 8; + diff_flags_new |= DIFF_VERTICAL; + } + else if (STRNCMP(p, "foldcolumn:", 11) == 0 && VIM_ISDIGIT(p[11])) + { + p += 11; + diff_foldcolumn_new = getdigits(&p); + } if (*p != ',' && *p != NUL) return FAIL; if (*p == ',') ++p; } + /* Can't have both "horizontal" and "vertical". */ + if ((diff_flags_new & DIFF_HORIZONTAL) && (diff_flags_new & DIFF_VERTICAL)) + return FAIL; + /* If "icase" or "iwhite" was added or removed, need to update the diff. */ if (diff_flags != diff_flags_new) for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) @@ -1738,6 +1760,7 @@ diffopt_changed() diff_flags = diff_flags_new; diff_context = diff_context_new; + diff_foldcolumn = diff_foldcolumn_new; diff_redraw(TRUE); @@ -1748,6 +1771,15 @@ diffopt_changed() return OK; } +/* + * Return TRUE if 'diffopt' contains "horizontal". + */ + int +diffopt_horizontal() +{ + return (diff_flags & DIFF_HORIZONTAL) != 0; +} + /* * Find the difference within a changed line. * Returns TRUE if the line was added, no other buffer has it. diff --git a/src/proto/os_mac_conv.pro b/src/proto/os_mac_conv.pro index 1ab9d28f9eb7f70f25c5c29b0b355255558fda62..7aa3d9fa18ad12241f4c12def08ccb2a17ff8fd2 100644 --- a/src/proto/os_mac_conv.pro +++ b/src/proto/os_mac_conv.pro @@ -1,10 +1,11 @@ -extern char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, int from, int to, int *unconvlenp)); -extern int macroman2enc __ARGS((char_u *ptr, long *sizep, long real_size)); -extern int enc2macroman __ARGS((char_u *from, size_t fromlen, char_u *to, int *tolenp, int maxtolen, char_u *rest, int *restlenp)); - -extern void mac_conv_init __ARGS((void)); -extern void mac_conv_cleanup __ARGS((void)); -extern char_u *mac_utf16_to_enc __ARGS((UniChar *from, size_t fromLen, size_t *actualLen)); -extern UniChar *mac_enc_to_utf16 __ARGS((char_u *from, size_t fromLen, size_t *actualLen)); -extern CFStringRef mac_enc_to_cfstring __ARGS((char_u *from, size_t fromLen)); -extern char_u *mac_precompose_path __ARGS((char_u *decompPath, size_t decompLen, size_t *precompLen)); +/* os_mac_conv.c */ +char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, int from_enc, int to_enc, int *unconvlenp)); +int macroman2enc __ARGS((char_u *ptr, long *sizep, long real_size)); +int enc2macroman __ARGS((char_u *from, size_t fromlen, char_u *to, int *tolenp, int maxtolen, char_u *rest, int *restlenp)); +void mac_conv_init __ARGS((void)); +void mac_conv_cleanup __ARGS((void)); +char_u *mac_utf16_to_enc __ARGS((UniChar *from, size_t fromLen, size_t *actualLen)); +UniChar *mac_enc_to_utf16 __ARGS((char_u *from, size_t fromLen, size_t *actualLen)); +CFStringRef mac_enc_to_cfstring __ARGS((char_u *from, size_t fromLen)); +char_u *mac_precompose_path __ARGS((char_u *decompPath, size_t decompLen, size_t *precompLen)); +/* vim: set ft=c : */ diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak index d8b2f7507c6c1f2ad8a6a164761b8dbc7664cfe9..15f8d3363f74cb879830d514c84aae6765e4981f 100644 --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -24,7 +24,8 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \ test38.out test39.out test40.out test41.out test42.out \ test43.out test44.out test45.out test46.out test47.out \ test48.out test51.out test53.out test54.out test55.out \ - test56.out test57.out test58.out test59.out test60.out + test56.out test57.out test58.out test59.out test60.out \ + test61.out .SUFFIXES: .in .out