From 93783c2a048574ffc99d329aae3f6ff50e31d8d7 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sat, 22 Mar 2003 22:26:25 +0000 Subject: [PATCH] parse lines that start with '#' as comments --- openbox/cparse.l | 70 +++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/openbox/cparse.l b/openbox/cparse.l index c2bd008c..5a077493 100644 --- a/openbox/cparse.l +++ b/openbox/cparse.l @@ -5,6 +5,7 @@ static char *yyfilename; static int yylineno = 1; static gboolean haserror = FALSE; +static gboolean comment = FALSE; static ConfigEntry entry = { NULL, -1 }; static void stringvalue(); @@ -26,6 +27,7 @@ assign {white}={white} {number}/{white}\n numbervalue(); ^{identifier}/{assign} identifier(); \n newline(); +^# comment = TRUE; = [ \t] . haserror = TRUE; @@ -34,49 +36,57 @@ assign {white}={white} static void stringvalue() { - if (!haserror && entry.name != NULL && (signed)entry.type < 0) { - entry.type = Config_String; - entry.value.string = g_strdup(yytext+1); /* drop the left quote */ - if (entry.value.string[yyleng-2] != '"') - printf("warning: improperly terminated string on line %d\n", - yylineno); - else - entry.value.string[yyleng-2] = '\0'; - } else - haserror = TRUE; + if (!comment) { + if (!haserror && entry.name != NULL && (signed)entry.type < 0) { + entry.type = Config_String; + entry.value.string = g_strdup(yytext+1); /* drop the left quote */ + if (entry.value.string[yyleng-2] != '"') + printf("warning: improperly terminated string on line %d\n", + yylineno); + else + entry.value.string[yyleng-2] = '\0'; + } else + haserror = TRUE; + } } static void numbervalue() { - if (!haserror && entry.name != NULL && (signed)entry.type < 0) { - entry.type = Config_Integer; - entry.value.integer = atoi(yytext); - } else - haserror = TRUE; + if (!comment) { + if (!haserror && entry.name != NULL && (signed)entry.type < 0) { + entry.type = Config_Integer; + entry.value.integer = atoi(yytext); + } else + haserror = TRUE; + } } static void identifier() { - entry.name = g_strdup(yytext); - entry.type = -1; + if (!comment) { + entry.name = g_strdup(yytext); + entry.type = -1; + } } static void newline() { - if (!haserror && entry.name != NULL && (signed)entry.type >= 0) { - if (!config_set(entry.name, entry.type, entry.value)) - g_warning("Invalid option in '%s': '%s'\n", - yyfilename, entry.name); - } else { - printf("Parser error in '%s' on line %d\n", yyfilename, yylineno); - } - g_free(entry.name); - entry.name = NULL; - if (entry.type == Config_String) - g_free(entry.value.string); - entry.type = -1; + if (!comment) { + if (!haserror && entry.name != NULL && (signed)entry.type >= 0) { + if (!config_set(entry.name, entry.type, entry.value)) + g_warning("Invalid option in '%s': '%s'\n", + yyfilename, entry.name); + } else { + printf("Parser error in '%s' on line %d\n", yyfilename, yylineno); + } + g_free(entry.name); + entry.name = NULL; + if (entry.type == Config_String) + g_free(entry.value.string); + entry.type = -1; - haserror = FALSE; + haserror = FALSE; + } ++yylineno; } -- 2.39.2