aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-02-25 14:26:47 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2016-02-25 14:26:47 +0100
commite6e3823982cb9755b7cb4727fb08171eed5b4332 (patch)
treee747dbd35b2b8156e0aa2eb8ed63a92d2b3445c3
parenta93837da703767b6a982ead94494df7c885b46f1 (diff)
downloadthermoprint-e6e3823982cb9755b7cb4727fb08171eed5b4332.tar
thermoprint-e6e3823982cb9755b7cb4727fb08171eed5b4332.tar.gz
thermoprint-e6e3823982cb9755b7cb4727fb08171eed5b4332.tar.bz2
thermoprint-e6e3823982cb9755b7cb4727fb08171eed5b4332.tar.xz
thermoprint-e6e3823982cb9755b7cb4727fb08171eed5b4332.zip
Accept trailing newlines
-rw-r--r--bbcode/bbcode.cabal2
-rw-r--r--bbcode/bbcode.nix2
-rw-r--r--bbcode/src/Text/BBCode.hs4
-rw-r--r--bbcode/test/Text/BBCodeSpec.hs6
4 files changed, 10 insertions, 4 deletions
diff --git a/bbcode/bbcode.cabal b/bbcode/bbcode.cabal
index ad8bb5a..5ef4890 100644
--- a/bbcode/bbcode.cabal
+++ b/bbcode/bbcode.cabal
@@ -2,7 +2,7 @@
2-- documentation, see http://haskell.org/cabal/users-guide/ 2-- documentation, see http://haskell.org/cabal/users-guide/
3 3
4name: bbcode 4name: bbcode
5version: 3.0.0 5version: 3.1.0
6synopsis: A parser for bbcode 6synopsis: A parser for bbcode
7-- description: 7-- description:
8homepage: http://dirty-haskell.org/tags/thermoprint.html 8homepage: http://dirty-haskell.org/tags/thermoprint.html
diff --git a/bbcode/bbcode.nix b/bbcode/bbcode.nix
index 6426b0b..30a6b49 100644
--- a/bbcode/bbcode.nix
+++ b/bbcode/bbcode.nix
@@ -3,7 +3,7 @@
3}: 3}:
4mkDerivation { 4mkDerivation {
5 pname = "bbcode"; 5 pname = "bbcode";
6 version = "3.0.0"; 6 version = "3.1.0";
7 src = ./.; 7 src = ./.;
8 libraryHaskellDepends = [ 8 libraryHaskellDepends = [
9 attoparsec base case-insensitive containers rosezipper text 9 attoparsec base case-insensitive containers rosezipper text
diff --git a/bbcode/src/Text/BBCode.hs b/bbcode/src/Text/BBCode.hs
index d0c9974..f2a9570 100644
--- a/bbcode/src/Text/BBCode.hs
+++ b/bbcode/src/Text/BBCode.hs
@@ -25,7 +25,7 @@ import Data.Function (on)
25import Control.Applicative 25import Control.Applicative
26 26
27import Text.BBCode.Lexer (BBToken(..), token) 27import Text.BBCode.Lexer (BBToken(..), token)
28import Data.Attoparsec.Text (parseOnly, endOfInput) 28import Data.Attoparsec.Text (parseOnly, endOfInput, endOfLine)
29 29
30import Data.Tree 30import Data.Tree
31import Data.Tree.Zipper (TreePos, Empty, Full) 31import Data.Tree.Zipper (TreePos, Empty, Full)
@@ -72,7 +72,7 @@ instance Exception BBCodeError
72 72
73bbcode :: Text -> Either BBCodeError DomForest 73bbcode :: Text -> Either BBCodeError DomForest
74-- ^ Parse BBCode 74-- ^ Parse BBCode
75bbcode t = fmap dom $ first LexerError (parseOnly (many token <* endOfInput) t) >>= first TreeError . rose 75bbcode t = fmap dom $ first LexerError (parseOnly (many token <* many endOfLine <* endOfInput) t) >>= first TreeError . rose
76 76
77-- | Errors in input encountered during parsing of lexed token-stream 77-- | Errors in input encountered during parsing of lexed token-stream
78data TreeError = MismatchedTags Text Text -- ^ Closing tags label does not match opening tags 78data TreeError = MismatchedTags Text Text -- ^ Closing tags label does not match opening tags
diff --git a/bbcode/test/Text/BBCodeSpec.hs b/bbcode/test/Text/BBCodeSpec.hs
index a6e66b6..4e7ea72 100644
--- a/bbcode/test/Text/BBCodeSpec.hs
+++ b/bbcode/test/Text/BBCodeSpec.hs
@@ -61,5 +61,11 @@ examples = [ ("[t]test[/t]"
61 , [[Element "b" [] [Content "foo"]], [Element "b" [] [Content "bar"]]]) 61 , [[Element "b" [] [Content "foo"]], [Element "b" [] [Content "bar"]]])
62 , ("[b]foo[/b][b]bar[/b]" 62 , ("[b]foo[/b][b]bar[/b]"
63 , [[Element "b" [] [Content "foo"], Element "b" [] [Content "bar"]]]) 63 , [[Element "b" [] [Content "foo"], Element "b" [] [Content "bar"]]])
64 , ("[b]foo[/b]\n"
65 , [[Element "b" [] [Content "foo"]]])
66 , ("[b]foo[/b] \n"
67 , [[Element "b" [] [Content "foo"], Content " "]])
68 , ("[b]foo[/b] "
69 , [[Element "b" [] [Content "foo"], Content " "]])
64 ] 70 ]
65 71