fix conversion of the consonantal .lla

This commit is contained in:
Vlasta Vesely 2021-04-21 22:06:15 +02:00
parent e18edd3e24
commit e0b7d4d4bf
No known key found for this signature in database
GPG key ID: EB0E649DC0DFCC22
2 changed files with 13 additions and 2 deletions

View file

@ -61,6 +61,10 @@ START_TEST(test_translit_lla_sylable)
test_transliterate_devanagari_to_latin("अग्निमीळे", "agnimīḷe");
test_transliterate_latin_to_devanagari("agnimīḷe", "अग्निमीळे");
/* rigveda 1.22.17 */
test_transliterate_devanagari_to_latin("समूळ्हमस्य", "samūḷhamasya");
test_transliterate_latin_to_devanagari("samūḷhamasya", "समूळ्हमस्य");
test_transliterate_devanagari_to_latin("चाकॢप्र", "cākḷpra");
test_transliterate_latin_to_devanagari("cākḷpra", "चाकॢप्र");
}
@ -75,6 +79,7 @@ END_TEST
START_TEST(test_translit_zero_width_joiner)
{
/* from Bhagavadgita */
test_transliterate_devanagari_to_latin("श‍ृ शृ", "ś‍ṛ śṛ");
test_transliterate_latin_to_devanagari("ś‍ṛ śṛ", "श‍ृ शृ");
}

View file

@ -228,11 +228,17 @@ int transliterate_latin_to_devanagari(const char *latin, char **ret)
/* consonant (.l) */
if (strncmp(src, "\u1e37", 3) == 0) {
letter = letter_by_data(src + 3);
if (letter && letter->type == VOWEL) {
if (letter) {
utf8_pack_char(devanagari + done, 0x0933);
done += 3;
src += 3;
goto encode_vowel_modifier;
if (letter->type == VOWEL) {
goto encode_vowel_modifier;
} else {
utf8_pack_char(devanagari + done, VIRAMA);
done += 3;
}
}
}