Rearrange accented character mapping.

This commit is contained in:
casey langen 2022-12-21 14:29:30 -08:00
parent cebb757e2a
commit 9f6f45a8f7

View File

@ -69,49 +69,180 @@ typedef UINT32_TYPE u32; /* 4-byte unsigned integer */
** Mapping from accented UTF8 sequence to a regular english char
*/
static std::unordered_map<u32, u32> accentToChar = {
/* A */
{ (u32)192 /* À */ , (u32)'A' },
{ (u32)193 /* Á */ , (u32)'A' },
{ (u32)194 /* Â */ , (u32)'A' },
{ (u32)195 /* Ã */ , (u32)'A' },
{ (u32)196 /* Ä */ , (u32)'A' },
{ (u32)197 /* Å */ , (u32)'A' },
{ (u32)256 /* Ā */ , (u32)'A' },
{ (u32)258 /* Ă */ , (u32)'A' },
{ (u32)260 /* Ą */ , (u32)'A' },
/* C */
{ (u32)199 /* Ç */ , (u32)'C' },
{ (u32)262 /* Ć */ , (u32)'C' },
{ (u32)264 /* Ĉ */ , (u32)'C' },
{ (u32)266 /* Ċ */ , (u32)'C' },
{ (u32)268 /* Č */ , (u32)'C' },
/* D */
{ (u32)270 /* Ď */ , (u32)'D' },
{ (u32)272 /* Đ */ , (u32)'D' },
/* E */
{ (u32)200 /* È */ , (u32)'E' },
{ (u32)201 /* É */ , (u32)'E' },
{ (u32)202 /* Ê */ , (u32)'E' },
{ (u32)203 /* Ë */ , (u32)'E' },
{ (u32)274 /* Ē */ , (u32)'E' },
{ (u32)276 /* Ĕ */ , (u32)'E' },
{ (u32)278 /* Ė */ , (u32)'E' },
{ (u32)280 /* Ę */ , (u32)'E' },
{ (u32)282 /* Ě */ , (u32)'E' },
/* G */
{ (u32)284 /* Ĝ */ , (u32)'G' },
{ (u32)286 /* Ğ */ , (u32)'G' },
{ (u32)288 /* Ġ */ , (u32)'G' },
{ (u32)290 /* Ģ */ , (u32)'G' },
/* H */
{ (u32)292 /* Ĥ */ , (u32)'H' },
{ (u32)294 /* Ħ */ , (u32)'H' },
/* I */
{ (u32)204 /* Ì */ , (u32)'I' },
{ (u32)205 /* Í */ , (u32)'I' },
{ (u32)206 /* Î */ , (u32)'I' },
{ (u32)207 /* Ï */ , (u32)'I' },
{ (u32)296 /* Ĩ */ , (u32)'I' },
{ (u32)298 /* Ī */ , (u32)'I' },
{ (u32)300 /* Ĭ */ , (u32)'I' },
{ (u32)302 /* Į */ , (u32)'I' },
{ (u32)304 /* İ */ , (u32)'I' },
/* J */
{ (u32)308 /* Ĵ */ , (u32)'J' },
/* K */
{ (u32)310 /* Ķ */ , (u32)'K' },
/* L */
{ (u32)313 /* Ĺ */ , (u32)'L' },
{ (u32)315 /* Ļ */ , (u32)'L' },
{ (u32)317 /* Ľ */ , (u32)'L' },
{ (u32)319 /* Ŀ */ , (u32)'L' },
{ (u32)321 /* Ł */ , (u32)'L' },
/* N */
{ (u32)209 /* Ñ */ , (u32)'N' },
{ (u32)323 /* Ń */ , (u32)'N' },
{ (u32)325 /* Ņ */ , (u32)'N' },
{ (u32)327 /* Ň */ , (u32)'N' },
{ (u32)329 /* ʼn */ , (u32)'N' },
{ (u32)331 /* ŋ */ , (u32)'N' },
/* O */
{ (u32)210 /* Ò */ , (u32)'O' },
{ (u32)211 /* Ó */ , (u32)'O' },
{ (u32)212 /* Ô */ , (u32)'O' },
{ (u32)213 /* Õ */ , (u32)'O' },
{ (u32)214 /* Ö */ , (u32)'O' },
{ (u32)332 /* Ō */ , (u32)'O' },
{ (u32)334 /* Ŏ */ , (u32)'O' },
{ (u32)336 /* Ő */ , (u32)'O' },
/* R */
{ (u32)340 /* Ŕ */ , (u32)'R' },
{ (u32)342 /* Ŗ */ , (u32)'R' },
{ (u32)344 /* Ř */ , (u32)'R' },
/* S */
{ (u32)346 /* Ś */ , (u32)'S' },
{ (u32)348 /* Ŝ */ , (u32)'S' },
{ (u32)350 /* Ş */ , (u32)'S' },
{ (u32)352 /* Š */ , (u32)'S' },
/* T */
{ (u32)354 /* Ţ */ , (u32)'T' },
{ (u32)356 /* Ť */ , (u32)'T' },
{ (u32)358 /* Ŧ */ , (u32)'T' },
/* U */
{ (u32)217 /* Ù */ , (u32)'U' },
{ (u32)218 /* Ú */ , (u32)'U' },
{ (u32)219 /* Û */ , (u32)'U' },
{ (u32)220 /* Ü */ , (u32)'U' },
{ (u32)360 /* Ũ */ , (u32)'U' },
{ (u32)362 /* Ū */ , (u32)'U' },
{ (u32)364 /* Ŭ */ , (u32)'U' },
{ (u32)366 /* Ů */ , (u32)'U' },
{ (u32)368 /* Ű */ , (u32)'U' },
{ (u32)370 /* Ų */ , (u32)'U' },
/* W */
{ (u32)372 /* Ŵ */ , (u32)'W' },
/* Y */
{ (u32)221 /* Ý */ , (u32)'Y' },
{ (u32)374 /* Ŷ */ , (u32)'Y' },
{ (u32)376 /* Ÿ */ , (u32)'Y' },
/* S */
{ (u32)223 /* ß */ , (u32)'s' },
/* Z */
{ (u32)377 /* Ź */ , (u32)'Z' },
{ (u32)379 /* Ż */ , (u32)'Z' },
{ (u32)381 /* Ž */ , (u32)'Z' },
/* a */
{ (u32)224 /* à */ , (u32)'a' },
{ (u32)225 /* á */ , (u32)'a' },
{ (u32)226 /* â */ , (u32)'a' },
{ (u32)227 /* ã */ , (u32)'a' },
{ (u32)228 /* ä */ , (u32)'a' },
{ (u32)229 /* å */ , (u32)'a' },
{ (u32)257 /* ā */ , (u32)'a' },
{ (u32)259 /* ă */ , (u32)'a' },
{ (u32)261 /* ą */ , (u32)'a' },
/* c */
{ (u32)231 /* ç */ , (u32)'c' },
{ (u32)263 /* ć */ , (u32)'c' },
{ (u32)265 /* ĉ */ , (u32)'c' },
{ (u32)267 /* ċ */ , (u32)'c' },
{ (u32)269 /* č */ , (u32)'c' },
/* d */
{ (u32)271 /* ď */ , (u32)'d' },
{ (u32)273 /* đ */ , (u32)'d' },
/* e */
{ (u32)232 /* è */ , (u32)'e' },
{ (u32)233 /* é */ , (u32)'e' },
{ (u32)234 /* ê */ , (u32)'e' },
{ (u32)235 /* ë */ , (u32)'e' },
{ (u32)275 /* ē */ , (u32)'e' },
{ (u32)277 /* ĕ */ , (u32)'e' },
{ (u32)279 /* ė */ , (u32)'e' },
{ (u32)281 /* ę */ , (u32)'e' },
{ (u32)283 /* ě */ , (u32)'e' },
/* g */
{ (u32)285 /* ĝ */ , (u32)'g' },
{ (u32)287 /* ğ */ , (u32)'g' },
{ (u32)289 /* ġ */ , (u32)'g' },
{ (u32)291 /* ģ */ , (u32)'g' },
/* h */
{ (u32)293 /* ĥ */ , (u32)'h' },
{ (u32)295 /* ħ */ , (u32)'h' },
/* i */
{ (u32)236 /* ì */ , (u32)'i' },
{ (u32)237 /* í */ , (u32)'i' },
{ (u32)238 /* î */ , (u32)'i' },
{ (u32)239 /* ï */ , (u32)'i' },
{ (u32)297 /* ĩ */ , (u32)'i' },
{ (u32)299 /* ī */ , (u32)'i' },
{ (u32)301 /* ĭ */ , (u32)'i' },
{ (u32)303 /* į */ , (u32)'i' },
{ (u32)305 /* ı */ , (u32)'i' },
/* j */
{ (u32)309 /* ĵ */ , (u32)'j' },
/* k */
{ (u32)311 /* ķ */ , (u32)'k' },
{ (u32)312 /* ĸ */ , (u32)'k' },
/* l */
{ (u32)314 /* ĺ */ , (u32)'l' },
{ (u32)316 /* ļ */ , (u32)'l' },
{ (u32)318 /* ľ */ , (u32)'l' },
{ (u32)320 /* ŀ */ , (u32)'l' },
{ (u32)322 /* ł */ , (u32)'l' },
/* n */
{ (u32)241 /* ñ */ , (u32)'n' },
{ (u32)324 /* ń */ , (u32)'n' },
{ (u32)326 /* ņ */ , (u32)'n' },
{ (u32)328 /* ň */ , (u32)'n' },
{ (u32)330 /* Ŋ */ , (u32)'n' },
/* o */
{ (u32)242 /* ò */ , (u32)'o' },
{ (u32)243 /* ó */ , (u32)'o' },
{ (u32)244 /* ô */ , (u32)'o' },
@ -121,132 +252,40 @@ static std::unordered_map<u32, u32> accentToChar = {
{ (u32)250 /* ú */ , (u32)'u' },
{ (u32)251 /* û */ , (u32)'u' },
{ (u32)252 /* ü */ , (u32)'u' },
{ (u32)333 /* ō */ , (u32)'o' },
{ (u32)335 /* ŏ */ , (u32)'o' },
{ (u32)337 /* ő */ , (u32)'o' },
/* r */
{ (u32)341 /* ŕ */ , (u32)'r' },
{ (u32)343 /* ŗ */ , (u32)'r' },
{ (u32)345 /* ř */ , (u32)'r' },
/* s */
{ (u32)347 /* ś */ , (u32)'s' },
{ (u32)349 /* ŝ */ , (u32)'s' },
{ (u32)351 /* ş */ , (u32)'s' },
{ (u32)353 /* š */ , (u32)'s' },
{ (u32)383 /* ſ */ , (u32)'s' },
/* t */
{ (u32)355 /* ţ */ , (u32)'t' },
{ (u32)357 /* ť */ , (u32)'t' },
{ (u32)359 /* ŧ */ , (u32)'t' },
/* u */
{ (u32)361 /* ũ */ , (u32)'u' },
{ (u32)363 /* ū */ , (u32)'u' },
{ (u32)365 /* ŭ */ , (u32)'u' },
{ (u32)367 /* ů */ , (u32)'u' },
{ (u32)369 /* ű */ , (u32)'u' },
{ (u32)371 /* ų */ , (u32)'u' },
/* w */
{ (u32)373 /* ŵ */ , (u32)'w' },
/* y */
{ (u32)253 /* ý */ , (u32)'y' },
{ (u32)255 /* ÿ */ , (u32)'y' },
{ (u32)256 /* Ā */ , (u32)'A' },
{ (u32)257 /* ā */ , (u32)'a' },
{ (u32)258 /* Ă */ , (u32)'A' },
{ (u32)259 /* ă */ , (u32)'a' },
{ (u32)260 /* Ą */ , (u32)'A' },
{ (u32)261 /* ą */ , (u32)'a' },
{ (u32)262 /* Ć */ , (u32)'C' },
{ (u32)263 /* ć */ , (u32)'c' },
{ (u32)264 /* Ĉ */ , (u32)'C' },
{ (u32)265 /* ĉ */ , (u32)'c' },
{ (u32)266 /* Ċ */ , (u32)'C' },
{ (u32)267 /* ċ */ , (u32)'c' },
{ (u32)268 /* Č */ , (u32)'C' },
{ (u32)269 /* č */ , (u32)'c' },
{ (u32)270 /* Ď */ , (u32)'D' },
{ (u32)271 /* ď */ , (u32)'d' },
{ (u32)272 /* Đ */ , (u32)'D' },
{ (u32)273 /* đ */ , (u32)'d' },
{ (u32)274 /* Ē */ , (u32)'E' },
{ (u32)275 /* ē */ , (u32)'e' },
{ (u32)276 /* Ĕ */ , (u32)'E' },
{ (u32)277 /* ĕ */ , (u32)'e' },
{ (u32)278 /* Ė */ , (u32)'E' },
{ (u32)279 /* ė */ , (u32)'e' },
{ (u32)280 /* Ę */ , (u32)'E' },
{ (u32)281 /* ę */ , (u32)'e' },
{ (u32)282 /* Ě */ , (u32)'E' },
{ (u32)283 /* ě */ , (u32)'e' },
{ (u32)284 /* Ĝ */ , (u32)'G' },
{ (u32)285 /* ĝ */ , (u32)'g' },
{ (u32)286 /* Ğ */ , (u32)'G' },
{ (u32)287 /* ğ */ , (u32)'g' },
{ (u32)288 /* Ġ */ , (u32)'G' },
{ (u32)289 /* ġ */ , (u32)'g' },
{ (u32)290 /* Ģ */ , (u32)'G' },
{ (u32)291 /* ģ */ , (u32)'g' },
{ (u32)292 /* Ĥ */ , (u32)'H' },
{ (u32)293 /* ĥ */ , (u32)'h' },
{ (u32)294 /* Ħ */ , (u32)'H' },
{ (u32)295 /* ħ */ , (u32)'h' },
{ (u32)296 /* Ĩ */ , (u32)'I' },
{ (u32)297 /* ĩ */ , (u32)'i' },
{ (u32)298 /* Ī */ , (u32)'I' },
{ (u32)299 /* ī */ , (u32)'i' },
{ (u32)300 /* Ĭ */ , (u32)'I' },
{ (u32)301 /* ĭ */ , (u32)'i' },
{ (u32)302 /* Į */ , (u32)'I' },
{ (u32)303 /* į */ , (u32)'i' },
{ (u32)304 /* İ */ , (u32)'I' },
{ (u32)305 /* ı */ , (u32)'i' },
{ (u32)308 /* Ĵ */ , (u32)'J' },
{ (u32)309 /* ĵ */ , (u32)'j' },
{ (u32)310 /* Ķ */ , (u32)'K' },
{ (u32)311 /* ķ */ , (u32)'k' },
{ (u32)312 /* ĸ */ , (u32)'k' },
{ (u32)313 /* Ĺ */ , (u32)'L' },
{ (u32)314 /* ĺ */ , (u32)'l' },
{ (u32)315 /* Ļ */ , (u32)'L' },
{ (u32)316 /* ļ */ , (u32)'l' },
{ (u32)317 /* Ľ */ , (u32)'L' },
{ (u32)318 /* ľ */ , (u32)'l' },
{ (u32)319 /* Ŀ */ , (u32)'L' },
{ (u32)320 /* ŀ */ , (u32)'l' },
{ (u32)321 /* Ł */ , (u32)'L' },
{ (u32)322 /* ł */ , (u32)'l' },
{ (u32)323 /* Ń */ , (u32)'N' },
{ (u32)324 /* ń */ , (u32)'n' },
{ (u32)325 /* Ņ */ , (u32)'N' },
{ (u32)326 /* ņ */ , (u32)'n' },
{ (u32)327 /* Ň */ , (u32)'N' },
{ (u32)328 /* ň */ , (u32)'n' },
{ (u32)329 /* ʼn */ , (u32)'N' },
{ (u32)330 /* Ŋ */ , (u32)'n' },
{ (u32)331 /* ŋ */ , (u32)'N' },
{ (u32)332 /* Ō */ , (u32)'O' },
{ (u32)333 /* ō */ , (u32)'o' },
{ (u32)334 /* Ŏ */ , (u32)'O' },
{ (u32)335 /* ŏ */ , (u32)'o' },
{ (u32)336 /* Ő */ , (u32)'O' },
{ (u32)337 /* ő */ , (u32)'o' },
{ (u32)340 /* Ŕ */ , (u32)'R' },
{ (u32)341 /* ŕ */ , (u32)'r' },
{ (u32)342 /* Ŗ */ , (u32)'R' },
{ (u32)343 /* ŗ */ , (u32)'r' },
{ (u32)344 /* Ř */ , (u32)'R' },
{ (u32)345 /* ř */ , (u32)'r' },
{ (u32)346 /* Ś */ , (u32)'S' },
{ (u32)347 /* ś */ , (u32)'s' },
{ (u32)348 /* Ŝ */ , (u32)'S' },
{ (u32)349 /* ŝ */ , (u32)'s' },
{ (u32)350 /* Ş */ , (u32)'S' },
{ (u32)351 /* ş */ , (u32)'s' },
{ (u32)352 /* Š */ , (u32)'S' },
{ (u32)353 /* š */ , (u32)'s' },
{ (u32)354 /* Ţ */ , (u32)'T' },
{ (u32)355 /* ţ */ , (u32)'t' },
{ (u32)356 /* Ť */ , (u32)'T' },
{ (u32)357 /* ť */ , (u32)'t' },
{ (u32)358 /* Ŧ */ , (u32)'T' },
{ (u32)359 /* ŧ */ , (u32)'t' },
{ (u32)360 /* Ũ */ , (u32)'U' },
{ (u32)361 /* ũ */ , (u32)'u' },
{ (u32)362 /* Ū */ , (u32)'U' },
{ (u32)363 /* ū */ , (u32)'u' },
{ (u32)364 /* Ŭ */ , (u32)'U' },
{ (u32)365 /* ŭ */ , (u32)'u' },
{ (u32)366 /* Ů */ , (u32)'U' },
{ (u32)367 /* ů */ , (u32)'u' },
{ (u32)368 /* Ű */ , (u32)'U' },
{ (u32)369 /* ű */ , (u32)'u' },
{ (u32)370 /* Ų */ , (u32)'U' },
{ (u32)371 /* ų */ , (u32)'u' },
{ (u32)372 /* Ŵ */ , (u32)'W' },
{ (u32)373 /* ŵ */ , (u32)'w' },
{ (u32)374 /* Ŷ */ , (u32)'Y' },
{ (u32)375 /* ŷ */ , (u32)'y' },
{ (u32)376 /* Ÿ */ , (u32)'Y' },
{ (u32)377 /* Ź */ , (u32)'Z' },
/* z */
{ (u32)378 /* ź */ , (u32)'z' },
{ (u32)379 /* Ż */ , (u32)'Z' },
{ (u32)380 /* ż */ , (u32)'z' },
{ (u32)381 /* Ž */ , (u32)'Z' },
{ (u32)382 /* ž */ , (u32)'z' },
{ (u32)383 /* ſ */ , (u32)'s' },
};
/*