From d7255c64d8587250c60698347ae2859195c8a911 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Fri, 4 Jul 2014 13:44:06 -0400
Subject: v5 v6: version & changelog (& rakefile)

---
 data/doc/sisu/CHANGELOG_v5 | 7 +++++++
 data/doc/sisu/CHANGELOG_v6 | 7 +++++++
 data/sisu/v5/v/version.yml | 6 +++---
 data/sisu/v6/v/version.yml | 6 +++---
 rbuild                     | 4 ++--
 5 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5
index ec8eb24f..07b877ef 100644
--- a/data/doc/sisu/CHANGELOG_v5
+++ b/data/doc/sisu/CHANGELOG_v5
@@ -31,6 +31,13 @@ v2 branch is removed; it is available in sisu =< 3.3.2
 
 %% Reverse Chronological:
 
+%% 5.4.4.orig.tar.xz (2014-07-04:26/5)
+http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_5.4.4
+http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_5.4.4-1
+http://www.jus.uio.no/sisu/pkg/src/sisu_5.4.4.orig.tar.xz
+  sisu_5.4.4.orig.tar.xz
+  sisu_5.4.4-1.dsc
+
 %% 5.4.3.orig.tar.xz (2014-07-01:26/2)
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_5.4.3
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_5.4.3-1
diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6
index ada19da7..cf36cbe4 100644
--- a/data/doc/sisu/CHANGELOG_v6
+++ b/data/doc/sisu/CHANGELOG_v6
@@ -21,6 +21,13 @@ v2 branch is removed; it is available in sisu =< 3.3.2
 
 %% Reverse Chronological:
 
+%% 6.0.10.orig.tar.xz (2014-07-04:26/5)
+http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_6.0.10
+http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_6.0.10-1
+http://www.jus.uio.no/sisu/pkg/src/sisu_6.0.10.orig.tar.xz
+  sisu_6.0.10.orig.tar.xz
+  sisu_6.0.10-1.dsc
+
 %% 6.0.9.orig.tar.xz (2014-07-01:26/2)
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_6.0.9
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_6.0.9-1
diff --git a/data/sisu/v5/v/version.yml b/data/sisu/v5/v/version.yml
index b6d8dfa8..ef86ff92 100644
--- a/data/sisu/v5/v/version.yml
+++ b/data/sisu/v5/v/version.yml
@@ -1,5 +1,5 @@
 ---
 :project: SiSU
-:version: 5.4.3
-:date_stamp: 2014w26/2
-:date: "2014-07-01"
+:version: 5.4.4
+:date_stamp: 2014w26/5
+:date: "2014-07-04"
diff --git a/data/sisu/v6/v/version.yml b/data/sisu/v6/v/version.yml
index fb9cc955..fa44ea93 100644
--- a/data/sisu/v6/v/version.yml
+++ b/data/sisu/v6/v/version.yml
@@ -1,5 +1,5 @@
 ---
 :project: SiSU
-:version: 6.0.9
-:date_stamp: 2014w26/2
-:date: "2014-07-01"
+:version: 6.0.10
+:date_stamp: 2014w26/5
+:date: "2014-07-04"
diff --git a/rbuild b/rbuild
index 540bc568..9ca47c2a 100644
--- a/rbuild
+++ b/rbuild
@@ -37,8 +37,8 @@
 #require 'mkmf'
 #create_makefile("sisu")
 #% manual settings, edit/update as required (note current default settings are obtained from sisu version yml file)
-SiSU_version_next_stable     = '5.4.3'
-SiSU_version_next_unstable   = '6.0.9'
+SiSU_version_next_stable     = '5.4.4'
+SiSU_version_next_unstable   = '6.0.10'
 #% rake file
 SiSU_version_generic_next_stable     = '5.4.x'
 SiSU_version_generic_next_unstable   = '6.0.x'
-- 
cgit v1.2.3


From 618c5f11c5f799510478f2d403e01e656da935c3 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Fri, 4 Jul 2014 13:49:02 -0400
Subject: v5 v6: ao, fix, re: seg numbering, fixed width, leading zeros (new in
 5.4.3)

