Hello community,

here is the log from the commit of package HaXml for openSUSE:Factory checked 
in at 2017-07-06 00:02:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/HaXml (Old)
 and      /work/SRC/openSUSE:Factory/.HaXml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "HaXml"

Thu Jul  6 00:02:05 2017 rev:2 rq:508012 version:1.25.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/HaXml/HaXml.changes      2017-02-28 
23:49:31.894063348 +0100
+++ /work/SRC/openSUSE:Factory/.HaXml.new/HaXml.changes 2017-07-06 
00:02:06.489214408 +0200
@@ -1,0 +2,5 @@
+Sun Jun 25 18:41:33 UTC 2017 - [email protected]
+
+- Update to version 1.25.4.
+
+-------------------------------------------------------------------

Old:
----
  HaXml-1.25.3.tar.gz

New:
----
  HaXml-1.25.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ HaXml.spec ++++++
--- /var/tmp/diff_new_pack.QVtgOy/_old  2017-07-06 00:02:07.237109048 +0200
+++ /var/tmp/diff_new_pack.QVtgOy/_new  2017-07-06 00:02:07.237109048 +0200
@@ -18,7 +18,7 @@
 
 %global pkg_name HaXml
 Name:           %{pkg_name}
-Version:        1.25.3
+Version:        1.25.4
 Release:        0
 Summary:        Utilities for manipulating XML documents
 License:        GPL-2.0 AND LGPL-2.1

++++++ HaXml-1.25.3.tar.gz -> HaXml-1.25.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HaXml-1.25.3/HaXml.cabal new/HaXml-1.25.4/HaXml.cabal
--- old/HaXml-1.25.3/HaXml.cabal        2015-01-22 22:36:25.000000000 +0100
+++ new/HaXml-1.25.4/HaXml.cabal        2017-06-21 09:31:40.000000000 +0200
@@ -1,5 +1,5 @@
 name:          HaXml
-version:       1.25.3
+version:       1.25.4
 license:       LGPL
 license-file:  COPYRIGHT
 author:                Malcolm Wallace <[email protected]>
@@ -55,6 +55,7 @@
         Text.XML.HaXml.Util,
         Text.XML.HaXml.Validate,
         Text.XML.HaXml.Verbatim,
+        Text.XML.HaXml.Version
         Text.XML.HaXml.Wrappers,
         Text.XML.HaXml.XmlContent,
         Text.XML.HaXml.XmlContent.Parser,
@@ -76,14 +77,12 @@
   else
     build-depends: base < 2 || >= 3, bytestring
   extensions: CPP, ExistentialQuantification
-  cpp-options: -DVERSION="\"1.25.3\""
   nhc98-options: -K10M
 
 Executable Canonicalise
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: Canonicalise.hs
   build-depends: base, HaXml, pretty
 
@@ -91,54 +90,47 @@
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: CanonicaliseLazy.hs
   build-depends: base, HaXml, pretty
-  
+
 Executable Xtract
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: Xtract.hs
   build-depends: base, HaXml, pretty
-  
+
 Executable Validate
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: Validate.hs
   build-depends: base, HaXml
-  
+
 Executable MkOneOf
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: MkOneOf.hs
   build-depends: base, HaXml
-  
+
 Executable DtdToHaskell
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: DtdToHaskell.hs
   build-depends: base, HaXml, pretty
-  
+
 Executable XsdToHaskell
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: XsdToHaskell.hs
   build-depends: base, HaXml, pretty, polyparse, directory
-  
+
 Executable FpMLToHaskell
   GHC-Options: -Wall
   Extensions:  CPP
   Hs-Source-Dirs: src/tools
-  cpp-options: -DVERSION="\"1.25.3\""
   Main-Is: FpMLToHaskell.hs
   build-depends: base, HaXml, pretty, polyparse, directory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HaXml-1.25.3/src/Text/XML/HaXml/Lex.hs 
new/HaXml-1.25.4/src/Text/XML/HaXml/Lex.hs
--- old/HaXml-1.25.3/src/Text/XML/HaXml/Lex.hs  2015-01-22 22:36:24.000000000 
+0100
+++ new/HaXml-1.25.4/src/Text/XML/HaXml/Lex.hs  2017-06-21 09:31:40.000000000 
+0200
@@ -244,9 +244,11 @@
     | "!"   `prefixes` ss = emit TokSpecialOpen p:
                                      skip 2 p s (xmlSpecial (InTag "<!...>":w))
     | "/"   `prefixes` ss = emit TokEndOpen p: 
