summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2006-09-16* NEWS: Document that mkdir -p and install -d now fork on occasion.Paul Eggert
* bootstrap.conf (gnulib_modules): Add savewd. * src/install.c: Include savewd.h. (process_dir): New function. (main, install_file_in_file_parents): Use it, along with the new savewd module, to avoid some race conditions. * src/mkdir.c: Include savewd.h. (struct mkdir_options): New members make_ancestor_function, mode, mode_bits. (make_ancestor): Return 1 if the resulting directory is not readable. (process_dir): New function. (main): Use it, along with new savewd module, to avoid some race conditions. Fill in new slots of struct mkdir_options, so that callees get the values. * tests/install/basic-1: Test for coreutils 5.97 bug that was fixed in coreutils 6.0, and which should still be fixed with this change. * tests/mkdir/p-3: Likewise.
2006-09-14* src/mv.c (main): Remove unnecessary (always-true) test for 2 <= n.Jim Meyering
Instead, since it's a little fragile, assert the condition. (target_directory_operand): Update comment to reflect latest change.
2006-09-12(print_user): Rewrite to avoid warning from GCC 4.1.1 with -Wall.Paul Eggert
2006-09-11* src/c99-to-c89.diff: Add another set of curly braces.Jim Meyering
2006-09-11* src/remove.c (remove_dir): Move new cache_stat_init call ontoJim Meyering
it's own line. (rm_1): Move declaration of "st" and new cache_stat_init call "down" to nearer where they're used.
2006-09-11(eval6): Fix buffer overrun, or bad performance, ifPaul Eggert
substr's last operand is very large. Performance problem reported by Sebastian Kreft.
2006-09-08tail now ignores the -f option if POSIXLY_CORRECT is set,Paul Eggert
no file operand is given, and standard input is any FIFO.
2006-09-08mv and "cp -r" no longer fail when invoked with two argumentsJim Meyering
where the first one names a directory and the second name ends in a slash and doesn't exist. E.g., "mv dir B/", for nonexistent B, now succeeds, once more. This reverts part of the 2004-06-27 change for 5.3.0. * NEWS: Say the above. * src/mv.c (target_directory_operand): Don't require (here) that the target operand "look like" a directory. This change pushes the test down to the rename syscall level, where a "mv dir existing-non-dir/" will mistakenly succeed on older systems that ignore trailing slashes in the rename destination argument. * src/cp.c (target_directory_operand): Likewise, but for cp. * tests/mv/trailing-slash: Exercise the above fixes. * tests/cp/trailing-slash: New file. * tests/cp/Makefile.am (EXTRA_DIST): Add trailing-slash.
2006-09-07* src/c99-to-c89.diff: Update to have proper offsets.Jim Meyering
2006-09-05* src/c99-to-c89.diff (remove.c): Adapt one hunk to match the newJim Meyering
context from change of 2006-09-02.
2006-09-03Don't include dirname.h, since system.h does it now.Paul Eggert
(cache_fstatat, cache_stat_init): New functions. (cache_statted, cache_stat_ok): New functions. (write_protected_non_symlink): Remove struct stat ** buf_p arg, which is no longer needed with the new functions. All callers changed. (prompt, is_dir_lstat, remove_entry, remove_dir): New struct stat * arg. All callers changed. (write_protected_non_symlink, prompt, is_dir_lstat, remove_entry): (remove_cwd_entries, remove_dir, rm_1): Use and maintain the file status cache. (prompt, remove_entry): Omit the first "directory" in the diagnostic "Cannot remove directory `foo': is a directory". This causes "rm" to pass a test case that it would otherwise fail now that it "knows" more about its argument. I think the diagnostic is better without the first "directory" anyway. (prompt): Remove the no-longer-needed IS_DIR arg; all callers changed. (rm_1): Reject attempts to remove /, ./, or ../.
2006-09-03Fix comment.Paul Eggert
2006-09-03Don't include dirname.h, since system.h does it now.Paul Eggert
(usage, main): --preserve-root is now the default.
2006-09-03Include "dirname.h", since dot_or_dotdot needs itPaul Eggert
now. (dot_or_dotdot): Succeed even if "." or ".." is followed by a slash.
2006-09-03Don't include dirname.h, since system.h does it now.Paul Eggert
2006-09-01Fix typo in previous change; an unsigned int wasn't converted toPaul Eggert
uintmax_t at the right time. Problem reported by Bruno.
2006-09-01* m4/jm-macros.m4 (gl_MACROS): Call cu_PREREQ_STAT_PROG ratherPaul Eggert
than AC_REQUIREing, so that sys/mount.h isn't tested for after the test result. I'm not sure why this fix is needed, but it works. * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Revamp to reflect better what stat.c actually needs. * src/stat.c: Include <stddef.h> (alignof): New macro. (HAVE_STRUCT_STATXFS_F_FSID___VAL, HAVE_STRUCT_STATXFS_F_FSID_VAL): Remove. (STRUCT_STATXFS_F_FSID_IS_INTEGER): New macro. (FSID_VAL): Remove. (print_statfs): If f_fsid isn't an integer, grab its words one at a time in little-endian order. This is a bit easier to configure and should avoid a compilation failure on MacOS reported by Bruno Haible.
2006-08-29* src/stat.c (HAVE_STRUCT_STATXFS_F_FSID_VAL, FSID_VAL): New macros, toPaul Eggert
work around a Mac OS X porting problem reported by Bruno Haible in <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00308.html>. (print_statfs): Use them. * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Check for __val versus val components of fsid. Omit some checks that stat.c doesn't care about.
2006-08-29* bootstrap.conf (gnulib_modules): Add isapipe.Paul Eggert
* src/tail.c: Include isapipe.h. (IS_PIPE_LIKE_FILE_TYPE): Remove. (IS_TAILABLE_FILE_TYPE): Just list both FIFOs and sockets as tailable, since this seems to be portable. (main): Use isapipe, to fix a bug on MacOS X reported by Bruno Haible in <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00304.html>.
2006-08-29* src/system.h (LOCALEDIR): Remove, since configmake.h now definesPaul Eggert
it for us.
2006-08-29(main): Don't test whether macros likePaul Eggert
S_ISLNK are defined, since they're always defined now.
2006-08-28* src/copy.c (copy_internal): Don't test whether macros likePaul Eggert
S_ISLNK are defined, since they're always defined now. * src/cp.c (main): Likewise. * src/ln.c (main): Likewise. * src/ls.c (get_link_name, make_link_name): Likewise. * src/mkfifo.c (usage): Likewise. * src/who.c (S_IWGRP): Likewise.
2006-08-28Adjust to recent gnulib changes for the gnulib module.Paul Eggert
* bootstrap.conf (gnulib_modules): Add fcntl. * src/system.h (SEEK_SET, SEEK_CUR, SEEK_END): Remove. Other code is already assuming these macros are defined. (O_DIRECT, O_DIRECTORY, O_DSYNC, O_NDELAY, O_NOATIME, O_NONBLOCK): (O_NOCTTY, O_NOFOLLOW, O_NOLINKS, O_RSYNC, O_SYNC, O_BINARY, O_TEXT): Remove; the fcntl module now handles these.
2006-08-28Adjust to recent gnulib changes for the inttypes module.Paul Eggert
* bootstrap.conf (gnulib_modules): Remove stdint; add inttypes. (excluded_files): Don't exclude m4/inttypes-h.m4 or m4/inttypes-pri.m4. * src/system.h: Don't bother to include <stdint.h>, since we can now assume inttypes.h does the equivalent of including stdint.h.
2006-08-27* src/copy.c (copy_internal): Don't make a backup if the lastJim Meyering
component of the source name is "." or "..". Reported by Andreas Schwab in https://savannah.gnu.org/bugs/?17540. * tests/cp/src-base-dot: New file. Test for the above fix. * tests/cp/Makefile.am (TESTS): Add src-base-dot.
2006-08-27* src/system.h (DOT_OR_DOTDOT): Remove macro. Rewrite as a...Jim Meyering
(dot_or_dotdot): ...new static inline function. * src/remove.c (rm_1): Reflect this renaming. * src/ls.c (basename_is_dot_or_dotdot): Likewise.
2006-08-27Two of those comments apply only when "moving" (not when copying).Jim Meyering
Correct them.
2006-08-27* src/copy.c (copy_internal): Add comments.Jim Meyering
2006-08-27(AM_CPPFLAGS): Remove -I$(srcdir) and -I../lib,Paul Eggert
since Automake supplies them for us. It always did -I$(srcdir), and with the recent change to AC_CONFIG_HEADERS in configure.ac it is now also doing -I../lib.
2006-08-26* src/c99-to-c89.diff: Remove hunk for copy.c; no longer needed.Jim Meyering
2006-08-26Fix "mv --verbose --backup" so its output includes theJim Meyering
" (backup: foo.~1~)" suffix also when backing up a directory. * NEWS: Report this bug fix. * src/copy.c (emit_verbose): New function, factored out of... (copy_internal): ...here. Use the new function. * tests/mv/backup-dir: Test for the above fix.
2006-08-26Include <config.h> unconditionally, since we now assume config.h exists.Paul Eggert
2006-08-26"ls --color" would highlight other-writable and sticky directoriesJim Meyering
no differently than regular directories on a file system with dirent.d_type support. * NEWS: Say the above. * src/ls.c (gobble_file): With --color, also stat the file when we know it is a directory. Derived from an anonymous one-line fix and bug report: <https://savannah.gnu.org/bugs/?15043>. * tests/ls/color-dtype-dir: New file. Test for the above fix. * tests/ls/Makefile.am (TESTS): Add color-dtype-dir.
2006-08-25* .cvsignore: Remove stamp-h1. Add coreutils-*, to ignorePaul Eggert
tarballs. * bootstrap.conf: Add configmake, verify. * lib/.cvsignore: Add configmake.h, stamp-h1. * src/.cvsignore: Remove localedir.h. * src/Makefile.am (localedir, DISTCLEANFILES, localedir.h): Remove; subsumed by configmake. * src/system.h: Include configmake.h rather than localedir.h (LOCALEDIR): New macro.
2006-08-25Fix typo in previous checkin; a "&" went missing.Paul Eggert
2006-08-25Rewrite to avoid some unnecessary casts, macros, literals.Paul Eggert
(DEFAULT_PASSES, VERBOSE_UPDATE): Now constants, not macros. (SECTOR_SIZE, SECTOR_MASK): New constants. (fillpattern, dopass, do_wipefd, main): Remove unnecessary casts, and use the SECTOR_* constants when applicable. Check for size < 0 rather than size == -1, since negative-size files are a sign of trouble anyway. (dopass): Assume a continuable error if EIO even if the current position is not a multiple of 512.
2006-08-24* src/stat.c (print_statfs): Fix typo: remove extra "sizeof".Jim Meyering
2006-08-23* src/stat.c (HAVE_STRUCT_STATXFS_F_FSID___VAL): Define. ThisPaul Eggert
macro was being used without being defined. (SB_F_NAMEMAX): Remove cast. (f_fsid) [BeOS]: Likewise. (OUT_NAMEMAX): Renamed from NAMEMAX_FORMAT, with a new meaning. All uses changed. (out_string, out_int, out_uint, out_uint_o, out_uint_x): New functions. (xstrcat): Remove. All uses changed to use the above functions. (print_statfs, print_stat): 2nd arg is now the prefix len, not the buffer len. All uses changed. Output '?', not '*', for unknown data or errors. Do not assume signed values can be interchanged with unsigned when printing. (print_statfs): For %i, print the fsid as a single int, not as a pair. (print_it): Quote invalid format better. (STRUCT_STATVFS, statfs, f_fsid, f_blocks, f_bfree) [BeOS]: (f_bavail, f_bsize, STATFS_FRSIZE, f_files, f_ffree) [BeOS]: (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME) [BeOS]: Define.
2006-08-23* NEWS: printf supports the I flag.Paul Eggert
* src/printf.c (print_formatted) [glibc 2.2 or later]: Likewise.
2006-08-23(SA_RESTART): Fallback define.Paul Eggert
2006-08-23* src/system.h (EDQUOT): Define if not already defined.Paul Eggert
2006-08-23* .cvsignore: Remove config.h, config.hin, as they are nowPaul Eggert
in lib. * configure.ac (AC_CONFIG_HEADERS): Move config.h and config.hin to lib. * lib/.cvsignore: Add config.h, config.hin. * lib/Makefile.am (AM_CPPFLAGS): Remove; we no longer need '-I..'. * src/Makefile.am (AM_CPPFLAGS): Remove '-I..'; no longer needed.
2006-08-22* aclocal.m4, config.hin, configure:Paul Eggert
Remove from CVS, since ./bootstrap generates them automatically. * .cvsignore: Add INSTALL, Makefile.in, *.cache, *.lineno, *.log. Remove more-specific entries. This catches files like configure.lineno. * man/.cvsignore: Add Makefile.in. * src/.cvsignore: Add Makefile.in. Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c. For .cvsignore file under the tests directory: Add Makefile.in. Sort entries if necessary. Remove *.I, *.E, *.X, *.O, *-tests, build-script, mk-script if they're never created in this directory. * build-aux/.cvsignore: New file. * doc/.cvsignore: Add Makefile.in, coreutils.html, coreutils.pdf, coreutils.ps, coreutils.tps. Remove coreutils.cm (dunno what it is, but the makefile doesn't mention it). Remove coreutils.info as it is subsumed by coreutils.info*. * lib/.cvsignore: Add Makefile.in, getdate.tab.h. Remove stat.c, sysexit.h. * m4/.cvsignore: Remove Makefile, dev-ino.m4, glibc2.m4, intdiv0.m4, inttypes-h.m4, inttypes-pri.m4, jm-glibc-io.m4, lcmessage.m4, lock.m4, printf-posix.m4, same-inode.m4, size_max.m4, uintmax_t.m4, ulonglong.m4, visibility.m4, xsize.m4. Many of these are put in automatically by ../bootstrap, but that's a bootstrap bug that I plan to fix shortly. * po/.cvsignore: More ../bootstrap-related fixes, plus remove old cruft. Add *.po, LINGUAS, Makevars. Remove *.cat, *.msg, cat-id-dbl.c, messages.mo, stamp-cat-id.
2006-08-22BeOS portability.Paul Eggert
* src/uptime.c: Include OS.h if it exists. (print_uptime): On BeOS, use the get_system_info function (actually a macro). Loop through utmp entries only if utmp.h or utmpx.h exists. (uptime): Call read_utmp only if utmp.h or utmpx.h exists. * m4/boottime.m4 (GNULIB_BOOT_TIME): Test also for utmp.h, utmpx.h, OS.h. Don't require to have utmp.h or utmpx.h. Enable boottime support if <OS.h> is found.
2006-08-22Move the check-AUTHORS rule to be run as part of "make distcheck",Jim Meyering
rather than "make check". * src/Makefile.am (check): Don't depend on check-AUTHORS; it would cause "make check" to fail on systems unable to build all binaries. * Makefile.maint (check-AUTHORS): New rule. (local-checks-available): Add it here. Reported by Bruno Haible. Needed for BeOS.
2006-08-22(print_header, show_dev): Use a column width thatPaul Eggert
depends on the block size of -P is specified and not autoscaling.
2006-08-21* src/od.c: Now that HAVE_UNSIGNED_LONG_LONG is no longer definedJim Meyering
in config.h, change the uses to HAVE_UNSIGNED_LONG_LONG_INT. Otherwise, on a system with 4-byte longs, "od -t u8" fails with this: od: invalid type string `u8'; this system doesn't provide a 8-byte integral type FIXME: add a test for this, but skip it when sizeof uintmax < 8.
2006-08-21Add a bootstrap procedure, so that the CVS version contains fewerPaul Eggert
files and we bootstrap the rest from gnulib, gettext, etc. * README-cvs: New file. * bootstrap: New file. * bootstrap.conf: New file. * .x-sc_trailing_blank: Remove config-log, .gdb-history. Add .po. * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit of gnulib-tool. (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL): (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib. (gl_EARLY): Add. (gl_MACROS): Call just after gl_EARLY, just for clarity. * src/c99-to-c98.diff: Remove patch to ls.c; no longer needed. * src/kill.c (strtoimax): Remove decl. * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves. * src/wc.c: Likewise. * src/ls.c (sort_files): Rewrite to avoid need for C99-style declaration, so that we don't need to patch this file. * src/printf.c (strtoimax, strtoumax): Remove decls. * src/su.c: Include getpass.h. (getpass): remove. * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h. Include inttypes.h unconditionally; remove decls it handles. * lib/Makefile.am: include gnulib.mk, so that we can remove most of this file. (AM_CPPFLAGS): Don't mention -I$(srcdir), since that's now done for us. (noinst_LIBRARIES, LDDADD, DEFS): Remove. (libcoreutils_a_SOURCES): Trim down greatly, just to the files that aren't in gnulib. Remove defns gnulib does for us. * m4/check-decl.m4 (gl_CHECK_DECLS): Don't include stdio.h, string.h, stdlib.h, unistd.h, sys/time.h, time.h. Use AC_CHECK_DECLS_ONCE for free, getenv, geteuid, getlogin, getuid, lseek, malloc, memchr, realloc. Don't check for getutent, memrchr, nanosleep, stpcpy, strndup, strnlen, strstr, strtoul, strtoull. (_gl_DECL_HEADERS): Remove; all uses removed. * m4/jm-macros.m4 (gl_MACROS): Move AC_PREREQ into configure.ac for the benefit of gnulib-tool. Call gl_INIT. Do not call or require macros that gnulib will handle for us. Don't check for fchmod, hasmntopt, isascii, lchown, listmntent, mempcpy, realpath, wcrtomb, tzset. (gl_CHECK_ALL_HEADERS): Don't check for sys/statvfs.h, sys/vfs.h, sys/mount.h. (gl_CHECK_ALL_TYPES): Require AC_TYPE_UNSIGNED_LONG_LONG_INT. Don't check for struct stat.st_blksize. Don't require AC_STRUCT_ST_DM_MODE, gt_TYPE_SSIZE_T, gl_AC_TYPE_UINT32_T, gl_AC_TYPE_UINTMAX_T, gl_AC_TYPE_UINTPTR_T, gl_AC_TYPE_UNSIGNED_LONG_LONG. * m4/prereq.m4 (gl_PREREQ): Require gl_FUNC_XFTS, gl_ROOT_DEV_INO. Don't require macros that gnulib does for us. * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Don't check for sys/sysmacros.h. Don't check for statvfs. Use AC_CHECK_HEADERS_ONCE for netinet/in.h, nfs/nfs_clnt.h, nfs/vfs.h. Don't require gl_AC_TYPE_LONG_LONG, gt_HEADER_INTTYPES_H.
2006-08-21Remove from CVS, since the bootstrap script generates them automatically.Paul Eggert
2006-08-20the patch from 2006-08-18 broke on cygwin.Paul Eggert