
I've run into a problem using Directory.setPermissions (or equivalently System.Directory.setPermissions). Basically the problem is that getPermissions f >>= setPermissions f is not a noop. Instead it is equivalent to chmod o-r f chmod g-r f etc I presume that this is a bug in setPermissions? The documentation claims that Note that to change some, but not all permissions, a construct on the following lines must be used. makeReadable f = do p <- getPermissions f setPermissions f (p {readable = True}) Which certainly implies that it is possible to change only some permissions, contrary to what happens in the actual implementation. It also seems that the Permissions data type could include in it additional (hidden, since it isn't portable perhaps) information in order to make the above code work. Then the only major question would be whether setPermissions f (p {writeable = True}) should make the file world-writeable or just user-writeable. I don't know about that. But at a minimum, it should preserve world-readability. -- David Roundy http://www.abridgegame.org