summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2023-01-28 16:54:50 +0100
committerNathan Reiner <nathan@nathanreiner.xyz>2023-01-28 16:54:50 +0100
commit99df61d6d3ad801385fbb8fd969c519fdae1f71c (patch)
treec7d76b3389b6a515e171d743771d511b02168e4d
parentb32d4381aa30550a605df72cc029dea962c54254 (diff)
add -a flagHEADmaster
-rw-r--r--tabbed.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/tabbed.c b/tabbed.c
index eafe28a..78e645d 100644
--- a/tabbed.c
+++ b/tabbed.c
@@ -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");