Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Dec 2004 20:09:27 -0500
From:      Chuck Swiger <cswiger@mac.com>
To:        Joshua Lokken <joshua.lokken@gmail.com>
Cc:        Questions <freebsd-questions@freebsd.org>
Subject:   Re: less -f
Message-ID:  <41D35547.5070105@mac.com>
In-Reply-To: <bc5b638504122913577a3faec1@mail.gmail.com>
References:  <bc5b638504122913577a3faec1@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Joshua Lokken wrote:
[ ... ]
> So, I did man less(1), and found this:
> 
> -f or --force
>    Forces non-regular files to be opened.  (A non-regular file is a
>    directory or a device special file.)  Also suppresses the  warn-
>    ing message when a binary file is opened.  By default, less will
>    refuse to open non-regular files.
> 
> However,:
[ ... ]
>less -f ~netmin/mydir
> /home/netmin/mydir is a directory
> 
> Can someone explain this behavior to me?  I admit that I may
> not understand the -f flag wholly, however, this seems in direct
> contradiction with the man page.

You're right, the manpage says and what the program actually does contradict 
each other.  Consider the following change to /usr/src/contrib/less:

--- filename.c~ Thu Jun 29 21:03:08 2000
+++ filename.c  Wed Dec 29 20:04:06 2004
@@ -954,10 +954,14 @@
         {
                 static char is_dir[] = " is a directory";

-               m = (char *) ecalloc(strlen(filename) + sizeof(is_dir),
-                       sizeof(char));
-               strcpy(m, filename);
-               strcat(m, is_dir);
+                if (force_open) {
+                    m = NULL;
+                } else {
+                    m = (char *) ecalloc(strlen(filename) + sizeof(is_dir),
+                                         sizeof(char));
+                    strcpy(m, filename);
+                    strcat(m, is_dir);
+                }
         } else
         {

-- 
-Chuck



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41D35547.5070105>