]> git.saurik.com Git - apple/file_cmds.git/commitdiff
file_cmds-212.tar.gz mac-os-x-107 mac-os-x-1071 mac-os-x-1072 v212
authorApple <opensource@apple.com>
Thu, 21 Oct 2010 21:08:57 +0000 (21:08 +0000)
committerApple <opensource@apple.com>
Thu, 21 Oct 2010 21:08:57 +0000 (21:08 +0000)
40 files changed:
Makefile
chflags/Makefile
chflags/chflags.1
chflags/chflags.c
chmod/Makefile
chmod/chmod_acl.c
chown/Makefile
cksum/Makefile
compress/Makefile
cp/Makefile
dd/Makefile
dd/args.c
df/Makefile
du/Makefile
du/du.c
install/Makefile
ipcrm/Makefile
ipcrm/ipcrm.c
ipcs/Makefile
ln/Makefile
ls/Makefile
ls/extern.h
ls/humanize_number.c [deleted file]
ls/ls.h
ls/print.c
mkdir/Makefile
mkfifo/Makefile
mknod/Makefile
mtree/Makefile
mv/Makefile
pathchk/Makefile
pax/Makefile
pax/options.c
rm/Makefile
rmdir/Makefile
rmt/Makefile
stat/Makefile
touch/Makefile
touch/touch.1
touch/touch.c

index 0f1207be52ae0d9ada0878be4ed581eb62e73877..3253a66ae5caba00a5813c3b8aaa580012e5ee82 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,13 @@
 Project = file_cmds
 
 SubProjects = chflags chmod chown cksum compress cp dd df du install \
 Project = file_cmds
 
 SubProjects = chflags chmod chown cksum compress cp dd df du install \
-       ipcrm ipcs ln ls mkdir mkfifo mknod mtree mv pathchk pax rm \
+       ipcrm ipcs ln ls mkdir mkfifo mknod mv pathchk pax rm \
        rmdir shar stat touch
 
        rmdir shar stat touch
 
+Embedded = $(shell tconf --test TARGET_OS_EMBEDDED)
+ifneq ($(Embedded),YES)
+       #libcrypto missing
+       SubProjects += mtree
+endif
+
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 00f6bf6730f08f0795b28acd9e1451a75852df22..3fe0c3724e78492d5b78073e580aa2a76396b6b4 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = chflags.c
 MANPAGES = chflags.1
 
 CFILES = chflags.c
 MANPAGES = chflags.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 45d65a434f95daf5110825a8039d1fe513ed4dd7..5eb3dfc84c3f79c47a7a3a616f1ed263c0babd2c 100644 (file)
@@ -30,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)chflags.1   8.4 (Berkeley) 5/2/95
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)chflags.1   8.4 (Berkeley) 5/2/95
-.\" $FreeBSD: src/bin/chflags/chflags.1,v 1.25 2005/06/14 08:25:54 ru Exp $
+.\" $FreeBSD: src/bin/chflags/chflags.1,v 1.30.2.1.2.1 2009/10/25 01:10:29 kensmith Exp $
 .\"
 .\"
-.Dd May 14, 2005
+.Dd March 3, 2006
 .Dt CHFLAGS 1
 .Os
 .Sh NAME
 .Dt CHFLAGS 1
 .Os
 .Sh NAME
@@ -40,6 +40,7 @@
 .Nd change file flags
 .Sh SYNOPSIS
 .Nm
 .Nd change file flags
 .Sh SYNOPSIS
 .Nm
+.Op Fl fhv
 .Oo
 .Fl R
 .Op Fl H | Fl L | Fl P
 .Oo
 .Fl R
 .Op Fl H | Fl L | Fl P
@@ -56,11 +57,22 @@ operand.
 .Pp
 The options are as follows:
 .Bl -tag -width indent
 .Pp
 The options are as follows:
 .Bl -tag -width indent
+.It Fl f
+Do not display a diagnostic message if
+.Nm
+could not modify the flags for
+.Va file ,
+nor modify the exit status to reflect such failures.
 .It Fl H
 If the
 .Fl R
 option is specified, symbolic links on the command line are followed.
 (Symbolic links encountered in the tree traversal are not followed.)
 .It Fl H
 If the
 .Fl R
 option is specified, symbolic links on the command line are followed.
 (Symbolic links encountered in the tree traversal are not followed.)
+.It Fl h
+If the
+.Ar file
+is a symbolic link,
+change the file flags of the link itself rather than the file to which it points.
 .It Fl L
 If the
 .Fl R
 .It Fl L
 If the
 .Fl R
@@ -73,29 +85,37 @@ This is the default.
 .It Fl R
 Change the file flags for the file hierarchies rooted
 in the files instead of just the files themselves.
 .It Fl R
 Change the file flags for the file hierarchies rooted
 in the files instead of just the files themselves.
+.It Fl v
+Cause
+.Nm
+to be verbose, showing filenames as the flags are modified.
+If the
+.Fl v
+option is specified more than once, the old and new flags of the file
+will also be printed, in octal notation.
 .El
 .Pp
 The flags are specified as an octal number or a comma separated list
 of keywords.
 The following keywords are currently defined:
 .Pp
 .El
 .Pp
 The flags are specified as an octal number or a comma separated list
 of keywords.
 The following keywords are currently defined:
 .Pp
-.Bl -tag -offset indent -width ".Ar opaque"
-.It Ar arch , archived
+.Bl -tag -offset indent -width ".Cm opaque"
+.It Cm arch , archived
 set the archived flag (super-user only)
 set the archived flag (super-user only)
-.It Ar opaque
+.It Cm opaque
 set the opaque flag (owner or super-user only).
 [Directory is opaque when viewed through a union mount]
 set the opaque flag (owner or super-user only).
 [Directory is opaque when viewed through a union mount]
-.It Ar nodump
+.It Cm nodump
 set the nodump flag (owner or super-user only)
 set the nodump flag (owner or super-user only)
-.It Ar sappnd , sappend
+.It Cm sappnd , sappend
 set the system append-only flag (super-user only)
 set the system append-only flag (super-user only)
-.It Ar schg , schange , simmutable
+.It Cm schg , schange , simmutable
 set the system immutable flag (super-user only)
 set the system immutable flag (super-user only)
-.It Ar uappnd , uappend
+.It Cm uappnd , uappend
 set the user append-only flag (owner or super-user only)
 set the user append-only flag (owner or super-user only)
-.It Ar uchg , uchange , uimmutable
+.It Cm uchg , uchange , uimmutable
 set the user immutable flag (owner or super-user only)
 set the user immutable flag (owner or super-user only)
-.It Ar hidden
+.It Cm hidden
 set the hidden flag
 [Hide item from GUI]
 .El
 set the hidden flag
 [Hide item from GUI]
 .El
