1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-27 04:40:59 +01:00

22760: fix partial string length reports with NO_MULTIBYTE

This commit is contained in:
Peter Stephenson 2017-07-02 20:29:00 +01:00
parent e19955614f
commit e8edd42f7f
3 changed files with 26 additions and 1 deletions

View file

@ -783,16 +783,36 @@
0:${(R)...}
>is the ,
# Although there's no reliance on multibyte here, the
# code exercised is different, so test both paths in the following group.
# If the shell isn't multibyte capable the tests are the same;
# that's not a problem.
# This (1) doesn't work with // or /
# (2) perhaps ought to be 18, to be consistent with normal zsh
# substring indexing and with backreferences.
print ${(BES)string##white}
(unsetopt multibyte; print ${(BES)string##white})
0:${(BE...)...}
>14 19
>14 19
print ${(NS)string##white}
(unsetopt multibyte; print ${(NS)string##white})
0:${(N)...}
>5
>5
fn() {
emulate -L zsh
local a=abcdef
print ${(SNBE)a#abcd}
unsetopt multibyte
print ${(SNBE)a#abcd}
}
fn
0:${(BEN)...} again, with match
>1 5 4
>1 5 4
string='abcdefghijklmnopqrstuvwxyz'
print ${${string%[aeiou]*}/(#m)?(#e)/${(U)MATCH}}