Parse the params to 'script source' correctly.
authorSadrul Habib Chowdhury <sadrul@users.sourceforge.net>
Thu, 11 Jun 2009 17:35:02 +0000 (11 13:35 -0400)
committerSadrul Habib Chowdhury <sadrul@users.sourceforge.net>
Thu, 11 Jun 2009 17:35:02 +0000 (11 13:35 -0400)
src/script.c

index 6df0a78..2b09a9c 100644 (file)
@@ -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)