diff options
author | Xavier Roche <xroche@users.noreply.github.com> | 2013-05-20 20:03:14 +0000 |
---|---|---|
committer | Xavier Roche <xroche@users.noreply.github.com> | 2013-05-20 20:03:14 +0000 |
commit | 362ea71c8fc91d877ea790310dd61118ffd875f2 (patch) | |
tree | 9d9784c1068d92355571aa9651280d61b23e12a0 /src/htscoremain.c | |
parent | 257cb5de62b1e44ef03f081560dccd768cdd7b1d (diff) |
Added IDNA testing tool
Diffstat (limited to 'src/htscoremain.c')
-rw-r--r-- | src/htscoremain.c | 51 |
1 files changed, 44 insertions, 7 deletions
diff --git a/src/htscoremain.c b/src/htscoremain.c index d815952..b918ed0 100644 --- a/src/htscoremain.c +++ b/src/htscoremain.c @@ -2290,19 +2290,54 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp * opt) { return 0; } break; - case '3': // charset tests: httrack #3 "iso-8859-1" "café" - if (argc == 3) { + case '3': // charset tests: httrack -#3 "iso-8859-1" "café" + if (++na + 1 < argc) { char *s = - hts_convertStringToUTF8(argv[2], strlen(argv[2]), argv[1]); + hts_convertStringToUTF8(argv[na+1], strlen(argv[na+1]), argv[na]); if (s != NULL) { - printf(">> %s\n", s); + printf("%s\n", s); free(s); } else { - fprintf(stderr, "invalid string for charset %s\n", argv[1]); + fprintf(stderr, "invalid string for charset %s\n", argv[na]); } + na += 2; } else { - HTS_PANIC_PRINTF - ("Option #3 needs to be followed by a charset and a string"); + fprintf(stderr, + "Option #3 needs to be followed by a charset and a string"); + } + htsmain_free(); + return 0; + break; + case '4': // IDNA encoder: httrack -#4 "www.café.com" + if (++na < argc) { + char *s = hts_convertStringUTF8ToIDNA(argv[na], strlen(argv[na])); + if (s != NULL) { + printf("%s\n", s); + free(s); + } else { + fprintf(stderr, "invalid string '%s'\n", argv[na]); + } + na += 1; + } else { + fprintf(stderr, + "Option #4 needs to be followed by an IDNA string"); + } + htsmain_free(); + return 0; + break; + case '5': // IDNA encoder: httrack -#5 + if (++na < argc) { + char *s = hts_convertStringIDNAToUTF8(argv[na], strlen(argv[na])); + if (s != NULL) { + printf("%s\n", s); + free(s); + } else { + fprintf(stderr, "invalid string '%s'\n", argv[na]); + } + na += 1; + } else { + fprintf(stderr, + "Option #5 needs to be followed by an IDNA string"); } htsmain_free(); return 0; @@ -2321,6 +2356,8 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp * opt) { fprintf(stderr, "process returned error code %d\n", code); } } + htsmain_free(); + return 0; break; case 'd': opt->parsedebug = 1; |