summaryrefslogtreecommitdiff
path: root/gn.c
diff options
context:
space:
mode:
Diffstat (limited to 'gn.c')
-rw-r--r--gn.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/gn.c b/gn.c
index 7405b9a..b56d934 100644
--- a/gn.c
+++ b/gn.c
@@ -20,6 +20,7 @@ typedef enum outputformats {
GOATNOTE,
HTML,
GROFF,
+ TEXT,
} outputformats;
outputformats outputformat;
@@ -78,31 +79,41 @@ int readuntil(char *file, int off, char end, types t) {
return off;
}
+void usage() {
+ fprintf(stderr,
+ "usage: gn [-l -c -o format -p -H header -F footer -h] < note.gn\n"
+ );
+ exit(1);
+}
+
int main(int argc, char **argv) {
- for (int i = 0; i < argc && argc != 1; i++) {
+ for (int i = 1; i < argc && argc != 1; i++) {
if (strcmp(argv[i], "-l") == 0) m |= LIST;
- if (strcmp(argv[i], "-c") == 0) m |= CHECK;
- if (strcmp(argv[i], "-o") == 0) {
+ else if (strcmp(argv[i], "-c") == 0) m |= CHECK;
+ else if (strcmp(argv[i], "-o") == 0) {
i++;
if (!(i < argc)) eprint("expecet additional argument after -o!") ;
if (strcmp(argv[i], "goatnote") == 0) outputformat = GOATNOTE;
else if (strcmp(argv[i], "html") == 0) outputformat = HTML;
else if (strcmp(argv[i], "groff") == 0) outputformat = GROFF;
+ else if (strcmp(argv[i], "text") == 0) outputformat = TEXT;
m |= OUTPUT;
}
- if (strcmp(argv[i], "-p") == 0) m |= PRETTY;
- if (strcmp(argv[i], "-h") == 0) {
+ else if (strcmp(argv[i], "-p") == 0) m |= PRETTY;
+ else if (strcmp(argv[i], "-H") == 0) {
i++;
- if (!(i < argc)) eprint("expecet additional argument after -h!");
+ if (!(i < argc)) eprint("expecet additional argument after -H!");
header = argv[i];
}
- if (strcmp(argv[i], "-f") == 0) {
+ else if (strcmp(argv[i], "-F") == 0) {
i++;
- if (!(i < argc)) eprint("expecet additional argument after -f!");
+ if (!(i < argc)) eprint("expecet additional argument after -F!");
footer = argv[i];
}
+ else if (strcmp(argv[i], "-h") == 0) usage();
+ else usage();
}
@@ -154,6 +165,7 @@ int main(int argc, char **argv) {
case HTML: printashtml(tokens[i]); break;
case GOATNOTE: printasgn(tokens[i]); break;
case GROFF: printasgroff(tokens[i]); break;
+ case TEXT: printastext(tokens[i]); break;
}
}
}