Linus Torvalds, Thu, Apr 19, 2007 01:04:06 +0200: > > > > + struct stat st; > > + int err = errno; > > + if (err == EISDIR || > > + (err == EPERM && !lstat(path, &st) && S_ISDIR(st.st_mode))) { > > Can I ask people to please *not* write things like this? > Err... ok. > > (Side note: EPERM is actually apparently the POSIXLY correct error!) > Indeed it is 8-[] > > So here's a suggested and totally untested patch. It makes the code more > readable, and probably fixes *two* bugs in the process. It also simply > doesn't really even care what the error actually was - the important part > was not that it was a directory, but that the unlink didn't succeed! > Well, it is a bit tested now. I'll repeat the testing tomorrow on that windows box. > + /* .. but not some other error (who really cares what?) */ > + return error(msg, path, ": perhaps a D/F conflict?"); I have to care sometimes when cygwin breaks where you never expect it to. These annoying strerror(errno)'s a very helpful. IOW, how can the user respond to the message which just tells "maybe it is expected and you can fix it. Perhaps"? What do I do here next? (well, I know what to do, but someone wont). An lstat + S_ISDIR would at least make it plain "D/F conflict". - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html