shelltestrunner 1.3 → 1.3.1
raw patch · 2 files changed
+48/−2 lines, 2 filesdep ~base
Dependency ranges changed: base
Files
- PlatformString.hs +46/−0
- shelltestrunner.cabal +2/−2
+ PlatformString.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE CPP #-}+{-+Cross-platform, cross-GHC-version en/decoding of file paths, command-line arguments etc.++Provides the PlatformString type alias, representing a possibly encoded+string received from the OS environment or intended for it; and functions+to convert these to and from regular non-encoded strings, which should+work correctly on most platforms and GHC versions.++-}++module PlatformString (+ PlatformString,+ fromPlatformString,+ toPlatformString+)+where++#if __GLASGOW_HASKELL__ < 702+import Codec.Binary.UTF8.String as UTF8 (decodeString, encodeString, isUTF8Encoded)+import System.Info (os)+#endif++-- | A platform string is a string value received from or intended for the+-- (current) operating system, such as a file path or command-line+-- argument (or an environment variable's name or value ?). On some+-- platforms (unix) these are typically encoded, and on others (windows)+-- they are not. On unix we assume UTF-8 encoding, as recommended by+-- http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html)+--+type PlatformString = String++fromPlatformString :: PlatformString -> String+toPlatformString :: String -> PlatformString++#if __GLASGOW_HASKELL__ < 702+fromPlatformString s = if UTF8.isUTF8Encoded s then UTF8.decodeString s else s+toPlatformString = case os of+ "unix" -> UTF8.encodeString+ "linux" -> UTF8.encodeString+ "darwin" -> UTF8.encodeString+ _ -> id+#else+fromPlatformString = id+toPlatformString = id+#endif
shelltestrunner.cabal view
@@ -1,6 +1,6 @@ name: shelltestrunner -- sync with README.md, ANNOUNCE:-version: 1.3+version: 1.3.1 category: Testing synopsis: A tool for testing command-line programs. description:@@ -25,7 +25,7 @@ executable shelltest main-is: shelltest.hs- other modules: PlatformString+ other-modules: PlatformString ghc-options: -threaded -W -fwarn-tabs build-depends: base >= 4 && < 5