#include #include #include #include #include #include #include #include #define HEADER "" #define FOOTER "" int main(int argc, char *argv[]) { int ch; int infd; int outfd; char *in; char *out; struct gemtext **list; in = "/dev/stdin"; out = "/dev/stdout"; while ((ch = getopt(argc, argv, "i:o:h")) != -1) { switch (ch) { case 'i': in = optarg; break; case 'o': out = optarg; break; case 'h': fprintf(stderr, "Usage: %s [-h] [-i input] [-o output]\n", argv[0]); return 0; default: fprintf(stderr, "Usage: %s [-h] [-i input] [-o output]\n", argv[0]); return 1; } } infd = open(in, O_RDONLY); if (infd == -1) err(1, "open"); outfd = open(out, O_WRONLY|O_CREAT|O_TRUNC); if (outfd == -1) err(1, "open"); list = gemtext_list_decode_fd(infd); if (list == NULL) err(1, "gemtext_list_decode_fd"); close(infd); if (write(outfd, HEADER, strlen(HEADER)) == -1) err(1, "write"); if (gemtext_list_encode_to_html_fd(list, outfd) == -1) err(1, "gemtext_list_encode_to_html_fd"); if (write(outfd, FOOTER, strlen(FOOTER)) == -1) err(1, "write"); close(outfd); gemtext_list_free(list); return 0; }