[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Parser.pm t/22xtable.t t/res...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Parser.pm t/22xtable.t t/res... |
Date: |
Fri, 03 Dec 2010 23:26:54 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 10/12/03 23:26:53
Modified files:
tp/Texinfo : Parser.pm
tp/t : 22xtable.t
tp/t/results/itemize: accent_argument.pl
Added files:
tp/t/results/xtable: accent_on_table_line.pl
Log message:
Check that command argument for @itemize or @*table is on the
@-command line.
Avoid accent commands as argument for @itemize or @*table.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.157&r2=1.158
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/22xtable.t?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/accent_argument.pl?cvsroot=texinfo&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/xtable/accent_on_table_line.pl?cvsroot=texinfo&rev=1.1
Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -b -r1.157 -r1.158
--- Texinfo/Parser.pm 3 Dec 2010 00:55:07 -0000 1.157
+++ Texinfo/Parser.pm 3 Dec 2010 23:26:52 -0000 1.158
@@ -2556,7 +2556,9 @@
$self->{'definfoenclose'}->{$current->{'cmdname'}})
and $line !~ /^{/) {
# special case for @-command as argument of @itemize or @*table.
- if ($current->{'parent'} and $current->{'parent'}->{'parent'}
+ if ($current->{'parent'} and $current->{'parent'}->{'type'}
+ and $current->{'parent'}->{'type'} eq 'block_line_arg'
+ and $current->{'parent'}->{'parent'}
and $current->{'parent'}->{'parent'}->{'cmdname'} and
($current->{'parent'}->{'parent'}->{'cmdname'} eq 'itemize'
or
$item_line_commands{$current->{'parent'}->{'parent'}->{'cmdname'}})
@@ -2566,12 +2568,18 @@
and $current->{'parent'}->{'contents'}->[0]->{'text'}
=~ /^[^\S\n]*/))) {
delete $current->{'contents'};
+ if ($accent_commands{$current->{'cmdname'}}) {
+ _line_warn ($self, sprintf($self->
+ __("Accent command address@hidden' not allowed as address@hidden
argument"),
+ $current->{'cmdname'},
$current->{'parent'}->{'parent'}->{'cmdname'}),
+ $line_nr);
+ } else {
print STDERR "FOR PARENT
address@hidden>{'parent'}->{'parent'}->{'cmdname'} command_as_argument
$current->{'cmdname'}\n" if ($self->{'debug'});
$current->{'type'} = 'command_as_argument';
$current->{'parent'}->{'parent'}->{'extra'}->{'command_as_argument'}
= $current->{'cmdname'};
+ }
$current = $current->{'parent'};
-
# now accent commands
} elsif ($accent_commands{$current->{'cmdname'}}) {
if ($line =~ /^[^\S\n]/) {
Index: t/22xtable.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/22xtable.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- t/22xtable.t 24 Oct 2010 08:45:27 -0000 1.1
+++ t/22xtable.t 3 Dec 2010 23:26:53 -0000 1.2
@@ -3,6 +3,15 @@
require 't/test_utils.pl';
my @test_cases = (
+['accent_on_table_line',
+'@table @~
address@hidden first item
address@hidden no at-command @code{code}
address@hidden table
+']
+);
+
+my @test_invalid = (
['lone_end_table',
'Text.
@end table
@@ -22,11 +31,15 @@
@item item
@end table
-']
+'],
);
+foreach my $test (@test_cases) {
+ $test->[2]->{'test_formats'} = ['plaintext'];
+}
+
our ($arg_test_case, $arg_generate, $arg_debug);
-run_all ('xtable', address@hidden, $arg_test_case,
+run_all ('xtable', address@hidden, @test_invalid], $arg_test_case,
$arg_generate, $arg_debug);
Index: t/results/itemize/accent_argument.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/itemize/accent_argument.pl,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- t/results/itemize/accent_argument.pl 22 Nov 2010 23:52:42 -0000
1.20
+++ t/results/itemize/accent_argument.pl 3 Dec 2010 23:26:53 -0000
1.21
@@ -15,8 +15,7 @@
},
{
'cmdname' => '~',
- 'parent' => {},
- 'type' => 'command_as_argument'
+ 'parent' => {}
},
{
'args' => [
@@ -73,8 +72,7 @@
[
{}
]
- ],
- 'command_as_argument' => '~'
+ ]
},
'parent' => {}
},
@@ -101,8 +99,7 @@
},
{
'cmdname' => '~',
- 'parent' => {},
- 'type' => 'command_as_argument'
+ 'parent' => {}
},
{
'parent' => {},
@@ -153,8 +150,7 @@
[
{}
]
- ],
- 'command_as_argument' => '~'
+ ]
},
'parent' => {}
},
@@ -209,7 +205,26 @@
item
';
-$result_errors{'accent_argument'} = [];
+$result_errors{'accent_argument'} = [
+ {
+ 'error_line' => ':1: warning: Accent command address@hidden' not allowed
as @itemize argument
+',
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => '',
+ 'text' => 'Accent command address@hidden' not allowed as @itemize
argument',
+ 'type' => 'warning'
+ },
+ {
+ 'error_line' => ':5: warning: Accent command address@hidden' not allowed
as @itemize argument
+',
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => '',
+ 'text' => 'Accent command address@hidden' not allowed as @itemize
argument',
+ 'type' => 'warning'
+ }
+];
Index: t/results/xtable/accent_on_table_line.pl
===================================================================
RCS file: t/results/xtable/accent_on_table_line.pl
diff -N t/results/xtable/accent_on_table_line.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/xtable/accent_on_table_line.pl 3 Dec 2010 23:26:53 -0000
1.1
@@ -0,0 +1,193 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted);
+
+$result_trees{'accent_on_table_line'} = {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'cmdname' => '~',
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'space_at_end_block_command'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'cmdname' => 'table',
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'parent' => {},
+ 'type' => 'before_item'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'first item'
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'item',
+ 'extra' => {
+ 'misc_content' => [
+ {}
+ ]
+ },
+ 'parent' => {}
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => ' ',
+ 'type' => 'empty_spaces_after_command'
+ },
+ {
+ 'parent' => {},
+ 'text' => 'no at-command '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'code'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'code',
+ 'contents' => [],
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'spaces_at_end'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'misc_line_arg'
+ }
+ ],
+ 'cmdname' => 'item',
+ 'extra' => {
+ 'misc_content' => [
+ {},
+ {}
+ ]
+ },
+ 'parent' => {}
+ }
+ ],
+ 'extra' => {
+ 'block_command_line_contents' => [
+ [
+ {}
+ ]
+ ]
+ },
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line_after_command'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'accent_on_table_line'}{'contents'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'extra'}{'misc_content'}[0]
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[1]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'args'}[0]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[3]{'parent'}
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'extra'}{'misc_content'}[0]
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'extra'}{'misc_content'}[1]
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'contents'}[2]{'parent'}
= $result_trees{'accent_on_table_line'}{'contents'}[0];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0][0]
=
$result_trees{'accent_on_table_line'}{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'accent_on_table_line'}{'contents'}[0]{'parent'} =
$result_trees{'accent_on_table_line'};
+$result_trees{'accent_on_table_line'}{'contents'}[1]{'parent'} =
$result_trees{'accent_on_table_line'};
+
+$result_texis{'accent_on_table_line'} = '@table @~
address@hidden first item
address@hidden no at-command @code{code}
address@hidden table
+';
+
+
+$result_texts{'accent_on_table_line'} = 'first item
+no at-command code
+';
+
+$result_errors{'accent_on_table_line'} = [
+ {
+ 'error_line' => ':1: warning: Accent command address@hidden' not allowed
as @table argument
+',
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => '',
+ 'text' => 'Accent command address@hidden' not allowed as @table argument',
+ 'type' => 'warning'
+ }
+];
+
+
+
+$result_converted{'plaintext'}->{'accent_on_table_line'} = 'first item
+no at-command `code\'
+';
+
+1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/tp Texinfo/Parser.pm t/22xtable.t t/res...,
Patrice Dumas <=