t"include" command added to configuration files. - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 13bf14f9aaae235b67d03104a6679ad55eac4fba
(DIR) parent fcd5abf4210e5a4013925f1dd3dd02b20c61f6da
(HTM) Author: Ben Webb <ben@salilab.org>
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(-)
---
(DIR) diff --git a/src/dopewars.c b/src/dopewars.c
t@@ -1777,7 +1777,7 @@ void ScannerErrorHandler(GScanner *scanner, gchar *msg, gint error)
* 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 print)
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) {
(DIR) 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);