]> git.sur5r.net Git - i3/i3/commitdiff
commands_parser: use safewrapper functions
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 28 Jan 2012 10:35:18 +0000 (10:35 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 28 Jan 2012 10:35:18 +0000 (10:35 +0000)
Makefile
src/commands_parser.c

index d50203842c0589dbc1adc07bbb4b03f1cfa10268..f9600c9a269f0c9d9d2794434d1d3847b71c63c8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -67,7 +67,7 @@ include/GENERATED_tokens.h: include/GENERATED_call.h
 # and once as an object file for i3.
 src/commands_parser.o: src/commands_parser.c ${HEADERS} ${CMDPARSE_HEADERS}
        echo "[i3] CC $<"
-       $(CC) $(CPPFLAGS) $(CFLAGS) -DTEST_PARSER -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -o test.commands_parser $<
+       $(CC) $(CPPFLAGS) $(CFLAGS) -DTEST_PARSER -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -o test.commands_parser $< $(LIBS)
        $(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -c -o $@ $<
 
 src/cfgparse.yy.o: src/cfgparse.l src/cfgparse.y.o ${HEADERS}
index 1bb9f0c2ba8ac5fb65a77af0ecaa6c1d2453729c..62dba8617db6aeec6b5d9ac45843e326afa2506a 100644 (file)
@@ -31,7 +31,6 @@
 #include <stdint.h>
 
 #include "all.h"
-#include "queue.h"
 
 /*******************************************************************************
  * The data structures used for parsing. Essentially the current state and a
@@ -233,7 +232,7 @@ char *parse_command(const char *input) {
                 if (strncasecmp(walk, token->name + 1, strlen(token->name) - 1) == 0) {
                     DLOG("found literal, moving to next state\n");
                     if (token->identifier != NULL)
-                        push_string(token->identifier, strdup(token->name + 1));
+                        push_string(token->identifier, sstrdup(token->name + 1));
                     walk += strlen(token->name) - 1;
                     next_state(token);
                     token_handled = true;
@@ -274,7 +273,7 @@ char *parse_command(const char *input) {
                     }
                 }
                 if (walk != beginning) {
-                    char *str = calloc(walk-beginning + 1, 1);
+                    char *str = scalloc(walk-beginning + 1);
                     strncpy(str, beginning, walk-beginning);
                     if (token->identifier)
                         push_string(token->identifier, str);
@@ -321,7 +320,7 @@ char *parse_command(const char *input) {
              * full input, and underline the position where the parser
              * currently is. */
             char *errormessage;
-            char *possible_tokens = malloc(tokenlen + 1);
+            char *possible_tokens = smalloc(tokenlen + 1);
             char *tokenwalk = possible_tokens;
             for (c = 0; c < ptr->n; c++) {
                 token = &(ptr->array[c]);
@@ -346,13 +345,13 @@ char *parse_command(const char *input) {
                 }
             }
             *tokenwalk = '\0';
-            asprintf(&errormessage, "Expected one of these tokens: %s",
-                     possible_tokens);
+            sasprintf(&errormessage, "Expected one of these tokens: %s",
+                      possible_tokens);
             free(possible_tokens);
 
             /* Contains the same amount of characters as 'input' has, but with
              * the unparseable part highlighted using ^ characters. */
-            char *position = malloc(len + 1);
+            char *position = smalloc(len + 1);
             for (const char *copywalk = input; *copywalk != '\0'; copywalk++)
                 position[(copywalk - input)] = (copywalk >= walk ? '^' : ' ');
             position[len] = '\0';