give the filename to the parser for errors
This commit is contained in:
parent
a26cd30bf0
commit
799fe5a8bc
2 changed files with 9 additions and 6 deletions
|
@ -17,7 +17,7 @@ static GData *config = NULL;
|
||||||
static GData *config_def = NULL;
|
static GData *config_def = NULL;
|
||||||
|
|
||||||
/* provided by cparse.l */
|
/* provided by cparse.l */
|
||||||
void cparse_go(FILE *);
|
void cparse_go(char *filename, FILE *);
|
||||||
|
|
||||||
|
|
||||||
void config_startup()
|
void config_startup()
|
||||||
|
@ -53,7 +53,7 @@ void config_parse()
|
||||||
/* load the system wide rc file first */
|
/* load the system wide rc file first */
|
||||||
path = g_build_filename(RCDIR, "rc3", NULL);
|
path = g_build_filename(RCDIR, "rc3", NULL);
|
||||||
if ((file = fopen(path, "r")) != NULL) {
|
if ((file = fopen(path, "r")) != NULL) {
|
||||||
cparse_go(file);
|
cparse_go(path, file);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
}
|
}
|
||||||
g_free(path);
|
g_free(path);
|
||||||
|
@ -61,7 +61,7 @@ void config_parse()
|
||||||
/* then load the user one which can override it */
|
/* then load the user one which can override it */
|
||||||
path = g_build_filename(g_get_home_dir(), ".openbox", "rc3", NULL);
|
path = g_build_filename(g_get_home_dir(), ".openbox", "rc3", NULL);
|
||||||
if ((file = fopen(path, "r")) != NULL) {
|
if ((file = fopen(path, "r")) != NULL) {
|
||||||
cparse_go(file);
|
cparse_go(path, file);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
}
|
}
|
||||||
g_free(path);
|
g_free(path);
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
static char *yyfilename;
|
||||||
static int yylineno = 1;
|
static int yylineno = 1;
|
||||||
static gboolean haserror = FALSE;
|
static gboolean haserror = FALSE;
|
||||||
static ConfigEntry entry = { NULL, -1 };
|
static ConfigEntry entry = { NULL, -1 };
|
||||||
|
@ -64,9 +65,10 @@ static void newline()
|
||||||
{
|
{
|
||||||
if (!haserror && entry.name != NULL && (signed)entry.type >= 0) {
|
if (!haserror && entry.name != NULL && (signed)entry.type >= 0) {
|
||||||
if (!config_set(entry.name, entry.type, entry.value))
|
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 {
|
} 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);
|
g_free(entry.name);
|
||||||
entry.name = NULL;
|
entry.name = NULL;
|
||||||
|
@ -87,8 +89,9 @@ static int yywrap()
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cparse_go(FILE *file)
|
void cparse_go(char *filename, FILE *file)
|
||||||
{
|
{
|
||||||
|
yyfilename = filename;
|
||||||
yyin = file;
|
yyin = file;
|
||||||
yylex();
|
yylex();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue