+
+quote :: String -> String
+#if defined(mingw32_HOST_OS)
+quote "" = ""
+quote s = "\"" ++ s ++ "\""
+#else
+quote s = s
+#endif
+
+\end{code}
+
+This next blob is in System.Cmd after 5.04, but until then it needs
+to be here (for Win32 only).
+
+\begin{code}
+#if defined(mingw32_HOST_OS)
+#if __GLASGOW_HASKELL__ <= 504
+
+rawSystem :: String -> IO ExitCode
+rawSystem "" = ioException (IOError Nothing InvalidArgument "rawSystem" "null command" Nothing)
+rawSystem cmd =
+ withCString cmd $ \s -> do
+ status <- throwErrnoIfMinus1 "rawSystem" (primRawSystem s)
+ case status of
+ 0 -> return ExitSuccess
+ n -> return (ExitFailure n)
+
+foreign import ccall "rawSystemCmd" unsafe primRawSystem :: CString -> IO Int
+
+#endif
+#endif