From 92b1117596e614d0953435a6e8f49e0e755618b7 Mon Sep 17 00:00:00 2001
From: dkuhlman <none@none>
Date: Thu, 29 May 2014 11:30:29 -0700
Subject: [PATCH] Fixed function transitiveClosure to avoid infinite recursion.

---
 README                              |  14 +++++++++++---
 generateDS.html                     |   6 +++---
 generateDS.py                       |  12 ++++++++----
 generateDS.txt                      |   2 +-
 gui/generateds_gui.py               |   2 +-
 libgenerateDS/gui/generateds_gui.py |   2 +-
 librarytemplate_howto.html          |   6 +++---
 librarytemplate_howto.txt           |   2 +-
 process_includes.py                 |   8 ++------
 setup.py                            |   2 +-
 tutorial/generateds_tutorial.html   |  10 +++++-----
 tutorial/generateds_tutorial.txt    |   6 +++---
 tutorial/generateds_tutorial.zip    | Bin 48764 -> 48759 bytes
 13 files changed, 40 insertions(+), 32 deletions(-)

diff --git a/README b/README
index 35bf8a0..1bbe891 100644
--- a/README
+++ b/README
@@ -141,13 +141,22 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Change history
 --------------
 
-Version 2.12e (05/12/2014)
+Version 2.12e (05/29/2014)
 - Fix for formatting error.  Thanks to Nikolay Lavrov for catching
   this and for providing a fix.
 - Fix to gds_parse_datetime().  The Python datetime module's
   datetime object uses microseconds, but xs:dateTime uses fractions
   of a second (e.g. 0.123).  Converted from decimal fraction to
   microseconds.  Thanks to Mikki Weesenaar for catching this.
+- Modified behavior and names for generated method insert_xxx, so
+  that now we generate insert_xxx_at and replace_xxx_at.  Thanks to
+  Bart Wagenaar for pointing out this deviation from Pythonic style.
+- Function transitiveClosure in generateDS.py was susceptible to
+  infinite looping.  This seemed to occur when a substitutionGroup
+  contains a member with the same name as the head of the
+  substitutionGroup (but in a different namespace?).  Added a test
+  to stop the recursion when this occurs.  Thanks to Stuart Chalk
+  for finding and reporting this.
 
 Version 2.12d (04/02/2014)
 - Fix for an infinite loop caused by inconsistent use of
@@ -1507,6 +1516,5 @@ The following enhancements and fixes remain to be done:
 
 
 Dave Kuhlman
-dkuhlman@pacbell.net
+dkuhlman@davekuhlman.org
 http://www.davekuhlman.org
-
diff --git a/generateDS.html b/generateDS.html
index b1e88d9..eb61228 100644
--- a/generateDS.html
+++ b/generateDS.html
@@ -220,7 +220,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.12d</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.12e</td>
 </tr>
 </tbody>
 </table>
@@ -229,7 +229,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">April 02, 2014</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">May 23, 2014</td>
 </tr>
 </tbody>
 </table>
@@ -2872,7 +2872,7 @@ following among others:</p>
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateDS.txt">View document source</a>.
-Generated on: 2014-04-02 22:08 UTC.
+Generated on: 2014-05-23 16:00 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/generateDS.py b/generateDS.py
index 57c412a..1b8da06 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -179,7 +179,7 @@ logging.disable(logging.INFO)
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.12d'
+VERSION = '2.12e'
 ##VERSION##
 
 GenerateProperties = 0
@@ -3527,12 +3527,15 @@ def generateBuildStandard_1(
 # end generateBuildStandard_1
 
 
-def transitiveClosure(m, e):
+def transitiveClosure(m, e, seen):
     t = []
+    if e in seen:
+        return t
     if e in m:
         t += m[e]
+        seen.add(e)
         for f in m[e]:
-            t += transitiveClosure(m, f)
+            t += transitiveClosure(m, f, seen)
     return t
 
 
@@ -3552,8 +3555,9 @@ def generateBuildStandard(wrt, prefix, element, keyword, delayed, hasChildren):
             #   substitutionGroup.
             childName = child.getName()
             if childName in SubstitutionGroups:
+                seen = set()
                 for memberName in transitiveClosure(
-                        SubstitutionGroups, childName):
+                        SubstitutionGroups, childName, seen):
                     memberName = cleanupName(memberName)
                     if memberName in ElementDict:
                         member = ElementDict[memberName]
diff --git a/generateDS.txt b/generateDS.txt
index 9cab68c..79797cf 100644
--- a/generateDS.txt
+++ b/generateDS.txt
@@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema
 
 .. version
 
-:revision: 2.12d
+:revision: 2.12e
 
 .. version
 
diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py
index 43bcb6d..93dfb52 100755
--- a/gui/generateds_gui.py
+++ b/gui/generateds_gui.py
@@ -31,7 +31,7 @@ from libgenerateDS.gui import generateds_gui_session
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.12d'
+VERSION = '2.12e'
 ##VERSION##
 
 
