From fe8633b1bf999ac8dcf2573f7b87c49fd3ef862b Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 14 Jul 2014 14:59:06 +0100 Subject: [PATCH] src/tostring: use an array instead of a switch for script names --- src/tostring.cpp | 343 ++++++++++++++++++++++++----------------------- 1 file changed, 173 insertions(+), 170 deletions(-) diff --git a/src/tostring.cpp b/src/tostring.cpp index 1d57d226..3aface21 100644 --- a/src/tostring.cpp +++ b/src/tostring.cpp @@ -77,175 +77,178 @@ const char *ucd::get_category_string(category c) const char *ucd::get_script_string(script s) { - switch (s) + static const char *scripts[] = { - case Afak: return "Afak"; - case Aghb: return "Aghb"; - case Ahom: return "Ahom"; - case Arab: return "Arab"; - case Armi: return "Armi"; - case Armn: return "Armn"; - case Avst: return "Avst"; - case Bali: return "Bali"; - case Bamu: return "Bamu"; - case Bass: return "Bass"; - case Batk: return "Batk"; - case Beng: return "Beng"; - case Blis: return "Blis"; - case Bopo: return "Bopo"; - case Brah: return "Brah"; - case Brai: return "Brai"; - case Bugi: return "Bugi"; - case Buhd: return "Buhd"; - case Cakm: return "Cakm"; - case Cans: return "Cans"; - case Cari: return "Cari"; - case Cham: return "Cham"; - case Cher: return "Cher"; - case Cirt: return "Cirt"; - case Copt: return "Copt"; - case Cprt: return "Cprt"; - case Cyrl: return "Cyrl"; - case Cyrs: return "Cyrs"; - case Deva: return "Deva"; - case Dsrt: return "Dsrt"; - case Dupl: return "Dupl"; - case Egyd: return "Egyd"; - case Egyh: return "Egyh"; - case Egyp: return "Egyp"; - case Elba: return "Elba"; - case Ethi: return "Ethi"; - case Geor: return "Geor"; - case Geok: return "Geok"; - case Glag: return "Glag"; - case Goth: return "Goth"; - case Gran: return "Gran"; - case Grek: return "Grek"; - case Gujr: return "Gujr"; - case Guru: return "Guru"; - case Hang: return "Hang"; - case Hani: return "Hani"; - case Hano: return "Hano"; - case Hant: return "Hant"; - case Hatr: return "Hatr"; - case Hebr: return "Hebr"; - case Hira: return "Hira"; - case Hluw: return "Hluw"; - case Hmng: return "Hmng"; - case Hrkt: return "Hrkt"; - case Hung: return "Hung"; - case Inds: return "Inds"; - case Ital: return "Ital"; - case Java: return "Java"; - case Jpan: return "Jpan"; - case Jurc: return "Jurc"; - case Kali: return "Kali"; - case Kana: return "Kana"; - case Khar: return "Khar"; - case Khmr: return "Khmr"; - case Khoj: return "Khoj"; - case Knda: return "Knda"; - case Kore: return "Kore"; - case Kpel: return "Kpel"; - case Kthi: return "Kthi"; - case Lana: return "Lana"; - case Laoo: return "Laoo"; - case Latf: return "Latf"; - case Latg: return "Latg"; - case Latn: return "Latn"; - case Lepc: return "Lepc"; - case Limb: return "Limb"; - case Lina: return "Lina"; - case Linb: return "Linb"; - case Lisu: return "Lisu"; - case Loma: return "Loma"; - case Lyci: return "Lyci"; - case Lydi: return "Lydi"; - case Mahj: return "Mahj"; - case Mand: return "Mand"; - case Mani: return "Mani"; - case Maya: return "Maya"; - case Mend: return "Mend"; - case Merc: return "Merc"; - case Mero: return "Mero"; - case Mlym: return "Mlym"; - case Modi: return "Modi"; - case Mong: return "Mong"; - case Moon: return "Moon"; - case Mroo: return "Mroo"; - case Mtei: return "Mtei"; - case Mult: return "Mult"; - case Mymr: return "Mymr"; - case Narb: return "Narb"; - case Nbat: return "Nbat"; - case Nkgb: return "Nkgb"; - case Nkoo: return "Nkoo"; - case Nshu: return "Nshu"; - case Ogam: return "Ogam"; - case Olck: return "Olck"; - case Orkh: return "Orkh"; - case Orya: return "Orya"; - case Osma: return "Osma"; - case Palm: return "Palm"; - case Pauc: return "Pauc"; - case Perm: return "Perm"; - case Phag: return "Phag"; - case Phli: return "Phli"; - case Phlp: return "Phlp"; - case Phlv: return "Phlv"; - case Phnx: return "Phnx"; - case Plrd: return "Plrd"; - case Prti: return "Prti"; - case Qaak: return "Qaak"; - case Rjng: return "Rjng"; - case Roro: return "Roro"; - case Runr: return "Runr"; - case Samr: return "Samr"; - case Sara: return "Sara"; - case Sarb: return "Sarb"; - case Saur: return "Saur"; - case Sgnw: return "Sgnw"; - case Shaw: return "Shaw"; - case Shrd: return "Shrd"; - case Sidd: return "Sidd"; - case Sind: return "Sind"; - case Sinh: return "Sinh"; - case Sora: return "Sora"; - case Sund: return "Sund"; - case Sylo: return "Sylo"; - case Syrc: return "Syrc"; - case Syre: return "Syre"; - case Syrj: return "Syrj"; - case Syrn: return "Syrn"; - case Tagb: return "Tagb"; - case Takr: return "Takr"; - case Tale: return "Tale"; - case Talu: return "Talu"; - case Taml: return "Taml"; - case Tang: return "Tang"; - case Tavt: return "Tavt"; - case Telu: return "Telu"; - case Teng: return "Teng"; - case Tfng: return "Tfng"; - case Tglg: return "Tglg"; - case Thaa: return "Thaa"; - case Thai: return "Thai"; - case Tibt: return "Tibt"; - case Tirh: return "Tirh"; - case Ugar: return "Ugar"; - case Vaii: return "Vaii"; - case Visp: return "Visp"; - case Wara: return "Wara"; - case Wole: return "Wole"; - case Xpeo: return "Xpeo"; - case Xsux: return "Xsux"; - case Yiii: return "Yiii"; - case Zinh: return "Zinh"; - case Zmth: return "Zmth"; - case Zsym: return "Zsym"; - case Zxxx: return "Zxxx"; - case Zyyy: return "Zyyy"; - case Zzzz: return "Zzzz"; - default: return "----"; - } + "Afak", + "Aghb", + "Ahom", + "Arab", + "Armi", + "Armn", + "Avst", + "Bali", + "Bamu", + "Bass", + "Batk", + "Beng", + "Blis", + "Bopo", + "Brah", + "Brai", + "Bugi", + "Buhd", + "Cakm", + "Cans", + "Cari", + "Cham", + "Cher", + "Cirt", + "Copt", + "Cprt", + "Cyrl", + "Cyrs", + "Deva", + "Dsrt", + "Dupl", + "Egyd", + "Egyh", + "Egyp", + "Elba", + "Ethi", + "Geor", + "Geok", + "Glag", + "Goth", + "Gran", + "Grek", + "Gujr", + "Guru", + "Hang", + "Hani", + "Hano", + "Hant", + "Hatr", + "Hebr", + "Hira", + "Hluw", + "Hmng", + "Hrkt", + "Hung", + "Inds", + "Ital", + "Java", + "Jpan", + "Jurc", + "Kali", + "Kana", + "Khar", + "Khmr", + "Khoj", + "Knda", + "Kore", + "Kpel", + "Kthi", + "Lana", + "Laoo", + "Latf", + "Latg", + "Latn", + "Lepc", + "Limb", + "Lina", + "Linb", + "Lisu", + "Loma", + "Lyci", + "Lydi", + "Mahj", + "Mand", + "Mani", + "Maya", + "Mend", + "Merc", + "Mero", + "Mlym", + "Modi", + "Mong", + "Moon", + "Mroo", + "Mtei", + "Mult", + "Mymr", + "Narb", + "Nbat", + "Nkgb", + "Nkoo", + "Nshu", + "Ogam", + "Olck", + "Orkh", + "Orya", + "Osma", + "Palm", + "Pauc", + "Perm", + "Phag", + "Phli", + "Phlp", + "Phlv", + "Phnx", + "Plrd", + "Prti", + "Qaak", + "Rjng", + "Roro", + "Runr", + "Samr", + "Sara", + "Sarb", + "Saur", + "Sgnw", + "Shaw", + "Shrd", + "Sidd", + "Sind", + "Sinh", + "Sora", + "Sund", + "Sylo", + "Syrc", + "Syre", + "Syrj", + "Syrn", + "Tagb", + "Takr", + "Tale", + "Talu", + "Taml", + "Tang", + "Tavt", + "Telu", + "Teng", + "Tfng", + "Tglg", + "Thaa", + "Thai", + "Tibt", + "Tirh", + "Ugar", + "Vaii", + "Visp", + "Wara", + "Wole", + "Xpeo", + "Xsux", + "Yiii", + "Zinh", + "Zmth", + "Zsym", + "Zxxx", + "Zyyy", + "Zzzz", + }; + + if ((unsigned int)s >= (sizeof(scripts)/sizeof(scripts[0]))) + return "----"; + return scripts[(unsigned int)s]; }