Mercurial > vim
view src/testdir/check.vim @ 33591:288da62613ba v9.0.2040
patch 9.0.2040: trim(): hard to use default mask
Commit: https://github.com/vim/vim/commit/6e6386716f9494ae86027c6d34f657fd03dfec42
Author: Illia Bobyr <illia.bobyr@gmail.com>
Date: Tue Oct 17 11:09:45 2023 +0200
patch 9.0.2040: trim(): hard to use default mask
Problem: trim(): hard to use default mask
Solution: Use default 'mask' when it is v:none
The default 'mask' value is pretty complex, as it includes many
characters. Yet, if one needs to specify the trimming direction, the
third argument, 'trim()' currently requires the 'mask' value to be
provided explicitly.
'v:none' is already used to mean "use the default argument value" in
user defined functions. See |none-function_argument| in help.
closes: #13363
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 17 Oct 2023 11:15:09 +0200 |
parents | a1b4d1dae6b1 |
children | 995b539939c4 |
line wrap: on
line source
source shared.vim source term_util.vim command -nargs=1 MissingFeature throw 'Skipped: ' .. <args> .. ' feature missing' " Command to check for the presence of a feature. command -nargs=1 CheckFeature call CheckFeature(<f-args>) func CheckFeature(name) if !has(a:name, 1) throw 'Checking for non-existent feature ' .. a:name endif if !has(a:name) MissingFeature a:name endif endfunc " Command to check for the absence of a feature. command -nargs=1 CheckNotFeature call CheckNotFeature(<f-args>) func CheckNotFeature(name) if !has(a:name, 1) throw 'Checking for non-existent feature ' .. a:name endif if has(a:name) throw 'Skipped: ' .. a:name .. ' feature present' endif endfunc " Command to check for the presence of a working option. command -nargs=1 CheckOption call CheckOption(<f-args>) func CheckOption(name) if !exists('&' .. a:name) throw 'Checking for non-existent option ' .. a:name endif if !exists('+' .. a:name) throw 'Skipped: ' .. a:name .. ' option not supported' endif endfunc " Command to check for the presence of a built-in function. command -nargs=1 CheckFunction call CheckFunction(<f-args>) func CheckFunction(name) if !exists('?' .. a:name) throw 'Checking for non-existent function ' .. a:name endif if !exists('*' .. a:name) throw 'Skipped: ' .. a:name .. ' function missing' endif endfunc " Command to check for the presence of an Ex command command -nargs=1 CheckCommand call CheckCommand(<f-args>) func CheckCommand(name) if !exists(':' .. a:name) throw 'Skipped: ' .. a:name .. ' command not supported' endif endfunc " Command to check for the presence of a shell command command -nargs=1 CheckExecutable call CheckExecutable(<f-args>) func CheckExecutable(name) if !executable(a:name) throw 'Skipped: ' .. a:name .. ' program not executable' endif endfunc " Command to check for the presence of python. Argument should have been " obtained with PythonProg() func CheckPython(name) if a:name == '' throw 'Skipped: python command not available' endif endfunc " Command to check for running on MS-Windows command CheckMSWindows call CheckMSWindows() func CheckMSWindows() if !has('win32') throw 'Skipped: only works on MS-Windows' endif endfunc " Command to check for NOT running on MS-Windows command CheckNotMSWindows call CheckNotMSWindows() func CheckNotMSWindows() if has('win32') throw 'Skipped: does not work on MS-Windows' endif endfunc " Command to check for running on Unix command CheckUnix call CheckUnix() func CheckUnix() if !has('unix') throw 'Skipped: only works on Unix' endif endfunc " Command to check for running on Linux command CheckLinux call CheckLinux() func CheckLinux() if !has('linux') throw 'Skipped: only works on Linux' endif endfunc " Command to check for not running on a BSD system. command CheckNotBSD call CheckNotBSD() func CheckNotBSD() if has('bsd') throw 'Skipped: does not work on BSD' endif endfunc " Command to check for not running on a MacOS command CheckNotMac call CheckNotMac() func CheckNotMac() if has('mac') throw 'Skipped: does not work on MacOS' endif endfunc " Command to check for not running on a MacOS M1 system. command CheckNotMacM1 call CheckNotMacM1() func CheckNotMacM1() if has('mac') && system('uname -a') =~ '\<arm64\>' throw 'Skipped: does not work on MacOS M1' endif endfunc " Command to check that making screendumps is supported. " Caller must source screendump.vim command CheckScreendump call CheckScreendump() func CheckScreendump() if !CanRunVimInTerminal() throw 'Skipped: cannot make screendumps' endif endfunc " Command to check that we can Run Vim in a terminal window command CheckRunVimInTerminal call CheckRunVimInTerminal() func CheckRunVimInTerminal() if !CanRunVimInTerminal() throw 'Skipped: cannot run Vim in a terminal window' endif endfunc " Command to check that we can run the GUI command CheckCanRunGui call CheckCanRunGui() func CheckCanRunGui() if !has('gui') || ($DISPLAY == "" && !has('gui_running')) throw 'Skipped: cannot start the GUI' endif endfunc " Command to Check for an environment variable command -nargs=1 CheckEnv call CheckEnv(<f-args>) func CheckEnv(name) if empty(eval('$' .. a:name)) throw 'Skipped: Environment variable ' .. a:name .. ' is not set' endif endfunc " Command to check that we are using the GUI command CheckGui call CheckGui() func CheckGui() if !has('gui_running') throw 'Skipped: only works in the GUI' endif endfunc " Command to check that not currently using the GUI command CheckNotGui call CheckNotGui() func CheckNotGui() if has('gui_running') throw 'Skipped: only works in the terminal' endif endfunc " Command to check that test is not running as root command CheckNotRoot call CheckNotRoot() func CheckNotRoot() if IsRoot() throw 'Skipped: cannot run test as root' endif endfunc " Command to check that the current language is English command CheckEnglish call CheckEnglish() func CheckEnglish() if v:lang != "C" && v:lang !~ '^[Ee]n' throw 'Skipped: only works in English language environment' endif endfunc " Command to check that loopback device has IPv6 address command CheckIPv6 call CheckIPv6() func CheckIPv6() if !has('ipv6') throw 'Skipped: cannot use IPv6 networking' endif if !exists('s:ipv6_loopback') let s:ipv6_loopback = s:CheckIPv6Loopback() endif if !s:ipv6_loopback throw 'Skipped: no IPv6 address for loopback device' endif endfunc func s:CheckIPv6Loopback() if has('win32') return system('netsh interface ipv6 show interface') =~? '\<Loopback\>' elseif filereadable('/proc/net/if_inet6') return (match(readfile('/proc/net/if_inet6'), '\slo$') >= 0) elseif executable('ifconfig') for dev in ['lo0', 'lo', 'loop'] " NOTE: On SunOS, need specify address family 'inet6' to get IPv6 info. if system('ifconfig ' .. dev .. ' inet6 2>/dev/null') =~? '\<inet6\>' \ || system('ifconfig ' .. dev .. ' 2>/dev/null') =~? '\<inet6\>' return v:true endif endfor else " TODO: How to check it in other platforms? endif return v:false endfunc " Command to check for not running under ASAN command CheckNotAsan call CheckNotAsan() func CheckNotAsan() if execute('version') =~# '-fsanitize=[a-z,]*\<address\>' throw 'Skipped: does not work with ASAN' endif endfunc " Command to check for not running under valgrind command CheckNotValgrind call CheckNotValgrind() func CheckNotValgrind() if RunningWithValgrind() throw 'Skipped: does not work well with valgrind' endif endfunc " Command to check for X11 based GUI command CheckX11BasedGui call CheckX11BasedGui() func CheckX11BasedGui() if !g:x11_based_gui throw 'Skipped: requires X11 based GUI' endif endfunc " Command to check that there are two clipboards command CheckTwoClipboards call CheckTwoClipboards() func CheckTwoClipboards() " avoid changing the clipboard here, only X11 supports both if !has('X11') throw 'Skipped: requires two clipboards' endif endfunc " Command to check for satisfying any of the conditions. " e.g. CheckAnyOf Feature:bsd Feature:sun Linux command -nargs=+ CheckAnyOf call CheckAnyOf(<f-args>) func CheckAnyOf(...) let excp = [] for arg in a:000 try exe 'Check' .. substitute(arg, ':', ' ', '') return catch /^Skipped:/ let excp += [substitute(v:exception, '^Skipped:\s*', '', '')] endtry endfor throw 'Skipped: ' .. join(excp, '; ') endfunc " Command to check for satisfying all of the conditions. " e.g. CheckAllOf Unix Gui Option:ballooneval command -nargs=+ CheckAllOf call CheckAllOf(<f-args>) func CheckAllOf(...) for arg in a:000 exe 'Check' .. substitute(arg, ':', ' ', '') endfor endfunc " vim: shiftwidth=2 sts=2 expandtab