diff options
| author | Ralph Amissah <ralph@amissah.com> | 2014-07-04 13:49:02 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2014-07-04 13:49:02 -0400 | 
| commit | 618c5f11c5f799510478f2d403e01e656da935c3 (patch) | |
| tree | 6448657ffd840ec0121d6047a171df5cd86c200d | |
| parent | v5 v6: version & changelog (& rakefile) (diff) | |
v5 v6: ao, fix, re: seg numbering, fixed width, leading zeros (new in 5.4.3)sisu_5.4.4
* provisional fix (check related issues against 5.4.2)
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v5 | 3 | ||||
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v6 | 3 | ||||
| -rw-r--r-- | lib/sisu/v5/ao_numbering.rb | 45 | ||||
| -rw-r--r-- | 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 | 