-                                    skip 2 p s (xmlTag (InTag "</...>":tail w))
+                                    skip 2 p s (xmlTag (InTag "</...>":tale w))
     | otherwise           = emit TokAnyOpen p:
                                  skip 1 p s (xmlTag (InTag "<...>":NotInTag:w))
+    where tale [] = [NotInTag] -- cope with non-well-formed input
+          tale xs = tail xs
 xmlAny (_:_:w) p s@('/':ss)
     | ">"   `prefixes` ss = emit TokEndClose p: skip 2 p s (xmlAny w)
 xmlAny w p ('&':ss) = emit TokAmp p:      textUntil ";" TokSemi "" p
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/HaXml-1.25.3/src/Text/XML/HaXml/Schema/TypeConversion.hs 
new/HaXml-1.25.4/src/Text/XML/HaXml/Schema/TypeConversion.hs
--- old/HaXml-1.25.3/src/Text/XML/HaXml/Schema/TypeConversion.hs        
2015-01-22 22:36:24.000000000 +0100
+++ new/HaXml-1.25.4/src/Text/XML/HaXml/Schema/TypeConversion.hs        
2017-06-21 09:31:40.000000000 +0200
@@ -112,7 +112,7 @@
     simple (Primitive prim)     = []
     simple s@(Restricted a n f r)
         | (Just enums) <- isEnumeration s
