1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-29 17:31:02 +01:00

25771: shell function context for substitution functions

This commit is contained in:
Peter Stephenson 2008-09-29 15:18:49 +00:00
parent 59dd1491c6
commit 28cf4041b4
3 changed files with 15 additions and 2 deletions

View file

@ -1,5 +1,8 @@
2008-09-29 Peter Stephenson <pws@csr.com>
* 25771: Src/utils.c, Src/zsh.h: shell function context
for substitution functions.
* users/13295 (with tweak always to keep old line numbers at
exit from parse_string()): Src/builtin.c, Src/exec.c, Src/glob.c,
Src/parse.c, Src/Modules/parameter.c, Src/Modules/zpty.c,

View file

@ -2935,14 +2935,23 @@ getshfunc(char *nam)
char **
subst_string_by_func(Shfunc func, char *arg1, char *orig)
{
int osc = sfcontext;
LinkList l = newlinklist();
char **ret;
addlinknode(l, func->node.nam);
if (arg1)
addlinknode(l, arg1);
addlinknode(l, orig);
sfcontext = SFC_SUBST;
if (doshfunc(func, l, 1))
return NULL;
return getaparam("reply");
ret = NULL;
else
ret = getaparam("reply");
sfcontext = osc;
return ret;
}
/**/

View file

@ -1076,6 +1076,7 @@ struct shfunc {
#define SFC_WIDGET 4 /* user defined widget */
#define SFC_COMPLETE 5 /* called from completion code */
#define SFC_CWIDGET 6 /* new style completion widget */
#define SFC_SUBST 7 /* used to perform substitution task */
/* tp in funcstack */