From 5e96c5f7d329a979aa36e5c66d9affe529ea852d Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Fri, 8 Feb 2019 16:32:51 -0500 Subject: Add hi -n --- bin/hi.c | 10 +++++++--- bin/man1/hi.1 | 6 +++++- 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 -- cgit 1.4.1