Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: a way to get the value of the -c option



On Thu, 3 Dec 2015 14:36:26 +0100
Vincent Lefevre <vincent@xxxxxxxxxx> wrote:
> This doesn't work. The reason is:
> 
> /* Miscellaneous initializations that happen after init scripts are run */
>                                              ^^^^^
> 
> while I need it for the .zshenv init script.

So you probably need something like this.

diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo
index 21bb874..8ef5485 100644
--- a/Doc/Zsh/params.yo
+++ b/Doc/Zsh/params.yo
@@ -933,6 +933,11 @@ tt(zsh/zutil) module.
 )
 enditem()
 )
+vindex(ZSH_CMD_ARG)
+item(tt(ZSH_CMD_ARG))(
+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
diff --git a/Src/init.c b/Src/init.c
index dcce1d7..ad8a68b 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -1086,6 +1086,9 @@ setupvals(void)
 
     /* Colour sequences for outputting colours in prompts and zle */
     set_default_colour_sequences();
+
+    if (cmd)
+	setsparam("ZSH_CMD_ARG", ztrdup(cmd));
 }
 
 /*



Messages sorted by: Reverse Date, Date, Thread, Author