vim-patch:7.4.1140

Problem:    Recognizing <sid> does not work when the language is Turkish.
            (Christian Brabandt)
Solution:   Use MB_STNICMP() instead of STNICMP().

e266d6d664

Note: Added new test
This commit is contained in:
Patrick 2016-07-01 15:35:57 +10:00
parent 0d5edcef4a
commit 3e2daf7125
3 changed files with 30 additions and 4 deletions

View File

@ -20155,11 +20155,15 @@ theend:
*/
static int eval_fname_script(char_u *p)
{
if (p[0] == '<' && (STRNICMP(p + 1, "SID>", 4) == 0
|| STRNICMP(p + 1, "SNR>", 4) == 0))
// Use mb_stricmp() because in Turkish comparing the "I" may not work with
// the standard library function.
if (p[0] == '<' && (mb_strnicmp(p + 1, (char_u *)"SID>", 4) == 0
|| mb_strnicmp(p + 1, (char_u *)"SNR>", 4) == 0)) {
return 5;
if (p[0] == 's' && p[1] == ':')
}
if (p[0] == 's' && p[1] == ':') {
return 2;
}
return 0;
}

View File

@ -554,7 +554,7 @@ static int included_patches[] = {
1143,
1142,
1141,
// 1140,
1140,
// 1139 NA
// 1138 NA
1137,

View File

@ -0,0 +1,22 @@
local helpers = require('test.functional.helpers')(after_each)
local clear, eval, eq = helpers.clear, helpers.eval, helpers.eq
local execute, source = helpers.execute, helpers.source
describe('turkish', function()
before_each(clear)
it('applies locale to \'i\' in `<SID>` comparison', function()
execute('lang ctype tr_TR.UTF-8')
if string.find(eval('v:errmsg'), '^E197: ') then
pending("Locale tr_TR.UTF-8 not supported")
return
end
source([[
func! <sid>_dummy_function()
echo 1
endfunc
au VimEnter * call <sid>_dummy_function()
]])
eq(nil, string.find(eval('v:errmsg'), '^E129'))
end)
end)