fix other 2 cases of conflicting destdir files
authorJoey Hess <joey@kitenet.net>
Sun, 18 Jul 2010 21:30:46 +0000 (17:30 -0400)
committerJoey Hess <joey@kitenet.net>
Sun, 18 Jul 2010 21:38:35 +0000 (17:38 -0400)
commite674bb1445378ce43ae60720e42d6c418270001a
treefc505247b46f916eaa7a5d1fa319ea156fda9928
parent1dbb2632ef5f7eaa1f5745d587b1373b45b09e56
fix other 2 cases of conflicting destdir files

Cleanly fixed case where destdir file failed to be written because there
was a directory with the same name. This can be detected with no extra
system calls, and dealt with by finding all pages that wrote files
inside the directory, and removing them and the directory.

The other, inverse case would be expensive to detect in will_render,
since it would need to check each parent directory of the file to see
if the directory is really a conflicting file. But prep_writefile
already does a similar scan for symlinks in the path, so I added code
there to remove the conflicting file. This fix assumes that the file
is written using writefile, and not some other means (but using other means
would be a security hole too, so hopefully nothing does).
IkiWiki.pm
debian/changelog
doc/bugs/conflicts.mdwn