summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-03-22 22:02:14 +0000
committerDana Jansens <danakj@orodu.net>2003-03-22 22:02:14 +0000
commit799fe5a8bcdc799d7621e2e97659f564b95dda05 (patch)
treed515c777623304731a4164e2313a8ce9222b8658 /openbox
parenta26cd30bf068c2cf7edbfdb5a20548d04bfb3179 (diff)
give the filename to the parser for errors
Diffstat (limited to 'openbox')
-rw-r--r--openbox/config.c6
-rw-r--r--openbox/cparse.l9
2 files changed, 9 insertions, 6 deletions
diff --git a/openbox/config.c b/openbox/config.c
index e2a14e44..b66ad5e7 100644
--- a/openbox/config.c
+++ b/openbox/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 @@ void config_parse()
/* 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 @@ void config_parse()
/* 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);
diff --git a/openbox/cparse.l b/openbox/cparse.l
index 60eff0e5..3266fe97 100644
--- a/openbox/cparse.l
+++ b/openbox/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 @@ static int yywrap()
return 1;
}
-void cparse_go(FILE *file)
+void cparse_go(char *filename, FILE *file)
{
+ yyfilename = filename;
yyin = file;
yylex();
}