]> git.sur5r.net Git - i3/i3/commitdiff
parser: don’t exit(1) on invalid command, use better error message
authorMichael Stapelberg <michael@stapelberg.de>
Fri, 12 Nov 2010 19:22:55 +0000 (20:22 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 12 Nov 2010 19:22:55 +0000 (20:22 +0100)
src/cmdparse.y
testcases/Makefile

index bcf144cdf2faf3ed56fddbb1e0d2d63e9935780d..d79698e49c6f89b50bd6bd21f0987bcfdbb537ef 100644 (file)
@@ -49,8 +49,7 @@ static char *json_output;
 void cmdyyerror(const char *error_message) {
     ELOG("\n");
     ELOG("CMD: %s\n", error_message);
-    ELOG("CMD: in file \"%s\", line %d:\n",
-            context->filename, context->line_number);
+    ELOG("CMD: in command:\n");
     ELOG("CMD:   %s\n", context->line_copy);
     ELOG("CMD:   ");
     for (int c = 1; c <= context->last_column; c++)
@@ -66,9 +65,6 @@ int cmdyywrap() {
 }
 
 char *parse_cmd(const char *new) {
-
-    //const char *new = "[level-up workspace] attach $output, focus";
-
     cmdyy_scan_string(new);
 
     match_init(&current_match);
@@ -76,8 +72,10 @@ char *parse_cmd(const char *new) {
     context->filename = "cmd";
     FREE(json_output);
     if (cmdyyparse() != 0) {
-            fprintf(stderr, "Could not parse configfile\n");
-            exit(1);
+        fprintf(stderr, "Could not parse command\n");
+        FREE(context->line_copy);
+        free(context);
+        return;
     }
     printf("done, json output = %s\n", json_output);
 
index 462ca39727bb325a9d7ff972e2d1d900e9c2bd87..06a7cfa13a2d94a99cc3e56e1ac8cec741d9a481 100644 (file)
@@ -1,5 +1,5 @@
 test:
-       PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1)" -It/lib t/*.t
+       PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1)" -It/lib t/34*.t
 
 all: test