module XArgsEscape (escapeForXArgs) where import Data.Char (isSpace) escapeSpecialChar :: Char -> String -> String escapeSpecialChar '\'' accum = '\\': '\'' : accum escapeSpecialChar '"' accum = '\\' : '"' : accum escapeSpecialChar '\n' accum = '\\': '\n' : accum escapeSpecialChar c accum | isSpace c = '\\' : c : accum | otherwise = c : accum escapeForXArgs :: String -> String escapeForXArgs = foldr escapeSpecialChar ""