- fprintf(stderr, "warning(line %d): duplicate alias %s found for standard tag %s between converter %s and converter %s\n",
- lineNum, alias, GET_TAG_STR(tags[standard].tag), GET_ALIAS_STR(converters[converter].converter), GET_ALIAS_STR(converters[idx].converter));
+ if (idx == converter) {
+ /*
+ * (alias, standard) duplicates are harmless if they map to the same converter.
+ * Only print a warning in verbose mode, or if the alias is a precise duplicate,
+ * not just a lenient-match duplicate.
+ */
+ if (verbose || 0 == uprv_strcmp(alias, GET_ALIAS_STR(aliasNum))) {
+ fprintf(stderr, "%s:%d: warning: duplicate aliases %s and %s found for standard %s and converter %s\n", path,
+ lineNum, alias, GET_ALIAS_STR(aliasNum),
+ GET_TAG_STR(tags[standard].tag),
+ GET_ALIAS_STR(converters[converter].converter));
+ }
+ } else {
+ fprintf(stderr, "%s:%d: warning: duplicate aliases %s and %s found for standard tag %s between converter %s and converter %s\n", path,
+ lineNum, alias, GET_ALIAS_STR(aliasNum),
+ GET_TAG_STR(tags[standard].tag),
+ GET_ALIAS_STR(converters[converter].converter),
+ GET_ALIAS_STR(converters[idx].converter));
+ }