-/*----- Test code ---------------------------------------------------------*/
-
-static int encode(int argc, char *argv[])
-{
- const char *of = 0;
- FILE *ofp = 0;
- FILE *fp = 0;
- const char *ef = "binary";
- const char *bd = "MESSAGE";
- int i;
- size_t n;
- char buf[4096];
- unsigned f = 0;
- const encops *eo;
- enc *e;
-
-#define f_bogus 1u
-
- for (;;) {
- static const struct option opt[] = {
- { "format", OPTF_ARGREQ, 0, 'f' },
- { "boundary", OPTF_ARGREQ, 0, 'b' },
- { "output", OPTF_ARGREQ, 0, 'o' },
- { 0, 0, 0, 0 }
- };
- i = mdwopt(argc, argv, "f:b:o:", opt, 0, 0, 0);
- if (i < 0) break;
- switch (i) {
- case 'f': ef = optarg; break;
- case 'b': bd = optarg; break;
- case 'o': of = optarg; break;
- default: f |= f_bogus; break;
- }
- }
- if (argc - optind > 1 || (f & f_bogus))
- die(EXIT_FAILURE, "Usage: encode [-options] [file]");
-
- if ((eo = getenc(ef)) == 0)
- die(EXIT_FAILURE, "encoding `%s' not found", ef);
-
- if (optind == argc)
- fp = stdin;
- else if (strcmp(argv[optind], "-") == 0) {
- fp = stdin;
- optind++;
- } else if ((fp = fopen(argv[optind], "rb")) == 0) {
- die(EXIT_FAILURE, "couldn't open file `%s': %s",
- argv[optind], strerror(errno));
- } else
- optind++;
-
- if (!of || strcmp(of, "-") == 0)
- ofp = stdout;
- else if ((ofp = fopen(of, eo->wmode)) == 0) {
- die(EXIT_FAILURE, "couldn't open file `%s' for output: %s",
- ofp, strerror(errno));
- }
-
- e = initenc(eo, ofp, bd, 1);
-
- do {
- n = fread(buf, 1, sizeof(buf), fp);
- if (e->ops->write(e, buf, n))
- die(EXIT_FAILURE, "error writing output: %s", strerror(errno));
- } while (n == sizeof(buf));
- e->ops->encdone(e);
- freeenc(e);
- return (0);
-
-#undef f_bogus
-}