diff options
author | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2009-06-11 13:35:02 -0400 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2009-06-11 13:35:02 -0400 |
commit | 217f5af3bc468852fc2e6ae3731c213093bf5755 (patch) | |
tree | b2dba779ffc2b04196f6a3b890ebc107c70388dd | |
parent | 586da1f353a5ace7ddbcaba451afccb54cfbdb4c (diff) | |
download | screen-217f5af3bc468852fc2e6ae3731c213093bf5755.tar.gz |
Parse the params to 'script source' correctly.
-rw-r--r-- | src/script.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/script.c b/src/script.c index 6df0a78..2b09a9c 100644 --- a/src/script.c +++ b/src/script.c @@ -61,7 +61,7 @@ FinalizeBindings (void) } } -void +void ScriptSource(int argc, const char **argv) { int ret = 0; @@ -72,14 +72,16 @@ ScriptSource(int argc, const char **argv) /* Parse the commandline options * sourcescript [-async|-a] [-binding|-b <binding>] script */ - while (*argv && **argv == '-') { + while (*argv && **argv == '-') + { /* check for (-a | -async) */ - if ((*argv[1] == 'a' && !*argv[2]) - || strcmp(*argv, "-async") == 0) + const char *arg = *argv; + if ((arg[1] == 'a' && !arg[2]) + || strcmp(arg, "-async") == 0) async = 1; /* check for (-b | -binding) */ - else if ((*argv[1] == 'b' && !*argv[2]) - || strcmp(*argv, "-binding") == 0) { + else if ((arg[1] == 'b' && !arg[2]) + || strcmp(arg, "-binding") == 0) { argv++; bd_select = *argv; } @@ -268,7 +270,7 @@ trigger_sevent(struct script_event *ev, VA_DOTS) struct binding *iter; \ for (iter = bindings; iter; iter = iter->b_next) \ { \ - if (iter->fns->fn && (ret = (iter->fns->fn params)) && stop) \ + if (iter->fns && iter->fns->fn && (ret = (iter->fns->fn params)) && stop) \ break; \ } \ } while (0) |