* provisional fix (check related issues against 5.4.2)
---
 data/doc/sisu/CHANGELOG_v5  |  3 +++
 data/doc/sisu/CHANGELOG_v6  |  3 +++
 lib/sisu/v5/ao_numbering.rb | 45 +++++++++++++++++++++++++++++----------------
 lib/sisu/v6/ao_numbering.rb | 45 +++++++++++++++++++++++++++++----------------
 4 files changed, 64 insertions(+), 32 deletions(-)

diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5
index 07b877ef..2e3e84f8 100644
--- a/data/doc/sisu/CHANGELOG_v5
+++ b/data/doc/sisu/CHANGELOG_v5
@@ -38,6 +38,9 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.4.4.orig.tar.xz
   sisu_5.4.4.orig.tar.xz
   sisu_5.4.4-1.dsc
 
+* ao, fix, re seg numbering, fixed width, leading zeros (introduced in 5.4.3)
+  provisional fix (check related issues against 5.4.2)
+
 %% 5.4.3.orig.tar.xz (2014-07-01:26/2)
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_5.4.3
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_5.4.3-1
diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6
index cf36cbe4..f9d9a62d 100644
--- a/data/doc/sisu/CHANGELOG_v6
+++ b/data/doc/sisu/CHANGELOG_v6
@@ -28,6 +28,9 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.0.10.orig.tar.xz
   sisu_6.0.10.orig.tar.xz
   sisu_6.0.10-1.dsc
 
+* ao, fix, re seg numbering, fixed width, leading zeros (introduced in 6.0.9)
+  provisional fix (check related issues against 5.4.2)
+
 %% 6.0.9.orig.tar.xz (2014-07-01:26/2)
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_6.0.9
 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_6.0.9-1
diff --git a/lib/sisu/v5/ao_numbering.rb b/lib/sisu/v5/ao_numbering.rb
index c4b6558f..9fbaaab5 100644
--- a/lib/sisu/v5/ao_numbering.rb
+++ b/lib/sisu/v5/ao_numbering.rb
@@ -81,15 +81,19 @@ module SiSU_AO_Numbering
       end
     end
     def numbering_song
-      data=@data
-      data=number_plaintext_para(data)
-      data=auto_number_heading_ie_title(data.compact) #tr issue
-      data=ocn(data.compact) #watch
-      data=xml(data.compact)
-      data=minor_numbering(data.compact)
-      data,tags_map,ocn_html_seg_map=name_para_seg_filename(data)
-      data=set_heading_top(data) unless @md.set_heading_top
-      [data,tags_map,ocn_html_seg_map]
+      begin
+        data=@data
+        data=number_plaintext_para(data)
+        data=auto_number_heading_ie_title(data.compact) #tr issue
+        data=ocn(data.compact) #watch
+        data=xml(data.compact)
+        data=minor_numbering(data.compact)
+        data,tags_map,ocn_html_seg_map=name_para_seg_filename(data)
+        data=set_heading_top(data) unless @md.set_heading_top
+        [data,tags_map,ocn_html_seg_map]
+      ensure
+        @@segments_count=0
+      end
     end
     def set_tags(tags,tag)
       tags=if not tag.empty? \
@@ -190,7 +194,10 @@ module SiSU_AO_Numbering
                 if dob.ln==no1
                   dob.name="#{title_no}" if not dob.name
                   dob.tags=set_tags(dob.tags,title_no)
-                  tag=dob.obj.gsub(/(Article|Clause|Section|Chapter)\s+/,"\\1_#{title_no}").downcase
+                  tag=dob.obj.
+                    gsub(/(Article|Clause|Section|Chapter)\s+/,
+                      "\\1_#{title_no}").
+                    downcase
                   tag=heading_tag_clean(tag)
                   dob.tags=set_tags(dob.tags,tag)
                   dob.obj=(dob.obj =~/(Article|Clause|Section)\s+/) \
@@ -293,7 +300,7 @@ module SiSU_AO_Numbering
       @tuned_file=@tuned_file.flatten
     end
     def leading_zeros_fixed_width_number(possible_seg_name)
-      if possible_seg_name =~/^([\d]+?\.|[\d]+)$/m          #!~/[.,:-]+/
+      if possible_seg_name =~/^([0-9]+?\.|[0-9]+)$/m          #!~/[.,:-]+/
         possible_seg_name=possible_seg_name.
           gsub(/\.$/,'')
         nl=possible_seg_name.to_s.length
@@ -308,15 +315,20 @@ module SiSU_AO_Numbering
           possible_seg_name.to_s
       end
     end
-    def auto_seg_name(possible_seg_name)
-      if possible_seg_name =~/^([\d]+?\.|[\d]+)$/m          #!~/[.,:-]+/
+    def auto_seg_name(possible_seg_name,heading_num_is)
+      if possible_seg_name =~/^[0-9]+?\.$/m                                  #!~/[.,:-]+/
+        possible_seg_name=possible_seg_name.
+          gsub(/\.$/,'')
+      end
+      if possible_seg_name =~/^[0-9]+$/m \
+      and possible_seg_name.to_i <= heading_num_is.to_i
         leading_zeros_fixed_width_number(possible_seg_name)
       elsif possible_seg_name =~/^[\d.,:-]+$/m
         possible_seg_name=possible_seg_name.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         #Mx[:auto_seg_prefix] + possible_seg_name
-      else possible_seg_name
+      else possible_seg_name.to_s
       end
     end
     def name_para_seg_filename(data)                                                   #segment naming, remaining
@@ -347,6 +359,7 @@ module SiSU_AO_Numbering
         if dob.is==:heading \
         && dob.ln \
         and dob.ln.to_s =~/^[456]/
+          heading_num_is=/^\d+:(\d+);\d/m.match(dob.node)[1]
           if dob.ln==4 \
           and not dob.name \
           and not @md.set_heading_seg
@@ -356,7 +369,7 @@ module SiSU_AO_Numbering
           and dob.obj =~/^\s*(?:\S+\s+)?([\d.,:-]+)/m      #heading starts with a recognised numeric or word followed by a recognised numeric construct, use that as name
             possible_seg_name=$1
             possible_seg_name=
-              auto_seg_name(possible_seg_name)
+              auto_seg_name(possible_seg_name,heading_num_is)
             possible_seg_name=possible_seg_name.
               gsub(/(?:[:,-]|\W)/,'.').
               gsub(/\.$/,'')
@@ -381,7 +394,7 @@ module SiSU_AO_Numbering
           if dob.ln==4 \
           and not dob.name                                 #if still no segment name, provide a numerical one
             possible_seg_name=
-              auto_seg_name(art_filename_auto)
+              auto_seg_name(art_filename_auto,heading_num_is)
             if @md.seg_names.is_a?(Array) \
             and not @md.seg_names.include?(possible_seg_name)
              dob.name=possible_seg_name
diff --git a/lib/sisu/v6/ao_numbering.rb b/lib/sisu/v6/ao_numbering.rb
index d6faf3a6..755db795 100644
--- a/lib/sisu/v6/ao_numbering.rb
+++ b/lib/sisu/v6/ao_numbering.rb
@@ -81,15 +81,19 @@ module SiSU_AO_Numbering
       end
     end
     def numbering_song
-      data=@data
-      data=number_plaintext_para(data)
-      data=auto_number_heading_ie_title(data.compact) #tr issue
-      data=ocn(data.compact) #watch
-      data=xml(data.compact)
-      data=minor_numbering(data.compact)
-      data,tags_map,ocn_html_seg_map=name_para_seg_filename(data)
-      data=set_heading_top(data) unless @md.set_heading_top
-      [data,tags_map,ocn_html_seg_map]
+      begin
+        data=@data
+        data=number_plaintext_para(data)
+        data=auto_number_heading_ie_title(data.compact) #tr issue
+        data=ocn(data.compact) #watch
+        data=xml(data.compact)
+        data=minor_numbering(data.compact)
+        data,tags_map,ocn_html_seg_map=name_para_seg_filename(data)
+        data=set_heading_top(data) unless @md.set_heading_top
+        [data,tags_map,ocn_html_seg_map]
+      ensure
+        @@segments_count=0
+      end
     end
     def set_tags(tags,tag)
       tags=if not tag.empty? \