index 216b945465a030e251a78966abccda3be525a832..76c8027a0ca6d04d58e16950832a01712a030c1c 100644 (file)
@@ -40,7 +40,7 @@ static char sccsid[] = "@(#)chflags.c 8.5 (Berkeley) 4/1/94";
 #endif
 
 #include <sys/cdefs.h>
 #endif
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/chflags/chflags.c,v 1.23 2005/05/14 23:23:10 dd Exp $");
+__FBSDID("$FreeBSD: src/bin/chflags/chflags.c,v 1.26.2.1.2.1 2009/10/25 01:10:29 kensmith Exp $");
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -53,25 +53,22 @@ __FBSDID("$FreeBSD: src/bin/chflags/chflags.c,v 1.23 2005/05/14 23:23:10 dd Exp
 #include <string.h>
 #include <unistd.h>
 
 #include <string.h>
 #include <unistd.h>
 
-void   usage(void);
+static void usage(void);
 
 int
 main(int argc, char *argv[])
 {
        FTS *ftsp;
        FTSENT *p;
 
 int
 main(int argc, char *argv[])
 {
        FTS *ftsp;
        FTSENT *p;
-       u_long clear, set;
+       u_long clear, newflags, set;
        long val;
        long val;
-       int Hflag, Lflag, Rflag, hflag, ch, fts_options, oct, rval;
+       int Hflag, Lflag, Rflag, fflag, hflag, vflag;
+       int ch, fts_options, oct, rval;
        char *flags, *ep;
        int (*change_flags)(const char *, u_int);
 
        char *flags, *ep;
        int (*change_flags)(const char *, u_int);
 
-       Hflag = Lflag = Rflag = hflag = 0;
-#ifdef __APPLE__
-       while ((ch = getopt(argc, argv, "HLPR")) != -1)
-#else /* !__APPLE__ */
-       while ((ch = getopt(argc, argv, "HLPRh")) != -1)
-#endif /* __APPLE__ */
+       Hflag = Lflag = Rflag = fflag = hflag = vflag = 0;
+       while ((ch = getopt(argc, argv, "HLPRfhv")) != -1)
                switch (ch) {
                case 'H':
                        Hflag = 1;
                switch (ch) {
                case 'H':
                        Hflag = 1;
@@ -87,11 +84,15 @@ main(int argc, char *argv[])
                case 'R':
                        Rflag = 1;
                        break;
                case 'R':
                        Rflag = 1;
                        break;
-#ifndef __APPLE__
+               case 'f':
+                       fflag = 1;
+                       break;
                case 'h':
                        hflag = 1;
                        break;
                case 'h':
                        hflag = 1;
                        break;
-#endif /* !__APPLE__ */
+               case 'v':
+                       vflag++;
+                       break;
                case '?':
                default:
                        usage();
                case '?':
                default:
                        usage();
@@ -114,14 +115,11 @@ main(int argc, char *argv[])
                        fts_options |= FTS_LOGICAL;
                }
        } else
                        fts_options |= FTS_LOGICAL;
                }
        } else
-               fts_options = FTS_LOGICAL;
+               fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL;
 
 
-       /* XXX: Why don't chflags and lchflags have compatible prototypes? */
-#ifndef __APPLE__
        if (hflag)
        if (hflag)
-               change_flags = (int (*)(const char *, u_int))lchflags;
+               change_flags = lchflags;
        else
        else
-#endif /* !__APPLE__ */
                change_flags = chflags;
 
        flags = *argv;
                change_flags = chflags;
 
        flags = *argv;
@@ -174,32 +172,33 @@ main(int argc, char *argv[])
                default:
                        break;
                }
                default:
                        break;
                }
-               if (oct) {
-                       if (!(*change_flags)(p->fts_accpath, set))
-                               continue;
-               } else {
-                       p->fts_statp->st_flags |= set;
-                       p->fts_statp->st_flags &= clear;
-                       if (!(*change_flags)(p->fts_accpath,
-                                   (u_long)p->fts_statp->st_flags))
-                               continue;
+               if (oct)
+                       newflags = set;
+               else
+                       newflags = (p->fts_statp->st_flags | set) & clear;
+               if (newflags == p->fts_statp->st_flags)
+                       continue;
+               if ((*change_flags)(p->fts_accpath, (u_int)newflags) && !fflag) {
+                       warn("%s", p->fts_path);
+                       rval = 1;
+               } else if (vflag) {
+                       (void)printf("%s", p->fts_path);
+                       if (vflag > 1)
+                               (void)printf(": 0%lo -> 0%lo",
+                                   (u_long)p->fts_statp->st_flags,
+                                   newflags);
+                       (void)printf("\n");
                }
                }
-               warn("%s", p->fts_path);
-               rval = 1;
        }
        if (errno)
                err(1, "fts_read");
        exit(rval);
 }
 
        }
        if (errno)
                err(1, "fts_read");
        exit(rval);
 }
 
-void
+static void
 usage(void)
 {
        (void)fprintf(stderr,
 usage(void)
 {
        (void)fprintf(stderr,
-#ifdef __APPLE__
-           "usage: chflags [-R [-H | -L | -P]] flags file ...\n");
-#else /* !__APPLE__ */
-           "usage: chflags [-h] [-R [-H | -L | -P]] flags file ...\n");
-#endif /* __APPLE__ */
+           "usage: chflags [-fhv] [-R [-H | -L | -P]] flags file ...\n");
        exit(1);
 }
        exit(1);
 }
index 1109dc08f8cf597a6b747caa8b3a13dbe71c21ef..559dc75f26755b2a94d60d8c7e8df61da4f77686 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = chmod.c chmod_acl.c
 MANPAGES = chmod.1
 
 CFILES = chmod.c chmod_acl.c
 MANPAGES = chmod.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 16ed9f27178cf6a53d02c13651d98a2b02acfa0e..dd9f51ed22f72caa572c11e1dc0dccfc3f1e56f0 100644 (file)
@@ -362,9 +362,16 @@ compare_acl_entries(acl_entry_t a, acl_entry_t b)
        acl_permset_t aperms, bperms;
        acl_flagset_t aflags, bflags;
        int pcmp = 0, fcmp = 0;
        acl_permset_t aperms, bperms;
        acl_flagset_t aflags, bflags;
        int pcmp = 0, fcmp = 0;
+       void *aqual, *bqual;
 
 
-       if (0 != compare_acl_qualifiers(acl_get_qualifier(a), 
-                                       acl_get_qualifier(b)))
+       aqual = acl_get_qualifier(a);
+       bqual = acl_get_qualifier(b);
+
+       int compare = compare_acl_qualifiers(aqual, bqual);
+       acl_free(aqual);
+       acl_free(bqual);
+
+       if (compare != 0)
                return MATCH_NONE;
 
        if (0 != acl_get_tag_type(a, &atag))
                return MATCH_NONE;
 
        if (0 != acl_get_tag_type(a, &atag))
