packages feed

directory 1.0.1.0 → 1.0.1.1

raw patch · 3 files changed

+44/−34 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

System/Directory.hs view
@@ -21,7 +21,9 @@      -- * Actions on directories       createDirectory		-- :: FilePath -> IO ()+#ifndef __NHC__     , createDirectoryIfMissing  -- :: Bool -> FilePath -> IO ()+#endif     , removeDirectory		-- :: FilePath -> IO ()     , removeDirectoryRecursive  -- :: FilePath -> IO ()     , renameDirectory		-- :: FilePath -> FilePath -> IO ()@@ -82,9 +84,9 @@ import Control.Exception.Base  #ifdef __NHC__-import Directory hiding ( getDirectoryContents-                        , doesDirectoryExist, doesFileExist-                        , getModificationTime )+import Directory -- hiding ( getDirectoryContents+                 --        , doesDirectoryExist, doesFileExist+                 --        , getModificationTime ) import System (system) #endif /* __NHC__ */ @@ -201,7 +203,7 @@   write_ok <- Posix.fileAccess name False True  False   exec_ok  <- Posix.fileAccess name False False True   stat <- Posix.getFileStatus name-  let is_dir = Posix.fileMode stat .&. Posix.directoryMode /= 0+  let is_dir = Posix.isDirectory stat   return (     Permissions {       readable   = read_ok,@@ -329,6 +331,7 @@  #endif +#ifndef __NHC__ -- | @'createDirectoryIfMissing' parents dir@ creates a new directory  -- @dir@ if it doesn\'t exist. If the first argument is 'True' -- the function will also create all parent directories if they are missing.@@ -370,12 +373,13 @@                           else throw e #else               stat <- Posix.getFileStatus dir-              if Posix.fileMode stat .&. Posix.directoryMode /= 0 +              if Posix.isDirectory stat                  then return ()                  else throw e #endif               ) `catch` ((\_ -> return ()) :: IOException -> IO ())           | otherwise              -> throw e+#endif  /* !__NHC__ */  #if __GLASGOW_HASKELL__ {- | @'removeDirectory' dir@ removes an existing directory /dir/.  The@@ -614,7 +618,7 @@    is_dir <- isDirectory st #else    stat <- Posix.getSymbolicLinkStatus opath-   let is_dir = Posix.fileMode stat .&. Posix.directoryMode /= 0+   let is_dir = Posix.isDirectory stat #endif    if is_dir 	then ioException (ioeSetErrorString@@ -739,7 +743,7 @@ #endif  -#ifndef __HUGS__+#ifdef __GLASGOW_HASKELL__ {- |@'getDirectoryContents' dir@ returns a list of /all/ entries in /dir/.  @@ -776,16 +780,16 @@   modifyIOError ((`ioeSetFileName` path) .                   (`ioeSetLocation` "getDirectoryContents")) $ do #ifndef mingw32_HOST_OS-  bracket-    (Posix.openDirStream path)-    Posix.closeDirStream-    loop+    bracket+      (Posix.openDirStream path)+      Posix.closeDirStream+      loop  where   loop dirp = do      e <- Posix.readDirStream dirp      if null e then return [] else do-     es <- loop dirp-     return (e:es)+       es <- loop dirp+       return (e:es) #else   bracket      (Win32.findFirstFile (path </> "*"))@@ -804,7 +808,7 @@                  -- no need to reverse, ordering is undefined #endif /* mingw32 */ -#endif /* !__HUGS__ */+#endif /* __GLASGOW_HASKELL__ */   {- |If the operating system has a notion of current directories,@@ -883,7 +887,7 @@  #endif /* __GLASGOW_HASKELL__ */ -#ifndef __HUGS__+#ifdef __GLASGOW_HASKELL__ {- |The operation 'doesDirectoryExist' returns 'True' if the argument file exists and is a directory, and 'False' otherwise. -}@@ -894,7 +898,7 @@    (withFileStatus "doesDirectoryExist" name $ \st -> isDirectory st) #else    (do stat <- Posix.getFileStatus name-       return (Posix.fileMode stat .&. Posix.directoryMode /= 0))+       return (Posix.isDirectory stat)) #endif    `catch` ((\ _ -> return False) :: IOException -> IO Bool) @@ -908,7 +912,7 @@    (withFileStatus "doesFileExist" name $ \st -> do b <- isDirectory st; return (not b)) #else    (do stat <- Posix.getFileStatus name-       return (Posix.fileMode stat .&. Posix.directoryMode == 0))+       return (not (Posix.isDirectory stat))) #endif    `catch` ((\ _ -> return False) :: IOException -> IO Bool) @@ -937,7 +941,7 @@ #endif  -#endif /* !__HUGS__ */+#endif /* __GLASGOW_HASKELL__ */  #ifdef mingw32_HOST_OS withFileStatus :: String -> FilePath -> (Ptr CStat -> IO a) -> IO a@@ -1011,16 +1015,16 @@ getHomeDirectory =   modifyIOError ((`ioeSetLocation` "getHomeDirectory")) $ do #if defined(mingw32_HOST_OS)-  r <- try $ Win32.sHGetFolderPath nullPtr Win32.cSIDL_PROFILE nullPtr 0-  case (r :: Either IOException String) of-    Right s -> return s-    Left  _ -> do-      r1 <- try $ Win32.sHGetFolderPath nullPtr Win32.cSIDL_WINDOWS nullPtr 0-      case r1 of-        Right s -> return s-        Left  e -> ioError (e :: IOException)+    r <- try $ Win32.sHGetFolderPath nullPtr Win32.cSIDL_PROFILE nullPtr 0+    case (r :: Either IOException String) of+      Right s -> return s+      Left  _ -> do+        r1 <- try $ Win32.sHGetFolderPath nullPtr Win32.cSIDL_WINDOWS nullPtr 0+        case r1 of+          Right s -> return s+          Left  e -> ioError (e :: IOException) #else-  getEnv "HOME"+    getEnv "HOME" #endif  {- | Returns the pathname of a directory in which application-specific@@ -1054,11 +1058,11 @@ getAppUserDataDirectory appName = do   modifyIOError ((`ioeSetLocation` "getAppUserDataDirectory")) $ do #if defined(mingw32_HOST_OS)-  s <- Win32.sHGetFolderPath nullPtr Win32.cSIDL_APPDATA nullPtr 0-  return (s++'\\':appName)+    s <- Win32.sHGetFolderPath nullPtr Win32.cSIDL_APPDATA nullPtr 0+    return (s++'\\':appName) #else-  path <- getEnv "HOME"-  return (path++'/':'.':appName)+    path <- getEnv "HOME"+    return (path++'/':'.':appName) #endif  {- | Returns the current user's document directory.@@ -1086,9 +1090,9 @@ getUserDocumentsDirectory = do   modifyIOError ((`ioeSetLocation` "getUserDocumentsDirectory")) $ do #if defined(mingw32_HOST_OS)-  Win32.sHGetFolderPath nullPtr Win32.cSIDL_PERSONAL nullPtr 0+    Win32.sHGetFolderPath nullPtr Win32.cSIDL_PERSONAL nullPtr 0 #else-  getEnv "HOME"+    getEnv "HOME" #endif  {- | Returns the current directory for temporary files.
directory.cabal view
@@ -1,5 +1,5 @@ name:		directory-version:	1.0.1.0+version:	1.0.1.1 license:	BSD3 license-file:	LICENSE maintainer:	libraries@haskell.org
include/HsDirectory.h view
@@ -12,6 +12,12 @@ #ifdef __NHC__ #include "Nhc98BaseConfig.h" #else++// On Solaris we have to make sure _FILE_OFFSET_BITS is defined +// before including <sys/stat.h> below, because that header+// will try and define it if it isn't already.+#include "HsFFI.h"+ #include "HsDirectoryConfig.h" #endif // Otherwise these clash with similar definitions from other packages: