#1535: Proposal: expose the drive functions in the filepath package
-----------------------------+----------------------------------------------
Reporter: igloo | Owner:
Type: proposal | Status: new
Priority: normal | Milestone: Not GHC
Component: libraries/base | Version: 6.6.1
Severity: normal | Keywords:
Difficulty: Unknown | Os: Unknown
Testcase: | Architecture: Unknown
-----------------------------+----------------------------------------------
This comes out of #1490, where, in createDirectoryIfMissing, we use stat
to determine if a directory exists.
(I don't think catching an exception is a possibility in this case, as
mkdir returns EEXIST if "pathname already exists (not necessarily as a
directory)", so we can't distinguish between the directory already
existing and a file existing with the name that we want. Short of doing
something ugly like trying to make (path ++ "/.") and seeing if we get
ENOTDIR, anyway).
The problem is that mingw's stat succeeds for C:\ and C:\foo but fails for
C: and C:\foo\. The current code strips a trailing \ before calling stat,
and thus fails if asked to create C:\ (which we always do if "make
parents" is true, and of course this path could be given explicitly by a
user).
What we want is something like
{{{
if isDrive x
then addTrailingPathSeparator x
else dropTrailingPathSeparator x
}}}
except filepath currently doesn't export isDrive, for reasons I'm not
entirely clear on.
Thus I propose exposing the *Drive functions from the filepath package.
The patch, which I will attach, is rather trivial as the code is already
written, tested etc, just not exposed.
Let's try until 21 July for a discussion period.
Please try to accompany any objections with a (clean) alternative solution
to the original problem.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1535>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs