38586: Metafication problem with $functions

If treated as a complete associative array or scanned (retrieving
individual values was not affected), it incorrectly unmetafied
the value so multibyte characters got confused.

Add test.
This commit is contained in:
Peter Stephenson 2016-06-03 10:28:03 +01:00
parent f84a5da8c2
commit dcffad8326
3 changed files with 15 additions and 5 deletions

View file

@ -1,3 +1,9 @@
2016-06-03 Peter Stephenson <p.stephenson@samsung.com>
* 38586: Src/Modules/parameter.c, Test/D07multibyte.ztst:
Don't unmetafy values for $functions when passing back
within parameter framework.
2016-06-03 Daniel Shahaf <d.s@daniel.shahaf.name>
* 38577: Completion/Unix/Type/_signals: Don't complete SIGEXIT

View file

@ -487,11 +487,6 @@ scanfunctions(UNUSED(HashTable ht), ScanFunc func, int flags, int dis)
strcat(pm.u.str, " \"$@\"");
} else
pm.u.str = dyncat(start, t);
/*
* TBD: Is this unmetafy correct? Surely as this
* is a parameter value it stays metafied?
*/
unmetafy(pm.u.str, NULL);
zsfree(t);
if (shf->redir) {

View file

@ -553,3 +553,12 @@
0:${(q+)...} with printable multibyte characters
>ホ
>'She said "ホ". I said "You can'\''t '\''ホ'\'' me!'
# This will silently succeed if zsh/parameter isn't available
(zmodload zsh/parameter >/dev/null 2>&1
f() {
: $(:)
"↓"
}
: $functions)
0:Multibtye handled of functions parameter