diff options
author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-01-28 16:54:50 +0100 |
---|---|---|
committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-01-28 16:54:50 +0100 |
commit | 99df61d6d3ad801385fbb8fd969c519fdae1f71c (patch) | |
tree | c7d76b3389b6a515e171d743771d511b02168e4d | |
parent | b32d4381aa30550a605df72cc029dea962c54254 (diff) |
-rw-r--r-- | tabbed.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -169,6 +169,7 @@ static char winid[64]; static char **cmd; static char *wmname = "tabbed"; static const char *geometry; +static char *append_first; char *argv0; @@ -959,13 +960,15 @@ setcmd(int argc, char *argv[], int replace) { int i; - cmd = ecalloc(argc + 3, sizeof(*cmd)); + cmd = ecalloc(argc + 3 + (append_first != 0), sizeof(*cmd)); if (argc == 0) return; for (i = 0; i < argc; i++) cmd[i] = argv[i]; cmd[replace > 0 ? replace : argc] = winid; cmd_append_pos = argc + !replace; + if (append_first) + cmd[cmd_append_pos++] = append_first; cmd[cmd_append_pos] = cmd[cmd_append_pos + 1] = NULL; } @@ -1107,6 +1110,11 @@ spawn(const Arg *arg) perror(" failed"); exit(0); } + + if (append_first) { + cmd[--cmd_append_pos] = NULL; + append_first = 0; + } } int @@ -1270,7 +1278,7 @@ usage(void) { die("usage: %s [-dfksv] [-g geometry] [-n name] [-p [s+/-]pos]\n" " [-r narg] [-o color] [-O color] [-t color] [-T color]\n" - " [-u color] [-U color] command...\n", argv0); + " [-u color] [-U color] [-a first] command...\n", argv0); } int @@ -1333,6 +1341,9 @@ main(int argc, char *argv[]) case 'u': urgbgcolor = EARGF(usage()); break; + case 'a': + append_first = EARGF(usage()); + break; case 'v': die("tabbed-"VERSION", © 2009-2016 tabbed engineers, " "see LICENSE for details.\n"); |