summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadrul Habib Chowdhury <sadrul@users.sourceforge.net>2009-06-11 13:35:02 -0400
committerSadrul Habib Chowdhury <sadrul@users.sourceforge.net>2009-06-11 13:35:02 -0400
commit217f5af3bc468852fc2e6ae3731c213093bf5755 (patch)
treeb2dba779ffc2b04196f6a3b890ebc107c70388dd
parent586da1f353a5ace7ddbcaba451afccb54cfbdb4c (diff)
downloadscreen-217f5af3bc468852fc2e6ae3731c213093bf5755.tar.gz
Parse the params to 'script source' correctly.
-rw-r--r--src/script.c16
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)