texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: * tp/Texinfo/ParserNonXS.pm (_command_warn, _comm


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/ParserNonXS.pm (_command_warn, _command_error): only use the command source info. Update callers.
Date: Sun, 10 Dec 2023 11:05:34 -0500

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 1ce56bb926 * tp/Texinfo/ParserNonXS.pm (_command_warn, 
_command_error): only use the command source info.  Update callers.
1ce56bb926 is described below

commit 1ce56bb92673e8ae819099fa32cb9f03d522da61
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Dec 10 17:05:19 2023 +0100

    * tp/Texinfo/ParserNonXS.pm (_command_warn, _command_error): only use
    the command source info.  Update callers.
    
    * tp/Texinfo/ParserNonXS.pm (_end_line_starting_block),
    tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block): use
    multitable command for "unexpected argument on @%s line" warning.
    
    * tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
    tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): use
    _line_error for @columnfraction error, as @columnfraction does not
    have a command source info.
    
    * tp/Texinfo/ParserNonXS.pm (_handle_open_brace),
    tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace): always put a
    source info in bracketed_arg type, as there are related errors.
    
    * tp/Texinfo/XS/main/errors.c (message_list_line_error_internal)
    (line_error, line_warn): do not use current_source_info in
    message_list_line_error_internal, set it in line_error and line_warn.
    
    * tp/Texinfo/XS/main/build_perl_info.c (build_source_info_hash):
    complete macro and file_name with empty string only if line_nr is set.
    
    * tp/Texinfo/XS/main/errors.c (message_list_line_error_ext): add.
---
 ChangeLog                                          | 27 ++++++++
 tp/Texinfo/ParserNonXS.pm                          | 81 +++++++++++-----------
 tp/Texinfo/XS/main/build_perl_info.c               | 10 +++
 tp/Texinfo/XS/main/errors.c                        | 23 +++---
 tp/Texinfo/XS/main/errors.h                        |  3 +
 tp/Texinfo/XS/parsetexi/end_line.c                 |  5 +-
 tp/Texinfo/XS/parsetexi/separator.c                |  5 +-
 tp/t/results/coverage/multitable.pl                | 10 +++
 tp/t/results/float/complex_float.pl                | 20 ++++++
 .../multitable_anchor_and_index_entry.pl           | 10 +++
 .../info_tests/nested_multitable_anchor_index.pl   | 20 ++++++
 tp/t/results/invalid_nestings/bad_tab_nesting.pl   | 10 +++
 tp/t/results/invalid_nestings/center.pl            | 10 +++
 .../multitable_in_style_command.pl                 | 10 +++
 .../invalid_nestings/multitable_item_in_index.pl   | 10 +++
 .../invalid_nestings/on_block_command_line.pl      |  5 ++
 .../invalid_nestings/section_on_multitable_line.pl | 10 +++
 tp/t/results/invalid_nestings/tab_in_index.pl      | 10 +++
 .../macro_expansion_in_multitable_prototype.pl     | 25 +++++++
 .../inter_item_commands_in_multitable.pl           | 10 +++
 .../multitable/multitable_begin_with_tab.pl        | 20 ++++++
 ...ultitable_bracketed_no_inter_space_prototype.pl | 10 +++
 ...titable_bracketed_prototype_empty_not_closed.pl |  5 ++
 ...bracketed_prototype_empty_not_closed_comment.pl |  5 ++
 ..._bracketed_prototype_empty_spaces_not_closed.pl |  5 ++
 ...ed_prototype_empty_spaces_not_closed_comment.pl |  5 ++
 .../multitable_bracketed_prototype_not_closed.pl   |  5 ++
 ...table_bracketed_prototype_not_closed_comment.pl |  5 ++
 ...bracketed_prototype_not_closed_space_comment.pl |  5 ++
 .../multitable_empty_bracketed_prototype.pl        | 10 +++
 tp/t/results/multitable/multitable_figure_space.pl | 10 +++
 tp/t/results/multitable/multitable_in_example.pl   | 10 +++
 tp/t/results/multitable/multitable_not_closed.pl   | 10 +++
 .../multitable/multitable_not_closed_item.pl       | 10 +++
 .../multitable/multitable_not_closed_item_tab.pl   | 10 +++
 .../multitable_one_column_too_much_cells.pl        |  5 ++
 tp/t/results/multitable/paragraph_in_cells.pl      | 10 +++
 .../results/multitable/prototype_brace_no_brace.pl |  5 ++
 .../multitable/prototype_brace_no_brace_comment.pl |  5 ++
 tp/t/results/multitable/w_in_multitable.pl         | 10 +++
 tp/t/results/plaintext_tests/multitable.pl         | 45 ++++++++++++
 .../multitable_in_example_extraneous_tab.pl        |  5 ++
 tp/t/results/plaintext_tests/nested_multitable.pl  | 20 ++++++
 tp/t/results/xml_tests/commands_and_spaces.pl      | 10 +++
 .../xml_tests/comments_on_block_command_lines.pl   | 10 +++
 tp/t/test_parse_texi_line.t                        |  2 +-
 46 files changed, 511 insertions(+), 55 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index be6cfe7d38..b33d06282d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2023-12-10  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/ParserNonXS.pm (_command_warn, _command_error): only use
+       the command source info.  Update callers.
+
+       * tp/Texinfo/ParserNonXS.pm (_end_line_starting_block),
+       tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block): use
+       multitable command for "unexpected argument on @%s line" warning.
+
+       * tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
+       tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): use
+       _line_error for @columnfraction error, as @columnfraction does not
+       have a command source info.
+
+       * tp/Texinfo/ParserNonXS.pm (_handle_open_brace),
+       tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace): always put a
+       source info in bracketed_arg type, as there are related errors.
+
+       * tp/Texinfo/XS/main/errors.c (message_list_line_error_internal)
+       (line_error, line_warn): do not use current_source_info in
+       message_list_line_error_internal, set it in line_error and line_warn.
+
+       * tp/Texinfo/XS/main/build_perl_info.c (build_source_info_hash):
+       complete macro and file_name with empty string only if line_nr is set.
+
+       * tp/Texinfo/XS/main/errors.c (message_list_line_error_ext): add.
+
 2023-12-10  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/convert/convert_html.c
