texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[8296] move labels_information to Common.pm


From: gavinsmith0123
Subject: [8296] move labels_information to Common.pm
Date: Tue, 16 Oct 2018 18:14:32 -0400 (EDT)

Revision: 8296
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8296
Author:   gavin
Date:     2018-10-16 18:14:32 -0400 (Tue, 16 Oct 2018)
Log Message:
-----------
move labels_information to Common.pm

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/tp/Texinfo/Common.pm
    trunk/tp/Texinfo/Parser.pm

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2018-10-16 22:02:05 UTC (rev 8295)
+++ trunk/ChangeLog     2018-10-16 22:14:32 UTC (rev 8296)
@@ -1,5 +1,11 @@
 2018-10-16  Gavin Smith  <address@hidden>
 
+       * tp/Texinfo/Parser.pm,
+       * tp/Texinfo/Common.pm (labels_information): Move to Common.pm 
+       so that it can be called from tp/Texinfo/XS/parsetexi/Parsetexi.pm.
+
+2018-10-16  Gavin Smith  <address@hidden>
+
        * tp/Texinfo/Common.pm,
        * tp/Texinfo/Encoding.pm,
        * tp/Texinfo/Parser.pm,

Modified: trunk/tp/Texinfo/Common.pm
===================================================================
--- trunk/tp/Texinfo/Common.pm  2018-10-16 22:02:05 UTC (rev 8295)
+++ trunk/tp/Texinfo/Common.pm  2018-10-16 22:14:32 UTC (rev 8296)
@@ -2568,6 +2568,73 @@
   $self->{'documentlanguage'} = $save_lang;
 }
 
+# Called from Texinfo::Parser and Texinfo::XS::parsetexi::Parsetexi.
+sub labels_information
+{
+  my $self = shift;
+  if (defined $self->{'targets'}) {
+    my %labels = ();
+    for my $target (@{$self->{'targets'}}) {
+      if ($target->{'cmdname'} eq 'node') {
+        if ($target->{'extra'}->{'nodes_manuals'}) {
+          for my $node_manual (@{$target->{'extra'}{'nodes_manuals'}}) {
+            if (defined $node_manual
+                  and defined $node_manual->{'node_content'}) {
+              my $normalized = 
Texinfo::Convert::NodeNameNormalization::normalize_node({'contents' => 
$node_manual->{'node_content'}});
+              $node_manual->{'normalized'} = $normalized;
+            }
+          }
+        }
+      }
+      if (defined $target->{'extra'}->{'node_content'}) {
+        my $normalized = 
Texinfo::Convert::NodeNameNormalization::normalize_node({'contents' => 
$target->{'extra'}->{'node_content'}});
+
+        if ($normalized !~ /[^-]/) {
+          $self->line_error (sprintf(__("empty node name after expansion 
`%s'"),
+                Texinfo::Convert::Texinfo::convert({'contents' 
+                               => $target->{'extra'}->{'node_content'}})), 
+                $target->{'line_nr'});
+          delete $target->{'extra'}->{'node_content'};
+        } else {
+          if (defined $labels{$normalized}) {
+            $self->line_error(
+              sprintf(__("address@hidden `%s' previously defined"), 
+                         $target->{'cmdname'}, 
+                   Texinfo::Convert::Texinfo::convert({'contents' => 
+                       $target->{'extra'}->{'node_content'}})), 
+                           $target->{'line_nr'});
+            $self->line_error(
+              sprintf(__("here is the previous definition as address@hidden"),
+                               $labels{$normalized}->{'cmdname'}),
+                       $labels{$normalized}->{'line_nr'});
+            delete $target->{'extra'}->{'node_content'};
+          } else {
+            $labels{$normalized} = $target;
+            $target->{'extra'}->{'normalized'} = $normalized;
+            if ($target->{'cmdname'} eq 'node') {
+              if ($target->{'extra'}
+                  and $target->{'extra'}{'node_argument'}) {
+                $target->{'extra'}{'node_argument'}{'normalized'}
+                  = $normalized;
+              }
+              push @{$self->{'nodes'}}, $target;
+            }
+          }
+        }
+      } else {
+        if ($target->{'cmdname'} eq 'node') {
+          $self->line_error (sprintf(__("empty argument in address@hidden"),
+                  $target->{'cmdname'}), $target->{'line_nr'});
+          delete $target->{'extra'}->{'node_content'};
+        }
+      }
+    }
+    $self->{'labels'} = \%labels;
+    delete $self->{'targets'};
+  }
+  return $self->{'labels'};
+}
+
 1;
 
 __END__

