summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd-bind-key.c3
-rw-r--r--cmd-switch-client.c6
-rw-r--r--cmd-unbind-key.c3
3 files changed, 8 insertions, 4 deletions
diff --git a/cmd-bind-key.c b/cmd-bind-key.c
index 4ed84ac3..c535612f 100644
--- a/cmd-bind-key.c
+++ b/cmd-bind-key.c
@@ -79,7 +79,8 @@ cmd_bind_key_parse(struct cmd *self, int argc, char **argv, char **cause)
data->can_repeat = 1;
break;
case 't':
- data->tablename = xstrdup(optarg);
+ if (data->tablename == NULL)
+ data->tablename = xstrdup(optarg);
break;
default:
goto usage;
diff --git a/cmd-switch-client.c b/cmd-switch-client.c
index 9ff1c081..03cb7c8d 100644
--- a/cmd-switch-client.c
+++ b/cmd-switch-client.c
@@ -61,10 +61,12 @@ cmd_switch_client_parse(struct cmd *self, int argc, char **argv, char **cause)
while ((opt = getopt(argc, argv, "c:t:")) != -1) {
switch (opt) {
case 'c':
- data->name = xstrdup(optarg);
+ if (data->name == NULL)
+ data->name = xstrdup(optarg);
break;
case 't':
- data->target = xstrdup(optarg);
+ if (data->target == NULL)
+ data->target = xstrdup(optarg);
break;
default:
goto usage;
diff --git a/cmd-unbind-key.c b/cmd-unbind-key.c
index 4633274d..c5a97301 100644
--- a/cmd-unbind-key.c
+++ b/cmd-unbind-key.c
@@ -67,7 +67,8 @@ cmd_unbind_key_parse(struct cmd *self, int argc, char **argv, char **cause)
no_prefix = 1;
break;
case 't':
- data->tablename = xstrdup(optarg);
+ if (data->tablename == NULL)
+ data->tablename = xstrdup(optarg);
break;
default:
goto usage;