man(1): tweak literal file interpretation
authorFranco Fichtner <franco@lastsummer.de>
Sat, 5 Oct 2013 16:01:07 +0000 (18:01 +0200)
committerFranco Fichtner <franco@lastsummer.de>
Sun, 6 Oct 2013 11:58:46 +0000 (13:58 +0200)
The previous behaviour would not catch the following invoke:

    # man usr.bin/man/man.1

Now, as a generalised rule, the literal interpretation is triggered by
any '/' character in the requested page(s).

usr.bin/man/man.c

index 7e5343c..2bec0d4 100644 (file)
@@ -536,10 +536,10 @@ manual(char *page, struct manstate *mp, glob_t *pg)
        *eptr = '\0';
 
        /*
-        * If 'page' is given with a full or relative path
-        * then interpret it as a file specification.
+        * If 'page' contains a slash then it's
+        * interpreted as a file specification.
         */
-       if ((page[0] == '/') || (page[0] == '.')) {
+       if (strchr(page, '/')) {
                /* check if file actually exists */
                (void)strlcpy(buf, escpage, sizeof(buf));
                error = glob(buf, GLOB_APPEND | GLOB_BRACE | GLOB_NOSORT, NULL, pg);