Problem: Using the system default encoding makes tests unpredictable.
Solution: Always use utf-8 or latin1 in the new style tests. Remove setting
encoding and scriptencoding where it is not needed.
" This also enables use of line continuation.
set nocp viminfo+=nviminfo
+" Use utf-8 or latin1 be 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
+
" Avoid stopping at the "hit enter" prompt
set nomore
" A series of tests that can run in one Vim invocation.
" This makes testing go faster, since Vim doesn't need to restart.
-" These tests use utf8 'encoding'. Setting 'encoding' is in the individual
+" 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_expr_utf8.vim
" Test for channel functions.
-scriptencoding utf-8
if !has('channel')
finish
finish
endif
-set enc=utf-8
-scriptencoding utf-8
-
func! Put_Dig(chars)
exe "norm! o\<c-k>".a:chars
endfu
-scriptencoding utf-8
-
func s:test_expand_dllpath(optname)
let $TEST_EXPAND_DLLPATH = '/dllpath/lib' . substitute(a:optname, '\zedll$', '.', '')
execute 'let dllpath_save = &' . a:optname
if !has('multi_byte')
finish
endif
-set encoding=utf-8
-scriptencoding utf-8
func Test_strgetchar()
call assert_equal(char2nr('á'), strgetchar('áxb', 0))
" Test for JSON functions.
-" JSON requires using utf-8. Conversion breaks the asserts, therefore set
-" 'encoding' to utf-8.
+" JSON requires using utf-8, because conversion breaks the asserts.
if !has('multi_byte')
finish
endif
-set encoding=utf-8
-scriptencoding utf-8
let s:json1 = '"str\"in\\g"'
let s:var1 = "str\"in\\g"
if !has('conceal') || !has('multi_byte')
finish
endif
-set encoding=utf-8
-scriptencoding utf-8
if !has('gui_running') && has('unix')
set term=ansi
if !has('multi_byte')
finish
endif
-set encoding=utf-8
-scriptencoding utf-8
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źżžƶẑẕ"
-" Tests for Visual mode
+" Tests for Visual mode. Uses double-wide character.
if !has('multi_byte')
finish
endif
-set encoding=utf-8
-scriptencoding utf-8
if !has('visual')
finish
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2086,
/**/
2085,
/**/