add the -a option
This commit is contained in:
parent
b2a405cd93
commit
5f642e1cbd
3 changed files with 29 additions and 4 deletions
22
main.c
22
main.c
|
@ -7,6 +7,7 @@
|
||||||
#define FLAG_REVERSE 1 << 0
|
#define FLAG_REVERSE 1 << 0
|
||||||
#define FLAG_VELTHUIS 1 << 1
|
#define FLAG_VELTHUIS 1 << 1
|
||||||
#define FLAG_CZECH 1 << 2
|
#define FLAG_CZECH 1 << 2
|
||||||
|
#define FLAG_ASCII 1 << 3
|
||||||
|
|
||||||
static const char *usage_str =
|
static const char *usage_str =
|
||||||
PROGNAME ", a helper for Sanskrit transliteration.\n"
|
PROGNAME ", a helper for Sanskrit transliteration.\n"
|
||||||
|
@ -34,13 +35,14 @@ static const char *usage_str =
|
||||||
"\n"
|
"\n"
|
||||||
" For more information see the iast(1) manual page.\n";
|
" For more information see the iast(1) manual page.\n";
|
||||||
|
|
||||||
static const char *short_opts = "f:rechv";
|
static const char *short_opts = "f:reachv";
|
||||||
|
|
||||||
static const struct option long_opts[] = {
|
static const struct option long_opts[] = {
|
||||||
{"file", required_argument, 0, 'f'},
|
{"file", required_argument, 0, 'f'},
|
||||||
{"reverse", no_argument, 0, 'r'},
|
{"reverse", no_argument, 0, 'r'},
|
||||||
{"encode", no_argument, 0, 'e'},
|
{"encode", no_argument, 0, 'e'},
|
||||||
{"velthuis", no_argument, 0, 'e'},
|
{"velthuis", no_argument, 0, 'e'},
|
||||||
|
{"ascii", no_argument, 0, 'a'},
|
||||||
{"czech", no_argument, 0, 'c'},
|
{"czech", no_argument, 0, 'c'},
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
{"version", no_argument, 0, 'v'},
|
{"version", no_argument, 0, 'v'},
|
||||||
|
@ -70,17 +72,30 @@ static void error(const char *msg, ...)
|
||||||
|
|
||||||
static int process_input(const char *input, char **out, unsigned int flags)
|
static int process_input(const char *input, char **out, unsigned int flags)
|
||||||
{
|
{
|
||||||
|
char *tmp = NULL;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (flags & FLAG_REVERSE)
|
if (flags & FLAG_REVERSE)
|
||||||
return transliterate_latin_to_devanagari(input, out);
|
return transliterate_latin_to_devanagari(input, out);
|
||||||
|
|
||||||
if (flags & FLAG_VELTHUIS)
|
if (flags & FLAG_VELTHUIS)
|
||||||
return encode_velthuis_to_iast_punctation(input, out);
|
return encode_velthuis_to_iast(input, out);
|
||||||
|
|
||||||
if (flags & FLAG_CZECH)
|
if (flags & FLAG_CZECH)
|
||||||
return transcript_devanagari_to_czech(input, out);
|
return transcript_devanagari_to_czech(input, out);
|
||||||
|
|
||||||
|
if (flags & FLAG_ASCII) {
|
||||||
|
ret = transliterate_devanagari_to_latin(input, &tmp);
|
||||||
|
if (ret != 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
ret = encode_iast_to_velthuis(tmp, out);
|
||||||
|
free(tmp);
|
||||||
|
return ret;
|
||||||
|
} else {
|
||||||
return transliterate_devanagari_to_latin(input, out);
|
return transliterate_devanagari_to_latin(input, out);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int process_string(const char *input, unsigned int flags)
|
static int process_string(const char *input, unsigned int flags)
|
||||||
{
|
{
|
||||||
|
@ -181,6 +196,9 @@ int main(int argc, const char **argv)
|
||||||
case 'e':
|
case 'e':
|
||||||
flags |= FLAG_VELTHUIS;
|
flags |= FLAG_VELTHUIS;
|
||||||
break;
|
break;
|
||||||
|
case 'a':
|
||||||
|
flags |= FLAG_ASCII;
|
||||||
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
flags |= FLAG_CZECH;
|
flags |= FLAG_CZECH;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -103,6 +103,12 @@ START_TEST(test_velthuis)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
START_TEST(test_ascii)
|
||||||
|
{
|
||||||
|
test_output("./iast \"अग्निमीळे पुरोहितं\" -a", "agnimii.le purohita.m\n");
|
||||||
|
}
|
||||||
|
END_TEST
|
||||||
|
|
||||||
START_TEST(test_version)
|
START_TEST(test_version)
|
||||||
{
|
{
|
||||||
test_output("./iast -v", "iast v2.0.0\n");
|
test_output("./iast -v", "iast v2.0.0\n");
|
||||||
|
@ -139,6 +145,7 @@ void register_integration_tests(TCase *test_case)
|
||||||
tcase_add_test(test_case, test_transliterate_arguments);
|
tcase_add_test(test_case, test_transliterate_arguments);
|
||||||
tcase_add_test(test_case, test_transcript);
|
tcase_add_test(test_case, test_transcript);
|
||||||
tcase_add_test(test_case, test_velthuis);
|
tcase_add_test(test_case, test_velthuis);
|
||||||
|
tcase_add_test(test_case, test_ascii);
|
||||||
tcase_add_test(test_case, test_version);
|
tcase_add_test(test_case, test_version);
|
||||||
tcase_add_test(test_case, test_usage);
|
tcase_add_test(test_case, test_usage);
|
||||||
tcase_add_test(test_case, test_errors);
|
tcase_add_test(test_case, test_errors);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
ॐ अग्निमी॑ळे पुरोहि॑तं यज्ञस्य॓ देवमृत्विज॑म् ।
|
ॐ अग्निमीळे पुरोहितं यज्ञस्य॓ देवमृत्विजम् ।
|
||||||
होता॑रं रत्नधात॑मम् ॥१॥
|
होता॑रं रत्नधात॑मम् ॥१॥
|
||||||
|
|
||||||
अग्निः पूर्वेभिरृषिभिरीड्यो नूतनैरुत ।
|
अग्निः पूर्वेभिरृषिभिरीड्यो नूतनैरुत ।
|
||||||
|
|
Loading…
Add table
Reference in a new issue