Mail Archives: djgpp-workers/2003/08/03/03:24:02
Updated info below.
> I don't get it: this sounds like `mv' has rightfully detected
> that it cannot make this move, and refused to do so, isn't
> it? The message "cannot move `junk1' to a subdirectory of
> itself" seems to suggest that.
The initial call to rename and _rename are okay, but after the return from
_rename() the recusive issue strikes. After the return from _rename() the
directory result is 100% perfect.
> Also, when the problem happened to me (I did see it on XP),
> what you have after `mv' exits is not just junk1/junk1, but
> junk1/junk1/junk1/... etc., ad nauseum.
I didn't want to do a dir /s as then the output scrolls past the command,
but it does occur.
>
> The error message is also different: I get EPERM after,
> presumably, the combined length of the file name exceeds the
> Windows 255-character limit.
I havn't looked at the exact error returned and instead have concentrated on
trying to find where the problem occurs.
> Finally, if `rename' in the library is the culprit, there's a
> machinery there that's supposed to detect this kind of
> situation and return a suitable `errno' value. IIRC, that
> machinery is based on `_truename', so perhaps `_truename'
> returns something unexpected in this case. Please try to
> step into `rename' and see what happens there.
I am still hunting the exact problem.
I have further traced the problem to the following line in rename(). Before
the call all is okay, but after the recusive junk1/junk1/junk1 exists....
/* Process all of its siblings. */
retval = __file_tree_walk(source, mover);
Andrew
- Raw text -