all repos — openbox @ 799fe5a8bcdc799d7621e2e97659f564b95dda05

openbox fork - make it a bit more like ryudo

give the filename to the parser for errors
Dana Jansens danakj@orodu.net
commit

799fe5a8bcdc799d7621e2e97659f564b95dda05

parent

a26cd30bf068c2cf7edbfdb5a20548d04bfb3179

2 files changed, 9 insertions(+), 6 deletions(-)

jump to
M openbox/config.copenbox/config.c

@@ -17,7 +17,7 @@ static GData *config = NULL;

static GData *config_def = NULL; /* provided by cparse.l */ -void cparse_go(FILE *); +void cparse_go(char *filename, FILE *); void config_startup()

@@ -53,7 +53,7 @@

/* load the system wide rc file first */ path = g_build_filename(RCDIR, "rc3", NULL); if ((file = fopen(path, "r")) != NULL) { - cparse_go(file); + cparse_go(path, file); fclose(file); } g_free(path);

@@ -61,7 +61,7 @@

/* then load the user one which can override it */ path = g_build_filename(g_get_home_dir(), ".openbox", "rc3", NULL); if ((file = fopen(path, "r")) != NULL) { - cparse_go(file); + cparse_go(path, file); fclose(file); } g_free(path);
M openbox/cparse.lopenbox/cparse.l

@@ -2,6 +2,7 @@ %{

#include <glib.h> #include "config.h" +static char *yyfilename; static int yylineno = 1; static gboolean haserror = FALSE; static ConfigEntry entry = { NULL, -1 };

@@ -64,9 +65,10 @@ 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 config file: '%s'\n", entry.name); + g_warning("Invalid option in '%s': '%s'\n", + yyfilename, entry.name); } else { - printf("Parser error in config file on line %d\n", yylineno); + printf("Parser error in '%s' on line %d\n", yyfilename, yylineno); } g_free(entry.name); entry.name = NULL;

@@ -87,8 +89,9 @@ g_free(entry.value.string);

return 1; } -void cparse_go(FILE *file) +void cparse_go(char *filename, FILE *file) { + yyfilename = filename; yyin = file; yylex(); }