From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3436 invoked by alias); 4 Mar 2016 02:07:15 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 38086 Received: (qmail 6158 invoked from network); 4 Mar 2016 02:07:12 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.me; h=from:to:subject:reply-to:in-reply-to:references:mime-version:content-type; s=smtpapi; bh=CuRo12tl510WjnWzqsCD6mo2378=; b=MrRhWTo7QdzAyfhr7z D7hD+3SvHJfN9NkYNHOB2Sq9KwJnZ4W4ZzAkCwejb/ZMm7PMyZ/jI/QsNvzYauAL LvuWGnS80pHeEmrKzrOmpHMVHftV0R1Nbj4lXKtG8txYRNDgZlNpIYYUNugmLjVl 5xWG59gBDsOFUIBmCacxyAdYM= From: Greg Klanderman To: zsh-workers@zsh.org Subject: Re: ZSH_SCRIPT Reply-To: Greg Klanderman Date: Thu, 03 Mar 2016 21:07:01 -0500 In-Reply-To: <160303125005.ZM17094@torch.brasslantern.com> (Bart Schaefer's message of "Thu, 3 Mar 2016 12:50:05 -0800") Message-ID: <8760x3kncq.fsf@lwm.klanderman.net> User-Agent: Gnus/5.1008 (Gnus v5.10.8) XEmacs/21.4.22 (linux) References: <22221.59800.803540.618862@lwm.klanderman.net> <160224143153.ZM28994@torch.brasslantern.com> <20160225093344.0d2499d5@pwslap01u.europe.root.pri> <87r3g08ycp.fsf@lwm.klanderman.net> <160225150425.ZM14095@torch.brasslantern.com> <87lh6384y5.fsf@lwm.klanderman.net> <20160301092746.1472ae95@pwslap01u.europe.root.pri> <87fuwa8dpk.fsf@lwm.klanderman.net> <20160301150707.2ee18f01@pwslap01u.europe.root.pri> <56D74063.6020202@inlv.org> <871t7s7ev6.fsf@lwm.klanderman.net> <20160303093702.7d28f80e@pwslap01u.europe.root.pri> <87mvqflbgh.fsf@lwm.klanderman.net> <20160303173730.45a8c8ee@pwslap01u.europe.root.pri> <87bn6vl5ez.fsf@lwm.klanderman.net> <160303124426.ZM16987@torch.brasslantern.com> <160303125005.ZM17094@torch.brasslantern.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SG-EID: i+zOheVB0lMUqP0z3X/8PPLe+C1hDfxH7g5ommK/LCprDhDc4lgbUfYoqrxyo4Nhb7WvC0dI3ph1sp T5tGoAXudicagqQJoZmAteQmrrPMkguLiBFM8tgkF89y3H8Ow1CKLT4LcoM4v6H0+8HjtImWbkkgPV lFBBQ2wSp8+0Yu1jpy6MA2IlMxmZ+LlY/yTKVpT2xwlPuGOSxewaonJS/O/0NMY/zIZnsxm1vT49gJ U= X-SendGrid-Contentd-ID: {"test_id":"1457057224"} >>>>> On March 3, 2016 Bart Schaefer wrote: > On Mar 3, 12:44pm, Bart Schaefer wrote: > } Subject: Re: ZSH_SCRIPT > } > } Sorry to seem mercurial, but I don't think there's any real reason that > } all those set?param() calls need to be inside createparamtable(). > For that matter, it appears the zsh_name global could also be localized > to zsh_main() and then passed down to setupvals(). No need to set that > in createparamtable() either. No problem, how do you like this? Greg diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo index ae859ce..d23c459 100644 --- a/Doc/Zsh/params.yo +++ b/Doc/Zsh/params.yo @@ -933,6 +933,13 @@ tt(zsh/zutil) module. ) enditem() ) +vindex(ZSH_ARGZERO) +item(tt(ZSH_ARGZERO))( +If zsh was invoked to run a script, this is the name of the script. +Otherwise, it is the name used to invoke the current shell. This is +the same as the value of tt($0) when the tt(POSIX_ARGZERO) option is +set, but is always available. +) vindex(ZSH_EXECUTION_STRING) item(tt(ZSH_EXECUTION_STRING))( If the shell was started with the option tt(-c), this contains @@ -951,17 +958,15 @@ track of versions of the shell during development between releases; hence most users should not use it and should instead rely on tt($ZSH_VERSION). ) -vindex(ZSH_SCRIPT) -item(tt(ZSH_SCRIPT))( -If zsh was invoked to run a script, this is the name of the script. -Otherwise, it is the name used to invoke the current shell. This is -the same as the value of tt($0) when the tt(POSIX_ARGZERO) option is -set, but is always available. -) item(tt(zsh_scheduled_events))( See ifzman(the section `The zsh/sched Module' in zmanref(zshmodules))\ ifnzman(noderef(The zsh/sched Module)). ) +vindex(ZSH_SCRIPT) +item(tt(ZSH_SCRIPT))( +If zsh was invoked to run a script, this is the name of the script, +otherwise it is unset. +) vindex(ZSH_SUBSHELL ) item(tt(ZSH_SUBSHELL))( Readonly integer. Initially zero, incremented each time the shell forks diff --git a/Src/init.c b/Src/init.c index 4097327..20a07eb 100644 --- a/Src/init.c +++ b/Src/init.c @@ -802,7 +802,7 @@ init_term(void) /**/ void -setupvals(char *cmd) +setupvals(char *cmd, char *runscript, char *zsh_name) { #ifdef USE_GETPWUID struct passwd *pswd; @@ -1089,6 +1089,9 @@ setupvals(char *cmd) if (cmd) setsparam("ZSH_EXECUTION_STRING", ztrdup(cmd)); + if (runscript) + setsparam("ZSH_SCRIPT", ztrdup(runscript)); + setsparam("ZSH_NAME", ztrdup(zsh_name)); /* NOTE: already metafied early in zsh_main() */ } /* @@ -1270,7 +1273,7 @@ run_init_scripts(void) /**/ void -init_misc(char *cmd) +init_misc(char *cmd, char *zsh_name) { #ifndef RESTRICTED_R if ( restricted ) @@ -1606,7 +1609,7 @@ mod_export int use_exit_printed; mod_export int zsh_main(UNUSED(int argc), char **argv) { - char **t, *runscript = NULL; + char **t, *runscript = NULL, *zsh_name; char *cmd; /* argument to -c */ int t0; #ifdef USE_LOCALE @@ -1660,14 +1663,14 @@ zsh_main(UNUSED(int argc), char **argv) SHTTY = -1; init_io(cmd); - setupvals(cmd); + setupvals(cmd, runscript, zsh_name); init_signals(); init_bltinmods(); init_builtins(); run_init_scripts(); setupshin(runscript); - init_misc(cmd); + init_misc(cmd, zsh_name); for (;;) { /* diff --git a/Src/params.c b/Src/params.c index 8bd8a8e..51ee886 100644 --- a/Src/params.c +++ b/Src/params.c @@ -80,8 +80,7 @@ char *argzero, /* $0 */ *rprompt, /* $RPROMPT */ *rprompt2, /* $RPROMPT2 */ *sprompt, /* $SPROMPT */ - *wordchars, /* $WORDCHARS */ - *zsh_name; /* $ZSH_NAME */ + *wordchars; /* $WORDCHARS */ /**/ mod_export char *ifs, /* $IFS */ @@ -812,8 +811,7 @@ createparamtable(void) setsparam("OSTYPE", ztrdup_metafy(OSTYPE)); setsparam("TTY", ztrdup_metafy(ttystrname)); setsparam("VENDOR", ztrdup_metafy(VENDOR)); - setsparam("ZSH_NAME", ztrdup_metafy(zsh_name)); - setsparam("ZSH_SCRIPT", ztrdup(posixzero)); + setsparam("ZSH_ARGZERO", ztrdup(posixzero)); setsparam("ZSH_VERSION", ztrdup_metafy(ZSH_VERSION)); setsparam("ZSH_PATCHLEVEL", ztrdup_metafy(ZSH_PATCHLEVEL)); setaparam("signals", sigptr = zalloc((SIGCOUNT+4) * sizeof(char *)));