]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
*** empty log message ***
authorJim Meyering <jim@meyering.net>
Sun, 2 Jun 2002 20:45:46 +0000 (20:45 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 2 Jun 2002 20:45:46 +0000 (20:45 +0000)
old/fileutils/ChangeLog

index 80060cd609ee426bece551366b07479a2802220e..e63a1c51ed1bd975b246c83896197f141367b0d6 100644 (file)
@@ -1,6 +1,144 @@
+2002-06-02  Jim Meyering  <meyering@lucent.com>
+
+       `rm' no longer uses explicit recursion, and as such is now able
+       to remove hierarchies of effectively unlimited depth.  Prior to
+       this change, on typical systems, rm would fail (segfault) to remove
+       hierarchies of depth greater than about 25,000.
+
+       * src/remove.c: Merge in all changes from no-recursion branch.  See below.
+       * src/remove.h: Likewise.
+       * src/rm.c: Likewise.
+       * src/mv.c: Likewise.
+
+2002-06-02  Jim Meyering  <meyering@lucent.com>
+
+       * tests/rm/r-2: Adjust, now that we no longer report
+       `removing all entries of directory ...'.
+       * tests/rm/r-1: Likewise.
+
+       * src/remove.c (enum Ternary): Define type.
+       (prompt): Add a parameter.  Adjust callers.
+       (remove_entry): Attempt rmdir here, only if a directory is
+       `known' to be empty.  Significant rework.
+       (remove_dir): Propagate failure `up' also when rmdir fails.
+
 2002-06-01  Jim Meyering  <meyering@lucent.com>
 
-       * Version 4.1.9.
+       * tests/rm/Makefile.am (TESTS): Add rm5.
+       * tests/rm/rm5: New test.
+
+2002-05-30  Jim Meyering  <meyering@lucent.com>
+
+       In interactive mode, prompt only once about an empty directory.
+       * src/remove.c (enum Prompt_action): Define.
+       (prompt): Two new parameters.  Adjust all callers.
+
+       Performance.
+       * src/remove.c (remove_entry) [!ROOT_CAN_UNLINK_DIRS]:
+       Don't call rmdir here.
+
+2002-05-29  Jim Meyering  <meyering@lucent.com>
+
+       * src/remove.c (AD_pop_and_chdir): Don't use errno (it's not valid)
+       in diagnostic for changed dev/ino.
+       (remove_entry): Tweak diagnostic.
+
+2002-05-27  Jim Meyering  <meyering@lucent.com>
+
+       * src/remove.c (ROOT_CAN_UNLINK_DIRS): Define.
+       (AD_pop_and_chdir): Propagate status as we traverse back `up' the tree.
+       (DO_UNLINK, DO_RMDIR): Define.
+       (remove_entry) [ROOT_CAN_UNLINK_DIRS]: Add code so this works also on
+       systems where root can use `unlink' to remove directories.
+
+2002-05-24  Jim Meyering  <meyering@lucent.com>
+
+       * tests/mv/mv-special-1: Adapt for changed format of --verbose output.
+
+2002-05-22  Jim Meyering  <meyering@lucent.com>
+
+       * src/remove.c: Include file-type.h.
+       Include file type in prompt when asking whether to remove file.
+       Based on a patch from Paul Eggert.
+
+       * src/remove.c (prompt): Add comment.
+
+       * src/remove.c (remove_dir): Fix another (known) leak.
+
+       * tests/rm/rm3: Don't depend on order of traversal of dir entries.
+       It is nondeterministic on some types of filesystems.
+
+       * src/remove.c (hash_freer): New function.
+       (AD_mark_helper): Use it.
+       (AD_mark_as_unremovable): xstrdup the filename argument.
+       (remove_dir): Free directory name.
+
+       * src/remove.c (remove_entry): Fail also when trying to remove a
+       directory without the --recursive option.
+       Change a diagnostic, s/unlink/remove/, now that it can apply also
+       to a directory.
+
+       * src/remove.c (is_empty_dir): New function.
+       (prompt): New function, factored out of...
+       (remove_entry): ...here.  Call it.
+       (remove_dir): Call prompt before rmdir.
+
+       * src/remove.c (remove_entry): Add support for prompting (e.g., -i).
+
+       * src/remove.h (UPDATE_STATUS): New macro.
+       * src/remove.c [AD_ent] (status): New member.  This lets us propagate
+       the status from a subdirectory to its parent via AD_pop_and_chdir.
+       (AD_push_initial): Set it.
+       (AD_push): Likewise.
+       (remove_cwd_entries): Change return type to enum RM_status, and
+       adjust all callers.
+       (rm): Use UPDATE_STATUS rather than open-coding it.
+
+       * src/remove.c (remove_entry): New function, factored out of...
+       (remove_cwd_entries): ...here, and...
+       (rm_1): ...here.
+
+       * src/remove.c (remove_cwd_entries): Add support for --verbose.
+       (remove_dir): Likewise.
+       (rm_1): Likewise.
+
+2002-05-18  Jim Meyering  <meyering@lucent.com>
+
+       * tests/rm/rm3: New file.
+       * tests/rm/rm4: New file.
+       * tests/rm/Makefile.am (TESTS): Add rm3 and rm4.
+
+2002-05-17  Jim Meyering  <meyering@lucent.com>
+
+       * tests/rm/rm1: New file.
+       * tests/rm/rm2: New file.
+       * tests/rm/unread2: New file.
+       * tests/rm/Makefile.am (TESTS): Add rm1, rm2, and unread2.
+
+       * src/remove.h (enum RM_status) [RM_NONEMPTY_DIR]: New member.
+
+2002-05-13  Jim Meyering  <meyering@lucent.com>
+
+       * src/remove.c (rm): Free cwd_state, if necessary.
+
+2002-05-01  Jim Meyering  <meyering@lucent.com>
+
+       * src/remove.c (rm_1): Remove now useless (always true)
+       user_specified_name parameter.  Adjust sole caller.
+
+       * src/mv.c (do_move): Adapt to new calling sequence for rm.
+       * src/rm.c (main): Likewise.
+
+       * src/remove.c (rm): New function.  This interface allows
+       one to remove multiple arguments at a time.  This is important in
+       that it allows us to hide the remove_init/remove_fini functions and
+       the cwd_state parameter.
+       (rm_1): Renamed from rm.
+       (remove_init, remove_fini): Remove functions.  Each body is now
+       part of `rm'.
+       * src/remove.h (rm): Update prototype.
+
+2002-06-01  Jim Meyering  <meyering@lucent.com>
 
        * src/ls.c: Remove use of D_TYPE_IN_DIRENT, now that that symbol
        has been renamed.
        from gcc -W about comparison between signed and unsigned.
        (copy_internal): Likewise, but use a cast.
 
-2002-05-24  Jim Meyering  <meyering@lucent.com>
-
-       `rm' no longer uses explicit recursion, and as such is now able
-       to remove hierarchies of effectively unlimited depth.  Prior to
-       this change, on typical systems, rm was unable to remove
-       hierarchies of depth greater than about 25,000.
-
-       * src/remove.c: Merge in all changes from no-recursion branch.
-       * src/remove.h: Likewise.
-       * src/rm.c: Likewise.
-       * src/mv.c: Likewise.
-
 2002-05-22  Jim Meyering  <meyering@lucent.com>
 
        * src/sys2.h (S_ISREG, S_ISDIR): Define if not already defined.