Loading ...
Sorry, an error occurred while loading the content.

60252[BUG]: wrong line numbers with embedded perl code

Expand Messages
  • Britton Kerin
    Jan 28, 2011
      There is some strange bug that causes line numbers in errors coming from
      perl to come out wrong in some circumstances.

      This code:

      perl <<END_PERL
      # line 3 line_number_test.vim

      if ( 0 ) {
      die "I don't cause trouble because I'm all on one line";

      die "I am really line 8";

      behaves as expected when openened and :so %.

      This code ends up wrongly reporting the error as being on line 10:

      perl <<END_PERL
      # line 3 line_number_test.vim

      if ( 0 ) {
      "I DO cause trouble perhaps because I'm not all on one line?";

      die "I am really line 9";

      The bug is not in perl because this script:

      #!/usr/bin/perl -w
      # line 3

      use strict;

      if ( 0 ) {
      "I don't happen";

      die "I do happen";

      works as expected.

      The problem is the same for compile time errors (e.g. $foo = "bar" with $foo
      undeclared and warnings fatal) as for run-time ones.

      The scripts are attached in case anyone wants to try them.

      I suspect that vim is getting clever and rewriting the die code somehow and
      accidently adding a line in some cases or something, but I haven't looked
      into it at all.

      I'm really hoping someone can tell me what's going on or where to look.
      I just released http://www.vim.org/scripts/script.php?script_id=3406 and
      http://www.vim.org/scripts/script.php?script_id=3411 but I'll have to pull
      them if they are inevitably going to commit that most unholy crime of lying
      to people who are trying to debug.


      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    • Show all 5 messages in this topic