summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/keymap/ukrainian-jcuken.vim90
-rw-r--r--src/diff.c38
-rw-r--r--src/proto/os_mac_conv.pro21
-rw-r--r--src/testdir/Make_os2.mak3
4 files changed, 138 insertions, 14 deletions
diff --git a/runtime/keymap/ukrainian-jcuken.vim b/runtime/keymap/ukrainian-jcuken.vim
new file mode 100644
index 0000000000..09e56dff86
--- /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 fec3382630..3927338340 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);
@@ -1749,6 +1772,15 @@ diffopt_changed()
}
/*
+ * 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 1ab9d28f9e..7aa3d9fa18 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 d8b2f7507c..15f8d3363f 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