summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0811
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0811')
-rw-r--r--data/vim/patches/8.1.08111613
1 files changed, 1613 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0811 b/data/vim/patches/8.1.0811
new file mode 100644
index 000000000..3c85a9738
--- /dev/null
+++ b/data/vim/patches/8.1.0811
@@ -0,0 +1,1613 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0811
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0811
+Problem: Too many #ifdefs.
+Solution: Graduate FEAT_MBYTE, the final chapter.
+Files: src/feature.h, src/vim.h, src/crypt_zip.c, src/fileio.c,
+ src/message.c, src/spell.h, src/structs.h, src/config.h.in,
+ src/configure.ac, src/auto/configure, src/testdir/runtest.vim,
+ src/testdir/test_alot_utf8.vim, src/testdir/test_arabic.vim,
+ src/testdir/test_charsearch_utf8.vim,
+ src/testdir/test_cmdline.vim, src/testdir/test_digraph.vim,
+ src/testdir/test_display.vim, src/testdir/test_edit.vim,
+ src/testdir/test_erasebackword.vim,
+ src/testdir/test_expr_utf8.vim, src/testdir/test_functions.vim,
+ src/testdir/test_ga.vim, src/testdir/test_iminsert.vim,
+ src/testdir/test_increment_dbcs.vim, src/testdir/test_json.vim,
+ src/testdir/test_makeencoding.vim, src/testdir/test_maparg.vim,
+ src/testdir/test_mapping.vim, src/testdir/test_marks.vim,
+ src/testdir/test_match.vim,
+ src/testdir/test_matchadd_conceal_utf8.vim,
+ src/testdir/test_mksession_utf8.vim, src/testdir/test_normal.vim,
+ src/testdir/test_plus_arg_edit.vim, src/testdir/test_profile.vim,
+ src/testdir/test_put.vim, src/testdir/test_regex_char_classes.vim,
+ src/testdir/test_regexp_utf8.vim, src/testdir/test_search.vim,
+ src/testdir/test_source_utf8.vim, src/testdir/test_spell.vim,
+ src/testdir/test_startup_utf8.vim,
+ src/testdir/test_termencoding.vim, src/testdir/test_terminal.vim,
+ src/testdir/test_utf8.vim, src/testdir/test_utf8_comparisons.vim,
+ src/testdir/test_viminfo.vim, src/testdir/test_virtualedit.vim,
+ src/testdir/test_visual.vim, src/testdir/test_wordcount.vim,
+ src/testdir/test_writefile.vim, src/appveyor.bat, src/os_macosx.m
+
+
+*** ../vim-8.1.0810/src/feature.h 2019-01-17 17:13:25.916984116 +0100
+--- src/feature.h 2019-01-24 17:26:34.436229955 +0100
+***************
+*** 286,292 ****
+ *
+ * Disabled for EBCDIC as it requires multibyte.
+ */
+! #if defined(FEAT_BIG) && !defined(DISABLE_ARABIC) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC)
+ # define FEAT_ARABIC
+ #endif
+ #ifdef FEAT_ARABIC
+--- 286,292 ----
+ *
+ * Disabled for EBCDIC as it requires multibyte.
+ */
+! #if defined(FEAT_BIG) && !defined(DISABLE_ARABIC) && !defined(EBCDIC)
+ # define FEAT_ARABIC
+ #endif
+ #ifdef FEAT_ARABIC
+***************
+*** 600,620 ****
+ * +multi_byte Generic multi-byte character handling.
+ * Now always enabled.
+ */
+- #if !defined(FEAT_MBYTE)
+- # define FEAT_MBYTE
+- #endif
+- #if VIM_SIZEOF_INT < 4 && !defined(PROTO)
+- Error: Vim only works with 32 bit int or larger
+- #endif
+
+ /* Define this if you want to use 16 bit Unicode only, reduces memory used for
+ * the screen structures. */
+ /* #define UNICODE16 */
+
+ /*
+! * +multi_byte_ime Win32 IME input method. Requires +multi_byte.
+! * Only for far-east Windows, so IME can be used to input
+! * chars. Not tested much!
+ */
+ #if defined(FEAT_GUI_W32) && !defined(FEAT_MBYTE_IME)
+ /* #define FEAT_MBYTE_IME */
+--- 600,613 ----
+ * +multi_byte Generic multi-byte character handling.
+ * Now always enabled.
+ */
+
+ /* Define this if you want to use 16 bit Unicode only, reduces memory used for
+ * the screen structures. */
+ /* #define UNICODE16 */
+
+ /*
+! * +multi_byte_ime Win32 IME input method. Only for far-east Windows, so
+! * IME can be used to input chars. Not tested much!
+ */
+ #if defined(FEAT_GUI_W32) && !defined(FEAT_MBYTE_IME)
+ /* #define FEAT_MBYTE_IME */
+*** ../vim-8.1.0810/src/vim.h 2019-01-24 17:18:37.599462306 +0100
+--- src/vim.h 2019-01-24 17:30:47.350625573 +0100
+***************
+*** 157,162 ****
+--- 157,166 ----
+ # define VIM_SIZEOF_INT __SIZEOF_INT__
+ #endif
+
++ #if VIM_SIZEOF_INT < 4 && !defined(PROTO)
++ Error: Vim only works with 32 bit int or larger
++ #endif
++
+ /*
+ * #defines for optionals and features
+ * Also defines FEAT_TINY, FEAT_SMALL, etc. when FEAT_HUGE is defined.
+***************
+*** 1664,1671 ****
+ typedef int colnr_T; /* column number type */
+ typedef unsigned short disptick_T; /* display tick type */
+
+- #define MAXLNUM (0x7fffffffL) /* maximum (invalid) line number */
+-
+ /*
+ * Well, you won't believe it, but some S/390 machines ("host", now also known
+ * as zServer) use 31 bit pointers. There are also some newer machines, that
+--- 1668,1673 ----
+***************
+*** 1675,1688 ****
+ * With this we restrict the maximum line length to 1073741823. I guess this is
+ * not a real problem. BTW: Longer lines are split.
+ */
+! #if VIM_SIZEOF_INT >= 4
+! # ifdef __MVS__
+! # define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */
+! # else
+! # define MAXCOL (0x7fffffffL) /* maximum column number, 31 bits */
+! # endif
+ #else
+! # define MAXCOL (0x7fff) /* maximum column number, 15 bits */
+ #endif
+
+ #define SHOWCMD_COLS 10 /* columns needed by shown command */
+--- 1677,1688 ----
+ * With this we restrict the maximum line length to 1073741823. I guess this is
+ * not a real problem. BTW: Longer lines are split.
+ */
+! #ifdef __MVS__
+! # define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */
+! # define MAXLNUM (0x3fffffffL) /* maximum (invalid) line number */
+ #else
+! # define MAXCOL (0x7fffffffL) /* maximum column number, 31 bits */
+! # define MAXLNUM (0x7fffffffL) /* maximum (invalid) line number */
+ #endif
+
+ #define SHOWCMD_COLS 10 /* columns needed by shown command */
+*** ../vim-8.1.0810/src/crypt_zip.c 2018-09-30 21:43:17.179693404 +0200
+--- src/crypt_zip.c 2019-01-24 17:24:54.932842137 +0100
+***************
+*** 24,34 ****
+ */
+
+ /* Need a type that should be 32 bits. 64 also works but wastes space. */
+- # if VIM_SIZEOF_INT >= 4
+ typedef unsigned int u32_T; /* int is at least 32 bits */
+- # else
+- typedef unsigned long u32_T; /* long should be 32 bits or more */
+- # endif
+
+ /* The state of encryption, referenced by cryptstate_T. */
+ typedef struct {
+--- 24,30 ----
+*** ../vim-8.1.0810/src/fileio.c 2019-01-24 15:04:44.670887836 +0100
+--- src/fileio.c 2019-01-24 17:25:30.304626016 +0100
+***************
+*** 1178,1187 ****
+ */
+ if (!skip_read)
+ {
+! #if VIM_SIZEOF_INT > 2
+! # if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L)
+ size = SSIZE_MAX; /* use max I/O size, 52K */
+! # else
+ /* Use buffer >= 64K. Add linerest to double the size if the
+ * line gets very long, to avoid a lot of copying. But don't
+ * read more than 1 Mbyte at a time, so we can be interrupted.
+--- 1178,1186 ----
+ */
+ if (!skip_read)
+ {
+! #if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L)
+ size = SSIZE_MAX; /* use max I/O size, 52K */
+! #else
+ /* Use buffer >= 64K. Add linerest to double the size if the
+ * line gets very long, to avoid a lot of copying. But don't
+ * read more than 1 Mbyte at a time, so we can be interrupted.
+***************
+*** 1189,1208 ****
+ size = 0x10000L + linerest;
+ if (size > 0x100000L)
+ size = 0x100000L;
+- # endif
+- #else
+- size = 0x7ff0L - linerest; /* limit buffer to 32K */
+ #endif
+ }
+
+ /* Protect against the argument of lalloc() going negative. */
+! if (
+! #if VIM_SIZEOF_INT <= 2
+! linerest >= 0x7ff0
+! #else
+! size < 0 || size + linerest + 1 < 0 || linerest >= MAXCOL
+! #endif
+! )
+ {
+ ++split;
+ *ptr = NL; /* split line by inserting a NL */
+--- 1188,1198 ----
+ size = 0x10000L + linerest;
+ if (size > 0x100000L)
+ size = 0x100000L;
+ #endif
+ }
+
+ /* Protect against the argument of lalloc() going negative. */
+! if (size < 0 || size + linerest + 1 < 0 || linerest >= MAXCOL)
+ {
+ ++split;
+ *ptr = NL; /* split line by inserting a NL */
+*** ../vim-8.1.0810/src/message.c 2019-01-24 15:54:17.790846972 +0100
+--- src/message.c 2019-01-24 17:26:13.456360090 +0100
+***************
+*** 4492,4505 ****
+ {
+ /* Don't put the #if inside memchr(), it can be a
+ * macro. */
+- # if VIM_SIZEOF_INT <= 2
+- char *q = memchr(str_arg, '\0', precision);
+- # else
+ /* memchr on HP does not like n > 2^31 !!! */
+ char *q = memchr(str_arg, '\0',
+ precision <= (size_t)0x7fffffffL ? precision
+ : (size_t)0x7fffffffL);
+- # endif
+ str_arg_l = (q == NULL) ? precision
+ : (size_t)(q - str_arg);
+ }
+--- 4492,4501 ----
+*** ../vim-8.1.0810/src/spell.h 2019-01-24 17:18:37.599462306 +0100
+--- src/spell.h 2019-01-24 17:27:09.008014383 +0100
+***************
+*** 38,48 ****
+
+ /* Type used for indexes in the word tree need to be at least 4 bytes. If int
+ * is 8 bytes we could use something smaller, but what? */
+- #if VIM_SIZEOF_INT > 3
+ typedef int idx_T;
+- #else
+- typedef long idx_T;
+- #endif
+
+ typedef int salfirst_T;
+
+--- 38,44 ----
+*** ../vim-8.1.0810/src/structs.h 2019-01-24 17:18:37.599462306 +0100
+--- src/structs.h 2019-01-24 17:28:05.915656687 +0100
+***************
+*** 416,427 ****
+ /*
+ * structures used in undo.c
+ */
+! #if VIM_SIZEOF_INT > 2
+! # define ALIGN_LONG /* longword alignment and use filler byte */
+! # define ALIGN_SIZE (sizeof(long))
+! #else
+! # define ALIGN_SIZE (sizeof(short))
+! #endif
+
+ #define ALIGN_MASK (ALIGN_SIZE - 1)
+
+--- 416,423 ----
+ /*
+ * structures used in undo.c
+ */
+! #define ALIGN_LONG /* longword alignment and use filler byte */
+! #define ALIGN_SIZE (sizeof(long))
+
+ #define ALIGN_MASK (ALIGN_SIZE - 1)
+
+***************
+*** 1229,1247 ****
+ # endif
+ #else
+ /* Use 32-bit Number. */
+- # if VIM_SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */
+- typedef long varnumber_T;
+- typedef unsigned long uvarnumber_T;
+- #define VARNUM_MIN LONG_MIN
+- #define VARNUM_MAX LONG_MAX
+- #define UVARNUM_MAX ULONG_MAX
+- # else
+ typedef int varnumber_T;
+ typedef unsigned int uvarnumber_T;
+ #define VARNUM_MIN INT_MIN
+ #define VARNUM_MAX INT_MAX
+ #define UVARNUM_MAX UINT_MAX
+- # endif
+ #endif
+
+ typedef double float_T;
+--- 1225,1235 ----
+*** ../vim-8.1.0810/src/config.h.in 2019-01-17 15:43:21.753878419 +0100
+--- src/config.h.in 2019-01-24 17:31:33.658326026 +0100
+***************
+*** 387,395 ****
+ /* Define if you want to include the Cscope interface. */
+ #undef FEAT_CSCOPE
+
+- /* Define if you want to include multibyte support. */
+- #undef FEAT_MBYTE
+-
+ /* Define if you don't want to include right-left support. */
+ #undef DISABLE_RIGHTLEFT
+
+--- 387,392 ----
+*** ../vim-8.1.0810/src/configure.ac 2019-01-17 15:43:21.753878419 +0100
+--- src/configure.ac 2019-01-24 17:32:05.122121683 +0100
+***************
+*** 2124,2132 ****
+ [ --enable-multibyte Include multibyte editing support.], ,
+ [enable_multibyte="yes"])
+ AC_MSG_RESULT($enable_multibyte)
+! if test "$enable_multibyte" = "yes"; then
+! AC_DEFINE(FEAT_MBYTE)
+! else
+ AC_MSG_ERROR([The multi-byte feature can no longer be disabled. If you have
+ a problem with this, discuss on the Vim mailing list.])
+ fi
+--- 2124,2130 ----
+ [ --enable-multibyte Include multibyte editing support.], ,
+ [enable_multibyte="yes"])
+ AC_MSG_RESULT($enable_multibyte)
+! if test "$enable_multibyte" != "yes"; then
+ AC_MSG_ERROR([The multi-byte feature can no longer be disabled. If you have
+ a problem with this, discuss on the Vim mailing list.])
+ fi
+*** ../vim-8.1.0810/src/auto/configure 2019-01-17 15:43:21.753878419 +0100
+--- src/auto/configure 2019-01-24 17:58:50.615374358 +0100
+***************
+*** 7937,7946 ****
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_multibyte" >&5
+ $as_echo "$enable_multibyte" >&6; }
+! if test "$enable_multibyte" = "yes"; then
+! $as_echo "#define FEAT_MBYTE 1" >>confdefs.h
+!
+! else
+ as_fn_error $? "The multi-byte feature can no longer be disabled. If you have
+ a problem with this, discuss on the Vim mailing list." "$LINENO" 5
+ fi
+--- 7937,7943 ----
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_multibyte" >&5
+ $as_echo "$enable_multibyte" >&6; }
+! if test "$enable_multibyte" != "yes"; then
+ as_fn_error $? "The multi-byte feature can no longer be disabled. If you have
+ a problem with this, discuss on the Vim mailing list." "$LINENO" 5
+ fi
+*** ../vim-8.1.0810/src/testdir/runtest.vim 2019-01-06 15:29:52.540852980 +0100
+--- src/testdir/runtest.vim 2019-01-24 17:34:56.996995476 +0100
+***************
+*** 49,61 ****
+ " This also enables use of line continuation.
+ set nocp viminfo+=nviminfo
+
+! " Use utf-8 or latin1 by default, instead of whatever the system default
+! " happens to be. Individual tests can overrule this at the top of the file.
+! if has('multi_byte')
+! set encoding=utf-8
+! else
+! set encoding=latin1
+! endif
+
+ " REDIR_TEST_TO_NULL has a very permissive SwapExists autocommand which is for
+ " the test_name.vim file itself. Replace it here with a more restrictive one,
+--- 49,57 ----
+ " This also enables use of line continuation.
+ set nocp viminfo+=nviminfo
+
+! " Use utf-8 by default, instead of whatever the system default happens to be.
+! " Individual tests can overrule this at the top of the file.
+! set encoding=utf-8
+
+ " REDIR_TEST_TO_NULL has a very permissive SwapExists autocommand which is for
+ " the test_name.vim file itself. Replace it here with a more restrictive one,
+*** ../vim-8.1.0810/src/testdir/test_alot_utf8.vim 2017-11-23 22:47:27.000000000 +0100
+--- src/testdir/test_alot_utf8.vim 2019-01-24 17:35:26.732799164 +0100
+***************
+*** 2,9 ****
+ " This makes testing go faster, since Vim doesn't need to restart.
+
+ " These tests use utf8 'encoding'. Setting 'encoding' is already done in
+! " runtest.vim. Checking for the multi_byte feature is in the individual
+! " files, so that they can be run by themselves.
+
+ source test_charsearch_utf8.vim
+ source test_expr_utf8.vim
+--- 2,8 ----
+ " This makes testing go faster, since Vim doesn't need to restart.
+
+ " These tests use utf8 'encoding'. Setting 'encoding' is already done in
+! " runtest.vim.
+
+ source test_charsearch_utf8.vim
+ source test_expr_utf8.vim
+*** ../vim-8.1.0810/src/testdir/test_arabic.vim 2018-02-27 20:59:25.000000000 +0100
+--- src/testdir/test_arabic.vim 2019-01-24 17:35:46.320669645 +0100
+***************
+*** 2,8 ****
+ " NOTE: This just checks if the code works. If you know Arabic please add
+ " functional tests that check the shaping works with real text.
+
+! if !has('arabic') || !has('multi_byte')
+ finish
+ endif
+
+--- 2,8 ----
+ " NOTE: This just checks if the code works. If you know Arabic please add
+ " functional tests that check the shaping works with real text.
+
+! if !has('arabic')
+ finish
+ endif
+
+*** ../vim-8.1.0810/src/testdir/test_charsearch_utf8.vim 2019-01-09 23:00:57.997176121 +0100
+--- src/testdir/test_charsearch_utf8.vim 2019-01-24 17:36:06.932533187 +0100
+***************
+*** 1,7 ****
+ " Tests for related f{char} and t{char} using utf-8.
+- if !has('multi_byte')
+- finish
+- endif
+
+ " Test for t,f,F,T movement commands
+ func Test_search_cmds()
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_cmdline.vim 2018-12-31 21:02:58.334464236 +0100
+--- src/testdir/test_cmdline.vim 2019-01-24 17:36:50.348245230 +0100
+***************
+*** 582,588 ****
+ endfunc
+
+ func Test_cmdline_overstrike()
+! let encodings = has('multi_byte') ? [ 'latin1', 'utf8' ] : [ 'latin1' ]
+ let encoding_save = &encoding
+
+ for e in encodings
+--- 582,588 ----
+ endfunc
+
+ func Test_cmdline_overstrike()
+! let encodings = ['latin1', 'utf8']
+ let encoding_save = &encoding
+
+ for e in encodings
+***************
+*** 601,611 ****
+ call assert_equal('"ab0cd3ef4', @:)
+ endfor
+
+! if has('multi_byte')
+! " Test overstrike with multi-byte characters.
+! call feedkeys(":\"テキストエディタ\<home>\<right>\<right>ab\<right>\<insert>cd\<enter>", 'xt')
+! call assert_equal('"テabキcdエディタ', @:)
+! endif
+
+ let &encoding = encoding_save
+ endfunc
+--- 601,609 ----
+ call assert_equal('"ab0cd3ef4', @:)
+ endfor
+
+! " Test overstrike with multi-byte characters.
+! call feedkeys(":\"テキストエディタ\<home>\<right>\<right>ab\<right>\<insert>cd\<enter>", 'xt')
+! call assert_equal('"テabキcdエディタ', @:)
+
+ let &encoding = encoding_save
+ endfunc
+*** ../vim-8.1.0810/src/testdir/test_digraph.vim 2018-06-16 17:25:17.997346631 +0200
+--- src/testdir/test_digraph.vim 2019-01-24 17:37:12.784096155 +0100
+***************
+*** 1,6 ****
+ " Tests for digraphs
+
+! if !has("digraphs") || !has("multi_byte")
+ finish
+ endif
+
+--- 1,6 ----
+ " Tests for digraphs
+
+! if !has("digraphs")
+ finish
+ endif
+
+***************
+*** 466,474 ****
+ endfunc
+
+ func Test_show_digraph_cp1251()
+- if !has('multi_byte')
+- return
+- endif
+ new
+ set encoding=cp1251
+ call Put_Dig("='")
+--- 466,471 ----
+*** ../vim-8.1.0810/src/testdir/test_display.vim 2019-01-09 23:00:57.997176121 +0100
+--- src/testdir/test_display.vim 2019-01-24 17:37:18.536057908 +0100
+***************
+*** 39,45 ****
+ endfunc
+
+ func Test_display_foldtext_mbyte()
+! if !has("folding") || !has("multi_byte")
+ return
+ endif
+ call NewWindow(10, 40)
+--- 39,45 ----
+ endfunc
+
+ func Test_display_foldtext_mbyte()
+! if !has("folding")
+ return
+ endif
+ call NewWindow(10, 40)
+*** ../vim-8.1.0810/src/testdir/test_edit.vim 2019-01-09 23:00:57.997176121 +0100
+--- src/testdir/test_edit.vim 2019-01-24 17:37:56.615804425 +0100
+***************
+*** 37,48 ****
+ call assert_equal([''], getline(1,'$'))
+ %d
+ " 4) delete a multibyte character
+! if has("multi_byte")
+! call setline(1, "\u0401")
+! call feedkeys("i\<del>\<esc>", 'tnix')
+! call assert_equal([''], getline(1,'$'))
+! %d
+! endif
+ " 5.1) delete linebreak with 'bs' option containing eol
+ let _bs=&bs
+ set bs=eol
+--- 37,46 ----
+ call assert_equal([''], getline(1,'$'))
+ %d
+ " 4) delete a multibyte character
+! call setline(1, "\u0401")
+! call feedkeys("i\<del>\<esc>", 'tnix')
+! call assert_equal([''], getline(1,'$'))
+! %d
+ " 5.1) delete linebreak with 'bs' option containing eol
+ let _bs=&bs
+ set bs=eol
+***************
+*** 440,446 ****
+
+ func Test_edit_CTRL_()
+ " disabled for Windows builds, why?
+! if !has("multi_byte") || !has("rightleft") || has("win32")
+ return
+ endif
+ let _encoding=&encoding
+--- 438,444 ----
+
+ func Test_edit_CTRL_()
+ " disabled for Windows builds, why?
+! if !has("rightleft") || has("win32")
+ return
+ endif
+ let _encoding=&encoding
+***************
+*** 608,622 ****
+ endtry
+ call delete('Xdictionary.txt')
+
+! if has("multi_byte")
+! call test_override("char_avail", 1)
+! set showcmd
+! %d
+! call feedkeys("A\<c-k>a:\<esc>", 'tnix')
+! call assert_equal(['ä'], getline(1, '$'))
+! call test_override("char_avail", 0)
+! set noshowcmd
+! endif
+ bw!
+ endfunc
+
+--- 606,619 ----
+ endtry
+ call delete('Xdictionary.txt')
+
+! call test_override("char_avail", 1)
+! set showcmd
+! %d
+! call feedkeys("A\<c-k>a:\<esc>", 'tnix')
+! call assert_equal(['ä'], getline(1, '$'))
+! call test_override("char_avail", 0)
+! set noshowcmd
+!
+ bw!
+ endfunc
+
+*** ../vim-8.1.0810/src/testdir/test_erasebackword.vim 2017-11-16 21:41:26.000000000 +0100
+--- src/testdir/test_erasebackword.vim 2019-01-24 17:38:22.383632644 +0100
+***************
+*** 1,10 ****
+
+ func Test_erasebackword()
+- if !has('multi_byte')
+- return
+- endif
+-
+- set encoding=utf-8
+ enew
+
+ exe "normal o wwwこんにちわ世界ワールドvim \<C-W>"
+--- 1,5 ----
+***************
+*** 21,25 ****
+ call assert_equal('', getline('.'))
+
+ enew!
+- set encoding&
+ endfunc
+--- 16,19 ----
+*** ../vim-8.1.0810/src/testdir/test_expr_utf8.vim 2016-07-21 20:09:30.000000000 +0200
+--- src/testdir/test_expr_utf8.vim 2019-01-24 17:38:30.055581461 +0100
+***************
+*** 1,7 ****
+ " Tests for expressions using utf-8.
+- if !has('multi_byte')
+- finish
+- endif
+
+ func Test_strgetchar()
+ call assert_equal(char2nr('á'), strgetchar('áxb', 0))
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_functions.vim 2018-11-10 17:33:23.083518842 +0100
+--- src/testdir/test_functions.vim 2019-01-24 17:39:14.883282048 +0100
+***************
+*** 106,116 ****
+ call assert_equal(4, strwidth(1234))
+ call assert_equal(5, strwidth(-1234))
+
+! if has('multi_byte')
+! call assert_equal(2, strwidth('😉'))
+! call assert_equal(17, strwidth('Eĥoŝanĝo ĉiuĵaŭde'))
+! call assert_equal((aw == 'single') ? 6 : 7, strwidth('Straße'))
+! endif
+
+ call assert_fails('call strwidth({->0})', 'E729:')
+ call assert_fails('call strwidth([])', 'E730:')
+--- 106,114 ----
+ call assert_equal(4, strwidth(1234))
+ call assert_equal(5, strwidth(-1234))
+
+! call assert_equal(2, strwidth('😉'))
+! call assert_equal(17, strwidth('Eĥoŝanĝo ĉiuĵaŭde'))
+! call assert_equal((aw == 'single') ? 6 : 7, strwidth('Straße'))
+
+ call assert_fails('call strwidth({->0})', 'E729:')
+ call assert_fails('call strwidth([])', 'E730:')
+***************
+*** 277,286 ****
+ call assert_equal('fg', strpart('abcdefg', 5, 4))
+ call assert_equal('defg', strpart('abcdefg', 3))
+
+! if has('multi_byte')
+! call assert_equal('lép', strpart('éléphant', 2, 4))
+! call assert_equal('léphant', strpart('éléphant', 2))
+! endif
+ endfunc
+
+ func Test_tolower()
+--- 275,282 ----
+ call assert_equal('fg', strpart('abcdefg', 5, 4))
+ call assert_equal('defg', strpart('abcdefg', 3))
+
+! call assert_equal('lép', strpart('éléphant', 2, 4))
+! call assert_equal('léphant', strpart('éléphant', 2))
+ endfunc
+
+ func Test_tolower()
+***************
+*** 290,299 ****
+ call assert_equal(' !"#$%&''()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~',
+ \ tolower(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'))
+
+- if !has('multi_byte')
+- return
+- endif
+-
+ " Test with a few uppercase diacritics.
+ call assert_equal("aàáâãäåāăąǎǟǡả", tolower("AÀÁÂÃÄÅĀĂĄǍǞǠẢ"))
+ call assert_equal("bḃḇ", tolower("BḂḆ"))
+--- 286,291 ----
+***************
+*** 368,377 ****
+ call assert_equal(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~',
+ \ toupper(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'))
+
+- if !has('multi_byte')
+- return
+- endif
+-
+ " Test with a few lowercase diacritics.
+ call assert_equal("AÀÁÂÃÄÅĀĂĄǍǞǠẢ", toupper("aàáâãäåāăąǎǟǡả"))
+ call assert_equal("BḂḆ", toupper("bḃḇ"))
+--- 360,365 ----
+*** ../vim-8.1.0810/src/testdir/test_ga.vim 2018-02-27 20:52:25.000000000 +0100
+--- src/testdir/test_ga.vim 2019-01-24 17:39:20.407245117 +0100
+***************
+*** 21,30 ****
+
+ call assert_equal("\n<e> 101, Hex 65, Octal 145", Do_ga('e'))
+
+- if !has('multi_byte')
+- return
+- endif
+-
+ " Test a few multi-bytes characters.
+ call assert_equal("\n<é> 233, Hex 00e9, Oct 351, Digr e'", Do_ga('é'))
+ call assert_equal("\n<ẻ> 7867, Hex 1ebb, Oct 17273, Digr e2", Do_ga('ẻ'))
+--- 21,26 ----
+*** ../vim-8.1.0810/src/testdir/test_iminsert.vim 2017-11-26 14:35:32.000000000 +0100
+--- src/testdir/test_iminsert.vim 2019-01-24 17:39:35.019147377 +0100
+***************
+*** 1,7 ****
+- if !has('multi_byte')
+- finish
+- endif
+-
+ source view_util.vim
+
+ let s:imactivatefunc_called = 0
+--- 1,3 ----
+*** ../vim-8.1.0810/src/testdir/test_increment_dbcs.vim 2016-08-18 23:00:23.000000000 +0200
+--- src/testdir/test_increment_dbcs.vim 2019-01-24 17:40:04.626949174 +0100
+***************
+*** 1,7 ****
+ " Tests for using Ctrl-A/Ctrl-X using DBCS.
+- if !has('multi_byte')
+- finish
+- endif
+ set encoding=cp932
+ scriptencoding cp932
+
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_json.vim 2019-01-12 14:24:22.627597552 +0100
+--- src/testdir/test_json.vim 2019-01-24 17:40:48.674653909 +0100
+***************
+*** 1,10 ****
+ " Test for JSON functions.
+
+- " JSON requires using utf-8, because conversion breaks the asserts.
+- if !has('multi_byte')
+- finish
+- endif
+-
+ let s:json1 = '"str\"in\\g"'
+ let s:var1 = "str\"in\\g"
+ let s:json2 = '"\u0001\u0002\u0003\u0004\u0005\u0006\u0007"'
+--- 1,5 ----
+***************
+*** 79,88 ****
+ call assert_equal(s:json4, json_encode(s:var4))
+ call assert_equal(s:json5, json_encode(s:var5))
+
+! if has('multi_byte')
+! call assert_equal(s:jsonmb, json_encode(s:varmb))
+! " no test for surrogate pair, json_encode() doesn't create them.
+! endif
+
+ call assert_equal(s:jsonnr, json_encode(s:varnr))
+ if has('float')
+--- 74,81 ----
+ call assert_equal(s:json4, json_encode(s:var4))
+ call assert_equal(s:json5, json_encode(s:var5))
+
+! call assert_equal(s:jsonmb, json_encode(s:varmb))
+! " no test for surrogate pair, json_encode() doesn't create them.
+
+ call assert_equal(s:jsonnr, json_encode(s:varnr))
+ if has('float')
+***************
+*** 121,131 ****
+ call assert_equal(s:var4, json_decode(s:json4))
+ call assert_equal(s:var5, json_decode(s:json5))
+
+! if has('multi_byte')
+! call assert_equal(s:varmb, json_decode(s:jsonmb))
+! call assert_equal(s:varsp1, json_decode(s:jsonsp1))
+! call assert_equal(s:varsp2, json_decode(s:jsonsp2))
+! endif
+
+ call assert_equal(s:varnr, json_decode(s:jsonnr))
+ if has('float')
+--- 114,122 ----
+ call assert_equal(s:var4, json_decode(s:json4))
+ call assert_equal(s:var5, json_decode(s:json5))
+
+! call assert_equal(s:varmb, json_decode(s:jsonmb))
+! call assert_equal(s:varsp1, json_decode(s:jsonsp1))
+! call assert_equal(s:varsp2, json_decode(s:jsonsp2))
+
+ call assert_equal(s:varnr, json_decode(s:jsonnr))
+ if has('float')
+***************
+*** 197,206 ****
+ call assert_equal(s:json4, js_encode(s:var4))
+ call assert_equal(s:json5, js_encode(s:var5))
+
+! if has('multi_byte')
+! call assert_equal(s:jsonmb, js_encode(s:varmb))
+! " no test for surrogate pair, js_encode() doesn't create them.
+! endif
+
+ call assert_equal(s:jsonnr, js_encode(s:varnr))
+ if has('float')
+--- 188,195 ----
+ call assert_equal(s:json4, js_encode(s:var4))
+ call assert_equal(s:json5, js_encode(s:var5))
+
+! call assert_equal(s:jsonmb, js_encode(s:varmb))
+! " no test for surrogate pair, js_encode() doesn't create them.
+
+ call assert_equal(s:jsonnr, js_encode(s:varnr))
+ if has('float')
+***************
+*** 237,247 ****
+ call assert_equal(s:var4, js_decode(s:json4))
+ call assert_equal(s:var5, js_decode(s:json5))
+
+! if has('multi_byte')
+! call assert_equal(s:varmb, js_decode(s:jsonmb))
+! call assert_equal(s:varsp1, js_decode(s:jsonsp1))
+! call assert_equal(s:varsp2, js_decode(s:jsonsp2))
+! endif
+
+ call assert_equal(s:varnr, js_decode(s:jsonnr))
+ if has('float')
+--- 226,234 ----
+ call assert_equal(s:var4, js_decode(s:json4))
+ call assert_equal(s:var5, js_decode(s:json5))
+
+! call assert_equal(s:varmb, js_decode(s:jsonmb))
+! call assert_equal(s:varsp1, js_decode(s:jsonsp1))
+! call assert_equal(s:varsp2, js_decode(s:jsonsp2))
+
+ call assert_equal(s:varnr, js_decode(s:jsonnr))
+ if has('float')
+*** ../vim-8.1.0810/src/testdir/test_makeencoding.vim 2017-03-05 17:10:37.000000000 +0100
+--- src/testdir/test_makeencoding.vim 2019-01-24 17:41:03.986551165 +0100
+***************
+*** 1,7 ****
+ " Tests for 'makeencoding'.
+- if !has('multi_byte')
+- finish
+- endif
+
+ source shared.vim
+
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_maparg.vim 2018-09-10 21:04:09.872392623 +0200
+--- src/testdir/test_maparg.vim 2019-01-24 17:41:13.038490403 +0100
+***************
+*** 1,8 ****
+ " Tests for maparg().
+ " Also test utf8 map with a 0x80 byte.
+- if !has("multi_byte")
+- finish
+- endif
+
+ function s:SID()
+ return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
+--- 1,5 ----
+*** ../vim-8.1.0810/src/testdir/test_mapping.vim 2018-12-27 23:44:34.797953474 +0100
+--- src/testdir/test_mapping.vim 2019-01-24 17:41:29.094382582 +0100
+***************
+*** 1,9 ****
+ " Tests for mappings and abbreviations
+
+- if !has('multi_byte')
+- finish
+- endif
+-
+ func Test_abbreviation()
+ " abbreviation with 0x80 should work
+ inoreab чкпр vim
+--- 1,5 ----
+*** ../vim-8.1.0810/src/testdir/test_marks.vim 2019-01-09 23:00:58.001176090 +0100
+--- src/testdir/test_marks.vim 2019-01-24 17:41:42.690291238 +0100
+***************
+*** 122,130 ****
+ endfunc
+
+ func Test_marks_cmd_multibyte()
+- if !has('multi_byte')
+- return
+- endif
+ new Xone
+ call setline(1, [repeat('á', &columns)])
+ norm! ma
+--- 122,127 ----
+*** ../vim-8.1.0810/src/testdir/test_match.vim 2018-07-28 16:55:51.439217124 +0200
+--- src/testdir/test_match.vim 2019-01-24 17:42:14.546077073 +0100
+***************
+*** 114,149 ****
+ call assert_equal([{'group': 'MyGroup1', 'id': 3, 'priority': 10, 'pos1': [1, 5, 1], 'pos2': [1, 8, 3]}], getmatches())
+ call clearmatches()
+
+! "
+! if has('multi_byte')
+! call setline(1, 'abcdΣabcdef')
+! call matchaddpos("MyGroup1", [[1, 4, 2], [1, 9, 2]])
+! 1
+! redraw!
+! let v1 = screenattr(1, 1)
+! let v4 = screenattr(1, 4)
+! let v5 = screenattr(1, 5)
+! let v6 = screenattr(1, 6)
+! let v7 = screenattr(1, 7)
+! let v8 = screenattr(1, 8)
+! let v9 = screenattr(1, 9)
+! let v10 = screenattr(1, 10)
+! call assert_equal([{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1, 9, 2]}], getmatches())
+! call assert_notequal(v1, v4)
+! call assert_equal(v5, v4)
+! call assert_equal(v6, v1)
+! call assert_equal(v7, v1)
+! call assert_equal(v8, v4)
+! call assert_equal(v9, v4)
+! call assert_equal(v10, v1)
+
+! " Check, that setmatches() can correctly restore the matches from matchaddpos()
+! call matchadd('MyGroup1', '\%2lmatchadd')
+! let m=getmatches()
+! call clearmatches()
+! call setmatches(m)
+! call assert_equal([{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1,9, 2]}, {'group': 'MyGroup1', 'pattern': '\%2lmatchadd', 'priority': 10, 'id': 12}], getmatches())
+! endif
+
+ highlight MyGroup1 NONE
+ highlight MyGroup2 NONE
+--- 114,146 ----
+ call assert_equal([{'group': 'MyGroup1', 'id': 3, 'priority': 10, 'pos1': [1, 5, 1], 'pos2': [1, 8, 3]}], getmatches())
+ call clearmatches()
+
+! call setline(1, 'abcdΣabcdef')
+! call matchaddpos("MyGroup1", [[1, 4, 2], [1, 9, 2]])
+! 1
+! redraw!
+! let v1 = screenattr(1, 1)
+! let v4 = screenattr(1, 4)
+! let v5 = screenattr(1, 5)
+! let v6 = screenattr(1, 6)
+! let v7 = screenattr(1, 7)
+! let v8 = screenattr(1, 8)
+! let v9 = screenattr(1, 9)
+! let v10 = screenattr(1, 10)
+! call assert_equal([{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1, 9, 2]}], getmatches())
+! call assert_notequal(v1, v4)
+! call assert_equal(v5, v4)
+! call assert_equal(v6, v1)
+! call assert_equal(v7, v1)
+! call assert_equal(v8, v4)
+! call assert_equal(v9, v4)
+! call assert_equal(v10, v1)
+
+! " Check, that setmatches() can correctly restore the matches from matchaddpos()
+! call matchadd('MyGroup1', '\%2lmatchadd')
+! let m=getmatches()
+! call clearmatches()
+! call setmatches(m)
+! call assert_equal([{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1,9, 2]}, {'group': 'MyGroup1', 'pattern': '\%2lmatchadd', 'priority': 10, 'id': 12}], getmatches())
+
+ highlight MyGroup1 NONE
+ highlight MyGroup2 NONE
+*** ../vim-8.1.0810/src/testdir/test_matchadd_conceal_utf8.vim 2019-01-09 23:00:58.001176090 +0100
+--- src/testdir/test_matchadd_conceal_utf8.vim 2019-01-24 17:42:20.782035126 +0100
+***************
+*** 1,5 ****
+ " Test for matchadd() and conceal feature using utf-8.
+! if !has('conceal') || !has('multi_byte')
+ finish
+ endif
+
+--- 1,5 ----
+ " Test for matchadd() and conceal feature using utf-8.
+! if !has('conceal')
+ finish
+ endif
+
+*** ../vim-8.1.0810/src/testdir/test_mksession_utf8.vim 2017-11-23 22:47:27.000000000 +0100
+--- src/testdir/test_mksession_utf8.vim 2019-01-24 17:42:59.533774299 +0100
+***************
+*** 3,9 ****
+ set encoding=utf-8
+ scriptencoding utf-8
+
+! if !has('multi_byte') || !has('mksession')
+ finish
+ endif
+
+--- 3,9 ----
+ set encoding=utf-8
+ scriptencoding utf-8
+
+! if !has('mksession')
+ finish
+ endif
+
+*** ../vim-8.1.0810/src/testdir/test_normal.vim 2018-11-10 16:01:23.331381891 +0100
+--- src/testdir/test_normal.vim 2019-01-24 17:44:08.953306416 +0100
+***************
+*** 1368,1377 ****
+ endfunc
+
+ func Test_normal24_rot13()
+- " This test uses multi byte characters
+- if !has("multi_byte")
+- return
+- endif
+ " Testing for g?? g?g?
+ new
+ call append(0, 'abcdefghijklmnopqrstuvwxyzäüö')
+--- 1368,1373 ----
+***************
+*** 1621,1630 ****
+ endfunc
+
+ fun! Test_normal30_changecase()
+- " This test uses multi byte characters
+- if !has("multi_byte")
+- return
+- endif
+ new
+ call append(0, 'This is a simple test: äüöß')
+ norm! 1ggVu
+--- 1617,1622 ----
+***************
+*** 1894,1935 ****
+ call assert_equal("\nCol 1 of 10; Line 1 of 2; Word 1 of 4; Char 1 of 23; Byte 1 of 22", a)
+ set bin & eol&
+
+! if has('multi_byte')
+! call setline(1, ['Français', '日本語'])
+
+! let a = execute(":norm! \<Esc>gojlg\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20", a)
+
+! let a = execute(":norm! \<Esc>gojvlg\<c-g>")
+! call assert_equal("\nSelected 1 of 2 Lines; 1 of 2 Words; 2 of 13 Chars; 6 of 20 Bytes", a)
+
+! let a = execute(":norm! \<Esc>goll\<c-v>jlg\<c-g>")
+! call assert_equal("\nSelected 4 Cols; 2 of 2 Lines; 2 of 2 Words; 6 of 13 Chars; 11 of 20 Bytes", a)
+
+! set fenc=utf8 bomb
+! let a = execute(":norm! \<Esc>gojlg\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20(+3 for BOM)", a)
+
+! set fenc=utf16 bomb
+! let a = execute(":norm! g\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20(+2 for BOM)", a)
+
+! set fenc=utf32 bomb
+! let a = execute(":norm! g\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20(+4 for BOM)", a)
+
+! set fenc& bomb&
+! endif
+
+ set ff&
+ bwipe!
+ endfunc
+
+ fun! Test_normal34_g_cmd3()
+- if !has("multi_byte")
+- return
+- endif
+-
+ " Test for g8
+ new
+ let a=execute(':norm! 1G0g8')
+--- 1886,1921 ----
+ call assert_equal("\nCol 1 of 10; Line 1 of 2; Word 1 of 4; Char 1 of 23; Byte 1 of 22", a)
+ set bin & eol&
+
+! call setline(1, ['Français', '日本語'])
+
+! let a = execute(":norm! \<Esc>gojlg\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20", a)
+
+! let a = execute(":norm! \<Esc>gojvlg\<c-g>")
+! call assert_equal("\nSelected 1 of 2 Lines; 1 of 2 Words; 2 of 13 Chars; 6 of 20 Bytes", a)
+
+! let a = execute(":norm! \<Esc>goll\<c-v>jlg\<c-g>")
+! call assert_equal("\nSelected 4 Cols; 2 of 2 Lines; 2 of 2 Words; 6 of 13 Chars; 11 of 20 Bytes", a)
+
+! set fenc=utf8 bomb
+! let a = execute(":norm! \<Esc>gojlg\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20(+3 for BOM)", a)
+
+! set fenc=utf16 bomb
+! let a = execute(":norm! g\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20(+2 for BOM)", a)
+
+! set fenc=utf32 bomb
+! let a = execute(":norm! g\<c-g>")
+! call assert_equal("\nCol 4-3 of 9-6; Line 2 of 2; Word 2 of 2; Char 11 of 13; Byte 16 of 20(+4 for BOM)", a)
+
+! set fenc& bomb&
+
+ set ff&
+ bwipe!
+ endfunc
+
+ fun! Test_normal34_g_cmd3()
+ " Test for g8
+ new
+ let a=execute(':norm! 1G0g8')
+***************
+*** 1948,1956 ****
+ endfunc
+
+ func Test_normal_8g8()
+- if !has("multi_byte")
+- return
+- endif
+ new
+
+ " Test 8g8 which finds invalid utf8 at or after the cursor.
+--- 1934,1939 ----
+***************
+*** 2290,2300 ****
+ endfunc
+
+ func Test_normal46_ignore()
+- " This test uses multi byte characters
+- if !has("multi_byte")
+- return
+- endif
+-
+ new
+ " How to test this?
+ " let's just for now test, that the buffer
+--- 2273,2278 ----
+***************
+*** 2470,2478 ****
+ call assert_equal(['abcdefghijklmn'], getline(1,'$'))
+ exe "norm! df\<c-\>m"
+ call assert_equal(['abcdefghijklmn'], getline(1,'$'))
+! if !has("multi_byte")
+! return
+! endif
+ call setline(2, 'abcdefghijklmnāf')
+ norm! 2gg0
+ exe "norm! df\<Char-0x101>"
+--- 2448,2454 ----
+ call assert_equal(['abcdefghijklmn'], getline(1,'$'))
+ exe "norm! df\<c-\>m"
+ call assert_equal(['abcdefghijklmn'], getline(1,'$'))
+!
+ call setline(2, 'abcdefghijklmnāf')
+ norm! 2gg0
+ exe "norm! df\<Char-0x101>"
+***************
+*** 2494,2502 ****
+ endfunc
+
+ func Test_delete_until_paragraph()
+- if !has('multi_byte')
+- return
+- endif
+ new
+ normal grádv}
+ call assert_equal('á', getline(1))
+--- 2470,2475 ----
+*** ../vim-8.1.0810/src/testdir/test_plus_arg_edit.vim 2018-06-12 12:39:37.593152427 +0200
+--- src/testdir/test_plus_arg_edit.vim 2019-01-24 17:44:13.581275200 +0100
+***************
+*** 10,19 ****
+ endfunction
+
+ func Test_edit_bad()
+- if !has('multi_byte')
+- finish
+- endif
+-
+ " Test loading a utf8 file with bad utf8 sequences.
+ call writefile(["[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]"], "Xfile")
+ new
+--- 10,15 ----
+*** ../vim-8.1.0810/src/testdir/test_profile.vim 2018-09-10 22:03:36.490401066 +0200
+--- src/testdir/test_profile.vim 2019-01-24 17:44:38.121109606 +0100
+***************
+*** 407,413 ****
+ endfunc
+
+ func Test_profile_truncate_mbyte()
+! if !has('multi_byte') || &enc !=# 'utf-8'
+ return
+ endif
+
+--- 407,413 ----
+ endfunc
+
+ func Test_profile_truncate_mbyte()
+! if &enc !=# 'utf-8'
+ return
+ endif
+
+*** ../vim-8.1.0810/src/testdir/test_put.vim 2018-06-27 23:12:30.608811033 +0200
+--- src/testdir/test_put.vim 2019-01-24 17:44:56.480985660 +0100
+***************
+*** 1,9 ****
+ " Tests for put commands, e.g. ":put", "p", "gp", "P", "gP", etc.
+
+ func Test_put_block()
+- if !has('multi_byte')
+- return
+- endif
+ new
+ call feedkeys("i\<C-V>u2500\<CR>x\<ESC>", 'x')
+ call feedkeys("\<C-V>y", 'x')
+--- 1,6 ----
+*** ../vim-8.1.0810/src/testdir/test_regex_char_classes.vim 2018-01-31 19:23:08.000000000 +0100
+--- src/testdir/test_regex_char_classes.vim 2019-01-24 17:45:04.528931312 +0100
+***************
+*** 1,9 ****
+ " Tests for regexp with backslash and other special characters inside []
+ " Also test backslash for hex/octal numbered character.
+ "
+- if !has('multi_byte')
+- finish
+- endif
+
+ scriptencoding utf-8
+
+--- 1,6 ----
+*** ../vim-8.1.0810/src/testdir/test_regexp_utf8.vim 2017-06-05 16:40:52.000000000 +0200
+--- src/testdir/test_regexp_utf8.vim 2019-01-24 17:45:30.224757738 +0100
+***************
+*** 1,7 ****
+ " Tests for regexp in utf8 encoding
+- if !has('multi_byte')
+- finish
+- endif
+
+ func s:equivalence_test()
+ let str = "AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÌÍÎÏĨĪĬĮİǏỈ JĴ KĶǨḰḴ LĹĻĽĿŁḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎŐƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ VṼ WŴẀẂẄẆ XẊẌ YÝŶŸẎỲỶỸ ZŹŻŽƵẐẔ aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑẕ"
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_search.vim 2018-12-26 21:44:49.811970384 +0100
+--- src/testdir/test_search.vim 2019-01-24 17:46:04.128528587 +0100
+***************
+*** 1127,1135 ****
+
+ " Test for search('multi-byte char', 'bce')
+ func Test_search_multibyte()
+- if !has('multi_byte')
+- return
+- endif
+ let save_enc = &encoding
+ set encoding=utf8
+ enew!
+--- 1127,1132 ----
+***************
+*** 1178,1184 ****
+ " ' ̇' U+0307 Dec:775 COMBINING DOT ABOVE &#x307; /\%u307\Z "\u0307"
+ " ' ̣' U+0323 Dec:803 COMBINING DOT BELOW &#x323; /\%u323 "\u0323"
+ " Those should also appear on the commandline
+! if !has('multi_byte') || !exists('+incsearch')
+ return
+ endif
+ call Cmdline3_prep()
+--- 1175,1181 ----
+ " ' ̇' U+0307 Dec:775 COMBINING DOT ABOVE &#x307; /\%u307\Z "\u0307"
+ " ' ̣' U+0323 Dec:803 COMBINING DOT BELOW &#x323; /\%u323 "\u0323"
+ " Those should also appear on the commandline
+! if !exists('+incsearch')
+ return
+ endif
+ call Cmdline3_prep()
+*** ../vim-8.1.0810/src/testdir/test_source_utf8.vim 2017-10-26 19:57:28.000000000 +0200
+--- src/testdir/test_source_utf8.vim 2019-01-24 17:46:10.700484149 +0100
+***************
+*** 1,7 ****
+ " Test the :source! command
+- if !has('multi_byte')
+- finish
+- endif
+
+ func Test_source_utf8()
+ " check that sourcing a script with 0x80 as second byte works
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_spell.vim 2018-08-31 22:26:49.210912007 +0200
+--- src/testdir/test_spell.vim 2019-01-24 17:46:27.992367209 +0100
+***************
+*** 135,144 ****
+ set enc=cp1250 spell spelllang=en
+ call assert_match("^\nfile: .*/runtime/spell/en.ascii.spl\n$", execute('spellinfo'))
+
+! if has('multi_byte')
+! set enc=utf-8 spell spelllang=en
+! call assert_match("^\nfile: .*/runtime/spell/en.utf-8.spl\n$", execute('spellinfo'))
+! endif
+
+ set enc=latin1 spell spelllang=en_us,en_nz
+ call assert_match("^\n" .
+--- 135,142 ----
+ set enc=cp1250 spell spelllang=en
+ call assert_match("^\nfile: .*/runtime/spell/en.ascii.spl\n$", execute('spellinfo'))
+
+! set enc=utf-8 spell spelllang=en
+! call assert_match("^\nfile: .*/runtime/spell/en.utf-8.spl\n$", execute('spellinfo'))
+
+ set enc=latin1 spell spelllang=en_us,en_nz
+ call assert_match("^\n" .
+*** ../vim-8.1.0810/src/testdir/test_startup_utf8.vim 2018-09-13 20:46:48.994641008 +0200
+--- src/testdir/test_startup_utf8.vim 2019-01-24 17:46:39.036292505 +0100
+***************
+*** 1,7 ****
+ " Tests for startup using utf-8.
+- if !has('multi_byte')
+- finish
+- endif
+
+ source shared.vim
+ source screendump.vim
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_termencoding.vim 2019-01-17 13:04:05.765227482 +0100
+--- src/testdir/test_termencoding.vim 2019-01-24 17:46:56.020177592 +0100
+***************
+*** 2,8 ****
+ " setting 'termencoding' to make it work.
+
+ " This only works with "iconv".
+! if !has('multi_byte') || !has('iconv')
+ finish
+ endif
+
+--- 2,8 ----
+ " setting 'termencoding' to make it work.
+
+ " This only works with "iconv".
+! if !has('iconv')
+ finish
+ endif
+
+*** ../vim-8.1.0810/src/testdir/test_terminal.vim 2019-01-23 22:33:15.356020765 +0100
+--- src/testdir/test_terminal.vim 2019-01-24 17:47:10.100082302 +0100
+***************
+*** 209,217 ****
+ endfunc
+
+ func Test_terminal_scrape_multibyte()
+- if !has('multi_byte')
+- return
+- endif
+ call writefile(["léttまrs"], 'Xtext')
+ if has('win32')
+ " Run cmd with UTF-8 codepage to make the type command print the expected
+--- 209,214 ----
+*** ../vim-8.1.0810/src/testdir/test_utf8.vim 2019-01-09 23:00:58.001176090 +0100
+--- src/testdir/test_utf8.vim 2019-01-24 17:47:22.407998990 +0100
+***************
+*** 1,7 ****
+ " Tests for Unicode manipulations
+- if !has('multi_byte')
+- finish
+- endif
+
+
+ " Visual block Insert adjusts for multi-byte char
+--- 1,4 ----
+*** ../vim-8.1.0810/src/testdir/test_utf8_comparisons.vim 2019-01-09 23:00:58.001176090 +0100
+--- src/testdir/test_utf8_comparisons.vim 2019-01-24 17:47:34.299918474 +0100
+***************
+*** 1,10 ****
+ " Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
+ " Also test "g~ap".
+
+- if !has("multi_byte")
+- finish
+- endif
+-
+ func Ch(a, op, b, expected)
+ call assert_equal(eval(printf('"%s" %s "%s"', a:a, a:op, a:b)), a:expected,
+ \ printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
+--- 1,6 ----
+*** ../vim-8.1.0810/src/testdir/test_viminfo.vim 2019-01-13 17:48:00.994125660 +0100
+--- src/testdir/test_viminfo.vim 2019-01-24 17:47:58.743752938 +0100
+***************
+*** 391,399 ****
+ endfunc
+
+ func Test_viminfo_encoding()
+- if !has('multi_byte')
+- return
+- endif
+ set enc=latin1
+ call histdel(':')
+ call histadd(':', "echo '\xe9'")
+--- 391,396 ----
+*** ../vim-8.1.0810/src/testdir/test_virtualedit.vim 2018-06-28 19:26:24.321655175 +0200
+--- src/testdir/test_virtualedit.vim 2019-01-24 17:48:05.827704953 +0100
+***************
+*** 48,58 ****
+ call setline(1, range(20))
+ exe "normal! gg2jv10lr-"
+ call assert_equal(["1", "-----------", "3"], getline(2,4))
+! if has('multi_byte')
+! call setline(1, range(20))
+! exe "normal! gg2jv10lr\<c-k>hh"
+! call assert_equal(["1", "───────────", "3"], getline(2,4))
+! endif
+
+ bwipe!
+ set virtualedit=
+--- 48,56 ----
+ call setline(1, range(20))
+ exe "normal! gg2jv10lr-"
+ call assert_equal(["1", "-----------", "3"], getline(2,4))
+! call setline(1, range(20))
+! exe "normal! gg2jv10lr\<c-k>hh"
+! call assert_equal(["1", "───────────", "3"], getline(2,4))
+
+ bwipe!
+ set virtualedit=
+*** ../vim-8.1.0810/src/testdir/test_visual.vim 2019-01-13 16:12:37.600472512 +0100
+--- src/testdir/test_visual.vim 2019-01-24 17:48:24.959575337 +0100
+***************
+*** 6,14 ****
+
+ func Test_block_shift_multibyte()
+ " Uses double-wide character.
+- if !has('multi_byte')
+- return
+- endif
+ split
+ call setline(1, ['xヹxxx', 'ヹxxx'])
+ exe "normal 1G0l\<C-V>jl>"
+--- 6,11 ----
+*** ../vim-8.1.0810/src/testdir/test_wordcount.vim 2017-12-11 22:41:51.000000000 +0100
+--- src/testdir/test_wordcount.vim 2019-01-24 17:48:34.515510584 +0100
+***************
+*** 1,9 ****
+ " Test for wordcount() function
+
+- if !has('multi_byte')
+- finish
+- endif
+-
+ func Test_wordcount()
+ let save_enc = &enc
+ set encoding=utf-8
+--- 1,5 ----
+*** ../vim-8.1.0810/src/testdir/test_writefile.vim 2018-09-03 22:08:05.676736128 +0200
+--- src/testdir/test_writefile.vim 2019-01-24 17:48:50.015405537 +0100
+***************
+*** 33,39 ****
+ endfunc
+
+ func Test_writefile_fails_conversion()
+! if !has('multi_byte') || !has('iconv') || system('uname -s') =~ 'SunOS'
+ return
+ endif
+ set nobackup nowritebackup
+--- 33,39 ----
+ endfunc
+
+ func Test_writefile_fails_conversion()
+! if !has('iconv') || system('uname -s') =~ 'SunOS'
+ return
+ endif
+ set nobackup nowritebackup
+*** ../vim-8.1.0810/src/appveyor.bat 2016-09-02 22:21:47.000000000 +0200
+--- src/appveyor.bat 2019-01-24 17:50:35.562689678 +0100
+***************
+*** 7,13 ****
+ cd src
+ echo "Building MinGW 32bit console version"
+ set PATH=c:\msys64\mingw32\bin;%PATH%
+! mingw32-make.exe -f Make_ming.mak GUI=no OPTIMIZE=speed IME=yes MBYTE=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ :: Save vim.exe before Make clean, moved back below.
+ copy vim.exe testdir
+ mingw32-make.exe -f Make_ming.mak clean
+--- 7,13 ----
+ cd src
+ echo "Building MinGW 32bit console version"
+ set PATH=c:\msys64\mingw32\bin;%PATH%
+! mingw32-make.exe -f Make_ming.mak GUI=no OPTIMIZE=speed IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ :: Save vim.exe before Make clean, moved back below.
+ copy vim.exe testdir
+ mingw32-make.exe -f Make_ming.mak clean
+***************
+*** 16,39 ****
+ :: with specified features without python.
+ echo "Building MinGW 32bit GUI version"
+ if "%FEATURE%" == "HUGE" (
+! mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed CHANNEL=yes GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27 PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35 FEATURES=%FEATURE% || exit 1
+ ) ELSE (
+! mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ )
+ .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
+
+ echo "Building MSVC 64bit console Version"
+ sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
+! nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes MBYTE=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ nmake -f Make_mvc2.mak clean
+
+ :: build MSVC huge version with python and channel support
+ :: GUI needs to be last, so that testing works
+ echo "Building MSVC 64bit GUI Version"
+ if "%FEATURE%" == "HUGE" (
+! nmake -f Make_mvc2.mak DIRECTX=yes CPU=AMD64 CHANNEL=yes OLE=no GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 FEATURES=%FEATURE% || exit 1
+ ) ELSE (
+! nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ )
+ .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt
+
+--- 16,39 ----
+ :: with specified features without python.
+ echo "Building MinGW 32bit GUI version"
+ if "%FEATURE%" == "HUGE" (
+! mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed CHANNEL=yes GUI=yes IME=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27 PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35 FEATURES=%FEATURE% || exit 1
+ ) ELSE (
+! mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ )
+ .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
+
+ echo "Building MSVC 64bit console Version"
+ sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
+! nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ nmake -f Make_mvc2.mak clean
+
+ :: build MSVC huge version with python and channel support
+ :: GUI needs to be last, so that testing works
+ echo "Building MSVC 64bit GUI Version"
+ if "%FEATURE%" == "HUGE" (
+! nmake -f Make_mvc2.mak DIRECTX=yes CPU=AMD64 CHANNEL=yes OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 FEATURES=%FEATURE% || exit 1
+ ) ELSE (
+! nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
+ )
+ .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt
+
+*** ../vim-8.1.0810/src/os_macosx.m 2018-10-08 20:07:35.597823052 +0200
+--- src/os_macosx.m 2019-01-24 17:51:43.974225250 +0100
+***************
+*** 130,147 ****
+ char_u *str = (char_u*)[string UTF8String];
+ int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+
+- #ifdef FEAT_MBYTE
+ if (input_conv.vc_type != CONV_NONE)
+ str = string_convert(&input_conv, str, &len);
+- #endif
+
+ if (str)
+ clip_yank_selection(motion_type, str, len, cbd);
+
+- #ifdef FEAT_MBYTE
+ if (input_conv.vc_type != CONV_NONE)
+ vim_free(str);
+- #endif
+
+ releasepool:
+ [pool release];
+--- 130,143 ----
+***************
+*** 169,175 ****
+
+ /* TODO: Avoid overflow. */
+ int len = (int)llen;
+- #ifdef FEAT_MBYTE
+ if (output_conv.vc_type != CONV_NONE)
+ {
+ char_u *conv_str = string_convert(&output_conv, str, &len);
+--- 165,170 ----
+***************
+*** 179,185 ****
+ str = conv_str;
+ }
+ }
+- #endif
+
+ if (len > 0)
+ {
+--- 174,179 ----
+*** ../vim-8.1.0810/src/version.c 2019-01-24 17:18:37.599462306 +0100
+--- src/version.c 2019-01-24 17:52:36.453868784 +0100
+***************
+*** 789,790 ****
+--- 789,792 ----
+ { /* Add new patch number below this line */
++ /**/
++ 811,
+ /**/
+
+--
+Just think of all the things we haven't thought of yet.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///