mirror of git://git.code.sf.net/p/zsh/code
37294: Add ZSH_EXECUTION_STRING.
This shows the argument to shell option -c.
This commit is contained in:
parent
5ecf332e84
commit
fc00e3a6b7
|
@ -1,3 +1,8 @@
|
|||
2015-12-04 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* 37294: Doc/Zsh/params.yo, Src/init.c: Add $ZSH_EXECUTION_STRING
|
||||
to give argument to shell -c option.
|
||||
|
||||
2015-12-03 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||
|
||||
* 37253: Src/params.c: Constify two local variables.
|
||||
|
|
|
@ -933,6 +933,11 @@ tt(zsh/zutil) module.
|
|||
)
|
||||
enditem()
|
||||
)
|
||||
vindex(ZSH_EXECUTION_STRING)
|
||||
item(tt(ZSH_EXECUTION_STRING))(
|
||||
If the shell was started with the option tt(-c), this contains
|
||||
the argument passed to the option. Otherwise it is not set.
|
||||
)
|
||||
vindex(ZSH_NAME)
|
||||
item(tt(ZSH_NAME))(
|
||||
Expands to the basename of the command used to invoke this instance
|
||||
|
|
28
Src/init.c
28
Src/init.c
|
@ -240,13 +240,11 @@ loop(int toplevel, int justonce)
|
|||
return LOOP_OK;
|
||||
}
|
||||
|
||||
/* Shared among parseargs(), parseopts(), init_io(), and init_misc() */
|
||||
static char *cmd;
|
||||
static int restricted;
|
||||
|
||||
/**/
|
||||
static void
|
||||
parseargs(char **argv, char **runscript)
|
||||
parseargs(char **argv, char **runscript, char **cmdptr)
|
||||
{
|
||||
char **x;
|
||||
LinkList paramlist;
|
||||
|
@ -272,7 +270,7 @@ parseargs(char **argv, char **runscript)
|
|||
opts[SHINSTDIN] = 0;
|
||||
opts[SINGLECOMMAND] = 0;
|
||||
|
||||
if (parseopts(NULL, &argv, opts, &cmd, NULL))
|
||||
if (parseopts(NULL, &argv, opts, cmdptr, NULL))
|
||||
exit(1);
|
||||
|
||||
/*
|
||||
|
@ -290,7 +288,7 @@ parseargs(char **argv, char **runscript)
|
|||
if (*argv) {
|
||||
if (unset(SHINSTDIN)) {
|
||||
posixzero = *argv;
|
||||
if (cmd)
|
||||
if (*cmdptr)
|
||||
argzero = *argv;
|
||||
else
|
||||
*runscript = *argv;
|
||||
|
@ -299,7 +297,7 @@ parseargs(char **argv, char **runscript)
|
|||
}
|
||||
while (*argv)
|
||||
zaddlinknode(paramlist, ztrdup(*argv++));
|
||||
} else if (!cmd)
|
||||
} else if (!*cmdptr)
|
||||
opts[SHINSTDIN] = 1;
|
||||
if(isset(SINGLECOMMAND))
|
||||
opts[INTERACTIVE] &= 1;
|
||||
|
@ -497,7 +495,7 @@ printhelp(void)
|
|||
|
||||
/**/
|
||||
mod_export void
|
||||
init_io(void)
|
||||
init_io(char *cmd)
|
||||
{
|
||||
static char outbuf[BUFSIZ], errbuf[BUFSIZ];
|
||||
|
||||
|
@ -802,7 +800,7 @@ init_term(void)
|
|||
|
||||
/**/
|
||||
void
|
||||
setupvals(void)
|
||||
setupvals(char *cmd)
|
||||
{
|
||||
#ifdef USE_GETPWUID
|
||||
struct passwd *pswd;
|
||||
|
@ -1086,6 +1084,9 @@ setupvals(void)
|
|||
|
||||
/* Colour sequences for outputting colours in prompts and zle */
|
||||
set_default_colour_sequences();
|
||||
|
||||
if (cmd)
|
||||
setsparam("ZSH_EXECUTION_STRING", ztrdup(cmd));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1267,7 +1268,7 @@ run_init_scripts(void)
|
|||
|
||||
/**/
|
||||
void
|
||||
init_misc(void)
|
||||
init_misc(char *cmd)
|
||||
{
|
||||
#ifndef RESTRICTED_R
|
||||
if ( restricted )
|
||||
|
@ -1604,6 +1605,7 @@ mod_export int
|
|||
zsh_main(UNUSED(int argc), char **argv)
|
||||
{
|
||||
char **t, *runscript = NULL;
|
||||
char *cmd; /* argument to -c */
|
||||
int t0;
|
||||
#ifdef USE_LOCALE
|
||||
setlocale(LC_ALL, "");
|
||||
|
@ -1652,18 +1654,18 @@ zsh_main(UNUSED(int argc), char **argv)
|
|||
opts[LOGINSHELL] = (**argv == '-');
|
||||
opts[PRIVILEGED] = (getuid() != geteuid() || getgid() != getegid());
|
||||
/* sets ZLE, INTERACTIVE, SHINSTDIN and SINGLECOMMAND */
|
||||
parseargs(argv, &runscript);
|
||||
parseargs(argv, &runscript, &cmd);
|
||||
|
||||
SHTTY = -1;
|
||||
init_io();
|
||||
setupvals();
|
||||
init_io(cmd);
|
||||
setupvals(cmd);
|
||||
|
||||
init_signals();
|
||||
init_bltinmods();
|
||||
init_builtins();
|
||||
run_init_scripts();
|
||||
setupshin(runscript);
|
||||
init_misc();
|
||||
init_misc(cmd);
|
||||
|
||||
for (;;) {
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue