1
0
Fork 0

Codechange: Czech town names unconditionally removed the last codepoint in _name_czech_adj; already do this in the source table.

pull/13959/head
frosch 2025-04-02 13:11:51 +02:00 committed by frosch
parent 86bb30acbe
commit d8333fe3d7
3 changed files with 49 additions and 62 deletions

View File

@ -274,15 +274,6 @@ public:
::Utf8Encode(iterator, c);
}
/**
* Remove the given amount of characters from the back of the string.
* @param amount The amount of characters to remove.
*/
void RemoveElementsFromBack(size_t amount)
{
this->string->erase(this->string->size() - std::min(amount, this->string->size()));
}
/**
* Get the current index in the string.
* @return The index.

View File

@ -1764,54 +1764,54 @@ struct CzechNameAdj {
/* Some of items which should be common are doubled. */
static const CzechNameAdj _name_czech_adj[] = {
{ CZP_JARNI, CZC_ANY, "Horn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Horn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Doln\u00ed" },
{ CZP_JARNI, CZC_ANY, "Doln\u00ed" },
{ CZP_JARNI, CZC_ANY, "P\u0159edn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Zadn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Kosteln\u00ed" },
{ CZP_JARNI, CZC_ANY, "Havran\u00ed" },
{ CZP_JARNI, CZC_ANY, "\u0158\u00ed\u010dn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Jezern\u00ed" },
{ CZP_MLADY, CZC_ANY, "Velk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Velk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Mal\u00fd" },
{ CZP_MLADY, CZC_ANY, "Mal\u00fd" },
{ CZP_MLADY, CZC_ANY, "Vysok\u00fd" },
{ CZP_MLADY, CZC_ANY, "\u010cesk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Moravsk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Slov\u00e1ck\u00fd" },
{ CZP_MLADY, CZC_ANY, "Slezsk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Uhersk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Star\u00fd" },
{ CZP_MLADY, CZC_ANY, "Star\u00fd" },
{ CZP_MLADY, CZC_ANY, "Nov\u00fd" },
{ CZP_MLADY, CZC_ANY, "Nov\u00fd" },
{ CZP_MLADY, CZC_ANY, "Mlad\u00fd" },
{ CZP_MLADY, CZC_ANY, "Kr\u00e1lovsk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Kamenn\u00fd" },
{ CZP_MLADY, CZC_ANY, "Cihlov\u00fd" },
{ CZP_MLADY, CZC_ANY, "Divn\u00fd" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
{ CZP_MLADY, CZC_COLOR, "Zelen\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u017dlut\u00e1" },
{ CZP_MLADY, CZC_COLOR, "Siv\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u0160ed\u00e1" },
{ CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
{ CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
{ CZP_MLADY, CZC_COLOR, "Modr\u00e1" },
{ CZP_MLADY, CZC_COLOR, "R\u016f\u017eov\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u010cern\u00e1" },
{ CZP_PRIVL, CZC_ANY, "Kr\u00e1lova" },
{ CZP_PRIVL, CZC_ANY, "Janova" },
{ CZP_PRIVL, CZC_ANY, "Karlova" },
{ CZP_PRIVL, CZC_ANY, "Kry\u0161tofova" },
{ CZP_PRIVL, CZC_ANY, "Ji\u0159\u00edkova" },
{ CZP_PRIVL, CZC_ANY, "Petrova" },
{ CZP_PRIVL, CZC_ANY, "Sudovo" },
{ CZP_JARNI, CZC_ANY, "Horn" },
{ CZP_JARNI, CZC_ANY, "Horn" },
{ CZP_JARNI, CZC_ANY, "Doln" },
{ CZP_JARNI, CZC_ANY, "Doln" },
{ CZP_JARNI, CZC_ANY, "P\u0159edn" },
{ CZP_JARNI, CZC_ANY, "Zadn" },
{ CZP_JARNI, CZC_ANY, "Kosteln" },
{ CZP_JARNI, CZC_ANY, "Havran" },
{ CZP_JARNI, CZC_ANY, "\u0158\u00ed\u010dn" },
{ CZP_JARNI, CZC_ANY, "Jezern" },
{ CZP_MLADY, CZC_ANY, "Velk" },
{ CZP_MLADY, CZC_ANY, "Velk" },
{ CZP_MLADY, CZC_ANY, "Mal" },
{ CZP_MLADY, CZC_ANY, "Mal" },
{ CZP_MLADY, CZC_ANY, "Vysok" },
{ CZP_MLADY, CZC_ANY, "\u010cesk" },
{ CZP_MLADY, CZC_ANY, "Moravsk" },
{ CZP_MLADY, CZC_ANY, "Slov\u00e1ck" },
{ CZP_MLADY, CZC_ANY, "Slezsk" },
{ CZP_MLADY, CZC_ANY, "Uhersk" },
{ CZP_MLADY, CZC_ANY, "Star" },
{ CZP_MLADY, CZC_ANY, "Star" },
{ CZP_MLADY, CZC_ANY, "Nov" },
{ CZP_MLADY, CZC_ANY, "Nov" },
{ CZP_MLADY, CZC_ANY, "Mlad" },
{ CZP_MLADY, CZC_ANY, "Kr\u00e1lovsk" },
{ CZP_MLADY, CZC_ANY, "Kamenn" },
{ CZP_MLADY, CZC_ANY, "Cihlov" },
{ CZP_MLADY, CZC_ANY, "Divn" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven" },
{ CZP_MLADY, CZC_COLOR, "Zelen" },
{ CZP_MLADY, CZC_COLOR, "\u017dlut" },
{ CZP_MLADY, CZC_COLOR, "Siv" },
{ CZP_MLADY, CZC_COLOR, "\u0160ed" },
{ CZP_MLADY, CZC_COLOR, "B\u00edl" },
{ CZP_MLADY, CZC_COLOR, "B\u00edl" },
{ CZP_MLADY, CZC_COLOR, "Modr" },
{ CZP_MLADY, CZC_COLOR, "R\u016f\u017eov" },
{ CZP_MLADY, CZC_COLOR, "\u010cern" },
{ CZP_PRIVL, CZC_ANY, "Kr\u00e1lov" },
{ CZP_PRIVL, CZC_ANY, "Janov" },
{ CZP_PRIVL, CZC_ANY, "Karlov" },
{ CZP_PRIVL, CZC_ANY, "Kry\u0161tofov" },
{ CZP_PRIVL, CZC_ANY, "Ji\u0159\u00edkov" },
{ CZP_PRIVL, CZC_ANY, "Petrov" },
{ CZP_PRIVL, CZC_ANY, "Sudov" },
};
/* Considered a stem for choose/allow matching purposes. */

View File

@ -702,11 +702,7 @@ static void MakeCzechTownName(StringBuilder &builder, uint32_t seed)
builder += _name_czech_adj[prefix].name;
size_t endpos = builder.CurrentIndex() - 1;
/* Find the first character in a UTF-8 sequence */
while (GB(builder[endpos], 6, 2) == 2) endpos--;
builder.RemoveElementsFromBack(builder.CurrentIndex() - endpos);
size_t endpos = builder.CurrentIndex();
if (gender == CZG_SMASC && pattern == CZP_PRIVL) {
/* -ovX -> -uv */
builder[endpos - 2] = 'u';