index a3998095b2d80993d78c269744aa1aafc3541320..fac4c1dc01096bf9b09f57a3d58394c23a0fe8aa 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/sbin
 CFILES = chown.c
 MANPAGES = chgrp.1 chown.8
 
 CFILES = chown.c
 MANPAGES = chgrp.1 chown.8
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 8f3bb259450aab608f5a2eaf8fb83875b4a8a045..7f86cfe1998563aa95d60402552c633045eaa600 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = cksum.c crc.c print.c sum1.c sum2.c crc32.c
 MANPAGES = cksum.1
 
 CFILES = cksum.c crc.c print.c sum1.c sum2.c crc32.c
 MANPAGES = cksum.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 3ed5f11f35af2827aebc56725e0e7639a20715ac..f334eb5f1a2059bf5d5a3430e023e945277fa8de 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = compress.c zopen.c
 MANPAGES = compress.1 uncompress.1 zopen.3
 
 CFILES = compress.c zopen.c
 MANPAGES = compress.1 uncompress.1 zopen.3
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 9a7b78dc7b5b43f31a1fa709fa3d92f0b92bd6db..3975d2a8a8e47849fde340af6fdbe8099c0fedef 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = cp.c utils.c
 MANPAGES = cp.1
 
 CFILES = cp.c utils.c
 MANPAGES = cp.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index caf51623223ade6a9242680f2b8a3231744c5cd6..d7a181ee5ab275586fdf26599a681189aea25000 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = args.c conv.c conv_tab.c dd.c misc.c position.c
 MANPAGES = dd.1
 
 CFILES = args.c conv.c conv_tab.c dd.c misc.c position.c
 MANPAGES = dd.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index e7e06274e09557f1fe25efb6f0a0b43089caf8ac..646dffd7309776bbfb931cbde89bc9e870486806 100644 (file)
--- a/dd/args.c
+++ b/dd/args.c
@@ -188,7 +188,7 @@ f_bs(char *arg)
 
        res = get_num(arg);
        if (res < 1 || res > SSIZE_MAX)
 
        res = get_num(arg);
        if (res < 1 || res > SSIZE_MAX)
-               errx(1, "bs must be between 1 and %d", SSIZE_MAX);
+               errx(1, "bs must be between 1 and %ld", SSIZE_MAX);
        in.dbsz = out.dbsz = (size_t)res;
 }
 
        in.dbsz = out.dbsz = (size_t)res;
 }
 
@@ -199,7 +199,7 @@ f_cbs(char *arg)
 
        res = get_num(arg);
        if (res < 1 || res > SSIZE_MAX)
 
        res = get_num(arg);
        if (res < 1 || res > SSIZE_MAX)
-               errx(1, "cbs must be between 1 and %d", SSIZE_MAX);
+               errx(1, "cbs must be between 1 and %ld", SSIZE_MAX);
        cbsz = (size_t)res;
 }
 
        cbsz = (size_t)res;
 }
 
@@ -231,7 +231,7 @@ f_ibs(char *arg)
        if (!(ddflags & C_BS)) {
                res = get_num(arg);
                if (res < 1 || res > SSIZE_MAX)
        if (!(ddflags & C_BS)) {
                res = get_num(arg);
                if (res < 1 || res > SSIZE_MAX)
-                       errx(1, "ibs must be between 1 and %d", SSIZE_MAX);
+                       errx(1, "ibs must be between 1 and %ld", SSIZE_MAX);
                in.dbsz = (size_t)res;
        }
 }
                in.dbsz = (size_t)res;
        }
 }
@@ -251,7 +251,7 @@ f_obs(char *arg)
        if (!(ddflags & C_BS)) {
                res = get_num(arg);
                if (res < 1 || res > SSIZE_MAX)
        if (!(ddflags & C_BS)) {
                res = get_num(arg);
                if (res < 1 || res > SSIZE_MAX)
-                       errx(1, "obs must be between 1 and %d", SSIZE_MAX);
+                       errx(1, "obs must be between 1 and %ld", SSIZE_MAX);
                out.dbsz = (size_t)res;
        }
 }
                out.dbsz = (size_t)res;
        }
 }
index 106c8bfc174847137c88fc348ca3b70e12a2d708..760bd4b69d80317998bb3f1a283d8058ca554bce 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = df.c vfslist.c
 MANPAGES = df.1
 
 CFILES = df.c vfslist.c
 MANPAGES = df.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic \
+Extra_CC_Flags = -Werror -Wall \
        -D__FBSDID=__RCSID \
        "-I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders" \
        -D_DARWIN_USE_64_BIT_INODE
        -D__FBSDID=__RCSID \
        "-I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders" \
        -D_DARWIN_USE_64_BIT_INODE
index ca11e953aee4e18825278eed7a44eb55a0084349..51bd2c565d43f9f9ba3b78a44023cd8cf11cbfdf 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = du.c
 MANPAGES = du.1
 
 CFILES = du.c
 MANPAGES = du.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
