mirror of
https://github.com/zsh-users/zsh
synced 2024-10-15 04:13:34 +00:00
25969: two bugs with metafication plus a test for one
This commit is contained in:
parent
176e0dc821
commit
25833cc89e
|
@ -1,5 +1,9 @@
|
|||
2008-10-30 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* 25969: Src/subst.c, Src/utils.c, Test/D07multibyte.ztst:
|
||||
bugs in metafication with prompt expansion called from parameter
|
||||
expansion and with zsh_directory_name when called from finddir().
|
||||
|
||||
* 25963: Src/utils.c: Interrupt at spell check prompt output
|
||||
garbage.
|
||||
|
||||
|
|
|
@ -2738,8 +2738,8 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
|
|||
char *tmps;
|
||||
unmetafy(*ap, &len);
|
||||
untokenize(*ap);
|
||||
tmps = unmetafy(promptexpand(metafy(*ap, len, META_NOALLOC),
|
||||
0, NULL, NULL, NULL), &len);
|
||||
tmps = promptexpand(metafy(*ap, len, META_NOALLOC),
|
||||
0, NULL, NULL, NULL);
|
||||
*ap = dupstring(tmps);
|
||||
free(tmps);
|
||||
}
|
||||
|
@ -2749,8 +2749,8 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
|
|||
val = dupstring(val), copied = 1;
|
||||
unmetafy(val, &len);
|
||||
untokenize(val);
|
||||
tmps = unmetafy(promptexpand(metafy(val, len, META_NOALLOC),
|
||||
0, NULL, NULL, NULL), &len);
|
||||
tmps = promptexpand(metafy(val, len, META_NOALLOC),
|
||||
0, NULL, NULL, NULL);
|
||||
val = dupstring(tmps);
|
||||
free(tmps);
|
||||
}
|
||||
|
|
|
@ -857,7 +857,9 @@ finddir(char *s)
|
|||
scanhashtable(nameddirtab, 0, 0, 0, finddir_scan, 0);
|
||||
|
||||
if (func) {
|
||||
char **ares = subst_string_by_func(func, "d", finddir_full);
|
||||
char *dir_meta = metafy(finddir_full, strlen(finddir_full),
|
||||
META_ALLOC);
|
||||
char **ares = subst_string_by_func(func, "d", dir_meta);
|
||||
int len;
|
||||
if (ares && arrlen(ares) >= 2 &&
|
||||
(len = (int)zstrtol(ares[1], NULL, 10)) > finddir_best) {
|
||||
|
@ -868,6 +870,8 @@ finddir(char *s)
|
|||
finddir_last->diff = len - strlen(finddir_last->node.nam);
|
||||
finddir_best = len;
|
||||
}
|
||||
if (dir_meta != finddir_full)
|
||||
zsfree(dir_meta);
|
||||
}
|
||||
|
||||
return finddir_last;
|
||||
|
|
|
@ -403,3 +403,10 @@
|
|||
0:Backslashes and metafied characters in patterns
|
||||
>Matched against glob/()Ą/*
|
||||
>Matched against glob/()Ā/*
|
||||
|
||||
mkdir 梶浦由記 'Пётр Ильич Чайковский'
|
||||
(cd 梶浦由記; print ${${(%):-%~}:t})
|
||||
(cd 'Пётр Ильич Чайковский'; print ${${(%):-%~}:t})
|
||||
0:Metafied characters in prompt expansion
|
||||
>梶浦由記
|
||||
>Пётр Ильич Чайковский
|
||||
|
|
Loading…
Reference in a new issue