mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-09-24 21:11:03 +02:00
525faae549
Before this commit, format specs such as '%5.s' would be printed literally. Now, they are treated as equivalent to '%5s'. The '.' character is not allowed to be used in specs, so there is no incompatibility.
68 lines
1.6 KiB
Plaintext
68 lines
1.6 KiB
Plaintext
# Test the use of zformat, if the zsh/zutil module is available.
|
|
|
|
%prep
|
|
|
|
if ! zmodload zsh/zutil 2>/dev/null; then
|
|
ZTST_unimplemented="can't load the zsh/zutil module for testing"
|
|
fi
|
|
|
|
# Helper function. Expects a single format using %s and a value for it.
|
|
zformat_and_print_s() {
|
|
zformat -f REPLY "$1" "s:$2"
|
|
print -r - ${(qq)REPLY}
|
|
}
|
|
|
|
%test
|
|
|
|
zformat_and_print_s '%s' foo
|
|
zformat_and_print_s '%5s' min
|
|
zformat_and_print_s '%-5s' neg
|
|
zformat_and_print_s '%5.s' empty
|
|
zformat_and_print_s '%.5s' max
|
|
zformat_and_print_s '%.5s' truncated
|
|
0:basic zformat test
|
|
>'foo'
|
|
>'min '
|
|
>' neg'
|
|
>'empty'
|
|
>'max'
|
|
>'trunc'
|
|
|
|
# There may be a set of digits either before or after the opening parenthesis.
|
|
zformat_and_print_s 'The answer is "%3(s.yes.no)".' 3
|
|
zformat_and_print_s 'The answer is "%(3s.yes.no)".' 3
|
|
# The test number defaults to zero.
|
|
zformat_and_print_s '%(s.equal.unequal)' -1
|
|
zformat_and_print_s '%(s.equal.unequal)' 0
|
|
zformat_and_print_s '%(s.equal.unequal)' 1
|
|
# Negative numbers are allowed
|
|
# The delimiter is arbitrary
|
|
zformat_and_print_s '%-4(s.minus four.)' -4
|
|
zformat_and_print_s '%(-4s//minus four)' -4
|
|
# The argument is evaluated as a math expression
|
|
zformat_and_print_s '%18(s.math.)' '6*3'
|
|
0:basic conditionals test
|
|
>'The answer is "yes".'
|
|
>'The answer is "yes".'
|
|
>'unequal'
|
|
>'equal'
|
|
>'unequal'
|
|
>'minus four'
|
|
>''
|
|
>'math'
|
|
|
|
() {
|
|
zformat -f 1 '%(8n.%(5j.yes.no).no)' 'n:8' 'j:5'
|
|
echo $1
|
|
}
|
|
0:nested conditionals test
|
|
>yes
|
|
|
|
zformat -a argv . foo:lorem ipsum:bar bazbaz '\\esc\:ape'
|
|
print -rl -- "$@"
|
|
0:basic -a test
|
|
>foo .lorem
|
|
>ipsum.bar
|
|
>bazbaz
|
|
>\esc:ape
|