summary refs log tree commit diff
path: root/bin/hi.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-02-08 16:32:51 -0500
committerJune McEnroe <june@causal.agency>2019-02-08 16:32:51 -0500
commit2ae64d8f4489345d40b38cc45a451edd04b62c61 (patch)
treeedfdefbf5c085c620493bb9993434dcd11d1215e /bin/hi.c
parentElaborate hi man page (diff)
downloadsrc-2ae64d8f4489345d40b38cc45a451edd04b62c61.tar.gz
src-2ae64d8f4489345d40b38cc45a451edd04b62c61.zip
Add hi -n
Diffstat (limited to 'bin/hi.c')
-rw-r--r--bin/hi.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/bin/hi.c b/bin/hi.c
index cd24ea07..705ea345 100644
--- a/bin/hi.c
+++ b/bin/hi.c
@@ -419,11 +419,12 @@ static const struct Format {
 };
 
 int main(int argc, char *argv[]) {
+	const char *name = NULL;
 	const struct Language *lang = NULL;
 	const struct Format *format = NULL;
 	
 	int opt;
-	while (0 < (opt = getopt(argc, argv, "cf:l:"))) {
+	while (0 < (opt = getopt(argc, argv, "cf:l:n:"))) {
 		switch (opt) {
 			break; case 'c': {
 				check();
@@ -445,6 +446,7 @@ int main(int argc, char *argv[]) {
 				}
 				if (!lang) errx(EX_USAGE, "no such language %s", optarg);
 			}
+			break; case 'n': name = optarg;
 			break; default: return EX_USAGE;
 		}
 	}
@@ -457,8 +459,10 @@ int main(int argc, char *argv[]) {
 		if (!file) err(EX_NOINPUT, "%s", path);
 	}
 
-	const char *name = strrchr(path, '/');
-	name = (name ? &name[1] : path);
+	if (!name) {
+		name = strrchr(path, '/');
+		name = (name ? &name[1] : path);
+	}
 
 	if (!lang) {
 		for (size_t i = 0; i < ARRAY_LEN(Languages); ++i) {