@@ -36,6 +36,7 @@ module Text.Pandoc.Shared (
36 joinWithSep,
36 joinWithSep,
37 tabsToSpaces,
37 tabsToSpaces,
38 backslashEscape,
38 backslashEscape,
40 stripTrailingNewlines,
41 stripTrailingNewlines,
41 removeLeadingTrailingSpace,
42 removeLeadingTrailingSpace,
@@ -268,6 +269,14 @@ backslashEscape special (x:xs) = if x `elem` special
268 then '\\':x:(backslashEscape special xs)
269 then '\\':x:(backslashEscape special xs)
269 else x:(backslashEscape special xs)
270 else x:(backslashEscape special xs)
272+-- | Escape a character as a string
273+escapeCharAsString ch str "" = ""
274+escapeCharAsString ch str (x:xs) | x == ch =
275+ str ++ escapeCharAsString ch str xs
276+escapeCharAsString ch str xs =
277+ let (a,b) = break (== ch) xs in
278+ a ++ escapeCharAsString ch str b
271-- | Returns @True@ if string ends with given character.
280-- | Returns @True@ if string ends with given character.
272endsWith :: Char -> [Char] -> Bool
281endsWith :: Char -> [Char] -> Bool
273endsWith char [] = False
282endsWith char [] = False