int i;
/* bdcff engine flag............ */
- if (strcasecmp(attrib, "Engine")==0)
+ if (strcasecmp(attrib, "Engine") == 0)
return TRUE;
/* old flags - for compatibility */
- if (strcasecmp(attrib, "BD1Scheduling")==0)
+ if (strcasecmp(attrib, "BD1Scheduling") == 0)
return TRUE;
- if (strcasecmp(attrib, "SnapExplosions")==0)
+ if (strcasecmp(attrib, "SnapExplosions") == 0)
return TRUE;
- if (strcasecmp(attrib, "AmoebaProperties")==0)
+ if (strcasecmp(attrib, "AmoebaProperties") == 0)
return TRUE;
/* search in property database */
int i;
boolean was_string;
- params = g_strsplit_set(param, " ", -1);
- paramcount = g_strv_length(params);
+ params = getSplitStringArray(param, " ", -1);
+ paramcount = getStringArrayLength(params);
identifier_found = FALSE;
/* check all known tags. do not exit this loop if identifier_found == true...
if (prop_desc[i].type == GD_TYPE_LONGSTRING)
{
- GString *str = *(GString **)value;
- char *compressed;
+ char **str = (char **)value;
- compressed = g_strcompress(param);
- g_string_assign(str, compressed);
- free(compressed);
+ checked_free(*str);
+ *str = getUnescapedString(param);
/* remember this to skip checking the number of parameters at the end of the function */
was_string = TRUE;
if (identifier_found && !was_string && paramindex < paramcount)
Warn("excess parameters for attribute '%s': '%s'", attrib, params[paramindex]);
- g_strfreev(params);
+ freeStringArray(params);
return identifier_found;
}
int i;
boolean result = TRUE;
- split = g_strsplit_set(param, " ", -1);
+ split = getSplitStringArray(param, " ", -1);
for (i = 0; split[i] != 0; i++)
result = result && replay_store_from_bdcff(replay, split[i]);
- g_strfreev(split);
+ freeStringArray(split);
return result;
}
char **params;
boolean identifier_found;
- params = g_strsplit_set(param, " ", -1);
+ params = getSplitStringArray(param, " ", -1);
identifier_found = FALSE;
if (strcasecmp(attrib, "SnapExplosions") == 0)
identifier_found = struct_set_property(cave, gd_cave_properties, attrib, param, cave->w * cave->h);
}
- g_strfreev(params);
+ freeStringArray(params);
/* a ghrfunc should return true if the identifier is to be removed */
return identifier_found;
replay_tags = g_hash_table_new_full(gd_str_case_hash, gd_str_case_equal, free, free);
/* split into lines */
- lines = g_strsplit_set (contents, "\n", 0);
+ lines = getSplitStringArray (contents, "\n", 0);
/* attributes read will be set in cave. if no [cave]; they are stored
in the default cave; like in a [game] */
default_cave = gd_cave_new();
cave = default_cave;
- linenum = g_strv_length(lines);
+ linenum = getStringArrayLength(lines);
for (lineno = 0; lineno < linenum; lineno++)
{
/* CHECK IF IT IS AN EFFECT */
char **params;
- params = g_strsplit_set(param, " ", -1);
+ params = getSplitStringArray(param, " ", -1);
/* an effect command has two parameters */
- if (g_strv_length(params) == 2)
+ if (getStringArrayLength(params) == 2)
{
int i;
else
Warn("invalid effect specification '%s'", param);
- g_strfreev(params);
+ freeStringArray(params);
}
else
{
Warn(_("Invalid BDCFF: [game] section has drawing objects defined"));
/* cleanup */
- g_strfreev (lines);
+ freeStringArray(lines);
g_hash_table_destroy(tags);
g_hash_table_destroy(replay_tags);
gd_cave_free(default_cave);