-- | Quote ASCII arguments to be passed through the Unix shell. -- -- For safety, these functions drop all non-ASCII characters. module System.Posix.Escape ( escape , escapeMany ) where import qualified System.Posix.Escape.Unicode as U import Data.Char -- | Wrap a @String@ so it can be used within a Unix shell command line, and -- end up as a single argument to the program invoked. escape :: String -> String escape = U.escape . filter isAscii -- | Wrap some @String@s as separate arguments, by inserting spaces before and -- after each. This will break if, for example, prefixed with a backslash. escapeMany :: [String] -> String escapeMany = U.escapeMany . map (filter isAscii)