@@ -36,6 +36,7 @@ module Text.Pandoc.Shared (
3636 joinWithSep,
3737 tabsToSpaces,
3838 backslashEscape,
39+ escapeCharAsString,
3940 endsWith,
4041 stripTrailingNewlines,
4142 removeLeadingTrailingSpace,
@@ -268,6 +269,14 @@ backslashEscape special (x:xs) = if x `elem` special
268269 then '\\':x:(backslashEscape special xs)
269270 else x:(backslashEscape special xs)
270271
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
279+
271280-- | Returns @True@ if string ends with given character.
272281endsWith :: Char -> [Char] -> Bool
273282endsWith char [] = False