Use as command arguments the remaining parameters
authornoname@inventati.org <noname@inventati.org>
Tue, 14 Apr 2015 07:53:24 +0000 (09:53 +0200)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Tue, 14 Apr 2015 07:55:15 +0000 (09:55 +0200)
This change allows execute st as 'st mutt' while it keeps the
compability with xterm and urxt.

st.c

diff --git a/st.c b/st.c
index 40840ce..b1d3791 100644 (file)
--- a/st.c
+++ b/st.c
@@ -4008,7 +4008,8 @@ void
 usage(void) {
        die("%s " VERSION " (c) 2010-2015 st engineers\n" \
        "usage: st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]\n"
-       "          [-i] [-t title] [-w windowid] [-e command ...]\n", argv0);
+       "          [-i] [-t title] [-w windowid] [-e command ...] [command ...]\n",
+       argv0);
 }
 
 int
@@ -4027,12 +4028,8 @@ main(int argc, char *argv[]) {
                opt_class = EARGF(usage());
                break;
        case 'e':
-               /* eat all remaining arguments */
-               if(argc > 1) {
-                       opt_cmd = &argv[1];
-                       if(argv[1] != NULL && opt_title == NULL)
-                               opt_title = basename(xstrdup(argv[1]));
-               }
+               if(argc > 1)
+                       --argc, ++argv;
                goto run;
        case 'f':
                opt_font = EARGF(usage());
@@ -4059,6 +4056,12 @@ main(int argc, char *argv[]) {
        } ARGEND;
 
 run:
+       if(argc > 0) {
+               /* eat all remaining arguments */
+               opt_cmd = argv;
+               if(!opt_title)
+                       opt_title = basename(xstrdup(argv[0]));
+       }
        setlocale(LC_CTYPE, "");
        XSetLocaleModifiers("");
        tnew(MAX(cols, 1), MAX(rows, 1));