texinfo-commits
[Top][All Lists]
Advanced

[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;



reply via email to

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