[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [8296] move labels_information to Common.pm,
gavinsmith0123 <=