diff --git a/iast-czech.c b/iast-czech.c index c667fcc..802ebf4 100644 --- a/iast-czech.c +++ b/iast-czech.c @@ -64,6 +64,7 @@ static struct translit_letter table[] = { {0x0902, CODA, "m"}, /* anusvara */ {0x0903, CODA, ""}, /* visarga */ {0x093d, CODA, "'"}, /* avagrada */ + {0x0901, CODA, "m"}, /* candrabindu */ /* Numbers */ {0x0966, NUMBER, "0"}, diff --git a/iast.c b/iast.c index 677472b..7a7f268 100644 --- a/iast.c +++ b/iast.c @@ -65,6 +65,7 @@ static struct translit_letter table[] = { {0x0902, CODA, "\u1e43"}, /* anusvara (.m) */ {0x0903, CODA, "\u1e25"}, /* visarga (.h) */ {0x093d, CODA, "'"}, /* avagrada (') */ + {0x0901, CODA, "m\u0310"}, /* candrabindu */ /* Numbers */ {0x0966, NUMBER, "0"}, diff --git a/main.c b/main.c index b68698a..0c18bb2 100644 --- a/main.c +++ b/main.c @@ -19,11 +19,10 @@ static const char *usage_str = "options:\n" " -h shows this help and exits\n" " -v shows version number and exits\n" - " -f specifies file for conversion\n" + " -f specifies file for conversion (‘-’ means standard input)\n" " -r reverse transliteration (from Latin to Devanagari)\n" " -e convert symbolic ASCII text to IAST representation\n" " -c transcript Devanagari to Czech language\n" - " -- read data from the standard input\n" "\n" " By default, ‘" PROGNAME "’ takes all input arguments written in Devanagari\n" " and transliterates them to the IAST version.\n" diff --git a/tests/transcript.c b/tests/transcript.c index bc677f6..b8a1e3f 100644 --- a/tests/transcript.c +++ b/tests/transcript.c @@ -22,6 +22,8 @@ START_TEST(test_transcript_devanagari_to_czech) test_transcript("भगवद्गीता", "bhagavadgíta"); test_transcript("अग्निमीळे", "agnimílé"); + + test_transcript("तान्यजत्राँ", "tánjadžatrám"); } END_TEST diff --git a/tests/translit.c b/tests/translit.c index e0de52a..3f734ea 100644 --- a/tests/translit.c +++ b/tests/translit.c @@ -58,9 +58,17 @@ START_TEST(test_translit_lla_sylable) } END_TEST +START_TEST(test_translit_candrabindu) +{ + test_transliterate_devanagari_to_latin("तान्यजत्राँ", "tānyajatrām̐"); + test_transliterate_latin_to_devanagari("tānyajatrām̐", "तान्यजत्राँ"); +} +END_TEST + void register_translit_tests(TCase *test_case) { tcase_add_test(test_case, test_translit_devanagari_to_latin); tcase_add_test(test_case, test_translit_latin_to_devanagari); tcase_add_test(test_case, test_translit_lla_sylable); + tcase_add_test(test_case, test_translit_candrabindu); } diff --git a/transliteration.c b/transliteration.c index 5be99dd..dfebd22 100644 --- a/transliteration.c +++ b/transliteration.c @@ -123,6 +123,13 @@ char *transliterate_latin_to_devanagari(const char *latin) } } + if (strncmp(src, "m\u0310", 3) == 0) { + utf8_pack_char(devanagari + done, 0x0901); + done += 3; + src += 3; + continue; + } + letter = letter_by_data(table, src); if (letter) { utf8_pack_char(devanagari + done, letter->code);