[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Convert/Plaintext.pm t/info_...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Convert/Plaintext.pm t/info_... |
Date: |
Sun, 18 Sep 2011 08:06:04 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 11/09/18 08:06:04
Modified files:
tp/Texinfo/Convert: Plaintext.pm
tp/t : info_tests.t
tp/t/results/converters_tests: ref_error_formatting.pl
refs_formatting.pl
tp/t/results/info_tests: pxref_test.pl ref_tests.pl
tp/t/results/sectioning: character_and_spaces_in_refs.pl
Log message:
The dot added for @ref do not end a sentence.
Treat reference ending/punctuation adding for @pxref the same way as
for @ref.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.157&r2=1.158
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/info_tests.t?cvsroot=texinfo&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/converters_tests/ref_error_formatting.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/converters_tests/refs_formatting.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/info_tests/pxref_test.pl?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/info_tests/ref_tests.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/character_and_spaces_in_refs.pl?cvsroot=texinfo&r1=1.43&r2=1.44
Patches:
Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -b -r1.157 -r1.158
--- Texinfo/Convert/Plaintext.pm 3 Sep 2011 10:29:18 -0000 1.157
+++ Texinfo/Convert/Plaintext.pm 18 Sep 2011 08:06:03 -0000 1.158
@@ -1488,8 +1488,8 @@
# node name
push @contents, ({'type' => 'code',
'contents' => $node_content});
- push @contents, ({'text' => '.'}, {'cmdname' => ':'})
- if ($command eq 'pxref');
+ #push @contents, ({'text' => '.'}, {'cmdname' => ':'})
+ # if ($command eq 'pxref');
} else {
push @contents, ({'type' => 'code',
'contents' => address@hidden, {'text' => '::'}]});
@@ -1500,7 +1500,10 @@
# we play it safe.
my $pending = $result
.$self->{'formatters'}->[-1]->{'container'}->get_pending();
- if ($command ne 'pxref') {
+
+ # If command is @xref, the punctuation must always follow the
+ # command, for other commands it may be in the argument, hence the
+ # use of $pending.
if ($command eq 'xref' or ($pending !~ /[\.,]$/ and $pending !~
/::$/)) {
my $next = $self->{'current_contents'}->[-1]->[0];
if (!($next and $next->{'text'} and $next->{'text'} =~ /^[\.,]/)) {
@@ -1514,8 +1517,10 @@
$self->line_warn($self->__("`.' or `,' must follow
address@hidden"), $root->{'line_nr'});
}
}
- unshift @{$self->{'current_contents'}->[-1]}, {'text' => '.'};
- }
+ my @added = ({'text' => '.'});
+ # the added dot do not end a senteence for pxref or ref.
+ push @added, {'cmdname' => ':'} if ($command ne 'xref');
+ unshift @{$self->{'current_contents'}->[-1]}, @added;
}
}
return $result;
Index: t/info_tests.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/info_tests.t,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- t/info_tests.t 20 Aug 2011 22:26:53 -0000 1.31
+++ t/info_tests.t 18 Sep 2011 08:06:03 -0000 1.32
@@ -92,6 +92,7 @@
'@node Top
Hey (@pxref{(m) in pxref}) and continue (@pxref{(m) in pxref, name}) and end.
address@hidden(m) n}. @pxref{(m) n, name}.
'],
['contents_setcontentsaftertitlepage_before_node',
'
Index: t/results/converters_tests/ref_error_formatting.pl
===================================================================
RCS file:
/sources/texinfo/texinfo/tp/t/results/converters_tests/ref_error_formatting.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/converters_tests/ref_error_formatting.pl 13 Aug 2011 18:40:23
-0000 1.2
+++ t/results/converters_tests/ref_error_formatting.pl 18 Sep 2011 08:06:03
-0000 1.3
@@ -4869,21 +4869,20 @@
$result_converted{'plaintext'}->{'ref_error_formatting'} = 'address@hidden'
*note node::
- address@hidden,cross ref name}\' *note cross ref name: .
address@hidden,,title}\'
-*note title: . address@hidden,,,file name}\' *note : (file name).
address@hidden,,,,manual}\' *note : (). address@hidden,cross ref name}\' *note
cross
-ref name: node. address@hidden,,title}\' *note title: node.
address@hidden,,,file name}\' *note node: (file name)node.
address@hidden,,,,manual}\' *note node: ()node. address@hidden,cross ref
-name,title,}\' *note cross ref name: node. address@hidden,cross ref
-name,,file name}\' *note cross ref name: (file name)node.
address@hidden,cross ref name,,,manual}\' *note cross ref name: ()node.
address@hidden,cross ref name,title,file name}\' *note cross ref name: (file
-name)node. address@hidden,cross ref name,title,,manual}\' *note cross ref
-name: ()node. address@hidden,cross ref name,title, file name, manual}\'
-*note cross ref name: (file name)node. address@hidden,,title,file name}\'
-*note title: (file name)node. address@hidden,,title,,manual}\' *note title:
-()node. address@hidden,,title, file name, manual}\' *note title: (file
+ address@hidden,cross ref name}\' *note cross ref name: .
address@hidden,,title}\' *note
+title: . address@hidden,,,file name}\' *note : (file name).
address@hidden,,,,manual}\'
+*note : (). address@hidden,cross ref name}\' *note cross ref name: node.
address@hidden,,title}\' *note title: node. address@hidden,,,file name}\' *note
+node: (file name)node. address@hidden,,,,manual}\' *note node: ()node.
address@hidden,cross ref name,title,}\' *note cross ref name: node.
address@hidden,cross ref name,,file name}\' *note cross ref name: (file
+name)node. address@hidden,cross ref name,,,manual}\' *note cross ref name:
+()node. address@hidden,cross ref name,title,file name}\' *note cross ref
+name: (file name)node. address@hidden,cross ref name,title,,manual}\' *note
+cross ref name: ()node. address@hidden,cross ref name,title, file name,
+manual}\' *note cross ref name: (file name)node. address@hidden,,title,file
+name}\' *note title: (file name)node. address@hidden,,title,,manual}\' *note
+title: ()node. address@hidden,,title, file name, manual}\' *note title: (file
name)node. address@hidden,,,file name,manual}\' *note node: (file name)node.
address@hidden,cross ref name,title,}\' *note cross ref name: .
address@hidden,cross ref
name,,file name}\' *note cross ref name: (file name). address@hidden,cross ref
@@ -4896,14 +4895,14 @@
manual}\' *note title: (file name). address@hidden,,,file name,manual}\'
*note :
(file name).
- address@hidden,cross ref name }\' *note cross ref name: .
address@hidden,,file name}\' *note : (file name). address@hidden,cross ref
name,
-file name}\' *note cross ref name: (file name). address@hidden' *note ::
+ address@hidden,cross ref name }\' *note cross ref name: .
address@hidden,,file
+name}\' *note : (file name). address@hidden,cross ref name, file name}\' *note
+cross ref name: (file name). address@hidden' *note ::
address@hidden, cross ref name, file name}\' *note cross ref name:
-(file name)node. address@hidden' *note node:: address@hidden, cross
-ref name}\' *note cross ref name: node. address@hidden,,file name}\'
-*note node: (file name)node.
+(file name)node. address@hidden' *note node:: address@hidden, cross ref
+name}\' *note cross ref name: node. address@hidden,,file name}\' *note
+node: (file name)node.
';
Index: t/results/converters_tests/refs_formatting.pl
===================================================================
RCS file:
/sources/texinfo/texinfo/tp/t/results/converters_tests/refs_formatting.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/converters_tests/refs_formatting.pl 13 Aug 2011 18:40:24
-0000 1.2
+++ t/results/converters_tests/refs_formatting.pl 18 Sep 2011 08:06:03
-0000 1.3
@@ -4697,38 +4697,38 @@
*********
address@hidden,cross ref name}\' *note cross ref name: chapter.
address@hidden,,title}\' *note title: chapter. address@hidden,,,file
-name}\' *note chapter: (file name)chapter. address@hidden,,,,manual}\'
-*note chapter: ()chapter. address@hidden,cross ref name,title,}\' *note
-cross ref name: chapter. address@hidden,cross ref name,,file name}\'
-*note cross ref name: (file name)chapter. address@hidden,cross ref
-name,,,manual}\' *note cross ref name: ()chapter. address@hidden,cross
-ref name,title,file name}\' *note cross ref name: (file name)chapter.
address@hidden,cross ref name,title,,manual}\' *note cross ref name:
-()chapter. address@hidden,cross ref name,title, file name, manual}\'
-*note cross ref name: (file name)chapter. address@hidden,,title,file
-name}\' *note title: (file name)chapter. address@hidden,,title,,manual}\'
-*note title: ()chapter. address@hidden,,title, file name, manual}\' *note
-title: (file name)chapter. address@hidden,,,file name,manual}\' *note
-chapter: (file name)chapter.
address@hidden,,title}\' *note title: chapter. address@hidden,,,file name}\'
+*note chapter: (file name)chapter. address@hidden,,,,manual}\' *note
+chapter: ()chapter. address@hidden,cross ref name,title,}\' *note cross
+ref name: chapter. address@hidden,cross ref name,,file name}\' *note cross
+ref name: (file name)chapter. address@hidden,cross ref name,,,manual}\'
+*note cross ref name: ()chapter. address@hidden,cross ref name,title,file
+name}\' *note cross ref name: (file name)chapter. address@hidden,cross ref
+name,title,,manual}\' *note cross ref name: ()chapter.
address@hidden,cross ref name,title, file name, manual}\' *note cross ref
+name: (file name)chapter. address@hidden,,title,file name}\' *note title:
+(file name)chapter. address@hidden,,title,,manual}\' *note title:
+()chapter. address@hidden,,title, file name, manual}\' *note title: (file
+name)chapter. address@hidden,,,file name,manual}\' *note chapter: (file
+name)chapter.
address@hidden(pman)anode,cross ref name}\' *note cross ref name:
(pman)anode.
address@hidden(pman)anode,,title}\' *note title: (pman)anode.
address@hidden(pman)anode,,,file name}\' *note (pman)anode: (file
name)(pman)anode. address@hidden(pman)anode,,,,manual}\' *note (pman)anode:
-()(pman)anode. address@hidden(pman)anode,cross ref name,title,}\' *note cross
-ref name: (pman)anode. address@hidden(pman)anode,cross ref name,,file name}\'
-*note cross ref name: (file name)(pman)anode. address@hidden(pman)anode,cross
-ref name,,,manual}\' *note cross ref name: ()(pman)anode.
+()(pman)anode. address@hidden(pman)anode,cross ref name,title,}\' *note cross
ref
+name: (pman)anode. address@hidden(pman)anode,cross ref name,,file name}\' *note
+cross ref name: (file name)(pman)anode. address@hidden(pman)anode,cross ref
+name,,,manual}\' *note cross ref name: ()(pman)anode.
address@hidden(pman)anode,cross ref name,title,file name}\' *note cross ref
name:
-(file name)(pman)anode. address@hidden(pman)anode,cross ref
-name,title,,manual}\' *note cross ref name: ()(pman)anode.
address@hidden(pman)anode,cross ref name,title, file name, manual}\' *note cross
-ref name: (file name)(pman)anode. address@hidden(pman)anode,,title,file
name}\'
-*note title: (file name)(pman)anode.
address@hidden(pman)anode,,title,,manual}\'
-*note title: ()(pman)anode. address@hidden(pman)anode,,title, file name,
-manual}\' *note title: (file name)(pman)anode.
address@hidden(pman)anode,,,file
-name,manual}\' *note (pman)anode: (file name)(pman)anode.
+(file name)(pman)anode. address@hidden(pman)anode,cross ref
name,title,,manual}\'
+*note cross ref name: ()(pman)anode. address@hidden(pman)anode,cross ref
+name,title, file name, manual}\' *note cross ref name: (file
+name)(pman)anode. address@hidden(pman)anode,,title,file name}\' *note title:
+(file name)(pman)anode. address@hidden(pman)anode,,title,,manual}\' *note
title:
+()(pman)anode. address@hidden(pman)anode,,title, file name, manual}\' *note
+title: (file name)(pman)anode. address@hidden(pman)anode,,,file name,manual}\'
+*note (pman)anode: (file name)(pman)anode.
address@hidden, cross ref name, file name}\' *note cross ref name:
(file name)chapter. address@hidden' *note chapter::
Index: t/results/info_tests/pxref_test.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/info_tests/pxref_test.pl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/results/info_tests/pxref_test.pl 19 Aug 2011 23:09:42 -0000 1.6
+++ t/results/info_tests/pxref_test.pl 18 Sep 2011 08:06:03 -0000 1.7
@@ -162,6 +162,116 @@
'parent' => {},
'text' => ') and end.
'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '(m) n'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'pxref',
+ 'contents' => [],
+ 'extra' => {
+ 'brace_command_contents' => [
+ [
+ {}
+ ]
+ ],
+ 'node_argument' => {
+ 'manual_content' => [
+ {
+ 'parent' => {},
+ 'text' => 'm'
+ }
+ ],
+ 'node_content' => [
+ {
+ 'parent' => {},
+ 'text' => 'n'
+ }
+ ],
+ 'normalized' => 'n'
+ }
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 4,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '. '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => '(m) n'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => ' ',
+ 'type' => 'empty_spaces_before_argument'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'name'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'pxref',
+ 'contents' => [],
+ 'extra' => {
+ 'brace_command_contents' => [
+ [
+ {}
+ ],
+ [
+ {}
+ ]
+ ],
+ 'node_argument' => {
+ 'manual_content' => [
+ {
+ 'parent' => {},
+ 'text' => 'm'
+ }
+ ],
+ 'node_content' => [
+ {
+ 'parent' => {},
+ 'text' => 'n'
+ }
+ ],
+ 'normalized' => 'n'
+ }
+ },
+ 'line_nr' => {},
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '.
+'
}
],
'parent' => {},
@@ -216,6 +326,24 @@
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'line_nr'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'line_nr'};
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[3]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1];
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[4]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'args'}[0]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'extra'}{'brace_command_contents'}[0][0]
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'extra'}{'node_argument'}{'manual_content'}[0]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'extra'}{'node_argument'}{'node_content'}[0]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'args'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[6]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[0]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[1]{'contents'}[1]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[1];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[1]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'extra'}{'brace_command_contents'}[0][0]
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'extra'}{'brace_command_contents'}[1][0]
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[1]{'contents'}[1];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'extra'}{'node_argument'}{'manual_content'}[0]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'extra'}{'node_argument'}{'node_content'}[0]{'parent'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'line_nr'}
=
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[5]{'line_nr'};
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[7]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1];
+$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'contents'}[8]{'parent'}
= $result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1];
$result_trees{'pxref_test'}{'contents'}[1]{'contents'}[1]{'parent'} =
$result_trees{'pxref_test'}{'contents'}[1];
$result_trees{'pxref_test'}{'contents'}[1]{'extra'}{'node_content'}[0] =
$result_trees{'pxref_test'}{'contents'}[1]{'args'}[0]{'contents'}[1];
$result_trees{'pxref_test'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
= $result_trees{'pxref_test'}{'contents'}[1]{'extra'}{'node_content'};
@@ -224,11 +352,13 @@
$result_texis{'pxref_test'} = '@node Top
Hey (@pxref{(m) in pxref}) and continue (@pxref{(m) in pxref, name}) and end.
address@hidden(m) n}. @pxref{(m) n, name}.
';
$result_texts{'pxref_test'} = '
Hey () and continue () and end.
+. .
';
$result_sectioning{'pxref_test'} = {};
@@ -269,7 +399,7 @@
File: , Node: Top, Up: (dir)
Hey (*note (m) in pxref::) and continue (*note name: (m) in pxref.) and
-end.
+end. *note (m) n::. *note name: (m) n.
Tag Table:
Index: t/results/info_tests/ref_tests.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/info_tests/ref_tests.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
Index: t/results/sectioning/character_and_spaces_in_refs.pl
===================================================================
RCS file:
/sources/texinfo/texinfo/tp/t/results/sectioning/character_and_spaces_in_refs.pl,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- t/results/sectioning/character_and_spaces_in_refs.pl 19 Aug 2011
23:09:45 -0000 1.43
+++ t/results/sectioning/character_and_spaces_in_refs.pl 18 Sep 2011
08:06:04 -0000 1.44
@@ -2174,10 +2174,10 @@
Tag Table:
Node: Top52
-Node: other nodes467
-Node: !_"#$%&\'()*+-.648
-Node: /;<=>?[\\]^_`|~742
-Node: local node835
+Node: other nodes464
+Node: !_"#$%&\'()*+-.645
+Node: /;<=>?[\\]^_`|~739
+Node: local node832
End Tag Table
';
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/tp Texinfo/Convert/Plaintext.pm t/info_...,
Patrice Dumas <=