diff --git a/tp/Texinfo/ParserNonXS.pm b/tp/Texinfo/ParserNonXS.pm
index b0f049da12..fca010ec64 100644
--- a/tp/Texinfo/ParserNonXS.pm
+++ b/tp/Texinfo/ParserNonXS.pm
@@ -1381,13 +1381,14 @@ sub _begin_preformatted($$)
 # wrapper around line_warn.  Set source_info to be the source_info of
 # the command, corresponding to the opening of the command.
 # Call line_warn with sprintf if needed.
-sub _command_warn($$$$;@)
+sub _command_warn($$$;@)
 {
   my $self = shift;
   my $current = shift;
-  my $source_info = shift;
   my $message = shift;
 
+  my $source_info;
+
   if ($current->{'source_info'}) {
     $source_info = $current->{'source_info'};
   }
@@ -1398,13 +1399,14 @@ sub _command_warn($$$$;@)
   }
 }
 
-sub _command_error($$$$;@)
+sub _command_error($$$;@)
 {
   my $self = shift;
   my $current = shift;
-  my $source_info = shift;
   my $message = shift;
 
+  my $source_info;
+
   # use the beginning of the @-command for the error message
   # line number if available.
   if ($current->{'source_info'}) {
@@ -1452,19 +1454,19 @@ sub _close_brace_command($$$;$$$)
   if ($current->{'cmdname'} ne 'verb'
       or $current->{'info'}->{'delimiter'} eq '') {
     if (defined($closed_block_command)) {
-      $self->_command_error($current, $source_info,
+      $self->_command_error($current,
         __("\@end %s seen before \@%s closing brace"),
                   $closed_block_command, $current->{'cmdname'});
     } elsif (defined($interrupting_command)) {
-      $self->_command_error($current, $source_info,
+      $self->_command_error($current,
         __("\@%s seen before \@%s closing brace"),
                   $interrupting_command, $current->{'cmdname'});
     } elsif ($missing_brace) {
-      $self->_command_error($current, $source_info,
+      $self->_command_error($current,
         __("\@%s missing closing brace"), $current->{'cmdname'});
     }
   } elsif ($missing_brace) {
-    $self->_command_error($current, $source_info,
+    $self->_command_error($current,
        __("\@%s missing closing delimiter sequence: %s}"),
        $current->{'cmdname'}, $current->{'info'}->{'delimiter'});
   }
@@ -2099,7 +2101,7 @@ sub _close_current($$$;$$)
     print STDERR "CLOSING type $current->{'type'}\n" if ($self->{'DEBUG'});
     if ($current->{'type'} eq 'bracketed_arg') {
       # unclosed bracketed argument
-      $self->_command_error($current, $source_info, __("misplaced {"));
+      $self->_command_error($current, __("misplaced {"));
       if ($current->{'contents'}
           and $current->{'contents'}->[0]->{'type'}
           and $current->{'contents'}->[0]->{'type'}
@@ -2110,7 +2112,7 @@ sub _close_current($$$;$$)
       $current = $current->{'parent'};
     } elsif ($current->{'type'} eq 'balanced_braces') {
       # unclosed braces in contexts accepting lone braces
-      $self->_command_error($current, $source_info, __("misplaced {"));
+      $self->_command_error($current, __("misplaced {"));
       # We prefer adding an element to merging because we may
       # be at the end of the document after an empty line we
       # do not want to modify
@@ -3513,7 +3515,7 @@ sub _end_line_misc_line($$$)
 
     if ($text eq '') {
       if (not $superfluous_arg) {
-        $self->_command_warn($current, $source_info,
+        $self->_command_warn($current,
                              __("\@%s missing argument"), $command);
       }
       # if there is superfluous arg, a more suitable error is issued below.
@@ -3527,7 +3529,7 @@ sub _end_line_misc_line($$$)
           $end_command = $1;
 
           if (!exists $block_commands{$end_command}) {
-            $self->_command_warn($current, $source_info,
+            $self->_command_warn($current,
                                  __("unknown \@end %s"), $end_command);
             $end_command = undef;
           } else {
@@ -3544,7 +3546,7 @@ sub _end_line_misc_line($$$)
         # if $superfluous_arg is set there is a similar and somewhat
         # better error message below
         } elsif (!$superfluous_arg) {
-          $self->_command_error($current, $source_info,
+          $self->_command_error($current,
                             __("bad argument to \@%s: %s"),
                             $command, $remaining_on_line);
         }
@@ -3568,12 +3570,12 @@ sub _end_line_misc_line($$$)
           } else {
             my $decoded_file_path
                 = Encode::decode($file_name_encoding, $included_file_path);
-            $self->_command_error($current, $source_info,
+            $self->_command_error($current,
                             __("\@%s: could not open %s: %s"),
                             $command, $decoded_file_path, $error_message);
           }
         } else {
-          $self->_command_error($current, $source_info,
+          $self->_command_error($current,
                             __("\@%s: could not find %s"),
                            $command, $text);
         }
@@ -3589,13 +3591,13 @@ sub _end_line_misc_line($$$)
         $normalized_text =~ s/[^[:alnum:]_\-]//;
 
         if ($normalized_text !~ /[[:alnum:]]/) {
-          $self->_command_warn($current, $source_info,
+          $self->_command_warn($current,
                                __("bad encoding name `%s'"), $text);
         } else {
           # Warn if the encoding is not one of the encodings supported as an
           # argument to @documentencoding, documented in Texinfo manual
           unless ($canonical_texinfo_encodings{lc($text)}) {
-            $self->_command_warn($current, $source_info,
+            $self->_command_warn($current,
                      __("encoding `%s' is not a canonical texinfo encoding"),
                                  $text)
           }
@@ -3620,7 +3622,7 @@ sub _end_line_misc_line($$$)
           }
 
           if (!$perl_encoding) {
-            $self->_command_warn($current, $source_info,
+            $self->_command_warn($current,
                  __("unhandled encoding name `%s'"), $text);
           } else {
             if ($input_encoding) {
@@ -3639,7 +3641,7 @@ sub _end_line_misc_line($$$)
       } elsif ($command eq 'documentlanguage') {
         my @messages = Texinfo::Common::warn_unknown_language($text);
         foreach my $message(@messages) {
-          $self->_command_warn($current, $source_info, $message);
+          $self->_command_warn($current, $message);
         }
         if (!$self->{'set'}->{'documentlanguage'}) {
            $self->{'documentlanguage'} = $text;
@@ -3652,7 +3654,7 @@ sub _end_line_misc_line($$$)
       $texi_line =~ s/^\s*//;
       $texi_line =~ s/\s*$//;
 
-      $self->_command_error($current, $source_info,
+      $self->_command_error($current,
                      __("bad argument to \@%s: %s"),
                      $command, $texi_line);
     }
@@ -3711,7 +3713,7 @@ sub _end_line_misc_line($$$)
     # Handle all the other 'line' commands.  Here just check that they
     # have an argument.  Empty @top is allowed
     if (!$current->{'args'}->[0]->{'contents'} and $command ne 'top') {
-      $self->_command_warn($current, $source_info,
+      $self->_command_warn($current,
              __("\@%s missing argument"), $command);
     } else {
       if (($command eq 'item' or $command eq 'itemx')
@@ -3812,16 +3814,16 @@ sub _end_line_misc_line($$$)
 
   if ($command eq 'setfilename'
       and ($self->{'current_node'} or $self->{'current_section'})) {
-    $self->_command_warn($misc_cmd, $source_info,
+    $self->_command_warn($misc_cmd,
              __("\@%s after the first element"), $command);
   # columnfractions
   } elsif ($command eq 'columnfractions') {
     # in a multitable, we are in a block_line_arg
     if (!$current->{'parent'} or !$current->{'parent'}->{'cmdname'}
                  or $current->{'parent'}->{'cmdname'} ne 'multitable') {
-      $self->_command_error($current, $source_info,
-             __("\@%s only meaningful on a \@multitable line"),
-             $command);
+      $self->_line_error(
+          sprintf(__("\@%s only meaningful on a \@multitable line"),
+             $command), $source_info);
     } else {
       $current->{'parent'}->{'extra'} = {}
         if (!defined($current->{'parent'}->{'extra'}));
@@ -3892,7 +3894,7 @@ sub _end_line_def_line($$$)
   $current = $current->{'parent'};
 
   if (scalar(keys(%$arguments)) == 0) {
-    $self->_command_warn($current, $source_info,
+    $self->_command_warn($current,
                          __('missing category for @%s'),
        $current->{'extra'}->{'original_def_cmdname'});
   } else {
@@ -3938,7 +3940,7 @@ sub _end_line_def_line($$$)
            if $current->{'extra'}->{'def_command'} ne 'defline'
              and $current->{'extra'}->{'def_command'} ne 'deftypeline';
     } else {
-      $self->_command_warn($current, $source_info,
+      $self->_command_warn($current,
                            __('missing name for @%s'),
          $current->{'extra'}->{'original_def_cmdname'});
     }
@@ -4014,7 +4016,7 @@ sub _end_line_starting_block($$$)
           if (!$content->{'cmdname'}
                 or ($content->{'cmdname'} ne 'c'
                     and $content->{'cmdname'} ne 'comment')) {
-            $self->_command_warn($current, $source_info,
+            $self->_command_warn($current->{'parent'},
                 __("unexpected argument on \@%s line: %s"),
                      $command,
                      Texinfo::Convert::Texinfo::convert_to_texinfo($content));
@@ -4026,7 +4028,7 @@ sub _end_line_starting_block($$$)
     $multitable->{'extra'} = {} if (!$multitable->{'extra'});
     $multitable->{'extra'}->{'max_columns'} = $max_columns;
     if (!$max_columns) {
-      $self->_command_warn($multitable, $source_info,
+      $self->_command_warn($multitable,
                            __("empty multitable"));
     }
   }
@@ -4057,13 +4059,13 @@ sub _end_line_starting_block($$$)
           and $current->{'args'}->[0]->{'contents'}
           and @{$current->{'args'}->[0]->{'contents'}}) {
         if (scalar(@{$current->{'args'}->[0]->{'contents'}}) > 1) {
-          $self->_command_error($current, $source_info,
+          $self->_command_error($current,
                       __("superfluous argument to \@%s"), $command);
         }
         my $arg = $current->{'args'}->[0]->{'contents'}->[0];
         if (!defined($arg->{'text'})
             or $arg->{'text'} !~ /^((\d+)|([[:alpha:]]))$/) {
-          $self->_command_error($current, $source_info,
+          $self->_command_error($current,
                       __("bad argument to \@%s"), $command);
         } else {
           $spec = $arg->{'text'};
@@ -4080,17 +4082,17 @@ sub _end_line_starting_block($$$)
           my $texi_arg
             = Texinfo::Convert::Texinfo::convert_to_texinfo(
                     {'contents' => $current->{'args'}->[0]->{'contents'}});
-          $self->_command_error($current, $source_info,
+          $self->_command_error($current,
                                 __("bad argument to \@%s: %s"),
                                 $command, $texi_arg);
         } else {
-          $self->_command_error($current, $source_info,
+          $self->_command_error($current,
                                 __("missing \@%s argument"),
                                 $command);
         }
       } elsif ($self->{'brace_commands'}->{
     $current->{'extra'}->{'command_as_argument'}->{'cmdname'}} eq 'noarg') {
-        $self->_command_error($current, $source_info,
+        $self->_command_error($current,
   __("command \@%s not accepting argument in brace should not be on \@%s 
line"),
             $current->{'extra'}->{'command_as_argument'}->{'cmdname'},
             $current->{'cmdname'});
@@ -4131,7 +4133,7 @@ sub _end_line_starting_block($$$)
                                                             ->{'cmdname'}}) {
       # this can only happen to an accent command with brace, if without
       # brace it is not set as command_as_argument to begin with.
-      $self->_command_warn($current, $source_info,
+      $self->_command_warn($current,
             __("accent command `\@%s' not allowed as \@%s argument"),
             $current->{'extra'}->{'command_as_argument'}->{'cmdname'},
             $command);
@@ -4184,7 +4186,7 @@ sub _end_line_starting_block($$$)
     # expand the contents to avoid surrounding spaces
     my $texi_arg = Texinfo::Convert::Texinfo::convert_to_texinfo(
                        {'contents' => $current->{'args'}->[0]->{'contents'}});
-    $self->_command_warn($current, $source_info,
+    $self->_command_warn($current,
                          __("unexpected argument on \@%s line: %s"),
                          $command, $texi_arg);
   }
@@ -6074,9 +6076,8 @@ sub _handle_open_brace($$$$)
            'parent' => $current };
     $current = $current->{'contents'}->[-1];
     # we need the line number here in case @ protects end of line
-    $current->{'source_info'} = {%$source_info}
-      if ($current->{'parent'}->{'parent'}->{'type'}
-          and $current->{'parent'}->{'parent'}->{'type'} eq 'def_line');
+    # and also for misplaced { errors.
+    $current->{'source_info'} = {%$source_info};
     # internal_spaces_before_argument is a transient internal type,
     # which should end up in info spaces_before_argument.
     push @{$current->{'contents'}},
@@ -7589,7 +7590,7 @@ sub _parse_line_command_args($$$)
   #}
 
   if (!$arg->{'contents'}) {
-    $self->_command_error($line_command, $source_info,
+    $self->_command_error($line_command,
                __("\@%s missing argument"), $command);
     return undef;
   }
diff --git a/tp/Texinfo/XS/main/build_perl_info.c 
b/tp/Texinfo/XS/main/build_perl_info.c
index e33684cdae..19c46fa078 100644
--- a/tp/Texinfo/XS/main/build_perl_info.c
+++ b/tp/Texinfo/XS/main/build_perl_info.c
@@ -1041,16 +1041,24 @@ build_source_info_hash (SOURCE_INFO source_info, HV *hv)
       hv_store (hv, "file_name", strlen ("file_name"),
                 newSVpv (source_info.file_name, 0), 0);
     }
+   /*
   else
     {
       hv_store (hv, "file_name", strlen ("file_name"),
                 newSVpv ("", 0), 0);
     }
+    */
 
   if (source_info.line_nr)
     {
       hv_store (hv, "line_nr", strlen ("line_nr"),
                 newSViv (source_info.line_nr), 0);
+      if (!source_info.file_name)
+        hv_store (hv, "file_name", strlen ("file_name"),
+                  newSVpv ("", 0), 0);
+      if (!source_info.macro)
+        hv_store (hv, "macro", strlen ("macro"),
+                newSVpv_utf8 ("", 0), 0);
     }
 
   if (source_info.macro)
@@ -1058,11 +1066,13 @@ build_source_info_hash (SOURCE_INFO source_info, HV *hv)
       hv_store (hv, "macro", strlen ("macro"),
                 newSVpv_utf8 (source_info.macro, 0), 0);
     }
+   /*
   else
     {
       hv_store (hv, "macro", strlen ("macro"),
                 newSVpv_utf8 ("", 0), 0);
     }
+   */
 }
 
 static SV *
diff --git a/tp/Texinfo/XS/main/errors.c b/tp/Texinfo/XS/main/errors.c
index 49173b9975..b2c9ce5f1a 100644
--- a/tp/Texinfo/XS/main/errors.c
+++ b/tp/Texinfo/XS/main/errors.c
@@ -84,13 +84,8 @@ message_list_line_error_internal (ERROR_MESSAGE_LIST 
*error_messages,
 
   if (cmd_source_info)
     {
-      if (cmd_source_info->line_nr)
-        error_message->source_info = *cmd_source_info;
-      else
-        error_message->source_info = current_source_info;
+      error_message->source_info = *cmd_source_info;
     }
-  else
-    error_message->source_info = current_source_info;
 
   text_init (&error_line);
   text_append (&error_line, "");
@@ -244,7 +239,7 @@ line_error (const char *format, ...)
   va_list v;
 
   va_start (v, format);
-  line_error_internal (MSG_error, 0, 0, format, v);
+  line_error_internal (MSG_error, 0, &current_source_info, format, v);
 }
 
 void
@@ -253,7 +248,7 @@ line_warn (const char *format, ...)
   va_list v;
 
   va_start (v, format);
-  line_error_internal (MSG_warning, 0, 0, format, v);
+  line_error_internal (MSG_warning, 0, &current_source_info, format, v);
 }
 
 void
@@ -265,6 +260,18 @@ command_warn (const ELEMENT *e, const char *format, ...)
   line_error_internal (MSG_warning, 0, &e->source_info, format, v);
 }
 
+void
+message_list_line_error_ext (ERROR_MESSAGE_LIST *error_messages,
+                             enum error_type type, int continuation,
+                     SOURCE_INFO *cmd_source_info, const char *format, ...)
+{
+  va_list v;
+
+  va_start (v, format);
+  message_list_line_error_internal (error_messages, type, continuation,
+                                    cmd_source_info, format, v);
+}
+
 void
 message_list_command_warn (ERROR_MESSAGE_LIST *error_messages,
                            const ELEMENT *e, const char *format, ...)
diff --git a/tp/Texinfo/XS/main/errors.h b/tp/Texinfo/XS/main/errors.h
index 56f5cdba33..3f14994726 100644
--- a/tp/Texinfo/XS/main/errors.h
+++ b/tp/Texinfo/XS/main/errors.h
@@ -21,6 +21,9 @@ char *prepare_error_line_message (ERROR_MESSAGE 
*error_message);
 
 void wipe_error_message_list (ERROR_MESSAGE_LIST *error_messages);
 void clear_error_message_list (ERROR_MESSAGE_LIST *error_messages);
+void message_list_line_error_ext (ERROR_MESSAGE_LIST *error_messages,
+                                enum error_type type, int continuation,
+                     SOURCE_INFO *cmd_source_info, const char *format, ...);
 void message_list_command_error (ERROR_MESSAGE_LIST *error_messages,
                                  const ELEMENT *e, const char *format, ...);
 void message_list_command_warn (ERROR_MESSAGE_LIST *error_messages,
diff --git a/tp/Texinfo/XS/parsetexi/end_line.c 
b/tp/Texinfo/XS/parsetexi/end_line.c
index a14de116bb..e3811b4e4e 100644
--- a/tp/Texinfo/XS/parsetexi/end_line.c
+++ b/tp/Texinfo/XS/parsetexi/end_line.c
@@ -822,7 +822,7 @@ end_line_starting_block (ELEMENT *current)
                 {
                   char *texi;
                   texi = convert_to_texinfo (e);
-                  command_warn (current,
+                  command_warn (current->parent,
                                 "unexpected argument on @%s line: %s",
                                 command_name(current->parent->cmd),
                                 texi);
@@ -1684,8 +1684,7 @@ end_line_misc_line (ELEMENT *current)
       /* Check if in multitable. */
       if (!current->parent || current->parent->cmd != CM_multitable)
         {
-          command_error (current,
-            "@columnfractions only meaningful on a @multitable line");
+          line_error ("@columnfractions only meaningful on a @multitable 
line");
         }
       else
         {
diff --git a/tp/Texinfo/XS/parsetexi/separator.c 
b/tp/Texinfo/XS/parsetexi/separator.c
index b6c7c3bbf5..540fb9935c 100644
--- a/tp/Texinfo/XS/parsetexi/separator.c
+++ b/tp/Texinfo/XS/parsetexi/separator.c
@@ -209,9 +209,8 @@ handle_open_brace (ELEMENT *current, char **line_inout)
       current = b;
 
       /* We need the line number here in case @ protects the
-         end of the line.  */
-      if (current->parent->parent->type == ET_def_line)
-        current->source_info = current_source_info;
+         end of the line and also for misplaced { errors.  */
+      current->source_info = current_source_info;
 
       e = new_element (ET_internal_spaces_before_argument);
       text_append (&e->text, ""); /* See comment in parser.c:merge_text */
diff --git a/tp/t/results/coverage/multitable.pl 
b/tp/t/results/coverage/multitable.pl
index b20d137bef..c702f1f48f 100644
--- a/tp/t/results/coverage/multitable.pl
+++ b/tp/t/results/coverage/multitable.pl
@@ -390,6 +390,11 @@ $result_trees{'multitable'} = {
                       'text' => 'truc'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 11,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -401,6 +406,11 @@ $result_trees{'multitable'} = {
                       'text' => 'bidule'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 11,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/float/complex_float.pl 
b/tp/t/results/float/complex_float.pl
index 279182e63b..ff275ab114 100644
--- a/tp/t/results/float/complex_float.pl
+++ b/tp/t/results/float/complex_float.pl
@@ -1322,6 +1322,11 @@ $result_trees{'complex_float'} = {
                                   'text' => 'truc'
                                 }
                               ],
+                              'source_info' => {
+                                'file_name' => '',
+                                'line_nr' => 66,
+                                'macro' => ''
+                              },
                               'type' => 'bracketed_arg'
                             },
                             {
@@ -1333,6 +1338,11 @@ $result_trees{'complex_float'} = {
                                   'text' => 'bidule'
                                 }
                               ],
+                              'source_info' => {
+                                'file_name' => '',
+                                'line_nr' => 66,
+                                'macro' => ''
+                              },
                               'type' => 'bracketed_arg'
                             }
                           ],
@@ -2678,6 +2688,11 @@ $result_trees{'complex_float'} = {
                                   'text' => 'truc'
                                 }
                               ],
+                              'source_info' => {
+                                'file_name' => '',
+                                'line_nr' => 111,
+                                'macro' => ''
+                              },
                               'type' => 'bracketed_arg'
                             },
                             {
@@ -2689,6 +2704,11 @@ $result_trees{'complex_float'} = {
                                   'text' => 'bidule'
                                 }
                               ],
+                              'source_info' => {
+                                'file_name' => '',
+                                'line_nr' => 111,
+                                'macro' => ''
+                              },
                               'type' => 'bracketed_arg'
                             }
                           ],
diff --git a/tp/t/results/info_tests/multitable_anchor_and_index_entry.pl 
b/tp/t/results/info_tests/multitable_anchor_and_index_entry.pl
index 8c3876de2c..7176a1bfc4 100644
--- a/tp/t/results/info_tests/multitable_anchor_and_index_entry.pl
+++ b/tp/t/results/info_tests/multitable_anchor_and_index_entry.pl
@@ -438,6 +438,11 @@ $result_trees{'multitable_anchor_and_index_entry'} = {
                       'text' => 'A'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 13,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -449,6 +454,11 @@ $result_trees{'multitable_anchor_and_index_entry'} = {
                       'text' => 'B'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 13,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/info_tests/nested_multitable_anchor_index.pl 
b/tp/t/results/info_tests/nested_multitable_anchor_index.pl
index 3dd716af32..b7d7292d40 100644
--- a/tp/t/results/info_tests/nested_multitable_anchor_index.pl
+++ b/tp/t/results/info_tests/nested_multitable_anchor_index.pl
@@ -44,6 +44,11 @@ $result_trees{'nested_multitable_anchor_index'} = {
                       'text' => 'truc AAAA   machin'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 3,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -55,6 +60,11 @@ $result_trees{'nested_multitable_anchor_index'} = {
                       'text' => 'bidule'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 3,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -91,6 +101,11 @@ $result_trees{'nested_multitable_anchor_index'} = {
                                       'text' => 'AAAA'
                                     }
                                   ],
+                                  'source_info' => {
+                                    'file_name' => '',
+                                    'line_nr' => 5,
+                                    'macro' => ''
+                                  },
                                   'type' => 'bracketed_arg'
                                 },
                                 {
@@ -102,6 +117,11 @@ $result_trees{'nested_multitable_anchor_index'} = {
                                       'text' => 'machin'
                                     }
                                   ],
+                                  'source_info' => {
+                                    'file_name' => '',
+                                    'line_nr' => 5,
+                                    'macro' => ''
+                                  },
                                   'type' => 'bracketed_arg'
                                 }
                               ],
diff --git a/tp/t/results/invalid_nestings/bad_tab_nesting.pl 
b/tp/t/results/invalid_nestings/bad_tab_nesting.pl
index edaf985150..1ada6c7035 100644
--- a/tp/t/results/invalid_nestings/bad_tab_nesting.pl
+++ b/tp/t/results/invalid_nestings/bad_tab_nesting.pl
@@ -19,6 +19,11 @@ $result_trees{'bad_tab_nesting'} = {
                       'text' => 'truc'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'bad_tab_nesting'} = {
                       'text' => 'bidule'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/invalid_nestings/center.pl 
b/tp/t/results/invalid_nestings/center.pl
index a284617eb4..718b73520d 100644
--- a/tp/t/results/invalid_nestings/center.pl
+++ b/tp/t/results/invalid_nestings/center.pl
@@ -975,6 +975,11 @@ $result_trees{'center'} = {
                       'text' => 'AAA'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 39,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -986,6 +991,11 @@ $result_trees{'center'} = {
                       'text' => 'BBB'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 39,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/invalid_nestings/multitable_in_style_command.pl 
b/tp/t/results/invalid_nestings/multitable_in_style_command.pl
index fd40947f46..a63565cc6f 100644
--- a/tp/t/results/invalid_nestings/multitable_in_style_command.pl
+++ b/tp/t/results/invalid_nestings/multitable_in_style_command.pl
@@ -47,6 +47,11 @@ $result_trees{'multitable_in_style_command'} = {
                       'text' => 'truc'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 3,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -58,6 +63,11 @@ $result_trees{'multitable_in_style_command'} = {
                       'text' => 'machin'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 3,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/invalid_nestings/multitable_item_in_index.pl 
b/tp/t/results/invalid_nestings/multitable_item_in_index.pl
index 6b3354fe90..65674f4732 100644
--- a/tp/t/results/invalid_nestings/multitable_item_in_index.pl
+++ b/tp/t/results/invalid_nestings/multitable_item_in_index.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_item_in_index'} = {
                       'text' => 'aaa'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_item_in_index'} = {
                       'text' => 'bbb'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/invalid_nestings/on_block_command_line.pl 
b/tp/t/results/invalid_nestings/on_block_command_line.pl
index efb8a6d1fe..f514ee44b5 100644
--- a/tp/t/results/invalid_nestings/on_block_command_line.pl
+++ b/tp/t/results/invalid_nestings/on_block_command_line.pl
@@ -38,6 +38,11 @@ $result_trees{'on_block_command_line'} = {
                       }
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
diff --git a/tp/t/results/invalid_nestings/section_on_multitable_line.pl 
b/tp/t/results/invalid_nestings/section_on_multitable_line.pl
index 9595868648..caac57619d 100644
--- a/tp/t/results/invalid_nestings/section_on_multitable_line.pl
+++ b/tp/t/results/invalid_nestings/section_on_multitable_line.pl
@@ -152,6 +152,11 @@ $result_trees{'section_on_multitable_line'} = {
                       'text' => 'aaa'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -163,6 +168,11 @@ $result_trees{'section_on_multitable_line'} = {
                       'text' => 'bbb'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/invalid_nestings/tab_in_index.pl 
b/tp/t/results/invalid_nestings/tab_in_index.pl
index 78392495f4..4222a77973 100644
--- a/tp/t/results/invalid_nestings/tab_in_index.pl
+++ b/tp/t/results/invalid_nestings/tab_in_index.pl
@@ -19,6 +19,11 @@ $result_trees{'tab_in_index'} = {
                       'text' => 'one nonlettered character'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'tab_in_index'} = {
                       'text' => 'normal text'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/macro/macro_expansion_in_multitable_prototype.pl 
b/tp/t/results/macro/macro_expansion_in_multitable_prototype.pl
index 0f94dd87eb..2bf1902ea8 100644
--- a/tp/t/results/macro/macro_expansion_in_multitable_prototype.pl
+++ b/tp/t/results/macro/macro_expansion_in_multitable_prototype.pl
@@ -172,6 +172,11 @@ $result_trees{'macro_expansion_in_multitable_prototype'} = 
{
                       'text' => 'h ab i'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 9,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -208,6 +213,11 @@ $result_trees{'macro_expansion_in_multitable_prototype'} = 
{
                       'text' => 'j ab'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 9,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -265,6 +275,11 @@ $result_trees{'macro_expansion_in_multitable_prototype'} = 
{
                       'text' => 'nab'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 9,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -321,6 +336,11 @@ $result_trees{'macro_expansion_in_multitable_prototype'} = 
{
                       'text' => 'd'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 9,
+                    'macro' => ''
+                  },
                   'source_marks' => [
                     {
                       'counter' => 4,
@@ -363,6 +383,11 @@ $result_trees{'macro_expansion_in_multitable_prototype'} = 
{
                       'text' => 'h cTd'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 9,
+                    'macro' => ''
+                  },
                   'source_marks' => [
                     {
                       'counter' => 5,
diff --git a/tp/t/results/multitable/inter_item_commands_in_multitable.pl 
b/tp/t/results/multitable/inter_item_commands_in_multitable.pl
index c50f3b783c..37a762c616 100644
--- a/tp/t/results/multitable/inter_item_commands_in_multitable.pl
+++ b/tp/t/results/multitable/inter_item_commands_in_multitable.pl
@@ -19,6 +19,11 @@ $result_trees{'inter_item_commands_in_multitable'} = {
                       'text' => 'truc'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -611,6 +616,11 @@ $result_trees{'inter_item_commands_in_multitable'} = {
                       'text' => 'thing'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 21,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_begin_with_tab.pl 
b/tp/t/results/multitable/multitable_begin_with_tab.pl
index e081f92270..84f5f56ae1 100644
--- a/tp/t/results/multitable/multitable_begin_with_tab.pl
+++ b/tp/t/results/multitable/multitable_begin_with_tab.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_begin_with_tab'} = {
                       'text' => 'a'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_begin_with_tab'} = {
                       'text' => 'b'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -124,6 +134,11 @@ $result_trees{'multitable_begin_with_tab'} = {
                       'text' => 'c'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -135,6 +150,11 @@ $result_trees{'multitable_begin_with_tab'} = {
                       'text' => 'd'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_no_inter_space_prototype.pl 
b/tp/t/results/multitable/multitable_bracketed_no_inter_space_prototype.pl
index 3e0aee798f..1f61a4f703 100644
--- a/tp/t/results/multitable/multitable_bracketed_no_inter_space_prototype.pl
+++ b/tp/t/results/multitable/multitable_bracketed_no_inter_space_prototype.pl
@@ -24,6 +24,11 @@ 
$result_trees{'multitable_bracketed_no_inter_space_prototype'} = {
                       'text' => 'a'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -32,6 +37,11 @@ 
$result_trees{'multitable_bracketed_no_inter_space_prototype'} = {
                       'text' => 'b'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed.pl 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed.pl
index 3ed801ea74..c967ee21d2 100644
--- a/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed.pl
+++ b/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed.pl
@@ -25,6 +25,11 @@ 
$result_trees{'multitable_bracketed_prototype_empty_not_closed'} = {
 '
                     }
                   },
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed_comment.pl
 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed_comment.pl
index 928819a065..2ffe61b597 100644
--- 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed_comment.pl
+++ 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_not_closed_comment.pl
@@ -31,6 +31,11 @@ 
$result_trees{'multitable_bracketed_prototype_empty_not_closed_comment'} = {
                       'cmdname' => 'comment'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed.pl
 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed.pl
index b923e27c74..463b119d89 100644
--- 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed.pl
+++ 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed.pl
@@ -25,6 +25,11 @@ 
$result_trees{'multitable_bracketed_prototype_empty_spaces_not_closed'} = {
 '
                     }
                   },
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed_comment.pl
 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed_comment.pl
index 4b915fc655..5afa643222 100644
--- 
a/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed_comment.pl
+++ 
b/tp/t/results/multitable/multitable_bracketed_prototype_empty_spaces_not_closed_comment.pl
@@ -36,6 +36,11 @@ 
$result_trees{'multitable_bracketed_prototype_empty_spaces_not_closed_comment'}
                       'text' => ' '
                     }
                   },
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_not_closed.pl 
b/tp/t/results/multitable/multitable_bracketed_prototype_not_closed.pl
index 62e812681c..ea7211709d 100644
--- a/tp/t/results/multitable/multitable_bracketed_prototype_not_closed.pl
+++ b/tp/t/results/multitable/multitable_bracketed_prototype_not_closed.pl
@@ -30,6 +30,11 @@ $result_trees{'multitable_bracketed_prototype_not_closed'} = 
{
                       'text' => ' '
                     }
                   },
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_comment.pl 
b/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_comment.pl
index 0c85d32569..8766ec4c3d 100644
--- 
a/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_comment.pl
+++ 
b/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_comment.pl
@@ -34,6 +34,11 @@ 
$result_trees{'multitable_bracketed_prototype_not_closed_comment'} = {
                       'cmdname' => 'c'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_space_comment.pl
 
b/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_space_comment.pl
index de2cb6c9f0..1ee84f0fb3 100644
--- 
a/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_space_comment.pl
+++ 
b/tp/t/results/multitable/multitable_bracketed_prototype_not_closed_space_comment.pl
@@ -34,6 +34,11 @@ 
$result_trees{'multitable_bracketed_prototype_not_closed_space_comment'} = {
                       'cmdname' => 'c'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_empty_bracketed_prototype.pl 
b/tp/t/results/multitable/multitable_empty_bracketed_prototype.pl
index 286ed01b9b..5bcd2819d9 100644
--- a/tp/t/results/multitable/multitable_empty_bracketed_prototype.pl
+++ b/tp/t/results/multitable/multitable_empty_bracketed_prototype.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_empty_bracketed_prototype'} = {
             {
               'contents' => [
                 {
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_empty_bracketed_prototype'} = {
                       'text' => 'a'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_figure_space.pl 
b/tp/t/results/multitable/multitable_figure_space.pl
index 55205c727c..a2d466acaf 100644
--- a/tp/t/results/multitable/multitable_figure_space.pl
+++ b/tp/t/results/multitable/multitable_figure_space.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_figure_space'} = {
                       'text' => '999999999'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_figure_space'} = {
                       'text' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_in_example.pl 
b/tp/t/results/multitable/multitable_in_example.pl
index 14b022ec8b..2fd4b2cdc8 100644
--- a/tp/t/results/multitable/multitable_in_example.pl
+++ b/tp/t/results/multitable/multitable_in_example.pl
@@ -33,6 +33,11 @@ $result_trees{'multitable_in_example'} = {
                           'text' => 'AAA'
                         }
                       ],
+                      'source_info' => {
+                        'file_name' => '',
+                        'line_nr' => 2,
+                        'macro' => ''
+                      },
                       'type' => 'bracketed_arg'
                     },
                     {
@@ -44,6 +49,11 @@ $result_trees{'multitable_in_example'} = {
                           'text' => 'BBB'
                         }
                       ],
+                      'source_info' => {
+                        'file_name' => '',
+                        'line_nr' => 2,
+                        'macro' => ''
+                      },
                       'type' => 'bracketed_arg'
                     }
                   ],
diff --git a/tp/t/results/multitable/multitable_not_closed.pl 
b/tp/t/results/multitable/multitable_not_closed.pl
index b2d80cf17b..36dd02ec44 100644
--- a/tp/t/results/multitable/multitable_not_closed.pl
+++ b/tp/t/results/multitable/multitable_not_closed.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_not_closed'} = {
                       'text' => 'r'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_not_closed'} = {
                       'text' => 't'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_not_closed_item.pl 
b/tp/t/results/multitable/multitable_not_closed_item.pl
index b3ec5b613f..4ab42bb6ba 100644
--- a/tp/t/results/multitable/multitable_not_closed_item.pl
+++ b/tp/t/results/multitable/multitable_not_closed_item.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_not_closed_item'} = {
                       'text' => 'r'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_not_closed_item'} = {
                       'text' => 't'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_not_closed_item_tab.pl 
b/tp/t/results/multitable/multitable_not_closed_item_tab.pl
index fae2b11e2c..63107fc3f3 100644
--- a/tp/t/results/multitable/multitable_not_closed_item_tab.pl
+++ b/tp/t/results/multitable/multitable_not_closed_item_tab.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_not_closed_item_tab'} = {
                       'text' => 'r'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable_not_closed_item_tab'} = {
                       'text' => 't'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/multitable_one_column_too_much_cells.pl 
b/tp/t/results/multitable/multitable_one_column_too_much_cells.pl
index 00daf2be76..7eb9e767cd 100644
--- a/tp/t/results/multitable/multitable_one_column_too_much_cells.pl
+++ b/tp/t/results/multitable/multitable_one_column_too_much_cells.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable_one_column_too_much_cells'} = {
                       'text' => 'a'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/paragraph_in_cells.pl 
b/tp/t/results/multitable/paragraph_in_cells.pl
index 4125d1de84..acc8b64710 100644
--- a/tp/t/results/multitable/paragraph_in_cells.pl
+++ b/tp/t/results/multitable/paragraph_in_cells.pl
@@ -19,6 +19,11 @@ $result_trees{'paragraph_in_cells'} = {
                       'text' => 'AAA'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'paragraph_in_cells'} = {
                       'text' => 'BBB'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/multitable/prototype_brace_no_brace.pl 
b/tp/t/results/multitable/prototype_brace_no_brace.pl
index dd02a643b8..f9da31cadc 100644
--- a/tp/t/results/multitable/prototype_brace_no_brace.pl
+++ b/tp/t/results/multitable/prototype_brace_no_brace.pl
@@ -19,6 +19,11 @@ $result_trees{'prototype_brace_no_brace'} = {
                       'text' => 'aa'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
diff --git a/tp/t/results/multitable/prototype_brace_no_brace_comment.pl 
b/tp/t/results/multitable/prototype_brace_no_brace_comment.pl
index 72afff788b..0ebaf5293f 100644
--- a/tp/t/results/multitable/prototype_brace_no_brace_comment.pl
+++ b/tp/t/results/multitable/prototype_brace_no_brace_comment.pl
@@ -19,6 +19,11 @@ $result_trees{'prototype_brace_no_brace_comment'} = {
                       'text' => 'aa'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
diff --git a/tp/t/results/multitable/w_in_multitable.pl 
b/tp/t/results/multitable/w_in_multitable.pl
index b732f70ac1..238ef84de1 100644
--- a/tp/t/results/multitable/w_in_multitable.pl
+++ b/tp/t/results/multitable/w_in_multitable.pl
@@ -19,6 +19,11 @@ $result_trees{'w_in_multitable'} = {
                       'text' => 'aaaaaaaaa'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'w_in_multitable'} = {
                       'text' => 'bbbbbbbbbbb'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/results/plaintext_tests/multitable.pl 
b/tp/t/results/plaintext_tests/multitable.pl
index bd4656f466..9cf6c9d9ba 100644
--- a/tp/t/results/plaintext_tests/multitable.pl
+++ b/tp/t/results/plaintext_tests/multitable.pl
@@ -19,6 +19,11 @@ $result_trees{'multitable'} = {
                       'text' => 'truc'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -30,6 +35,11 @@ $result_trees{'multitable'} = {
                       'text' => 'bidule'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 1,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -229,6 +239,11 @@ $result_trees{'multitable'} = {
                       'text' => 't'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 6,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -240,6 +255,11 @@ $result_trees{'multitable'} = {
                       'text' => 'b'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 6,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -1152,6 +1172,11 @@ $result_trees{'multitable'} = {
                       'text' => 'AA'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 23,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -1163,6 +1188,11 @@ $result_trees{'multitable'} = {
                       'text' => 'BB'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 23,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -1421,6 +1451,11 @@ $result_trees{'multitable'} = {
                       'text' => 'A'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 29,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -1574,6 +1609,11 @@ $result_trees{'multitable'} = {
                       'text' => 'A'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 35,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -1585,6 +1625,11 @@ $result_trees{'multitable'} = {
                       'text' => 'B'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 35,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git 
a/tp/t/results/plaintext_tests/multitable_in_example_extraneous_tab.pl 
b/tp/t/results/plaintext_tests/multitable_in_example_extraneous_tab.pl
index 73c15a5c29..65c6714513 100644
--- a/tp/t/results/plaintext_tests/multitable_in_example_extraneous_tab.pl
+++ b/tp/t/results/plaintext_tests/multitable_in_example_extraneous_tab.pl
@@ -33,6 +33,11 @@ $result_trees{'multitable_in_example_extraneous_tab'} = {
                           'text' => 'a'
                         }
                       ],
+                      'source_info' => {
+                        'file_name' => '',
+                        'line_nr' => 2,
+                        'macro' => ''
+                      },
                       'type' => 'bracketed_arg'
                     }
                   ],
diff --git a/tp/t/results/plaintext_tests/nested_multitable.pl 
b/tp/t/results/plaintext_tests/nested_multitable.pl
index 38b6afac94..9508b74dfa 100644
--- a/tp/t/results/plaintext_tests/nested_multitable.pl
+++ b/tp/t/results/plaintext_tests/nested_multitable.pl
@@ -30,6 +30,11 @@ $result_trees{'nested_multitable'} = {
                       'text' => ' machin'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -41,6 +46,11 @@ $result_trees{'nested_multitable'} = {
                       'text' => 'bidule'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
@@ -77,6 +87,11 @@ $result_trees{'nested_multitable'} = {
                                       'text' => 'AAAA'
                                     }
                                   ],
+                                  'source_info' => {
+                                    'file_name' => '',
+                                    'line_nr' => 4,
+                                    'macro' => ''
+                                  },
                                   'type' => 'bracketed_arg'
                                 },
                                 {
@@ -88,6 +103,11 @@ $result_trees{'nested_multitable'} = {
                                       'text' => 'machin'
                                     }
                                   ],
+                                  'source_info' => {
+                                    'file_name' => '',
+                                    'line_nr' => 4,
+                                    'macro' => ''
+                                  },
                                   'type' => 'bracketed_arg'
                                 }
                               ],
diff --git a/tp/t/results/xml_tests/commands_and_spaces.pl 
b/tp/t/results/xml_tests/commands_and_spaces.pl
index 4983631301..b4ffb61d58 100644
--- a/tp/t/results/xml_tests/commands_and_spaces.pl
+++ b/tp/t/results/xml_tests/commands_and_spaces.pl
@@ -875,6 +875,11 @@ $result_trees{'commands_and_spaces'} = {
                       'text' => 'aa b'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 39,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -891,6 +896,11 @@ $result_trees{'commands_and_spaces'} = {
                       'text' => ' '
                     }
                   },
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 39,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
diff --git a/tp/t/results/xml_tests/comments_on_block_command_lines.pl 
b/tp/t/results/xml_tests/comments_on_block_command_lines.pl
index 81bb1832dc..9c7ec4b784 100644
--- a/tp/t/results/xml_tests/comments_on_block_command_lines.pl
+++ b/tp/t/results/xml_tests/comments_on_block_command_lines.pl
@@ -1699,6 +1699,11 @@ $result_trees{'comments_on_block_command_lines'} = {
                       'text' => 'aaa'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 65,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 },
                 {
@@ -1710,6 +1715,11 @@ $result_trees{'comments_on_block_command_lines'} = {
                       'text' => 'bbb'
                     }
                   ],
+                  'source_info' => {
+                    'file_name' => '',
+                    'line_nr' => 65,
+                    'macro' => ''
+                  },
                   'type' => 'bracketed_arg'
                 }
               ],
diff --git a/tp/t/test_parse_texi_line.t b/tp/t/test_parse_texi_line.t
index fd1a4dc2be..2fe3f0a0d3 100644
--- a/tp/t/test_parse_texi_line.t
+++ b/tp/t/test_parse_texi_line.t
@@ -94,7 +94,7 @@ in chapter
 ', 'long example', [[4, 'warning: @setfilename after the first element'],
                     [24, 'column fraction not a number: a'],
                     [24, 'column fraction not a number: b'],
-                    [20, '@columnfractions only meaningful on a @multitable 
line'],
+                    [24, '@columnfractions only meaningful on a @multitable 
line'],
 ]]
 );
 



reply via email to

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