ls(1): Restore the traditional behavior of -f implying -a.
authorSascha Wildner <saw@online.de>
Thu, 3 Apr 2014 07:21:04 +0000 (09:21 +0200)
committerSascha Wildner <saw@online.de>
Thu, 3 Apr 2014 07:21:04 +0000 (09:21 +0200)
OpenBSD's commit msg:

------
restore the traditional behavior of -f implying -a; apparently Keith Bostic
forgot to restore it when the -f flag was put back on 2nd of September 1989,
after being removed on 16th of August as a consequence of issues getting it
working over NFS, so deviation from traditional UNIX behavior in all BSDs
looks like an historical accident; as a side effect, this change accommodates
behavior of this option to IEEE Std 1003.1-2008 (``POSIX.1'').

joint work with jmc@ (who found the inaccuracy in our implementation),
schwarze@ (who provided a detailed tracking of historical facts) and millert@

ok millert@, schwarze@
------

The same patch has been pushed to NetBSD and FreeBSD too.

Submitted-by: Igor Sobrado
Taken-from:   OpenBSD

bin/ls/ls.1
bin/ls/ls.c

index 6419620..f2c2483 100644 (file)
@@ -31,7 +31,7 @@
 .\"     @(#)ls.1       8.7 (Berkeley) 7/29/94
 .\" $FreeBSD: src/bin/ls/ls.1,v 1.86 2005/02/13 22:25:09 ru Exp $
 .\"
-.Dd September 25, 2008
+.Dd March 4, 2014
 .Dt LS 1
 .Os
 .Sh NAME
@@ -169,6 +169,8 @@ Use time when file status was last changed for sorting or printing.
 Directories are listed as plain files (not searched recursively).
 .It Fl f
 Output is not sorted.
+This option implies
+.Fl a .
 .It Fl g
 This option is deprecated and is only available for compatibility
 with
index 3800d16..604d4ad 100644 (file)
@@ -32,7 +32,6 @@
  * @(#) Copyright (c) 1989, 1993, 1994 The Regents of the University of California.  All rights reserved.
  * @(#)ls.c    8.5 (Berkeley) 4/2/94
  * $FreeBSD: src/bin/ls/ls.c,v 1.78 2004/06/08 09:30:10 das Exp $
- * $DragonFly: src/bin/ls/ls.c,v 1.17 2008/01/19 15:33:42 matthias Exp $
  */
 
 #include <sys/types.h>
@@ -245,6 +244,9 @@ main(int argc, char *argv[])
                case 'S':
                        f_sortsize = 1;
                        break;
+               case 'f':
+                       f_nosort = 1;
+                      /* FALLTHROUGH */
                case 'a':
                        fts_options |= FTS_SEEDOT;
                        /* FALLTHROUGH */
@@ -256,9 +258,6 @@ main(int argc, char *argv[])
                        f_listdir = 1;
                        f_recursive = 0;
                        break;
-               case 'f':
-                       f_nosort = 1;
-                       break;
                case 'g':       /* Compatibility with 4.3BSD. */
                        break;
                case 'h':