From 08e5191ff016f9df61bb157fc56cb9af6c599863 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 18 Sep 2014 19:09:52 +0100 Subject: users/19097: remove $functypetrace in favour of ref to $zsheval_context --- ChangeLog | 6 ++++++ Doc/Zsh/mod_parameter.yo | 22 +++++++++------------- Src/Modules/parameter.c | 39 --------------------------------------- 3 files changed, 15 insertions(+), 52 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d1ea2b23..27b567740 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-09-18 Peter Stephenson + + * users/19097: Doc/Zsh/mod_parameter.yo, + Src/Modules/parameter.c: remove functypetrace and instead add + cross-reference to zsh_eval_context. + 2014-09-16 Marc Finet * 33188: Functions/VCS_Info/Backends/VCS_INFO_get_data_git: diff --git a/Doc/Zsh/mod_parameter.yo b/Doc/Zsh/mod_parameter.yo index c1571603c..09ceba258 100644 --- a/Doc/Zsh/mod_parameter.yo +++ b/Doc/Zsh/mod_parameter.yo @@ -201,10 +201,7 @@ The format of each element is var(filename)tt(:)var(lineno). For functions autoloaded from a file in native zsh format, where only the body of the function occurs in the file, or for files that have been executed by the tt(source) or `tt(.)' builtins, the trace information is -shown as var(filename)tt(:)var(0), since the entire file is the -definition. - -The most recent call is the first element in the array. +shown as var(filename)tt(:)var(0), since the entire file is the definition. Most users will be interested in the information in the tt(funcfiletrace) array instead. @@ -215,6 +212,14 @@ This array contains the names of the functions, sourced files, and (if tt(EVAL_LINENO) is set) tt(eval) commands. currently being executed. The first element is the name of the function using the parameter. + +The standard shell array tt(zsh_eval_context) can be used to +determine the type of shell construct being executed at each depth: +note, however, that is in the opposite order, with the most recent +item last, and it is more detailed, for example including an +entry for tt(toplevel), the main shell code being executed +either interactively or from a script, which is not present +in tt($funcstack). ) vindex(functrace) item(tt(functrace))( @@ -224,13 +229,4 @@ The format of each element is var(name)tt(:)var(lineno). Callers are also shown for sourced files; the caller is the point where the tt(source) or `tt(.)' command was executed. ) -vindex(functypestack) -item(tt(functypestack))( -This array corresponds element by element with tt(funcstack). -Each element contains `tt(source)' for a sourced file, `tt(function)' -for a function and `tt(eval)' for an tt(eval)'d expression. At the top -level of execution of a series of commands, tt($functypestack[1]) is -empty if the commands are being executed as a script, or one of the -previous strings if the commands are being executed as that type. -) enditem() diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index 02a642bec..0385a709e 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -640,41 +640,6 @@ funcfiletracegetfn(UNUSED(Param pm)) return ret; } -/* Functions for the functypestack special parameter. */ - -static char ** -functypestackgetfn(UNUSED(Param pm)) -{ - Funcstack f; - int num; - char **ret, **p; - - for (f = funcstack, num = 0; f; f = f->prev, num++); - - ret = (char **) zhalloc((num + 1) * sizeof(char *)); - - for (f = funcstack, p = ret; f; f = f->prev, p++) - { - switch (f->tp) - { - case FS_SOURCE: - *p = "source"; - break; - - case FS_FUNC: - *p = "function"; - break; - - case FS_EVAL: - *p = "eval"; - break; - } - } - *p = NULL; - - return ret; -} - /* Functions for the builtins special parameter. */ /**/ @@ -2081,8 +2046,6 @@ static const struct gsu_array funcsourcetrace_gsu = { funcsourcetracegetfn, arrsetfn, stdunsetfn }; static const struct gsu_array funcfiletrace_gsu = { funcfiletracegetfn, arrsetfn, stdunsetfn }; -static const struct gsu_array functypestack_gsu = -{ functypestackgetfn, arrsetfn, stdunsetfn }; static const struct gsu_array reswords_gsu = { reswordsgetfn, arrsetfn, stdunsetfn }; static const struct gsu_array disreswords_gsu = @@ -2127,8 +2090,6 @@ static struct paramdef partab[] = { scanpmfunctions), SPECIALPMDEF("functrace", PM_ARRAY|PM_READONLY, &functrace_gsu, NULL, NULL), - SPECIALPMDEF("functypestack", PM_ARRAY|PM_READONLY, - &functypestack_gsu, NULL, NULL), SPECIALPMDEF("galiases", 0, &pmgaliases_gsu, getpmgalias, scanpmgaliases), SPECIALPMDEF("history", PM_READONLY, -- cgit 1.4.1