diff --git a/libgenerateDS/gui/generateds_gui.py b/libgenerateDS/gui/generateds_gui.py
index 43bcb6d..93dfb52 100755
--- a/libgenerateDS/gui/generateds_gui.py
+++ b/libgenerateDS/gui/generateds_gui.py
@@ -31,7 +31,7 @@ from libgenerateDS.gui import generateds_gui_session
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.12d'
+VERSION = '2.12e'
 ##VERSION##
 
 
diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html
index 3d35551..1a2df9d 100644
--- a/librarytemplate_howto.html
+++ b/librarytemplate_howto.html
@@ -217,7 +217,7 @@ ul.auto-toc {
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.12d</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.12e</td>
 </tr>
 </tbody>
 </table>
@@ -226,7 +226,7 @@ ul.auto-toc {
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">April 02, 2014</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">May 23, 2014</td>
 </tr>
 </tbody>
 </table>
@@ -380,7 +380,7 @@ this command for your needs.  For example, you may need to use
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="librarytemplate_howto.txt">View document source</a>.
-Generated on: 2014-04-02 22:08 UTC.
+Generated on: 2014-05-23 16:00 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/librarytemplate_howto.txt b/librarytemplate_howto.txt
index aa8320e..5c10d25 100644
--- a/librarytemplate_howto.txt
+++ b/librarytemplate_howto.txt
@@ -8,7 +8,7 @@ How to package a generateDS.py generated library
 
 .. version
 
-:revision: 2.12d
+:revision: 2.12e
 
 .. version
 
diff --git a/process_includes.py b/process_includes.py
index 296e292..2b6e816 100755
--- a/process_includes.py
+++ b/process_includes.py
@@ -30,7 +30,7 @@ from lxml import etree
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.12d'
+VERSION = '2.12e'
 ##VERSION##
 
 CatalogDict = {}
@@ -559,8 +559,4 @@ def main():
 
 if __name__ == "__main__":
     #import pdb; pdb.set_trace()
-    #main()
-    try:
-        main()
-    except:
-        import pdb; pdb.post_mortem()
+    main()
diff --git a/setup.py b/setup.py
index acdd21f..132ca3d 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ setup(name="generateDS",
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-    version="2.12d",
+    version="2.12e",
 ##VERSION##
     author="Dave Kuhlman",
     author_email="dkuhlman@davekuhlman.org",
diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html
index 0a4c830..ce70917 100644
--- a/tutorial/generateds_tutorial.html
+++ b/tutorial/generateds_tutorial.html
@@ -206,8 +206,8 @@ ul.auto-toc {
 <td>Dave Kuhlman</td></tr>
 <tr><th class="docinfo-name">Address:</th>
 <td><pre class="address">
-<a class="first reference external" href="mailto:dkuhlman&#64;rexx.com">dkuhlman&#64;rexx.com</a>
-<a class="last reference external" href="http://www.rexx.com/~dkuhlman">http://www.rexx.com/~dkuhlman</a>
+<a class="first reference external" href="mailto:dkuhlman&#64;davekuhlman.org">dkuhlman&#64;davekuhlman.org</a>
+<a class="last reference external" href="http://www.davekuhlman.org">http://www.davekuhlman.org</a>
 </pre>
 </td></tr>
 </tbody>
@@ -219,7 +219,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.12d</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.12e</td>
 </tr>
 </tbody>
 </table>
@@ -228,7 +228,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">April 02, 2014</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">May 22, 2014</td>
 </tr>
 </tbody>
 </table>
@@ -1210,7 +1210,7 @@ named <tt class="docutils literal">garden_api.py</tt>, you can create an instanc
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateds_tutorial.txt">View document source</a>.
-Generated on: 2014-04-02 22:08 UTC.
+Generated on: 2014-05-22 16:15 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/tutorial/generateds_tutorial.txt b/tutorial/generateds_tutorial.txt
index 3769559..f5e3e16 100644
--- a/tutorial/generateds_tutorial.txt
+++ b/tutorial/generateds_tutorial.txt
@@ -3,15 +3,15 @@ generateDS -- Introduction and Tutorial
 ======================================================
 
 :author: Dave Kuhlman
-:address: dkuhlman@rexx.com
-    http://www.rexx.com/~dkuhlman
+:address: dkuhlman@davekuhlman.org
+    http://www.davekuhlman.org
 
 .. Do not modify the following version comments.
    They are used by updateversion.py.
 
 .. version
 
-:revision: 2.12d
+:revision: 2.12e
 
 .. version
 
diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip
index 27248db2bc871061f8a52482dad9d2925992564e..0a67f630b3d3efdefc4e51b17fc154474101f81b 100644
GIT binary patch
delta 12983
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

delta 13036
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

-- 
GitLab