diff --git a/du/du.c b/du/du.c
index 966a986ce0f4b10c8548f51d428e1181c50e1357..66820a8faeec0b15e1ad1ac2acd8150445205372 100644 (file)
--- a/du/du.c
+++ b/du/du.c
@@ -727,7 +727,7 @@ ignorep(FTSENT *ent)
        if (S_ISDIR(ent->fts_statp->st_mode) && !strcmp("fd", ent->fts_name)) {
                struct statfs sfsb;
                int rc = statfs(ent->fts_accpath, &sfsb);
        if (S_ISDIR(ent->fts_statp->st_mode) && !strcmp("fd", ent->fts_name)) {
                struct statfs sfsb;
                int rc = statfs(ent->fts_accpath, &sfsb);
-               if (rc >= 0 && !strcmp("fdesc", sfsb.f_fstypename)) {
+               if (rc >= 0 && !strcmp("devfs", sfsb.f_fstypename)) {
                        /* Don't cd into /dev/fd/N since one of those is likely to be
                          the cwd as of the start of du which causes all manner of
                          unpleasant surprises */
                        /* Don't cd into /dev/fd/N since one of those is likely to be
                          the cwd as of the start of du which causes all manner of
                          unpleasant surprises */
index bd8a807619838e81fe526d522f5940169105bf40..63bea44ead1762b01baa0962d60c42b7348b969d 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = xinstall.c
 MANPAGES = install.1
 
 CFILES = xinstall.c
 MANPAGES = install.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID \
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID \
        -include TargetConditionals.h -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
        -include TargetConditionals.h -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
index 5b6494888ca392c39f5502d9defa5e25271fe9d3..ee49747c1c895f7c4c8e48c50fffa046e263d181 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = ipcrm.c
 MANPAGES = ipcrm.1
 
 CFILES = ipcrm.c
 MANPAGES = ipcrm.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index be2d3becdd4545508cdd5463be749b32c7777327..3b3cb8f3a17db93889b4256166ceecea160398df 100644 (file)
@@ -163,7 +163,7 @@ int main(argc, argv)
            if (result < 0) {
                errflg++;
                if (!signaled)
            if (result < 0) {
                errflg++;
                if (!signaled)
-                   warn("%s key(%ld): ", IPC_TO_STRING(c), target_key);
+                   warn("%s key(%d): ", IPC_TO_STRING(c), target_key);
                else
                    warnx("%ss are not configured in the running kernel",
                          IPC_TO_STRING(c));
                else
                    warnx("%ss are not configured in the running kernel",
                          IPC_TO_STRING(c));
index ae8c8192667cad73cb143acf1b5659a898fcfaf7..d56d25b51f1624cf9b3a14d59a37ed1a81a8eebf 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = ipcs.c
 MANPAGES = ipcs.1
 
 CFILES = ipcs.c
 MANPAGES = ipcs.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic \
+Extra_CC_Flags = -Werror -Wall \
         -D__FBSDID=__RCSID \
        -iquote \
        "$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders" \
         -D__FBSDID=__RCSID \
        -iquote \
        "$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders" \
index 42c5c4652648d6a275df0e2fdc5280554ddc4503..d78e834b7f40e513fd961a45957a88140dc10ec8 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = ln.c
 MANPAGES = ln.1 symlink.7
 
 CFILES = ln.c
 MANPAGES = ln.1 symlink.7
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 77669a29529b2f61d8e74c0d7a0493d90f67bd05..0d83debd60b44f9130db29eafe547db516d2118c 100644 (file)
@@ -1,16 +1,16 @@
 Project = ls
 Install_Dir = /bin
 
 Project = ls
 Install_Dir = /bin
 
-CFILES = cmp.c ls.c print.c util.c humanize_number.c
+CFILES = cmp.c ls.c print.c util.c
 MANPAGES = ls.1
 
 MANPAGES = ls.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic \
+Extra_CC_Flags = -Werror -Wall \
        -D__FBSDID=__RCSID \
        "-I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders" \
        -DCOLORLS \
        -D_DARWIN_USE_64_BIT_INODE \
        -include TargetConditionals.h
 Extra_LD_Flags = -dead_strip \
        -D__FBSDID=__RCSID \
        "-I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders" \
        -DCOLORLS \
        -D_DARWIN_USE_64_BIT_INODE \
        -include TargetConditionals.h
 Extra_LD_Flags = -dead_strip \
-       -lncurses
+       -lncurses -lutil
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 48d3a47e7e855d7aba4bcc184eae53af19c27a8b..6c7755872cdf01886f88eee9d0fde586756eb0ea 100644 (file)
@@ -44,7 +44,6 @@ int    statcmp(const FTSENT *, const FTSENT *);
 int     revstatcmp(const FTSENT *, const FTSENT *);
 int     sizecmp (const FTSENT *, const FTSENT *);
 int     revsizecmp (const FTSENT *, const FTSENT *);
 int     revstatcmp(const FTSENT *, const FTSENT *);
 int     sizecmp (const FTSENT *, const FTSENT *);
 int     revsizecmp (const FTSENT *, const FTSENT *);
-int      humanize_number(char *, size_t, int64_t, const char *, int, int);
 int     birthcmp(const FTSENT *, const FTSENT *);
 int     revbirthcmp(const FTSENT *, const FTSENT *);
 
 int     birthcmp(const FTSENT *, const FTSENT *);
 int     revbirthcmp(const FTSENT *, const FTSENT *);
 
diff --git a/ls/humanize_number.c b/ls/humanize_number.c
deleted file mode 100644 (file)
index f855a4b..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*     $NetBSD: humanize_number.c,v 1.8 2004/07/27 01:56:24 enami Exp $        */
-
-/*
- * Copyright (c) 1997, 1998, 1999, 2002 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center, by Luke Mewburn and by Tomas Svensson.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed by the NetBSD
- *      Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <locale.h>
-#include <fts.h>
-
-#include "ls.h"
-
-int
-humanize_number(char *buf, size_t len, int64_t bytes,
-    const char *suffix, int scale, int flags)
-{
-       const char *prefixes, *sep;
-       int     b, i, r, maxscale, s1, s2, sign;
-       int64_t divisor, max;
-       size_t  baselen;
-
-       assert(buf != NULL);
-       assert(suffix != NULL);
-       assert(scale >= 0);
-
-       if (flags & HN_DIVISOR_1000) {
-               /* SI for decimal multiplies */
-               divisor = 1000;
-               if (flags & HN_B)
-                       prefixes = "B\0k\0M\0G\0T\0P\0E";
-               else
-                       prefixes = "\0\0k\0M\0G\0T\0P\0E";
-       } else {
-               /*
-                * binary multiplies
-                * XXX IEC 60027-2 recommends Ki, Mi, Gi...
-                */
-               divisor = 1024;
-               if (flags & HN_B)
-                       prefixes = "B\0K\0M\0G\0T\0P\0E";
-               else
-                       prefixes = "\0\0K\0M\0G\0T\0P\0E";
-       }
-
-#define        SCALE2PREFIX(scale)     (&prefixes[(scale) << 1])
-       maxscale = 7;
-
-       if (scale >= maxscale &&
-           (scale & (HN_AUTOSCALE | HN_GETSCALE)) == 0)
-               return (-1);
-
-       if (buf == NULL || suffix == NULL)
-               return (-1);
-
-       if (len > 0)
-               buf[0] = '\0';
-       if (bytes < 0) {
-               sign = -1;
-               bytes *= -100;
-               baselen = 3;            /* sign, digit, prefix */
-       } else {
-               sign = 1;
-               bytes *= 100;
-               baselen = 2;            /* digit, prefix */
-       }
-       if (flags & HN_NOSPACE)
-               sep = "";
-       else {
-               sep = " ";
-               baselen++;
-       }
-       baselen += strlen(suffix);
-
-       /* Check if enough room for `x y' + suffix + `\0' */
-       if (len < baselen + 1)
-               return (-1);
-
-       if (scale & (HN_AUTOSCALE | HN_GETSCALE)) {
-               /* See if there is additional columns can be used. */
-               for (max = 100, i = len - baselen; i-- > 0;)
-                       max *= 10;
-
-               for (i = 0; bytes >= max && i < maxscale; i++)
-                       bytes /= divisor;
-
-               if (scale & HN_GETSCALE)
-                       return (i);
-       } else
-               for (i = 0; i < scale && i < maxscale; i++)
-                       bytes /= divisor;
-
-       /* If a value <= 9.9 after rounding and ... */
-       if (bytes < 995 && i > 0 && flags & HN_DECIMAL) {
-               /* baselen + \0 + .N */
-               if (len < baselen + 1 + 2)
-                       return (-1);
-               b = ((int)bytes + 5) / 10;
-               s1 = b / 10;
-               s2 = b % 10;
-               r = snprintf(buf, len, "%d%s%d%s%s%s",
-                   sign * s1, localeconv()->decimal_point, s2,
-                   sep, SCALE2PREFIX(i), suffix);
-       } else
-               r = snprintf(buf, len, "%lld%s%s%s",
-                   /* LONGLONG */
-                   (long long)(sign * ((bytes + 50) / 100)),
-                   sep, SCALE2PREFIX(i), suffix);
-
-       return (r);
-}
diff --git a/ls/ls.h b/ls/ls.h
index 137c793adca93fa349d71caaf1109efcae2841bc..246470b6e4225d6a00a44e1d83ec55245c2489c9 100644 (file)
--- a/ls/ls.h
+++ b/ls/ls.h
 
 #define NO_PRINT       1
 
 
 #define NO_PRINT       1
 
-#define HN_DECIMAL 0x01
-#define HN_NOSPACE 0x02
-#define HN_B 0x04
-#define HN_DIVISOR_1000 0x08
-
-#define HN_GETSCALE 0x10
-#define HN_AUTOSCALE 0x20
-
 extern long blocksize;         /* block size units */
 
 extern int f_accesstime;       /* use time of last access */
 extern long blocksize;         /* block size units */
 
 extern int f_accesstime;       /* use time of last access */
index 31e06d6b5f9af7abd1dbae0a1589dbb553ae0d78..2fdd31c1bb537f97559f4f9f1a88517d04a0a173 100644 (file)
@@ -62,6 +62,7 @@ __RCSID("$FreeBSD: src/bin/ls/print.c,v 1.57 2002/08/29 14:29:09 keramida Exp $"
 #include <fts.h>
 #include <math.h>
 #include <langinfo.h>
 #include <fts.h>
 #include <math.h>
 #include <langinfo.h>
+#include <libutil.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -287,17 +288,16 @@ printacl(acl_t acl, int isdir)
        for (index = 0;
             acl_get_entry(acl, entry == NULL ? ACL_FIRST_ENTRY : ACL_NEXT_ENTRY, &entry) == 0;
             index++) {
        for (index = 0;
             acl_get_entry(acl, entry == NULL ? ACL_FIRST_ENTRY : ACL_NEXT_ENTRY, &entry) == 0;
             index++) {
-               if ((applicable = (uuid_t *) acl_get_qualifier(entry)) == NULL)
-                       continue;
                if (acl_get_tag_type(entry, &tag) != 0)
                        continue;
                if (acl_get_flagset_np(entry, &flags) != 0)
                        continue;
                if (acl_get_permset(entry, &perms) != 0)
                        continue;
                if (acl_get_tag_type(entry, &tag) != 0)
                        continue;
                if (acl_get_flagset_np(entry, &flags) != 0)
                        continue;
                if (acl_get_permset(entry, &perms) != 0)
                        continue;
+               if ((applicable = (uuid_t *) acl_get_qualifier(entry)) == NULL)
+                       continue;
                name = uuid_to_name(applicable);
                acl_free(applicable);
                name = uuid_to_name(applicable);
                acl_free(applicable);
-
                switch(tag) {
                case ACL_EXTENDED_ALLOW:
                        type = "allow";
                switch(tag) {
                case ACL_EXTENDED_ALLOW:
                        type = "allow";
index f5dcf8d0c162836673108bdce20aa33fb2b2c890..fc8caf1d59f9da3aaa784a346cb3d81c850dcb52 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = mkdir.c
 MANPAGES = mkdir.1
 
 CFILES = mkdir.c
 MANPAGES = mkdir.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 11447dc14ede4ed018c7c24a9475b2d01115b93e..7c5cfdadc81fc0e6a341662e80918d229cc9f63c 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = mkfifo.c
 MANPAGES = mkfifo.1
 
 CFILES = mkfifo.c
 MANPAGES = mkfifo.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 4eb0d6db29198e8eda7898b5a2e0df5820232c4a..8e17cfc27e62a3b9b74f0622f0b8e1992da78a22 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /sbin
 CFILES = mknod.c
 MANPAGES = mknod.8
 
 CFILES = mknod.c
 MANPAGES = mknod.8
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 1139f00169b4e5506dae46a1df7042a6da471ae5..c7abeb97d972303f827f14c18ce2f1c3fb7fd503 100644 (file)
@@ -6,7 +6,7 @@ CFILES = compare.c create.c excludes.c misc.c mtree.c spec.c specspec.c \
        ../cksum/crc.c
 MANPAGES = mtree.8
 
        ../cksum/crc.c
 MANPAGES = mtree.8
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic \
+Extra_CC_Flags = -Werror -Wall \
        -D__FBSDID=__RCSID \
        -DENABLE_MD5 \
        -DENABLE_RMD160 \
        -D__FBSDID=__RCSID \
        -DENABLE_MD5 \
        -DENABLE_RMD160 \
index 9f8f930c6fd7c3fa69c18bbbb118c0023b41b600..25de54852edd15e1215bacf120cbae4486991e22 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = mv.c
 MANPAGES = mv.1
 
 CFILES = mv.c
 MANPAGES = mv.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 511c2d518c82e976cfe159c6d69669df0773a567..ffe5ac32c32f5f99c7e1385ef326881caf780687 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = pathchk.c
 MANPAGES = pathchk.1
 
 CFILES = pathchk.c
 MANPAGES = pathchk.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index f2863ccf0245ee6cea6147503d1d038e5b755390..bd6132d59d0559573e70f1e5aa0ec965011dda5d 100644 (file)
@@ -6,7 +6,7 @@ CFILES = ar_io.c ar_subs.c buf_subs.c cache.c cpio.c file_subs.c\
          sel_subs.c tables.c tar.c tty_subs.c pax_format.c
 MANPAGES = pax.1
 
          sel_subs.c tables.c tar.c tty_subs.c pax_format.c
 MANPAGES = pax.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 854d8dcc9580d0743a525215049254e04dec08d9..0b5b9884a234e137378ac999ca449c909c24d226 100644 (file)
@@ -76,7 +76,7 @@ static int no_op(void);
 static void printflg(unsigned int);
 static int c_frmt(const void *, const void *);
 static off_t str_offt(char *);
 static void printflg(unsigned int);
 static int c_frmt(const void *, const void *);
 static off_t str_offt(char *);
-static char *getline(FILE *fp);
+static char *pax_getline(FILE *fp);
 static void pax_options(int, char **);
 void pax_usage(void);
 static void tar_options(int, char **);
 static void pax_options(int, char **);
 void pax_usage(void);
 static void tar_options(int, char **);
@@ -942,7 +942,7 @@ tar_options(int argc, char **argv)
                                                paxwarn(1, "Unable to open file '%s' for read", file);
                                                tar_usage();
                                        }
                                                paxwarn(1, "Unable to open file '%s' for read", file);
                                                tar_usage();
                                        }
-                                       while ((str = getline(fp)) != NULL) {
+                                       while ((str = pax_getline(fp)) != NULL) {
                                                if (pat_add(str, dir) < 0)
                                                        tar_usage();
                                                sawpat = 1;
                                                if (pat_add(str, dir) < 0)
                                                        tar_usage();
                                                sawpat = 1;
@@ -1021,7 +1021,7 @@ tar_options(int argc, char **argv)
                                        paxwarn(1, "Unable to open file '%s' for read", file);
                                        tar_usage();
                                }
                                        paxwarn(1, "Unable to open file '%s' for read", file);
                                        tar_usage();
                                }
-                               while ((str = getline(fp)) != NULL) {
+                               while ((str = pax_getline(fp)) != NULL) {
                                        if (ftree_add(str, 0) < 0)
                                                tar_usage();
                                }
                                        if (ftree_add(str, 0) < 0)
                                                tar_usage();
                                }
@@ -1244,7 +1244,7 @@ cpio_options(int argc, char **argv)
                                        paxwarn(1, "Unable to open file '%s' for read", optarg);
                                        cpio_usage();
                                }
                                        paxwarn(1, "Unable to open file '%s' for read", optarg);
                                        cpio_usage();
                                }
-                               while ((str = getline(fp)) != NULL) {
+                               while ((str = pax_getline(fp)) != NULL) {
                                        pat_add(str, NULL);
                                }
                                fclose(fp);
                                        pat_add(str, NULL);
                                }
                                fclose(fp);
@@ -1344,7 +1344,7 @@ cpio_options(int argc, char **argv)
                         * no read errors allowed on updates/append operation!
                         */
                        maxflt = 0;
                         * no read errors allowed on updates/append operation!
                         */
                        maxflt = 0;
-                       while ((str = getline(stdin)) != NULL) {
+                       while ((str = pax_getline(stdin)) != NULL) {
                                ftree_add(str, 0);
                        }
                        if (getline_error) {
                                ftree_add(str, 0);
                        }
                        if (getline_error) {
@@ -1651,7 +1651,7 @@ str_offt(char *val)
 }
 
 char *
 }
 
 char *
-getline(FILE *f)
+pax_getline(FILE *f)
 {
        char *name, *temp;
        size_t len;
 {
        char *name, *temp;
        size_t len;
index 5e8cf03a8707b0d5e7cdd17c8fb09f9c0f3bafd3..0bf8474da0cef0138f04f3e9fa7e70754c2c2a39 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = rm.c
 MANPAGES = rm.1
 
 CFILES = rm.c
 MANPAGES = rm.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index d959064ae9d1a2a8682d9709ae7f98e5d27f0d3c..063a2d226af454232ddba2f6f253853af222b312 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /bin
 CFILES = rmdir.c
 MANPAGES = rmdir.1
 
 CFILES = rmdir.c
 MANPAGES = rmdir.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index a0874d1c4e1d4dba416e55f422110affb342efb9..ac35b5cd5daebcd58efd79b30e230916ea3193bb 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/sbin
 CFILES = rmt.c
 MANPAGES = rmt.8
 
 CFILES = rmt.c
 MANPAGES = rmt.8
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 3b4de1df5d6454a473bddb82b3307b8b2fb3a9d1..005eb796573c2f9d2adea8e6bdeac4cb1456a31d 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = stat.c
 MANPAGES = stat.1
 
 CFILES = stat.c
 MANPAGES = stat.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index 780be63987cd28c4f610f355632f6db03c32b241..2f34232981793ab43f1986a07e6dda6e0f5e0a34 100644 (file)
@@ -4,7 +4,7 @@ Install_Dir = /usr/bin
 CFILES = touch.c
 MANPAGES = touch.1
 
 CFILES = touch.c
 MANPAGES = touch.1
 
-Extra_CC_Flags = -Werror -Wall -mdynamic-no-pic -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
+Extra_CC_Flags = -Werror -Wall -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
 Extra_LD_Flags = -dead_strip
 
 include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make
index cf6d8633b2338a1e0f69afc1dfe8f9e9e22c66fc..6e6678b6d507482c088470c10006f86d8aa45004 100644 (file)
@@ -33,7 +33,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)touch.1    8.3 (Berkeley) 4/28/95
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)touch.1    8.3 (Berkeley) 4/28/95
-.\" $FreeBSD: src/usr.bin/touch/touch.1,v 1.11 2001/09/24 17:42:37 obrien Exp $
+.\" $FreeBSD: src/usr.bin/touch/touch.1,v 1.16 2007/04/10 07:24:47 grog Exp $
 .\"
 .Dd April 28, 1995
 .Dt TOUCH 1
 .\"
 .Dd April 28, 1995
 .Dt TOUCH 1
 .Nd change file access and modification times
 .Sh SYNOPSIS
 .Nm
 .Nd change file access and modification times
 .Sh SYNOPSIS
 .Nm
-.Op Fl acfm
+.Op Fl A Ar [-][[hh]mm]SS
+.Op Fl acfhm
 .Op Fl r Ar file
 .Op Fl t Ar [[CC]YY]MMDDhhmm[.SS]
 .Ar
 .Sh DESCRIPTION
 The
 .Nm
 .Op Fl r Ar file
 .Op Fl t Ar [[CC]YY]MMDDhhmm[.SS]
 .Ar
 .Sh DESCRIPTION
 The
 .Nm
-utility sets the modification and access times of files to the
-current time of day.
-If the file doesn't exist, it is created with default permissions.
+utility sets the modification and access times of files.
+If any file does not exist, it is created with default permissions.
+.Pp
+By default,
+.Nm 
+changes both modification and access times.  The
+.Fl a
+and 
+.Fl m
+flags may be used to select the access time or the modification time
+individually.
+Selecting both is equivalent to the default.
+By default, the timestamps are set to the current time.
+The 
+.Fl t
+flag explicitly specifies a different time, and the
+.Fl r
+flag specifies to set the times those of the specified file.
+The 
+.Fl A
+flag adjusts the values by a specified amount.
 .Pp
 The following options are available:
 .Bl -tag -width Ds
 .Pp
 The following options are available:
 .Bl -tag -width Ds
+.It Fl A 
+Adjust the access and modification time stamps for the file by the
+specified value.
+This flag is intended for use in modifying files with incorrectly set
+time stamps.
+.Pp
+The argument is of the form
+.Dq [-][[hh]mm]SS
+where each pair of letters represents the following:
+.Pp
+.Bl -tag -width Ds -compact -offset indent
+.It Ar -
+Make the adjustment negative: the new time stamp is set to be before
+the old one.
+.It Ar hh
+The number of hours, from 00 to 99.
+.It Ar mm
+The number of minutes, from 00 to 59.
+.It Ar SS
+The number of seconds, from 00 to 59.
+.El
+.Pp
+The
+.Fl A
+flag implies the 
+.Fl c
+flag: if any file specified does not exist, it will be silently ignored.
 .It Fl a
 Change the access time of the file.
 The modification time of the file is not changed unless the
 .It Fl a
 Change the access time of the file.
 The modification time of the file is not changed unless the
@@ -70,6 +116,14 @@ No error messages are displayed and the exit value is not affected.
 .It Fl f
 Attempt to force the update, even if the file permissions do not
 currently permit it.
 .It Fl f
 Attempt to force the update, even if the file permissions do not
 currently permit it.
+.It Fl h
+If the file is a symbolic link, change the times of the link
+itself rather than the file that the link points to.
+Note that
+.Fl h
+implies
+.Fl c
+and thus will not create any new files.
 .It Fl m
 Change the modification time of the file.
 The access time of the file is not changed unless the
 .It Fl m
 Change the modification time of the file.
 The access time of the file is not changed unless the
@@ -79,8 +133,9 @@ flag is also specified.
 Use the access and modifications times from the specified file
 instead of the current time of day.
 .It Fl t
 Use the access and modifications times from the specified file
 instead of the current time of day.
 .It Fl t
-Change the access and modification times to the specified time.
-The argument should be in the form
+Change the access and modification times to the specified time instead
+of the current time of day.
+The argument is of the form
 .Dq [[CC]YY]MMDDhhmm[.SS]
 where each pair of letters represents the following:
 .Pp
 .Dq [[CC]YY]MMDDhhmm[.SS]
 where each pair of letters represents the following:
 .Pp
@@ -102,15 +157,15 @@ Otherwise, a
 .Dq CC
 value of 20 is used.
 .It Ar MM
 .Dq CC
 value of 20 is used.
 .It Ar MM
-The month of the year, from 1 to 12.
+The month of the year, from 01 to 12.
 .It Ar DD
 .It Ar DD
-the day of the month, from 1 to 31.
+the day of the month, from 01 to 31.
 .It Ar hh
 .It Ar hh
-The hour of the day, from 0 to 23.
+The hour of the day, from 00 to 23.
 .It Ar mm
 .It Ar mm
-The minute of the hour, from 0 to 59.
+The minute of the hour, from 00 to 59.
 .It Ar SS
 .It Ar SS
-The second of the minute, from 0 to 61.
+The second of the minute, from 00 to 61.
 .El
 .Pp
 If the
 .El
 .Pp
 If the
@@ -123,10 +178,8 @@ If the
 .Dq SS
 letter pair is not specified, the value defaults to 0.
 .El
 .Dq SS
 letter pair is not specified, the value defaults to 0.
 .El
-.Sh DIAGNOSTICS
+.Sh EXIT STATUS
 .Ex -std
 .Ex -std
-.Sh SEE ALSO
-.Xr utimes 2
 .Sh COMPATIBILITY
 The obsolescent form of
 .Nm ,
 .Sh COMPATIBILITY
 The obsolescent form of
 .Nm ,
@@ -153,14 +206,16 @@ If the
 .Dq YY
 letter pair is in the range 39 to 99, the year is set to 1939 to 1999,
 otherwise, the year is set in the 21st century.
 .Dq YY
 letter pair is in the range 39 to 99, the year is set to 1939 to 1999,
 otherwise, the year is set in the 21st century.
-.Sh HISTORY
-A
-.Nm
-utility appeared in
-.At v7 .
+.Sh SEE ALSO
+.Xr utimes 2
 .Sh STANDARDS
 The
 .Nm
 utility is expected to be a superset of the
 .St -p1003.2
 specification.
 .Sh STANDARDS
 The
 .Nm
 utility is expected to be a superset of the
 .St -p1003.2
 specification.
+.Sh HISTORY
+A
+.Nm
+utility appeared in
+.At v7 .
index ea40b26afa6a1d0fc1d7dc9a46618bf1f900a03d..c4c3a1076cf863834569e7dffad9641551c57a1f 100644 (file)
@@ -33,7 +33,7 @@
 
 #include <sys/cdefs.h>
 
 
 #include <sys/cdefs.h>
 
-__RCSID("$FreeBSD: src/usr.bin/touch/touch.c,v 1.20 2002/09/04 23:29:07 dwmalone Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/touch/touch.c,v 1.25 2010/03/28 13:16:08 ed Exp $");
 
 #ifndef lint
 static const char copyright[] =
 
 #ifndef lint
 static const char copyright[] =
@@ -52,6 +52,7 @@ static const char sccsid[] = "@(#)touch.c     8.1 (Berkeley) 6/6/93";
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <libgen.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -62,7 +63,8 @@ int   rw(char *, struct stat *, int);
 void   stime_arg1(char *, struct timeval *);
 void   stime_arg2(char *, int, struct timeval *);
 void   stime_file(char *, struct timeval *);
 void   stime_arg1(char *, struct timeval *);
 void   stime_arg2(char *, int, struct timeval *);
 void   stime_file(char *, struct timeval *);
-void   usage(void);
+int    timeoffset(char *);
+void   usage(char *);
 
 int
 main(int argc, char *argv[])
 
 int
 main(int argc, char *argv[])
@@ -71,21 +73,22 @@ main(int argc, char *argv[])
        struct timeval tv[2];
        int (*stat_f)(const char *, struct stat *);
        int (*utimes_f)(const char *, const struct timeval *);
        struct timeval tv[2];
        int (*stat_f)(const char *, struct stat *);
        int (*utimes_f)(const char *, const struct timeval *);
-       int aflag, cflag, fflag, mflag, ch, fd, len, rval, timeset;
+       int Aflag, aflag, cflag, fflag, mflag, ch, fd, len, rval, timeset;
        char *p;
        char *p;
+       char *myname;
 
 
-       aflag = cflag = fflag = mflag = timeset = 0;
+       myname = basename(argv[0]);
+       Aflag = aflag = cflag = fflag = mflag = timeset = 0;
        stat_f = stat;
        utimes_f = utimes;
        if (gettimeofday(&tv[0], NULL))
                err(1, "gettimeofday");
 
        stat_f = stat;
        utimes_f = utimes;
        if (gettimeofday(&tv[0], NULL))
                err(1, "gettimeofday");
 
-#ifndef __APPLE__
-       while ((ch = getopt(argc, argv, "acfhmr:t:")) != -1)
-#else
-       while ((ch = getopt(argc, argv, "acfmr:t:")) != -1)
-#endif
+       while ((ch = getopt(argc, argv, "A:acfhmr:t:")) != -1)
                switch(ch) {
                switch(ch) {
+               case 'A':
+                       Aflag = timeoffset(optarg);
+                       break;
                case 'a':
                        aflag = 1;
                        break;
                case 'a':
                        aflag = 1;
                        break;
@@ -95,13 +98,11 @@ main(int argc, char *argv[])
                case 'f':
                        fflag = 1;
                        break;
                case 'f':
                        fflag = 1;
                        break;
-#ifndef __APPLE__
                case 'h':
                        cflag = 1;
                        stat_f = lstat;
                        utimes_f = lutimes;
                        break;
                case 'h':
                        cflag = 1;
                        stat_f = lstat;
                        utimes_f = lutimes;
                        break;
-#endif /* __APPLE__ */
                case 'm':
                        mflag = 1;
                        break;
                case 'm':
                        mflag = 1;
                        break;
@@ -115,38 +116,59 @@ main(int argc, char *argv[])
                        break;
                case '?':
                default:
                        break;
                case '?':
                default:
-                       usage();
+                       usage(myname);
                }
        argc -= optind;
        argv += optind;
 
                }
        argc -= optind;
        argv += optind;
 
-       /* Default is both -a and -m. */
        if (aflag == 0 && mflag == 0)
                aflag = mflag = 1;
 
        if (aflag == 0 && mflag == 0)
                aflag = mflag = 1;
 
-       /*
-        * If no -r or -t flag, at least two operands, the first of which
-        * is an 8 or 10 digit number, use the obsolete time specification.
-        */
-       if (!timeset && argc > 1) {
-               (void)strtol(argv[0], &p, 10);
-               len = p - argv[0];
-               if (*p == '\0' && (len == 8 || len == 10)) {
-                       timeset = 1;
-                       stime_arg2(*argv++, len == 10, tv);
+       if (timeset) {
+               if (Aflag) {
+                       /*
+                        * We're setting the time to an offset from a specified
+                        * time.  God knows why, but it means that we can set
+                        * that time once and for all here.
+                        */
+                       if (aflag)
+                               tv[0].tv_sec += Aflag;
+                       if (mflag)
+                               tv[1].tv_sec += Aflag;
+                       Aflag = 0;              /* done our job */
                }
                }
-       }
-
-       /* Otherwise use the current time of day. */
-       if (!timeset)
+       } else {
+               /*
+                * If no -r or -t flag, at least two operands, the first of
+                * which is an 8 or 10 digit number, use the obsolete time
+                * specification, otherwise use the current time.
+                */
+               if (argc > 1) {
+                       strtol(argv[0], &p, 10);
+                       len = p - argv[0];
+                       if (*p == '\0' && (len == 8 || len == 10)) {
+                               timeset = 1;
+                               stime_arg2(*argv++, len == 10, tv);
+                       }
+               }
+               /* Both times default to the same. */
                tv[1] = tv[0];
                tv[1] = tv[0];
+       }
 
        if (*argv == NULL)
 
        if (*argv == NULL)
-               usage();
+               usage(myname);
+
+       if (Aflag)
+               cflag = 1;
 
        for (rval = 0; *argv; ++argv) {
                /* See if the file exists. */
                if (stat_f(*argv, &sb) != 0) {
 
        for (rval = 0; *argv; ++argv) {
                /* See if the file exists. */
                if (stat_f(*argv, &sb) != 0) {
+                       if (errno != ENOENT) {
+                               rval = 1;
+                               warn("%s", *argv);
+                               continue;
+                       }
                        if (!cflag) {
                                /* Create the file. */
                                fd = open(*argv,
                        if (!cflag) {
                                /* Create the file. */
                                fd = open(*argv,
@@ -169,12 +191,27 @@ main(int argc, char *argv[])
                if (!mflag)
                        TIMESPEC_TO_TIMEVAL(&tv[1], &sb.st_mtimespec);
 
                if (!mflag)
                        TIMESPEC_TO_TIMEVAL(&tv[1], &sb.st_mtimespec);
 
+               /*
+                * We're adjusting the times based on the file times, not a
+                * specified time (that gets handled above).
+                */
+               if (Aflag) {
+                       if (aflag) {
+                               TIMESPEC_TO_TIMEVAL(&tv[0], &sb.st_atimespec);
+                               tv[0].tv_sec += Aflag;
+                       }
+                       if (mflag) {
+                               TIMESPEC_TO_TIMEVAL(&tv[1], &sb.st_mtimespec);
+                               tv[1].tv_sec += Aflag;
+                       }
+               }
+
                /* Try utimes(2). */
                if (!utimes_f(*argv, tv))
                        continue;
 
                /* If the user specified a time, nothing else we can do. */
                /* Try utimes(2). */
                if (!utimes_f(*argv, tv))
                        continue;
 
                /* If the user specified a time, nothing else we can do. */
-               if (timeset) {
+               if (timeset || Aflag) {
                        rval = 1;
                        warn("%s", *argv);
                        continue;
                        rval = 1;
                        warn("%s", *argv);
                        continue;
@@ -190,12 +227,13 @@ main(int argc, char *argv[])
                        continue;
 
                /* Try reading/writing. */
                        continue;
 
                /* Try reading/writing. */
-                if (S_ISLNK(sb.st_mode) || S_ISDIR(sb.st_mode)) {
-                        warn("%s", *argv);
-                        rval = 1;
-                } else if (rw(*argv, &sb, fflag)) {
-                        rval = 1;
-                }
+               if (!S_ISLNK(sb.st_mode) && !S_ISDIR(sb.st_mode)) {
+                       if (rw(*argv, &sb, fflag))
+                               rval = 1;
+               } else {
+                       rval = 1;
+                       warn("%s", *argv);
+               }
        }
        exit(rval);
 }
        }
        exit(rval);
 }
@@ -293,6 +331,36 @@ stime_arg2(char *arg, int year, struct timeval *tvp)
        tvp[0].tv_usec = tvp[1].tv_usec = 0;
 }
 
        tvp[0].tv_usec = tvp[1].tv_usec = 0;
 }
 
+/* Calculate a time offset in seconds, given an arg of the format [-]HHMMSS. */
+int
+timeoffset(char *arg)
+{
+       int offset;
+       int isneg;
+
+       offset = 0;
+       isneg = *arg == '-';
+       if (isneg)
+               arg++;
+       switch (strlen(arg)) {
+       default:                                /* invalid */
+               errx(1, "Invalid offset spec, must be [-][[HH]MM]SS");
+
+       case 6:                                 /* HHMMSS */
+               offset = ATOI2(arg);
+               /* FALLTHROUGH */
+       case 4:                                 /* MMSS */
+               offset = offset * 60 + ATOI2(arg);
+               /* FALLTHROUGH */
+       case 2:                                 /* SS */
+               offset = offset * 60 + ATOI2(arg);
+       }
+       if (isneg)
+               return (-offset);
+       else
+               return (offset);
+}
+
 void
 stime_file(char *fname, struct timeval *tvp)
 {
 void
 stime_file(char *fname, struct timeval *tvp)
 {
@@ -354,12 +422,9 @@ err:                       rval = 1;
 }
 
 void
 }
 
 void
-usage(void)
+usage(char *myname)
 {
 {
-#ifndef __APPLE__
-       (void)fprintf(stderr, "usage: touch [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...\n");
-#else
-       (void)fprintf(stderr, "usage: touch [-acfm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...\n");
-#endif
+       fprintf(stderr, "usage:\n" "%s [-A [-][[hh]mm]SS] [-acfhm] [-r file] "
+               "[-t [[CC]YY]MMDDhhmm[.SS]] file ...\n", myname);
        exit(1);
 }
        exit(1);
 }