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:
parent
59dd1491c6
commit
28cf4041b4
3 changed files with 15 additions and 2 deletions
|
|
@ -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,
|
||||
|
|
|
|||
13
Src/utils.c
13
Src/utils.c
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**/
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue