/bin/mv: Sync with FreeBSD
authorJohn Marino <draco@marino.st>
Fri, 16 Nov 2012 09:21:09 +0000 (10:21 +0100)
committerJohn Marino <draco@marino.st>
Fri, 16 Nov 2012 09:27:32 +0000 (10:27 +0100)
commit46c7fb85d65f149352ad0eeb4d067b97ff57ce9e
tree90dd18899136f8fc2f11175d5494574a22e66545
parent640dc18f50d05f9ad0c3a92d4265c33fb0b98933
/bin/mv: Sync with FreeBSD

1. Utilize central <paths.h> header
2. Meet posix spec for moving directory to existing non-empty directory
3. Meet posix spec for not moving directory over a file
4. Don't chop IO into pieces, use MAXPHYS
5. Add -h flag (similar to ln -h flag)
6. Test for input_is_terminal
7. Regression test added.

DETAILS
==========================================================================
1. remove pathnames.h file and add _PATH_RM to paths.h
2. Moving a directory to an existing non-empty directory will now fail as
   required.
3. Prior to change this test past, but after change it failed on
   cross-link devices.  Original code added to check for case and return
   -1 for the cross-link case.
4. Read files in one block and improve warn messages.
5. Using -h flag will force mv to treat a symbolic link to a directory
   for the target as a symbolic link instead of a directory.  This makes
   it possible to atomically update a symbolic link using rename().
6. POSIX requires this behavior:
   if (exists and (NOT f_options) AND
     ((not_writable AND input_is_terminal) OR i_option)) then
     prompt
   This behavior was implemented.
7. Passes all tests in suite.  Prior to change it failed 2 of 32 tests.
bin/mv/mv.1
bin/mv/mv.c
bin/mv/pathnames.h [deleted file]
include/paths.h
tools/regression/bin/mv/Makefile [new file with mode: 0644]
tools/regression/bin/mv/regress.sh [new file with mode: 0644]
tools/regression/bin/mv/regress.t [new file with mode: 0644]