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
[email protected]
https://mail.gna.org/listinfo/freeciv-commits