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 |