-                                = [EnumSimpleType 
+                                = [EnumSimpleType
                                        (maybe (error "missing Name") xname n)
                                        enums (comment a) ]
         | otherwise             = [RestrictSimpleType
@@ -126,7 +126,7 @@
                               --                      (comment a)]
     simple s@(UnionOf a n f u m)
         | (Just enums) <- isEnumeration s
-                                = [EnumSimpleType 
+                                = [EnumSimpleType
                                        (maybe (error "missing Name") xname n)
                                        enums (comment a) ]
         | otherwise             = [UnionSimpleTypes
@@ -262,7 +262,7 @@
                            --  Element{ elem_name = xname (theName n)
                            --         , elem_type = checkXName s (N $ theName 
n)
                            --         , elem_modifier =
-                           --                     Haskell.Range (elem_occurs 
ed)
+                           --                 occursToModifier (elem_occurs ed)
                            --         , elem_byRef   = False
                            --         , elem_locals  = []
                            --         , elem_substs  = Nothing
@@ -288,16 +288,17 @@
                          singleton $ ElementOfType $ elementDecl ed
                      --  Element{ elem_name    = xname $ theName n
                      --         , elem_type    = checkXName s t
-                     --         , elem_modifier= Haskell.Range (elem_occurs ed)
+                     --         , elem_modifier=
+                     --                       occursToModifier (elem_occurs ed)
                      --         , elem_byRef   = False
                      --         , elem_locals  = []
                      --         , elem_substs  = Nothing
                      --         , elem_comment = comment (elem_annotation ed)
                      --         }
         Right ref -> case Map.lookup ref (env_element env) of
-                      Nothing -> error $ "<topElementDecl> unknown element 
reference "
-                                         ++printableName ref
-                      Just e' -> topElementDecl e'
+           Nothing -> error $ "<topElementDecl> unknown element reference "
+                            ++printableName ref
+           Just e' -> topElementDecl e'
 
     elementDecl :: XSD.ElementDecl -> Haskell.Element
     elementDecl ed = case elem_nameOrRef ed of
@@ -305,7 +306,7 @@
                              , elem_type     = maybe (localTypeExp ed)
                                                      (checkXName s)
                                                      (theType n)
-                             , elem_modifier = Haskell.Range $ elem_occurs ed
+                             , elem_modifier = occursToModifier $ elem_occurs 
ed
                              , elem_byRef    = False   -- by reference
                              , elem_locals   = []      -- internal Decl
                              , elem_substs   = Nothing -- substitution group
@@ -319,19 +320,19 @@
         Right ref -> case Map.lookup ref (env_element env) of
                        Just e' -> (elementDecl e')
                                       { elem_modifier =
-                                            Haskell.Range (elem_occurs ed)
+                                              occursToModifier (elem_occurs ed)
                                       , elem_byRef = True }
                        Nothing -> -- possible ref is imported qualified?
                            case Map.lookup (N $ localName ref)
                                            (env_element env) of
                                Just e' -> (elementDecl e')
                                             { elem_modifier =
-                                               Haskell.Range (elem_occurs ed)
+                                               occursToModifier (elem_occurs 
ed)
                                             , elem_byRef = True }
                                Nothing -> Element ({-name-}XName ref)
                                               -- best guess at type
                                               ({-type-}XName ref)
-                                              (Haskell.Range (elem_occurs ed))
+                                              (occursToModifier (elem_occurs 
ed))
                                               True [] Nothing Nothing
 
     localTypeExp :: XSD.ElementDecl -> XName
@@ -386,7 +387,12 @@
         Left  n   -> let ({-highs,-}es) = choiceOrSeq (fromMaybe (error 
"XSD.group")
                                                              (group_stuff g))
                      in {-highs ++-} singleton $
-                           Haskell.Group (xname n) es
+                           Haskell.Group (xname n)
+                                         (map (\e->e{elem_modifier=
+                                                         combineOccursModifier
+                                                             (group_occurs g)
+                                                             (elem_modifier 
e)})
+                                              es)
                                          (comment (group_annotation g))
         Right ref -> case Map.lookup ref (env_group env) of
                   --   Nothing -> error $ "bad group reference "
@@ -394,7 +400,7 @@
                        Nothing -> singleton $
                                   Haskell.Group (xname 
("unknown-group-"++printableName ref)) []
                                                 (comment (group_annotation g))
-                       Just g' -> group g'
+                       Just g' -> group g'{ group_occurs=group_occurs g }
 
     particleAttrs :: ParticleAttrs -> ([Haskell.Element],[Haskell.Attribute])
     particleAttrs (PA part attrs _) = -- ignoring AnyAttr for now
@@ -410,7 +416,7 @@
     choiceOrSeq (XSD.All      ann eds)   = error "not yet implemented: XSD.All"
     choiceOrSeq (XSD.Choice   ann o ees) = [ OneOf (anyToEnd
                                                      (map elementEtc ees))
-                                                   (Haskell.Range o)
+                                                   (occursToModifier o)
                                                    (comment ann) ]
     choiceOrSeq (XSD.Sequence ann _ ees) = concatMap elementEtc ees
 
@@ -422,7 +428,7 @@
 
     any :: XSD.Any -> [Haskell.Element]
     any [email protected]{}  = [Haskell.AnyElem
-                           { elem_modifier = Haskell.Range (any_occurs a)
+                           { elem_modifier = occursToModifier (any_occurs a)
                            , elem_comment  = comment (any_annotation a) }]
 
     -- If an ANY element is part of a choice, ensure it is the last part.
@@ -479,8 +485,10 @@
 nameOfSimple s                           = xname "String" -- anonymous simple
 
 mkRestrict :: XSD.Restriction -> [Haskell.Restrict]
-mkRestrict (RestrictSim1 ann base r1) =
-        error "Not yet implemented: Restriction1 on simpletype"
+mkRestrict (RestrictSim1 ann base r1) = []
+--      = error "Not yet implemented: Restriction1 on simpletype"
+--      ^ This branch is not strictly correct.  There ought to be some
+--        restrictions.
 mkRestrict (RestrictType _ _ _ facets) =
     (let occurs = [ (f,ann,v)  | (Facet f ann v _) <- facets
                                , f `elem` [OrderedBoundsMinIncl
@@ -530,6 +538,33 @@
 consolidate (Occurs min max) (UnorderedMaxLength,_,n) =
              Occurs min (Just (read n))
 
+instance Monoid Occurs where
+    mempty = Occurs Nothing Nothing
+    (Occurs Nothing  Nothing)  `mappend` o  = o
+    (Occurs (Just z) Nothing)  `mappend` (Occurs min max)
+                                        = Occurs (Just $ maybe z (*z) min) max
+    (Occurs Nothing  (Just x)) `mappend` (Occurs min max)
+                                        = Occurs min (Just $ maybe x (*x) max)
+    (Occurs (Just z) (Just x)) `mappend` (Occurs min max)
+                                        = Occurs (Just $ maybe z (*z) min)
+                                                 (Just $ maybe x (*x) max)
+
+-- | Push another Occurs value inside an existing Modifier.
+combineOccursModifier :: Occurs -> Modifier -> Modifier
+combineOccursModifier o Haskell.Single     = occursToModifier $ mappend o
+                                                    $ Occurs (Just 1) (Just 1)
+combineOccursModifier o Haskell.Optional   = occursToModifier $ mappend o
+                                                    $ Occurs (Just 0) (Just 1)
+combineOccursModifier o (Haskell.Range o') = occursToModifier $ mappend o o'
+
+-- | Convert an occurs range to a Haskell-style type modifier (Maybe, List, Id)
+occursToModifier :: Occurs -> Modifier
+occursToModifier (Occurs Nothing  Nothing)  = Haskell.Single
+occursToModifier (Occurs (Just 0) Nothing)  = Haskell.Optional
+occursToModifier (Occurs (Just 0) (Just 1)) = Haskell.Optional
+occursToModifier (Occurs (Just 1) (Just 1)) = Haskell.Single
+occursToModifier o                          = Haskell.Range o
+
 
 -- | Find the supertype (if it exists) of a given type name.
 supertypeOf :: Environment -> QName -> Maybe QName
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HaXml-1.25.3/src/Text/XML/HaXml/Version.hs 
new/HaXml-1.25.4/src/Text/XML/HaXml/Version.hs
--- old/HaXml-1.25.3/src/Text/XML/HaXml/Version.hs      1970-01-01 
01:00:00.000000000 +0100
+++ new/HaXml-1.25.4/src/Text/XML/HaXml/Version.hs      2017-06-21 
09:31:40.000000000 +0200
@@ -0,0 +1,6 @@
+module Text.XML.HaXml.Version
+  ( version
+  ) where
+
+version :: String
+version  = "1.25.4"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HaXml-1.25.3/src/Text/XML/HaXml/Wrappers.hs 
new/HaXml-1.25.4/src/Text/XML/HaXml/Wrappers.hs
--- old/HaXml-1.25.3/src/Text/XML/HaXml/Wrappers.hs     2015-01-22 
22:36:25.000000000 +0100
+++ new/HaXml-1.25.4/src/Text/XML/HaXml/Wrappers.hs     2017-06-21 
09:31:40.000000000 +0200
@@ -1,5 +1,5 @@
 {-# LANGUAGE CPP #-}
-#define dummy          -- just to ensure that cpp gets called on this file
+#define dummy   -- just to ensure that cpp gets called on this file
 module Text.XML.HaXml.Wrappers
   ( fix2Args
   , processXmlWith
@@ -20,6 +20,7 @@
 import Text.XML.HaXml.Parse       (xmlParse)
 import Text.XML.HaXml.Html.Parse  (htmlParse)
 import Text.XML.HaXml.Pretty as PP(document)
+import Text.XML.HaXml.Version
 import Text.PrettyPrint.HughesPJ  (render)
 
 
@@ -31,7 +32,7 @@
 fix2Args = do
   args <- getArgs
   when ("--version" `elem` args) $ do
-      putStrLn $ "part of HaXml-"++ VERSION
+      putStrLn $ "part of HaXml-" ++ version
       exitWith ExitSuccess
   when ("--help" `elem` args) $ do
       putStrLn $ "See http://projects.haskell.org/HaXml";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HaXml-1.25.3/src/Text/XML/HaXml.hs 
new/HaXml-1.25.4/src/Text/XML/HaXml.hs
--- old/HaXml-1.25.3/src/Text/XML/HaXml.hs      2015-01-22 22:36:24.000000000 
+0100
+++ new/HaXml-1.25.4/src/Text/XML/HaXml.hs      2017-06-21 09:31:40.000000000 
+0200
@@ -28,10 +28,7 @@
 import Text.XML.HaXml.Wrappers    (fix2Args,processXmlWith)
 import Text.XML.HaXml.Verbatim
 import Text.XML.HaXml.Escape
+import Text.XML.HaXml.Version
 
 import Text.PrettyPrint.HughesPJ  (render)
 
--- | The version of the library.
-version :: String
-version  = VERSION
-               -- expect cpp to fill in value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HaXml-1.25.3/src/tools/XsdToHaskell.hs 
new/HaXml-1.25.4/src/tools/XsdToHaskell.hs
--- old/HaXml-1.25.3/src/tools/XsdToHaskell.hs  2015-01-22 22:36:25.000000000 
+0100
+++ new/HaXml-1.25.4/src/tools/XsdToHaskell.hs  2017-06-21 09:31:40.000000000 
+0200
@@ -71,7 +71,7 @@
                            let decls = convert (mkEnvironment inf v emptyEnv) v
                                haskl = Haskell.mkModule inf v decls
                                doc   = ppModule simpleNameConverter haskl
-                           hPutStrLn stdout $ render doc
+                           hPutStrLn o $ render doc
         (Right v,_)  -> do hPutStrLn stdout $ "Parse incomplete!"
                            hPutStrLn stdout $ "\n-----------------\n"
                            hPutStrLn stdout $ show v


Reply via email to