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

Re: Submatch newline bug?

Expand Messages
  • Bram Moolenaar
    ... Well, either a bug or an unsupported feature. What happens is that the substitute() call clears the submatches and sets new ones. I suppose the submatches
    Message 1 of 2 , Nov 3, 2009
    • 0 Attachment
      Clockwork Jam wrote:

      > I'm seeing some odd behaviour when passing a submatch to substitute()
      > when evaluating a regexp in GVim 7.2. Say I have the following two-
      > line file:
      >
      > the second line
      > appears below
      >
      > If I place the cursor at the start of the file and execute the
      > following substitution:
      >
      > :s/\v(the\s)(\_.*)/\=submatch(1) . submatch(2)
      >
      > then it works correctly and I see:
      >
      > the second line
      > appears below
      >
      > However, if I instead execute the following substitution on the same
      > pattern:
      >
      > s/\v(the\s)(\_.*)/\=substitute(submatch(1),'the','no','') . submatch
      > (2)
      >
      > then I see only the following line:
      >
      > no second line
      >
      > In both of these examples, the second submatch spans both lines. But
      > in the second example, after calling substitute() with the first
      > match, the second match retains only the text that appears on the
      > first line. Is this a bug?

      Well, either a bug or an unsupported feature.

      What happens is that the substitute() call clears the submatches and
      sets new ones.

      I suppose the submatches should be saved and restored.

      --
      I bought a book on hair loss, but the pages kept falling out.

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ download, build and distribute -- http://www.A-A-P.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    Your message has been successfully submitted and would be delivered to recipients shortly.