Mercurial > vim
view src/testdir/test_startup_utf8.vim @ 33374:62a34e280593 v9.0.1946
patch 9.0.1946: filename expansion using ** in bash may fail
Commit: https://github.com/vim/vim/commit/9eb1ce531527a7177d16373b0f8689bbcd3d5f73
Author: Christian Brabandt <cb@256bit.org>
Date: Wed Sep 27 19:08:25 2023 +0200
patch 9.0.1946: filename expansion using ** in bash may fail
Problem: filename expansion using ** in bash may fail
Solution: Try to enable the globstar setting
Starting with bash 4.0 it supports extended globbing using the globstar
shell option. This makes matching recursively below a certain directory
using the ** pattern work as expected nowadays. However, we need to
explicitly enable this using the 'shopt -s globstar' bash command.
So let's check the bash environment variable $BASH_VERSINFO (which is
supported since bash 3.0 and conditionally enable the globstar option,
if the major version is at least 4. For older bashs, this at least
shouldn't cause errors (unless one is using really ancient bash 2.X or
something).
closes: #13002
closes: #13144
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 27 Sep 2023 19:15:06 +0200 |
parents | ae10b91ac6b3 |
children |
line wrap: on
line source
" Tests for startup using utf-8. source check.vim source shared.vim source screendump.vim func Test_read_stdin_utf8() let linesin = ['テスト', '€ÀÈÌÒÙ'] call writefile(linesin, 'Xtestin', 'D') let before = [ \ 'set enc=utf-8', \ 'set fencs=cp932,utf-8', \ ] let after = [ \ 'write ++enc=utf-8 Xtestout', \ 'quit!', \ ] if has('win32') let pipecmd = 'type Xtestin | ' else let pipecmd = 'cat Xtestin | ' endif if RunVimPiped(before, after, '-', pipecmd) let lines = readfile('Xtestout') call assert_equal(linesin, lines) else call assert_equal('', 'RunVimPiped failed.') endif call delete('Xtestout') endfunc func Test_read_fifo_utf8() CheckUnix " Using bash/zsh's process substitution. if executable('bash') set shell=bash elseif executable('zsh') set shell=zsh else throw 'Skipped: bash or zsh is required' endif let linesin = ['テスト', '€ÀÈÌÒÙ'] call writefile(linesin, 'Xtestin', 'D') let before = [ \ 'set enc=utf-8', \ 'set fencs=cp932,utf-8', \ ] let after = [ \ 'write ++enc=utf-8 Xtestout', \ 'quit!', \ ] if RunVim(before, after, '<(cat Xtestin)') let lines = readfile('Xtestout') call assert_equal(linesin, lines) else call assert_equal('', 'RunVim failed.') endif call delete('Xtestout') endfunc func Test_detect_ambiwidth() CheckRunVimInTerminal " Use the title termcap entries to output the escape sequence. call writefile([ \ 'set enc=utf-8', \ 'set ambiwidth=double', \ 'call test_option_not_set("ambiwidth")', \ 'redraw', \ ], 'Xscript', 'D') let buf = RunVimInTerminal('-S Xscript', #{keep_t_u7: 1}) call TermWait(buf) call term_sendkeys(buf, "S\<C-R>=&ambiwidth\<CR>\<Esc>") call WaitForAssert({-> assert_match('single', term_getline(buf, 1))}) call StopVimInTerminal(buf) endfunc " vim: shiftwidth=2 sts=2 expandtab