t"include" command added to configuration files. - vaccinewars - be a doctor an… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 13bf14f9aaae235b67d03104a6679ad55eac4fba | |
parent fcd5abf4210e5a4013925f1dd3dd02b20c61f6da | |
Author: Ben Webb <[email protected]> | |
Date: Mon, 5 Aug 2002 11:40:01 +0000 | |
"include" command added to configuration files. | |
Diffstat: | |
M src/dopewars.c | 23 +++++++++++++++++++++-- | |
M src/dopewars.h | 1 - | |
2 files changed, 21 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/src/dopewars.c b/src/dopewars.c | |
t@@ -1777,7 +1777,7 @@ void ScannerErrorHandler(GScanner *scanner, gchar *msg, … | |
* Read a configuration file given by "FileName"; GScanner under Win32 | |
* doesn't work properly with files, so we use a nasty workaround. | |
*/ | |
-void ReadConfigFile(char *FileName) | |
+static gboolean ReadConfigFile(char *FileName) | |
{ | |
FILE *fp; | |
t@@ -1795,7 +1795,7 @@ void ReadConfigFile(char *FileName) | |
read_string(fp, &buf); | |
if (!buf) { | |
fclose(fp); | |
- return; | |
+ return TRUE; | |
} | |
g_scanner_input_text(scanner, buf, strlen(buf)); | |
#else | |
t@@ -1813,6 +1813,9 @@ void ReadConfigFile(char *FileName) | |
#ifdef CYGWIN | |
g_free(buf); | |
#endif | |
+ return TRUE; | |
+ } else { | |
+ return FALSE; | |
} | |
} | |
t@@ -1833,6 +1836,22 @@ gboolean ParseNextConfig(GScanner *scanner, gboolean pr… | |
NULL, NULL, FALSE); | |
return FALSE; | |
} | |
+ | |
+ if (g_strcasecmp(scanner->value.v_identifier, "include") == 0) { | |
+ token = g_scanner_get_next_token(scanner); | |
+ if (token == G_TOKEN_STRING) { | |
+ if (!ReadConfigFile(scanner->value.v_string)) { | |
+ g_scanner_error(scanner, _("Unable to open file %s"), | |
+ scanner->value.v_string); | |
+ } | |
+ return TRUE; | |
+ } else { | |
+ g_scanner_unexp_token(scanner, G_TOKEN_STRING, NULL, NULL, | |
+ NULL, NULL, FALSE); | |
+ return FALSE; | |
+ } | |
+ } | |
+ | |
ID1 = g_strdup(scanner->value.v_identifier); | |
token = g_scanner_get_next_token(scanner); | |
if (token == G_TOKEN_LEFT_BRACE) { | |
diff --git a/src/dopewars.h b/src/dopewars.h | |
t@@ -414,7 +414,6 @@ void SetupParameters(void); | |
void HandleHelpTexts(void); | |
void GeneralStartup(int argc, char *argv[]); | |
void StripTerminators(gchar *str); | |
-void ReadConfigFile(char *FileName); | |
gboolean ParseNextConfig(GScanner *scanner, gboolean print); | |
int GetGlobalIndex(gchar *ID1, gchar *ID2); | |
gchar **GetGlobalString(int GlobalIndex, int StructIndex); |