[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: coreutils-6.4: mv(1), rename(2) and 9p
From: |
sqweek |
Subject: |
Re: coreutils-6.4: mv(1), rename(2) and 9p |
Date: |
Fri, 5 Jan 2007 21:13:57 +0900 |
On 1/5/07, Paul Eggert <address@hidden> wrote:
sqweek <address@hidden> writes:
> - if (errno != EXDEV)
> + if (errno != EXDEV && errno != EPERM)
This would cause 'mv' to fail to conform to POSIX.
Quoting from copy.c (just above the patch):
/* WARNING: there probably exist systems for which an inter-device
rename fails with a value of errno not handled here.
If/as those are reported, add them to the condition below.
If this happens to you, please do the following and send the output
to the bug-reporting address (e.g., in the output of cp --help):
touch k; perl -e 'rename "k","/tmp/k" or print "$!(",$!+0,")\n"'
where your current directory is on one partion and /tmp is the other.
Also, please try to find the E* errno macro name corresponding to
the diagnostic and parenthesized integer, and include that in your
e-mail. One way to do that is to run a command like this
find /usr/include/. -type f \
| xargs grep 'define.*\<E[A-Z]*\>.*\<18\>' /dev/null
where you'd replace `18' with the integer in parentheses that
was output from the perl one-liner above.
If necessary, of course, change `/tmp' to some other directory. */
if (errno != EXDEV)