summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bin/hi.c10
-rw-r--r--bin/man1/hi.16
2 files changed, 12 insertions, 4 deletions
diff --git a/bin/hi.c b/bin/hi.c
index 2d88f30d..cfb45f32 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) {
diff --git a/bin/man1/hi.1 b/bin/man1/hi.1
index e3223b48..a9968774 100644
--- a/bin/man1/hi.1
+++ b/bin/man1/hi.1
@@ -10,6 +10,7 @@
 .Nm
 .Op Fl f Ar format
 .Op Fl l Ar lang
+.Op Fl n Ar name
 .Op Ar file
 .Nm
 .Fl c
@@ -40,8 +41,11 @@ Set the input language.
 If a
 .Ar file
 is provided,
-.Ar lang
+the input language
 may be inferred from its name.
+.It Fl n Ar name
+Override the name used
+to infer the input language.
 .El
 .
 .Pp