@@ -190,7 +194,10 @@ module SiSU_AO_Numbering
                 if dob.ln==no1
                   dob.name="#{title_no}" if not dob.name
                   dob.tags=set_tags(dob.tags,title_no)
-                  tag=dob.obj.gsub(/(Article|Clause|Section|Chapter)\s+/,"\\1_#{title_no}").downcase
+                  tag=dob.obj.
+                    gsub(/(Article|Clause|Section|Chapter)\s+/,
+                      "\\1_#{title_no}").
+                    downcase
                   tag=heading_tag_clean(tag)
                   dob.tags=set_tags(dob.tags,tag)
                   dob.obj=(dob.obj =~/(Article|Clause|Section)\s+/) \
@@ -293,7 +300,7 @@ module SiSU_AO_Numbering
       @tuned_file=@tuned_file.flatten
     end
     def leading_zeros_fixed_width_number(possible_seg_name)
-      if possible_seg_name =~/^([\d]+?\.|[\d]+)$/m          #!~/[.,:-]+/
+      if possible_seg_name =~/^([0-9]+?\.|[0-9]+)$/m          #!~/[.,:-]+/
         possible_seg_name=possible_seg_name.
           gsub(/\.$/,'')
         nl=possible_seg_name.to_s.length
@@ -308,15 +315,20 @@ module SiSU_AO_Numbering
           possible_seg_name.to_s
       end
     end
-    def auto_seg_name(possible_seg_name)
-      if possible_seg_name =~/^([\d]+?\.|[\d]+)$/m          #!~/[.,:-]+/
+    def auto_seg_name(possible_seg_name,heading_num_is)
+      if possible_seg_name =~/^[0-9]+?\.$/m                                  #!~/[.,:-]+/
+        possible_seg_name=possible_seg_name.
+          gsub(/\.$/,'')
+      end
+      if possible_seg_name =~/^[0-9]+$/m \
+      and possible_seg_name.to_i <= heading_num_is.to_i
         leading_zeros_fixed_width_number(possible_seg_name)
       elsif possible_seg_name =~/^[\d.,:-]+$/m
         possible_seg_name=possible_seg_name.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         #Mx[:auto_seg_prefix] + possible_seg_name
-      else possible_seg_name
+      else possible_seg_name.to_s
       end
     end
     def name_para_seg_filename(data)                                                   #segment naming, remaining
@@ -347,6 +359,7 @@ module SiSU_AO_Numbering
         if dob.is==:heading \
         && dob.ln \
         and dob.ln.to_s =~/^[456]/
+          heading_num_is=/^\d+:(\d+);\d/m.match(dob.node)[1]
           if dob.ln==4 \
           and not dob.name \
           and not @md.set_heading_seg
@@ -356,7 +369,7 @@ module SiSU_AO_Numbering
           and dob.obj =~/^\s*(?:\S+\s+)?([\d.,:-]+)/m      #heading starts with a recognised numeric or word followed by a recognised numeric construct, use that as name
             possible_seg_name=$1
             possible_seg_name=
-              auto_seg_name(possible_seg_name)
+              auto_seg_name(possible_seg_name,heading_num_is)
             possible_seg_name=possible_seg_name.
               gsub(/(?:[:,-]|\W)/,'.').
               gsub(/\.$/,'')
@@ -381,7 +394,7 @@ module SiSU_AO_Numbering
           if dob.ln==4 \
           and not dob.name                                 #if still no segment name, provide a numerical one
             possible_seg_name=
-              auto_seg_name(art_filename_auto)
+              auto_seg_name(art_filename_auto,heading_num_is)
             if @md.seg_names.is_a?(Array) \
             and not @md.seg_names.include?(possible_seg_name)
              dob.name=possible_seg_name
-- 
cgit v1.2.3