Fix cmdline argument check - sent - simple plaintext presentation tool | |
git clone git://git.suckless.org/sent | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit b954ed4b9f1ef7e3d4ebb3bc964338726549bfab | |
parent 616aafdcb9bd336a870d875a20645d8002d8a028 | |
Author: Markus Teich <[email protected]> | |
Date: Sun, 6 Mar 2016 20:49:18 +0100 | |
Fix cmdline argument check | |
There was a segfault when sent was called without arguments. Now we use stdin | |
when there's no argument or - is used. Thanks to izabera for the report. | |
Diffstat: | |
M README.md | 10 +++++----- | |
M sent.c | 13 +++++++------ | |
2 files changed, 12 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/README.md b/README.md | |
@@ -25,12 +25,12 @@ You can navigate with the arrow keys and quit with `q`. | |
Usage | |
- sent FILE | |
+ sent [FILE] | |
-If FILE equals `-`, stdin will be read. Produce image slides by prepending a | |
-`@` in front of the filename as a single paragraph. Lines starting with `#` wi… | |
-be ignored. A `\` at the beginning of the line escapes `@` and `#`. A | |
-presentation file could look like this: | |
+If FILE is omitted or equals `-`, stdin will be read. Produce image slides by | |
+prepending a `@` in front of the filename as a single paragraph. Lines starting | |
+with `#` will be ignored. A `\` at the beginning of the line escapes `@` and | |
+`#`. A presentation file could look like this: | |
sent | |
diff --git a/sent.c b/sent.c | |
@@ -689,7 +689,7 @@ void | |
usage() | |
{ | |
die("sent " VERSION " (c) 2014-2015 [email protected]\n" \ | |
- "usage: sent FILE", argv0); | |
+ "usage: sent [FILE]", argv0); | |
} | |
int | |
@@ -703,12 +703,13 @@ main(int argc, char *argv[]) | |
usage(); | |
} ARGEND; | |
- if ((fp = strcmp(argv[0], "-") ? fopen(argv[0], "r") : stdin)) { | |
- load(fp); | |
- fclose(fp); | |
- } else { | |
+ if (!argv[0] || !strcmp(argv[0], "-")) | |
+ fp = stdin; | |
+ else if (!(fp = fopen(argv[0], "r"))) | |
die("Unable to open '%s' for reading:", argv[0]); | |
- } | |
+ | |
+ load(fp); | |
+ fclose(fp); | |
if (!slidecount) | |
usage(); |