commit ghc-xml-conduit for openSUSE:Factory
Hello community,
here is the log from the commit of package ghc-xml-conduit for openSUSE:Factory checked in at 2015-12-29 12:59:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-xml-conduit (Old)
and /work/SRC/openSUSE:Factory/.ghc-xml-conduit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-xml-conduit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-xml-conduit/ghc-xml-conduit.changes 2015-10-06 13:27:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-xml-conduit.new/ghc-xml-conduit.changes 2015-12-29 12:59:53.000000000 +0100
@@ -1,0 +2,7 @@
+Tue Dec 22 09:14:52 UTC 2015 - mimi.vx@gmail.com
+
+- update to 1.3.3
+* New render setting to control when to use CDATA
+* Escaping CDATA closing tag in CDATA
+
+-------------------------------------------------------------------
Old:
----
xml-conduit-1.3.2.tar.gz
New:
----
xml-conduit-1.3.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-xml-conduit.spec ++++++
--- /var/tmp/diff_new_pack.V93fQU/_old 2015-12-29 12:59:54.000000000 +0100
+++ /var/tmp/diff_new_pack.V93fQU/_new 2015-12-29 12:59:54.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-xml-conduit
-Version: 1.3.2
+Version: 1.3.3
Release: 0
Summary: Pure-Haskell utilities for dealing with XML with the conduit package
License: BSD-2-Clause
++++++ xml-conduit-1.3.2.tar.gz -> xml-conduit-1.3.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xml-conduit-1.3.2/ChangeLog.md new/xml-conduit-1.3.3/ChangeLog.md
--- old/xml-conduit-1.3.2/ChangeLog.md 2015-10-02 08:55:36.000000000 +0200
+++ new/xml-conduit-1.3.3/ChangeLog.md 2015-12-21 12:33:46.000000000 +0100
@@ -1,3 +1,8 @@
+## 1.3.3
+
+* New render setting to control when to use CDATA [#68](https://github.com/snoyberg/xml/pull/68)
+* Escaping CDATA closing tag in CDATA [#69](https://github.com/snoyberg/xml/pull/69)
+
## 1.3.2
* Support for iso-8859-1 [#63](https://github.com/snoyberg/xml/issues/63)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xml-conduit-1.3.2/Text/XML/Stream/Render.hs new/xml-conduit-1.3.3/Text/XML/Stream/Render.hs
--- old/xml-conduit-1.3.2/Text/XML/Stream/Render.hs 2015-10-02 08:55:36.000000000 +0200
+++ new/xml-conduit-1.3.3/Text/XML/Stream/Render.hs 2015-12-21 12:33:46.000000000 +0100
@@ -15,6 +15,7 @@
, rsPretty
, rsNamespaces
, rsAttrOrder
+ , rsUseCDATA
, orderAttrs
-- * Event rendering
, tag
@@ -72,6 +73,13 @@
, rsAttrOrder :: Name -> Map.Map Name Text -> [(Name, Text)]
-- ^ Specify how to turn the unordered attributes used by the "Text.XML"
-- module into an ordered list.
+ , rsUseCDATA :: Content -> Bool
+ -- ^ Determines if for a given text content the renderer should use a
+ -- CDATA node.
+ --
+ -- Default: @False@
+ --
+ -- @since 1.3.3
}
instance Default RenderSettings where
@@ -79,6 +87,7 @@
{ rsPretty = False
, rsNamespaces = []
, rsAttrOrder = const Map.toList
+ , rsUseCDATA = const False
}
-- | Convenience function to create an ordering function suitable for
@@ -106,11 +115,11 @@
-- the blaze-builder package, and allow the create of optimally sized
-- 'ByteString's with minimal buffer copying.
renderBuilder :: Monad m => RenderSettings -> Conduit Event m Builder
-renderBuilder RenderSettings { rsPretty = True, rsNamespaces = n } = prettify =$= renderBuilder' n True
-renderBuilder RenderSettings { rsPretty = False, rsNamespaces = n } = renderBuilder' n False
+renderBuilder RenderSettings { rsPretty = True, rsNamespaces = n, rsUseCDATA = useCDATA } = prettify =$= renderBuilder' n True useCDATA
+renderBuilder RenderSettings { rsPretty = False, rsNamespaces = n, rsUseCDATA = useCDATA } = renderBuilder' n False useCDATA
-renderBuilder' :: Monad m => [(Text, Text)] -> Bool -> Conduit Event m Builder
-renderBuilder' namespaces0 isPretty = do
+renderBuilder' :: Monad m => [(Text, Text)] -> Bool -> (Content -> Bool) -> Conduit Event m Builder
+renderBuilder' namespaces0 isPretty useCDATA = do
loop []
where
loop nslevels = await >>= maybe (return ()) (go nslevels)
@@ -129,29 +138,34 @@
yield token
loop nslevels'
_ -> do
- let (token, nslevels') = eventToToken nslevels e
+ let (token, nslevels') = eventToToken nslevels useCDATA e
yield token
loop nslevels'
-eventToToken :: Stack -> Event -> (Builder, [NSLevel])
-eventToToken s EventBeginDocument =
+eventToToken :: Stack -> (Content -> Bool) -> Event -> (Builder, [NSLevel])
+eventToToken s _ EventBeginDocument =
(tokenToBuilder $ TokenBeginDocument
[ ("version", [ContentText "1.0"])
, ("encoding", [ContentText "UTF-8"])
]
, s)
-eventToToken s EventEndDocument = (mempty, s)
-eventToToken s (EventInstruction i) = (tokenToBuilder $ TokenInstruction i, s)
-eventToToken s (EventBeginDoctype n meid) = (tokenToBuilder $ TokenDoctype n meid [], s)
-eventToToken s EventEndDoctype = (mempty, s)
-eventToToken s (EventCDATA t) = (tokenToBuilder $ TokenCDATA t, s)
-eventToToken s (EventEndElement name) =
+eventToToken s _ EventEndDocument = (mempty, s)
+eventToToken s _ (EventInstruction i) = (tokenToBuilder $ TokenInstruction i, s)
+eventToToken s _ (EventBeginDoctype n meid) = (tokenToBuilder $ TokenDoctype n meid [], s)
+eventToToken s _ EventEndDoctype = (mempty, s)
+eventToToken s _ (EventCDATA t) = (tokenToBuilder $ TokenCDATA t, s)
+eventToToken s _ (EventEndElement name) =
(tokenToBuilder $ TokenEndElement $ nameToTName sl name, s')
where
(sl:s') = s
-eventToToken s (EventContent c) = (tokenToBuilder $ TokenContent c, s)
-eventToToken s (EventComment t) = (tokenToBuilder $ TokenComment t, s)
-eventToToken _ EventBeginElement{} = error "eventToToken on EventBeginElement" -- mkBeginToken False s name attrs
+eventToToken s useCDATA (EventContent c)
+ | useCDATA c =
+ case c of
+ ContentText txt -> (tokenToBuilder $ TokenCDATA txt, s)
+ ContentEntity txt -> (tokenToBuilder $ TokenCDATA txt, s)
+ | otherwise = (tokenToBuilder $ TokenContent c, s)
+eventToToken s _ (EventComment t) = (tokenToBuilder $ TokenComment t, s)
+eventToToken _ _ EventBeginElement{} = error "eventToToken on EventBeginElement" -- mkBeginToken False s name attrs
type Stack = [NSLevel]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xml-conduit-1.3.2/Text/XML/Stream/Token.hs new/xml-conduit-1.3.3/Text/XML/Stream/Token.hs
--- old/xml-conduit-1.3.2/Text/XML/Stream/Token.hs 2015-10-02 08:55:36.000000000 +0200
+++ new/xml-conduit-1.3.3/Text/XML/Stream/Token.hs 2015-12-21 12:33:46.000000000 +0100
@@ -68,9 +68,9 @@
, fromByteString ">"
]
tokenToBuilder (TokenContent c) = contentToText c
-tokenToBuilder (TokenCDATA t) =
+tokenToBuilder (TokenCDATA t) =
copyByteString "<![CDATA["
- `mappend` fromText t
+ `mappend` escCDATA t
`mappend` copyByteString "]]>"
tokenToBuilder (TokenComment t) = mconcat [fromByteString "<!--", fromText t, fromByteString "-->"]
tokenToBuilder (TokenDoctype name eid _) = mconcat
@@ -171,3 +171,6 @@
| otherwise = TName (Just a) $ T.drop 1 b
where
(a, b) = T.break (== ':') t
+
+escCDATA :: Text -> Builder
+escCDATA s = fromText (T.replace "]]>" "]]]]><![CDATA[>" s)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xml-conduit-1.3.2/Text/XML.hs new/xml-conduit-1.3.3/Text/XML.hs
--- old/xml-conduit-1.3.2/Text/XML.hs 2015-10-02 08:55:36.000000000 +0200
+++ new/xml-conduit-1.3.3/Text/XML.hs 2015-12-21 12:33:46.000000000 +0100
@@ -62,6 +62,7 @@
, R.rsPretty
, R.rsNamespaces
, R.rsAttrOrder
+ , R.rsUseCDATA
, R.orderAttrs
-- * Conversion
, toXMLDocument
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xml-conduit-1.3.2/test/main.hs new/xml-conduit-1.3.3/test/main.hs
--- old/xml-conduit-1.3.2/test/main.hs 2015-10-02 08:55:36.000000000 +0200
+++ new/xml-conduit-1.3.3/test/main.hs 2015-12-21 12:33:46.000000000 +0100
@@ -94,6 +94,8 @@
it "parsing CDATA" caseParseCdata
it "retains namespaces when asked" caseRetainNamespaces
it "handles iso-8859-1" caseIso8859_1
+ it "renders CDATA when asked" caseRenderCDATA
+ it "escapes CDATA closing tag in CDATA" caseEscapesCDATA
documentParseRender :: IO ()
documentParseRender =
@@ -618,3 +620,25 @@
Map.empty
[Res.NodeContent "\232"])
[]
+
+caseRenderCDATA :: Assertion
+caseRenderCDATA = do
+ let doc = Res.Document (Res.Prologue [] Nothing [])
+ (Res.Element "a" Map.empty
+ [ Res.NodeContent "www.google.com"
+ ])
+ []
+ withoutCDATA = Res.renderLBS def doc
+ withCDATA = Res.renderLBS (def { Res.rsUseCDATA = const True }) doc
+ withCDATA `shouldBe` "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a><![CDATA[www.google.com]]></a>"
+ withoutCDATA `shouldBe` "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a>www.google.com</a>"
+
+caseEscapesCDATA :: Assertion
+caseEscapesCDATA = do
+ let doc = Res.Document (Res.Prologue [] Nothing [])
+ (Res.Element "a" Map.empty
+ [ Res.NodeContent "]]>"
+ ])
+ []
+ result = Res.renderLBS (def { Res.rsUseCDATA = const True }) doc
+ result `shouldBe` "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a><![CDATA[]]]]><![CDATA[>]]></a>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xml-conduit-1.3.2/xml-conduit.cabal new/xml-conduit-1.3.3/xml-conduit.cabal
--- old/xml-conduit-1.3.2/xml-conduit.cabal 2015-10-02 08:55:36.000000000 +0200
+++ new/xml-conduit-1.3.3/xml-conduit.cabal 2015-12-21 12:33:46.000000000 +0100
@@ -1,5 +1,5 @@
name: xml-conduit
-version: 1.3.2
+version: 1.3.3
license: MIT
license-file: LICENSE
author: Michael Snoyman
participants (1)
-
root@hilbert.suse.de