tParsing of configuration files relaxed to allow "old-style" (non-quoted) strings - 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 297d354ef85bc0a228bfece05fe8aad0c7eb35c1
(DIR) parent b0542e47a9251335615fedb5f2e8f7f5752d1a2b
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Mon, 29 Jan 2001 01:15:55 +0000
Parsing of configuration files relaxed to allow "old-style" (non-quoted) strings
Diffstat:
M src/dopewars.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/src/dopewars.c b/src/dopewars.c
t@@ -1243,7 +1243,6 @@ gboolean ParseNextConfig(GScanner *scanner) {
PrintConfigValue(GlobalIndex,index,IndexGiven,scanner);
return TRUE;
} else if (token==G_TOKEN_EQUAL_SIGN) {
- token=g_scanner_get_next_token(scanner);
if (CountPlayers(FirstServer)>0) {
g_warning(
_("Configuration can only be changed interactively when no\n"
t@@ -1359,13 +1358,13 @@ void SetConfigValue(int GlobalIndex,int StructIndex,gboolean IndexGiven,
int IntVal,NewNum;
Player *tmp;
GSList *list,*StartList;
- token=scanner->token;
if (!CheckMaxIndex(scanner,GlobalIndex,StructIndex,IndexGiven)) return;
if (Globals[GlobalIndex].NameStruct[0]) {
GlobalName=g_strdup_printf("%s[%d].%s",Globals[GlobalIndex].NameStruct,
StructIndex,Globals[GlobalIndex].Name);
} else GlobalName=Globals[GlobalIndex].Name;
if (Globals[GlobalIndex].IntVal) {
+ token=g_scanner_get_next_token(scanner);
if (token==G_TOKEN_INT) {
IntVal=(int)scanner->value.v_int;
if (Globals[GlobalIndex].ResizeFunc) {
t@@ -1386,6 +1385,7 @@ void SetConfigValue(int GlobalIndex,int StructIndex,gboolean IndexGiven,
NULL,NULL,FALSE); return;
}
} else if (Globals[GlobalIndex].PriceVal) {
+ token=g_scanner_get_next_token(scanner);
if (token==G_TOKEN_INT) {
*((price_t *)GetGlobalPointer(GlobalIndex,StructIndex))=
(price_t)scanner->value.v_int;
t@@ -1394,14 +1394,28 @@ void SetConfigValue(int GlobalIndex,int StructIndex,gboolean IndexGiven,
NULL,NULL,FALSE); return;
}
} else if (Globals[GlobalIndex].StringVal) {
+ scanner->config->identifier_2_string=TRUE;
+ scanner->config->cset_identifier_first=
+ G_CSET_a_2_z " ._0123456789" G_CSET_A_2_Z G_CSET_LATINS G_CSET_LATINC;
+ scanner->config->cset_identifier_nth=
+ G_CSET_a_2_z " ._0123456789" G_CSET_A_2_Z G_CSET_LATINS G_CSET_LATINC;
+ token=g_scanner_get_next_token(scanner);
if (token==G_TOKEN_STRING) {
AssignName((gchar **)GetGlobalPointer(GlobalIndex,StructIndex),
scanner->value.v_string);
+ } else if (token==G_TOKEN_IDENTIFIER) {
+ AssignName((gchar **)GetGlobalPointer(GlobalIndex,StructIndex),
+ scanner->value.v_identifier);
} else {
g_scanner_unexp_token(scanner,G_TOKEN_STRING,NULL,NULL,
- NULL,NULL,FALSE); return;
+ NULL,NULL,FALSE);
}
+ scanner->config->identifier_2_string=FALSE;
+ scanner->config->cset_identifier_first=G_CSET_a_2_z "_" G_CSET_A_2_Z;
+ scanner->config->cset_identifier_nth=
+ G_CSET_a_2_z "._0123456789" G_CSET_A_2_Z;
} else if (Globals[GlobalIndex].StringList) {
+ token=g_scanner_get_next_token(scanner);
if (IndexGiven) {
if (token==G_TOKEN_STRING) {
AssignName(&(*(Globals[GlobalIndex].StringList))[StructIndex-1],