[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Parser.pm t/55conditionals.t...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Parser.pm t/55conditionals.t... |
Date: |
Sat, 15 Oct 2011 15:57:10 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 11/10/15 15:57:09
Modified files:
tp/Texinfo : Parser.pm
tp/t : 55conditionals.t
tp/t/results/conditionals: empty_ifset_in_ifset_no_set.pl
tp/t/results/macro: ifset_and_end_isef_in_macro.pl
tp/t/results/raw: misc_raw.pl misc_raw_comments.pl
Added files:
tp/t/results/conditionals:
additional_space_in_end_conditional.pl
additional_space_in_end_conditional_expanded.pl
conditional_not_closed.pl
end_conditional_not_at_line_begining.pl
superfluous_argument_to_end.pl
text_on_conditional_line.pl
text_on_conditional_line_expanded.pl
Log message:
Accept more than one space between @end and a conditional
command name, when the conditional is ignored consistently with
other cases, and other fixes for conditionals and raw commands.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.313&r2=1.314
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/55conditionals.t?cvsroot=texinfo&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/empty_ifset_in_ifset_no_set.pl?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/additional_space_in_end_conditional.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/additional_space_in_end_conditional_expanded.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/conditional_not_closed.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/end_conditional_not_at_line_begining.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/superfluous_argument_to_end.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/text_on_conditional_line.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/text_on_conditional_line_expanded.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/ifset_and_end_isef_in_macro.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/raw/misc_raw.pl?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/raw/misc_raw_comments.pl?cvsroot=texinfo&r1=1.23&r2=1.24
Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.313
retrieving revision 1.314
diff -u -b -r1.313 -r1.314
--- Texinfo/Parser.pm 11 Oct 2011 21:44:25 -0000 1.313
+++ Texinfo/Parser.pm 15 Oct 2011 15:57:06 -0000 1.314
@@ -1442,6 +1442,10 @@
} else {
$self->line_error(sprintf($self->__("No matching `%cend %s'"),
ord('@'), $current->{'cmdname'}), $line_nr);
+ if ($block_commands{$current->{'cmdname'}} eq 'conditional') {
+ # in this case we are within an ignored conditional
+ my $conditional = pop @{$current->{'parent'}->{'contents'}};
+ }
}
pop @{$self->{'context_stack'}} if
($preformatted_commands{$current->{'cmdname'}}
@@ -3211,12 +3215,13 @@
'extra' => {'line' => $line }};
$current = $current->{'contents'}->[-1];
last;
- # FIXME accept only a command at the beginning spaces?
- } elsif ($line =~ /^(.*?)address@hidden([a-zA-Z][\w-]*)/
+ # FIXME accept only a command at the line beginning?
+ # FIXME accept only one space after @end?
+ } elsif ($line =~ /^(.*?)address@hidden([a-zA-Z][\w-]*)/
and ($2 eq $current->{'cmdname'})) {
my $end_command = $2;
my $raw_command = $current;
- $line =~ s/^(.*?)(address@hidden>{'cmdname'})//;
+ $line =~ s/^(.*?)(address@hidden>{'cmdname'})//;
if ($1 eq '') {
# FIXME exclude other formats, like @macro, @ifset, @ignore?
if ($current->{'cmdname'} ne 'verbatim'
@@ -3231,6 +3236,8 @@
} else {
push @{$current->{'contents'}},
{ 'text' => $1, 'type' => 'raw', 'parent' => $current };
+ $self->line_warn (sprintf($self->__("address@hidden %s should only
appear at a line beginning"),
+ $end_command), $line_nr);
}
# the condition $line !~ /^\s*@/ leads to no warning when followed by
# any @-command. This is in order to avoid warnings for correct
Index: t/55conditionals.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/55conditionals.t,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- t/55conditionals.t 16 Mar 2011 08:30:20 -0000 1.12
+++ t/55conditionals.t 15 Oct 2011 15:57:06 -0000 1.13
@@ -311,6 +311,43 @@
@end ifinfo
', {'expanded_formats' => ['plaintext']}
],
+['text_on_conditional_line_expanded',
+'@ifnothtml text following ifnothtml,
+a
address@hidden ifnothtml
+'
+],
+['text_on_conditional_line',
+'@ifnothtml text following ifnothtml,
+a
address@hidden ifnothtml
+', {'expanded_formats' => ['html']}
+],
+['additional_space_in_end_conditional',
+'@ifnothtml
+not html
address@hidden ifnothtml
+', {'expanded_formats' => ['html']}
+],
+['additional_space_in_end_conditional_expanded',
+'@ifnothtml
+not html
address@hidden ifnothtml
+'],
+['superfluous_argument_to_end',
+'@ifnothtml
+not html
address@hidden ifnothtml superfluous
+'],
+['conditional_not_closed',
+'@ifhtml
+in ifhtml
+'],
+['end_conditional_not_at_line_begining',
+'@ifhtml
+inhtml
+ @end ifhtml
+']
);
our ($arg_test_case, $arg_generate, $arg_debug);
Index: t/results/conditionals/empty_ifset_in_ifset_no_set.pl
===================================================================
RCS file:
/sources/texinfo/texinfo/tp/t/results/conditionals/empty_ifset_in_ifset_no_set.pl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- t/results/conditionals/empty_ifset_in_ifset_no_set.pl 3 Jul 2011
14:50:53 -0000 1.3
+++ t/results/conditionals/empty_ifset_in_ifset_no_set.pl 15 Oct 2011
15:57:07 -0000 1.4
@@ -12,34 +12,17 @@
'text' => '
',
'type' => 'empty_line'
- },
- {
- 'cmdname' => 'ifset',
- 'contents' => [
- {
- 'parent' => {},
- 'text' => '@html
-',
- 'type' => 'raw'
- }
- ],
- 'parent' => {}
}
],
'type' => 'text_root'
};
$result_trees{'empty_ifset_in_ifset_no_set'}{'contents'}[0]{'parent'} =
$result_trees{'empty_ifset_in_ifset_no_set'};
-$result_trees{'empty_ifset_in_ifset_no_set'}{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'empty_ifset_in_ifset_no_set'}{'contents'}[1];
-$result_trees{'empty_ifset_in_ifset_no_set'}{'contents'}[1]{'parent'} =
$result_trees{'empty_ifset_in_ifset_no_set'};
$result_texis{'empty_ifset_in_ifset_no_set'} = '
address@hidden@html
address@hidden ifset
';
$result_texts{'empty_ifset_in_ifset_no_set'} = '
address@hidden
';
$result_errors{'empty_ifset_in_ifset_no_set'} = [
Index: t/results/macro/ifset_and_end_isef_in_macro.pl
===================================================================
RCS file:
/sources/texinfo/texinfo/tp/t/results/macro/ifset_and_end_isef_in_macro.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/macro/ifset_and_end_isef_in_macro.pl 26 Sep 2011 17:15:50
-0000 1.2
+++ t/results/macro/ifset_and_end_isef_in_macro.pl 15 Oct 2011 15:57:08
-0000 1.3
@@ -106,30 +106,6 @@
'text' => '
',
'type' => 'empty_line'
- },
- {
- 'cmdname' => 'ifset',
- 'contents' => [
- {
- 'parent' => {},
- 'text' => '
-',
- 'type' => 'raw'
- },
- {
- 'parent' => {},
- 'text' => 'in ifset
-',
- 'type' => 'raw'
- },
- {
- 'parent' => {},
- 'text' => '@endifset
-',
- 'type' => 'raw'
- }
- ],
- 'parent' => {}
}
],
'type' => 'text_root'
@@ -148,10 +124,6 @@
$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[4]{'extra'}{'command'}
= $result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[3];
$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[4]{'parent'} =
$result_trees{'ifset_and_end_isef_in_macro'};
$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[5]{'parent'} =
$result_trees{'ifset_and_end_isef_in_macro'};
-$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6]{'contents'}[0]{'parent'}
= $result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6];
-$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6]{'contents'}[1]{'parent'}
= $result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6];
-$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6]{'contents'}[2]{'parent'}
= $result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6];
-$result_trees{'ifset_and_end_isef_in_macro'}{'contents'}[6]{'parent'} =
$result_trees{'ifset_and_end_isef_in_macro'};
$result_texis{'ifset_and_end_isef_in_macro'} = '@macro beginifset {}
@ifset a
@@ -161,18 +133,11 @@
@end ifset
@end macro
address@hidden
-in ifset
address@hidden
address@hidden ifset
';
$result_texts{'ifset_and_end_isef_in_macro'} = '
-
-in ifset
address@hidden
';
$result_errors{'ifset_and_end_isef_in_macro'} = [
Index: t/results/raw/misc_raw.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/raw/misc_raw.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/results/raw/misc_raw.pl 26 Sep 2011 17:15:53 -0000 1.24
+++ t/results/raw/misc_raw.pl 15 Oct 2011 15:57:09 -0000 1.25
@@ -187,7 +187,17 @@
in verbatim2
';
-$result_errors{'misc_raw'} = [];
+$result_errors{'misc_raw'} = [
+ {
+ 'error_line' => ':3: warning: @end html should only appear at a line
beginning
+',
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => '',
+ 'text' => '@end html should only appear at a line beginning',
+ 'type' => 'warning'
+ }
+];
Index: t/results/raw/misc_raw_comments.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/raw/misc_raw_comments.pl,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- t/results/raw/misc_raw_comments.pl 26 Sep 2011 17:15:54 -0000 1.23
+++ t/results/raw/misc_raw_comments.pl 15 Oct 2011 15:57:09 -0000 1.24
@@ -209,7 +209,17 @@
in verbatim2
';
-$result_errors{'misc_raw_comments'} = [];
+$result_errors{'misc_raw_comments'} = [
+ {
+ 'error_line' => ':3: warning: @end html should only appear at a line
beginning
+',
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => '',
+ 'text' => '@end html should only appear at a line beginning',
+ 'type' => 'warning'
+ }
+];
Index: t/results/conditionals/additional_space_in_end_conditional.pl
===================================================================
RCS file: t/results/conditionals/additional_space_in_end_conditional.pl
diff -N t/results/conditionals/additional_space_in_end_conditional.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/additional_space_in_end_conditional.pl 15 Oct
2011 15:57:07 -0000 1.1
@@ -0,0 +1,21 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'additional_space_in_end_conditional'} = {
+ 'contents' => [],
+ 'type' => 'text_root'
+};
+
+$result_texis{'additional_space_in_end_conditional'} = '';
+
+
+$result_texts{'additional_space_in_end_conditional'} = '';
+
+$result_errors{'additional_space_in_end_conditional'} = [];
+
+
+1;
Index: t/results/conditionals/additional_space_in_end_conditional_expanded.pl
===================================================================
RCS file: t/results/conditionals/additional_space_in_end_conditional_expanded.pl
diff -N t/results/conditionals/additional_space_in_end_conditional_expanded.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/additional_space_in_end_conditional_expanded.pl
15 Oct 2011 15:57:07 -0000 1.1
@@ -0,0 +1,37 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'additional_space_in_end_conditional_expanded'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'not html
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'additional_space_in_end_conditional_expanded'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'additional_space_in_end_conditional_expanded'}{'contents'}[0];
+$result_trees{'additional_space_in_end_conditional_expanded'}{'contents'}[0]{'parent'}
= $result_trees{'additional_space_in_end_conditional_expanded'};
+
+$result_texis{'additional_space_in_end_conditional_expanded'} = 'not html
+';
+
+
+$result_texts{'additional_space_in_end_conditional_expanded'} = 'not html
+';
+
+$result_errors{'additional_space_in_end_conditional_expanded'} = [];
+
+
+1;
Index: t/results/conditionals/conditional_not_closed.pl
===================================================================
RCS file: t/results/conditionals/conditional_not_closed.pl
diff -N t/results/conditionals/conditional_not_closed.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/conditional_not_closed.pl 15 Oct 2011 15:57:07
-0000 1.1
@@ -0,0 +1,31 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'conditional_not_closed'} = {
+ 'contents' => [],
+ 'type' => 'text_root'
+};
+
+$result_texis{'conditional_not_closed'} = '';
+
+
+$result_texts{'conditional_not_closed'} = '';
+
+$result_errors{'conditional_not_closed'} = [
+ {
+ 'error_line' => ':2: No matching address@hidden ifhtml\'
+',
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => '',
+ 'text' => 'No matching address@hidden ifhtml\'',
+ 'type' => 'error'
+ }
+];
+
+
+1;
Index: t/results/conditionals/end_conditional_not_at_line_begining.pl
===================================================================
RCS file: t/results/conditionals/end_conditional_not_at_line_begining.pl
diff -N t/results/conditionals/end_conditional_not_at_line_begining.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/end_conditional_not_at_line_begining.pl 15 Oct
2011 15:57:07 -0000 1.1
@@ -0,0 +1,31 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'end_conditional_not_at_line_begining'} = {
+ 'contents' => [],
+ 'type' => 'text_root'
+};
+
+$result_texis{'end_conditional_not_at_line_begining'} = '';
+
+
+$result_texts{'end_conditional_not_at_line_begining'} = '';
+
+$result_errors{'end_conditional_not_at_line_begining'} = [
+ {
+ 'error_line' => ':3: warning: @end ifhtml should only appear at a line
beginning
+',
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => '',
+ 'text' => '@end ifhtml should only appear at a line beginning',
+ 'type' => 'warning'
+ }
+];
+
+
+1;
Index: t/results/conditionals/superfluous_argument_to_end.pl
===================================================================
RCS file: t/results/conditionals/superfluous_argument_to_end.pl
diff -N t/results/conditionals/superfluous_argument_to_end.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/superfluous_argument_to_end.pl 15 Oct 2011
15:57:08 -0000 1.1
@@ -0,0 +1,47 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'superfluous_argument_to_end'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'not html
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'superfluous_argument_to_end'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'superfluous_argument_to_end'}{'contents'}[0];
+$result_trees{'superfluous_argument_to_end'}{'contents'}[0]{'parent'} =
$result_trees{'superfluous_argument_to_end'};
+
+$result_texis{'superfluous_argument_to_end'} = 'not html
+';
+
+
+$result_texts{'superfluous_argument_to_end'} = 'not html
+';
+
+$result_errors{'superfluous_argument_to_end'} = [
+ {
+ 'error_line' => ':3: Superfluous argument to @end ifnothtml: superfluous
+',
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => '',
+ 'text' => 'Superfluous argument to @end ifnothtml: superfluous',
+ 'type' => 'error'
+ }
+];
+
+
+1;
Index: t/results/conditionals/text_on_conditional_line.pl
===================================================================
RCS file: t/results/conditionals/text_on_conditional_line.pl
diff -N t/results/conditionals/text_on_conditional_line.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/text_on_conditional_line.pl 15 Oct 2011 15:57:08
-0000 1.1
@@ -0,0 +1,21 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'text_on_conditional_line'} = {
+ 'contents' => [],
+ 'type' => 'text_root'
+};
+
+$result_texis{'text_on_conditional_line'} = '';
+
+
+$result_texts{'text_on_conditional_line'} = '';
+
+$result_errors{'text_on_conditional_line'} = [];
+
+
+1;
Index: t/results/conditionals/text_on_conditional_line_expanded.pl
===================================================================
RCS file: t/results/conditionals/text_on_conditional_line_expanded.pl
diff -N t/results/conditionals/text_on_conditional_line_expanded.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/text_on_conditional_line_expanded.pl 15 Oct 2011
15:57:08 -0000 1.1
@@ -0,0 +1,37 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'text_on_conditional_line_expanded'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'a
+'
+ }
+ ],
+ 'parent' => {},
+ 'type' => 'paragraph'
+ }
+ ],
+ 'type' => 'text_root'
+};
+$result_trees{'text_on_conditional_line_expanded'}{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'text_on_conditional_line_expanded'}{'contents'}[0];
+$result_trees{'text_on_conditional_line_expanded'}{'contents'}[0]{'parent'} =
$result_trees{'text_on_conditional_line_expanded'};
+
+$result_texis{'text_on_conditional_line_expanded'} = 'a
+';
+
+
+$result_texts{'text_on_conditional_line_expanded'} = 'a
+';
+
+$result_errors{'text_on_conditional_line_expanded'} = [];
+
+
+1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/tp Texinfo/Parser.pm t/55conditionals.t...,
Patrice Dumas <=