docs/parse-support-md: Break out find_current_sectnode
authorIan Jackson <ian.jackson@eu.citrix.com>
Wed, 25 Apr 2018 12:47:31 +0000 (13:47 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Wed, 25 Apr 2018 13:26:11 +0000 (14:26 +0100)
We are going to want to add a call site for this.

No functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Release-acked-by: Juergen Gross <jgross@suse.com>
docs/parse-support-md

index 218e12baa41e4caffc9216ee7ea22dc7929f608e..f0b4c2503fd9d2e42b29f46b4dcb675fa7afeda3 100755 (executable)
@@ -67,6 +67,32 @@ our $had_feature;
 
 #---------- parsing ----------
 
+sub find_current_sectnode () {
+    die unless @insections;
+
+    my $sectnode;
+    my $realsect;
+    foreach my $s (@insections) {
+        my $sectlist = $sectnode
+            ? $sectnode->{Children} : $toplevel_sectlist;
+        my $key = $s->{Key};
+        $realsect = $s if $s->{Anchor};
+        tie %$sectlist, 'Tie::IxHash' unless tied %$sectlist;
+#print STDERR "FIND_CURRENT_SECTNODE ", Dumper($s);
+        $sectlist->{$key} //=
+            {
+             Children => new_sectlist(),
+             Headline => $s->{Headline},
+             Key => $key,
+             RealSect => $realsect,
+             HasCaveat => [],
+            };
+        $sectnode = $sectlist->{$key};
+    }
+    die unless $sectnode;
+    return $sectnode;
+}
+
 sub ri_Header {
     my ($c) = @_;
     my ($level, $infos, $hl) = @$c;
@@ -100,29 +126,9 @@ sub ri_Para {
 
 sub parse_feature_entry ($) {
     my ($value) = @_;
-    die unless @insections;
 
     $had_feature = 1;
-
-    my $sectnode;
-    my $realsect;
-    foreach my $s (@insections) {
-        my $sectlist = $sectnode
-            ? $sectnode->{Children} : $toplevel_sectlist;
-        my $key = $s->{Key};
-        $realsect = $s if $s->{Anchor};
-        tie %$sectlist, 'Tie::IxHash' unless tied %$sectlist;
-#print STDERR "PARSE_FEATURE_ENTRY ", Dumper($s);
-        $sectlist->{$key} //=
-            {
-             Children => new_sectlist(),
-             Headline => $s->{Headline},
-             Key => $key,
-             RealSect => $realsect,
-            };
-        $sectnode = $sectlist->{$key};
-    }
-    die unless $sectnode;
+    my $sectnode = find_current_sectnode();
     $sectnode->{Status}[$version_index] = $value;
 }