diff options
Diffstat (limited to 'libwc/test.c')
-rw-r--r-- | libwc/test.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/libwc/test.c b/libwc/test.c new file mode 100644 index 0000000..a00ce23 --- /dev/null +++ b/libwc/test.c @@ -0,0 +1,38 @@ + +#include <stdio.h> +#include <stdlib.h> +#include "wc.h" + +int +main(int argc, char **argv) +{ + Str s = Strnew(); + wc_ces old, from, to; + FILE *f; + + if (argc < 3) { + fprintf(stderr, "wctest <form> <to> [<file>]\n"); + exit(1); + } + + from = wc_guess_charset_short(argv[1], 0); + to = wc_guess_charset_short(argv[2], 0); + if (argc > 3) + f = fopen(argv[3], "r"); + else + f = stdin; + if (f == NULL) exit(2); + + fprintf(stderr, "%s -> %s\n", wc_ces_to_charset(from), wc_ces_to_charset(to)); + while (1) { + s = Strfgets(f); + if (!s->length) + break; + old = from; + s = wc_Str_conv_with_detect(s, &from, from, to); + if (from != old) + fprintf(stderr, "%s ->\n", wc_ces_to_charset(from)); + printf("%s", s->ptr); + } + return 0; +} |