summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/ls/ls.112
-rw-r--r--bin/ls/ls.c18
-rw-r--r--bin/ls/util.c4
3 files changed, 14 insertions, 20 deletions
diff --git a/bin/ls/ls.1 b/bin/ls/ls.1
index abace9e..3f1b084 100644
--- a/bin/ls/ls.1
+++ b/bin/ls/ls.1
@@ -32,7 +32,7 @@
.\" @(#)ls.1 8.7 (Berkeley) 7/29/94
.\" $FreeBSD$
.\"
-.Dd November 10, 2005
+.Dd November 16, 2005
.Dt LS 1
.Os
.Sh NAME
@@ -72,9 +72,9 @@ List all entries except for
.Pa \&.
and
.Pa .. .
-Always set for the super-user.
+Automatically set for the super-user unless
.Fl I
-cancel this option.
+is specified.
.It Fl B
Force printing of non-printable characters (as defined by
.Xr ctype 3
@@ -120,11 +120,9 @@ or
.Fl l
options are specified.
.It Fl I
-This option cancels the
-.Fl A
-option. Usually used by super-user when
+Prevent
.Fl A
-is not necessary.
+from being automatically set for the super-user.
.It Fl L
If argument is a symbolic link, list the file or directory the link references
rather than the link itself.
diff --git a/bin/ls/ls.c b/bin/ls/ls.c
index 1e7586b..f354fc2 100644
--- a/bin/ls/ls.c
+++ b/bin/ls/ls.c
@@ -110,8 +110,7 @@ int termwidth = 80; /* default terminal width */
static int f_kblocks; /* print size in kilobytes */
static int f_listdir; /* list actual directory, not contents */
static int f_listdot; /* list files beginning with . */
-static int f_nolistdot; /* don't list files beginning with . */
-static int f_forcelistdot; /* force list files beginning with . */
+static int f_noautodot; /* do not automatically enable -A for root */
int f_longform; /* long listing format */
int f_nonprint; /* show unprintables as ? */
static int f_nosort; /* don't sort output */
@@ -241,13 +240,12 @@ main(int argc, char *argv[])
break;
case 'a':
fts_options |= FTS_SEEDOT;
- f_forcelistdot = 1;
- break;
+ /* FALLTHROUGH */
case 'A':
f_listdot = 1;
break;
case 'I':
- f_nolistdot = 1;
+ f_noautodot = 1;
break;
/* The -d option turns off the -R option. */
case 'd':
@@ -328,8 +326,8 @@ main(int argc, char *argv[])
argc -= optind;
argv += optind;
- /* Root is -A automatically. */
- if (!getuid() && !f_nolistdot)
+ /* Root is -A automatically unless -I. */
+ if (!f_listdot && getuid() == (uid_t)0 && !f_noautodot)
f_listdot = 1;
/* Enabling of colours is conditional on the environment. */
@@ -496,8 +494,7 @@ traverse(int argc, char *argv[], int options)
break;
case FTS_D:
if (p->fts_level != FTS_ROOTLEVEL &&
- p->fts_name[0] == '.' && ((!f_listdot ||
- f_nolistdot) && !f_forcelistdot))
+ p->fts_name[0] == '.' && !f_listdot)
break;
/*
@@ -657,8 +654,7 @@ display(const FTSENT *p, FTSENT *list, int options)
}
} else {
/* Only display dot file if -a/-A set. */
- if (cur->fts_name[0] == '.' && ((!f_listdot ||
- f_nolistdot) && !f_forcelistdot)) {
+ if (cur->fts_name[0] == '.' && !f_listdot) {
cur->fts_number = NO_PRINT;
continue;
}
diff --git a/bin/ls/util.c b/bin/ls/util.c
index 914b030..01ae6cb 100644
--- a/bin/ls/util.c
+++ b/bin/ls/util.c
@@ -222,9 +222,9 @@ usage(void)
{
(void)fprintf(stderr,
#ifdef COLORLS
- "usage: ls [-ABCFGHLPRSTWZabcdfghiklmnopqrstuwx1]"
+ "usage: ls [-ABCFGHILPRSTWZabcdfghiklmnopqrstuwx1]"
#else
- "usage: ls [-ABCFHLPRSTWZabcdfghiklmnopqrstuwx1]"
+ "usage: ls [-ABCFHILPRSTWZabcdfghiklmnopqrstuwx1]"
#endif
" [file ...]\n");
exit(1);
OpenPOWER on IntegriCloud