Modified: trunk/tp/Texinfo/Parser.pm
===================================================================
--- trunk/tp/Texinfo/Parser.pm  2018-10-16 22:02:05 UTC (rev 8295)
+++ trunk/tp/Texinfo/Parser.pm  2018-10-16 22:14:32 UTC (rev 8296)
@@ -952,70 +952,9 @@
 }
 
 # Setup labels and nodes info and return labels
-sub labels_information($)
+sub labels_information
 {
-  my $self = shift;
-  if (defined $self->{'targets'}) {
-    my %labels = ();
-    for my $target (@{$self->{'targets'}}) {
-      if ($target->{'cmdname'} eq 'node') {
-        if ($target->{'extra'}->{'nodes_manuals'}) {
-          for my $node_manual (@{$target->{'extra'}{'nodes_manuals'}}) {
-            if (defined $node_manual
-                  and defined $node_manual->{'node_content'}) {
-              my $normalized = 
Texinfo::Convert::NodeNameNormalization::normalize_node({'contents' => 
$node_manual->{'node_content'}});
-              $node_manual->{'normalized'} = $normalized;
-            }
-          }
-        }
-      }
-      if (defined $target->{'extra'}->{'node_content'}) {
-        my $normalized = 
Texinfo::Convert::NodeNameNormalization::normalize_node({'contents' => 
$target->{'extra'}->{'node_content'}});
-
-        if ($normalized !~ /[^-]/) {
-          $self->line_error (sprintf(__("empty node name after expansion 
`%s'"),
-                Texinfo::Convert::Texinfo::convert({'contents' 
-                               => $target->{'extra'}->{'node_content'}})), 
-                $target->{'line_nr'});
-          delete $target->{'extra'}->{'node_content'};
-        } else {
-          if (defined $labels{$normalized}) {
-            $self->line_error(
-              sprintf(__("address@hidden `%s' previously defined"), 
-                         $target->{'cmdname'}, 
-                   Texinfo::Convert::Texinfo::convert({'contents' => 
-                       $target->{'extra'}->{'node_content'}})), 
-                           $target->{'line_nr'});
-            $self->line_error(
-              sprintf(__("here is the previous definition as address@hidden"),
-                               $labels{$normalized}->{'cmdname'}),
-                       $labels{$normalized}->{'line_nr'});
-            delete $target->{'extra'}->{'node_content'};
-          } else {
-            $labels{$normalized} = $target;
-            $target->{'extra'}->{'normalized'} = $normalized;
-            if ($target->{'cmdname'} eq 'node') {
-              if ($target->{'extra'}
-                  and $target->{'extra'}{'node_argument'}) {
-                $target->{'extra'}{'node_argument'}{'normalized'}
-                  = $normalized;
-              }
-              push @{$self->{'nodes'}}, $target;
-            }
-          }
-        }
-      } else {
-        if ($target->{'cmdname'} eq 'node') {
-          $self->line_error (sprintf(__("empty argument in address@hidden"),
-                  $target->{'cmdname'}), $target->{'line_nr'});
-          delete $target->{'extra'}->{'node_content'};
-        }
-      }
-    }
-    $self->{'labels'} = \%labels;
-    delete $self->{'targets'};
-  }
-  return $self->{'labels'};
+  goto &Texinfo::Common::labels_information;
 }
 
 # Following are the internal subroutines.  The most important are




reply via email to

[Prev in Thread] Current Thread [Next in Thread]