Author: jtn Date: Mon Dec 21 10:40:34 2015 New Revision: 31133 URL: http://svn.gna.org/viewcvs/freeciv?rev=31133&view=rev Log: Check for duplicate flag names when loading rulesets.
See gna bug #24207. Modified: branches/S2_6/server/ruleset.c Modified: branches/S2_6/server/ruleset.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/ruleset.c?rev=31133&r1=31132&r2=31133&view=diff ============================================================================== --- branches/S2_6/server/ruleset.c (original) +++ branches/S2_6/server/ruleset.c Mon Dec 21 10:40:34 2015 @@ -1065,6 +1065,12 @@ i++) { const char *helptxt = secfile_lookup_str_default(file, NULL, "control.flags%d.helptxt", i); + if (tech_flag_id_by_name(flag, fc_strcasecmp) != tech_flag_id_invalid()) { + ruleset_error(LOG_ERROR, "\"%s\": Duplicate tech flag name '%s'", + filename, flag); + ok = FALSE; + break; + } if (i > MAX_NUM_USER_TECH_FLAGS) { ruleset_error(LOG_ERROR, "\"%s\": Too many user tech flags!", filename); @@ -1296,6 +1302,13 @@ const char *helptxt = secfile_lookup_str_default(file, NULL, "control.flags%d.helptxt", i); + if (unit_type_flag_id_by_name(flag, fc_strcasecmp) + != unit_type_flag_id_invalid()) { + ruleset_error(LOG_ERROR, "\"%s\": Duplicate unit flag name '%s'", + filename, flag); + ok = FALSE; + break; + } if (i > MAX_NUM_USER_UNIT_FLAGS) { ruleset_error(LOG_ERROR, "\"%s\": Too many user unit type flags!", filename); @@ -2166,6 +2179,13 @@ const char *helptxt = secfile_lookup_str_default(file, NULL, "control.flags%d.helptxt", i); + if (terrain_flag_id_by_name(flag, fc_strcasecmp) + != terrain_flag_id_invalid()) { + ruleset_error(LOG_ERROR, "\"%s\": Duplicate terrain flag name '%s'", + filename, flag); + ok = FALSE; + break; + } if (i > MAX_NUM_USER_TER_FLAGS) { ruleset_error(LOG_ERROR, "\"%s\": Too many user terrain flags!", filename); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits