packages feed

shakespeare 1.2.0.1 → 1.2.0.2

raw patch · 3 files changed

+21/−5 lines, 3 files

Files

Text/Shakespeare.hs view
@@ -381,7 +381,11 @@  shakespeareFromString :: ShakespeareSettings -> String -> Q Exp shakespeareFromString r str = do-    s <- qRunIO $ preFilter Nothing r str+    s <- qRunIO $ preFilter Nothing r $+#ifdef WINDOWS+          filter (/='\r')+#endif+          str     contentsToShakespeare r $ contentFromString r s  shakespeareFile :: ShakespeareSettings -> FilePath -> Q Exp
Text/Shakespeare/Base.hs view
@@ -25,7 +25,7 @@  import Language.Haskell.TH.Syntax import Language.Haskell.TH (appE)-import Data.Char (isUpper, isSymbol)+import Data.Char (isUpper, isSymbol, isPunctuation, isAscii) import Text.ParserCombinators.Parsec import Text.Parsec.Prim (Parsec) import Data.List (intercalate)@@ -109,10 +109,16 @@             x <- many1 $ noneOf " \t\n\r()"             _ <- char ')'             return $ DerefIdent $ Ident x++    -- See: http://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-160002.2+    isOperatorChar c+        | isAscii c = c `elem` "!#$%&*+./<=>?@\\^|-~:"+        | otherwise = isSymbol c || isPunctuation c+     derefInfix x = try $ do         _ <- delim         xs <- many $ try $ derefSingle >>= \x' -> delim >> return x'-        op <- many1 (satisfy $ \c -> isSymbol c || c `elem` "-") <?> "operator"+        op <- many1 (satisfy isOperatorChar) <?> "operator"         -- special handling for $, which we don't deal with         when (op == "$") $ fail "don't handle $"         let op' = DerefIdent $ Ident op@@ -275,4 +281,10 @@ readUtf8File fp = do     h <- SIO.openFile fp SIO.ReadMode     SIO.hSetEncoding h SIO.utf8_bom-    TIO.hGetContents h+    ret <- TIO.hGetContents h +    return $+#ifdef WINDOWS+      TL.filter ('\r'/=) ret+#else+      ret+#endif
shakespeare.cabal view
@@ -1,5 +1,5 @@ name:            shakespeare-version:         1.2.0.1+version:         1.2.0.2 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>