diff options
author | Thomas <thomas@xteddy.org> | 2014-01-20 10:48:12 +0000 |
---|---|---|
committer | Thomas <thomas@xteddy.org> | 2014-01-20 10:48:12 +0000 |
commit | d02c4bda3a4b456f654fb0c1b454ba9724bff0f3 (patch) | |
tree | 95f3d17d7f1525e05ed298a015166af557988a0e /arguments.c | |
parent | ba014c1a605f78b301b47ef922dd24a3c5c2c4c1 (diff) | |
parent | 938768ed3de3e38cb96344b8ec7b794b5e828acf (diff) | |
download | rtmux-d02c4bda3a4b456f654fb0c1b454ba9724bff0f3.tar.gz rtmux-d02c4bda3a4b456f654fb0c1b454ba9724bff0f3.tar.bz2 rtmux-d02c4bda3a4b456f654fb0c1b454ba9724bff0f3.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'arguments.c')
-rw-r--r-- | arguments.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/arguments.c b/arguments.c index 2b8ebc85..d4e5e53f 100644 --- a/arguments.c +++ b/arguments.c @@ -20,6 +20,7 @@ #include <stdlib.h> #include <string.h> +#include <unistd.h> #include "tmux.h" @@ -77,7 +78,6 @@ struct args * args_parse(const char *template, int argc, char **argv) { struct args *args; - char *ptr; int opt; args = xcalloc(1, sizeof *args); @@ -88,7 +88,7 @@ args_parse(const char *template, int argc, char **argv) while ((opt = getopt(argc, argv, template)) != -1) { if (opt < 0) continue; - if (opt == '?' || (ptr = strchr(template, opt)) == NULL) { + if (opt == '?' || strchr(template, opt) == NULL) { args_free(args); return (NULL); } @@ -204,19 +204,15 @@ args_set(struct args *args, u_char ch, const char *value) /* Replace existing argument. */ if ((entry = args_find(args, ch)) != NULL) { free(entry->value); - if (value != NULL) - entry->value = xstrdup(value); - else - entry->value = NULL; - return; + entry->value = NULL; + } else { + entry = xcalloc(1, sizeof *entry); + entry->flag = ch; + RB_INSERT(args_tree, &args->tree, entry); } - entry = xcalloc(1, sizeof *entry); - entry->flag = ch; if (value != NULL) entry->value = xstrdup(value); - - RB_INSERT(args_tree, &args->tree, entry); } /* Get argument value. Will be NULL if it isn't present. */ |