diff options
author | June McEnroe <june@causal.agency> | 2019-02-08 16:32:51 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-02-08 16:32:51 -0500 |
commit | 5e96c5f7d329a979aa36e5c66d9affe529ea852d (patch) | |
tree | 337543773006099d7f822ff8db8f996b43c57abf | |
parent | Elaborate hi man page (diff) | |
download | src-5e96c5f7d329a979aa36e5c66d9affe529ea852d.tar.gz src-5e96c5f7d329a979aa36e5c66d9affe529ea852d.zip |
Add hi -n
-rw-r--r-- | bin/hi.c | 10 | ||||
-rw-r--r-- | 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 |