We have written a diff to our ls(1) to recover the traditional behaviour
of -f implying -a. This change does not only accommodates POSIX.1
but also matches traditional UNIX.
OpenBSD commit message:
CVSROOT: /cvs
Module name: src
Changes by: sobrado@cvs.openbsd.org 2014/03/31 14:54:37
Modified files:
bin/ls : ls.1 ls.c
Log message:
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@
ls.1:
- Sort options in `SYNOPSIS', the option list, and texts within
the man page;
- improve wording;
- improve macro usage;
- use more consistency regarding (locations for) information about
which options override which;
- cross-reference `-d' and `-R';
- simplify description of `-k', removing redundant and unneeded
information;
- sort entry type list (but leave `-a' and `-A' as they are, given
their meaning);
- correct / augment description of `BLOCKSIZE' environment variable
in `ENVIRONMENT' section;
- bump date.
ls.c:
- Sort options in `usage';
- augment comment about when to figure out block size.
bin/ls sources to libutil:
o Bump libutil minor version number
o Fix uses to include <util.h> to pick up the function definitions
o Fix most uses of flags_to_string() to release the now-malloc()ed result
as long as a specific format (that could use COLUMNS) was requested.
This makes
env COLUMNS=50 ls -C > file
not surprise the user who clearly wanted some specific output in the file.
suggested by uwe@, inspired by FreeBSD. The three flags override
each other (and the '-q' flag) and behave as follows:
-B Force printing of non-printable characters in file names as
\xxx, where xxx is the numeric value of the character in octal.
-b As -B, but use C escape codes whenever possible.
-w Force raw printing of non-printable characters. This is the
default when output is not to a terminal.
as requested by several users.
POSIX-2001 is unclear on conflicting option letters as far as the -g
option is concerned; a clarification request will be made.
Addresses PR bin/21519 by Geoff Wing.
too. The code in display() could possibly be a bit smarter about this
requirement...
Fixes the problem in PR bin/18321 from David Laight and PR bin/18436
from FUKAUMI Naoki.
This allows other programs to link in against ls (e.g, ftpd), without having
to have hacks to deal with multiple main()s.
Yes, I know this is ugly. The clean alternative (move lots of this
into libutil, yada yada yada) isn't fun, and the effort probably isn't
justified...