Hi

Recent patch 7.3.100 introduced a regression when appending text in diff mode.

Steps to reproduce:
============================================================================
  $ cat .vimrc-bug
  set nocompatible
  set laststatus=2

  fun! ShowUtf8Sequence()
    try
      let p = getpos('.')
      redir => utfseq
      sil normal! g8
      redir End
      call setpos('.', p)
      return substitute(matchstr(utfseq, '\x\+ .*\x'), '\<\x', '0x&', 'g')
    catch
      return '?'
    endtry
  endfunction

  set statusline=%{ShowUtf8Sequence()}

  $ cat foo.xml
  <foo
  </foo>

  $ cat bar.xml
  <foo>
  </foo>

  $ vim -d --noplugin -u .vimrc-bug foo.xml bar.xml

  Now in normal mode, append some text at the end of a line with A:

  A1234

  Instead of appending 1234 at the end of the line, it appends: 1432o
============================================================================

I can reproduce the bug with latest Vim-7.3.107.

Doing a bisection, I found that Vim-7.3.99 and older worked fine
and bug started to happen in Vim-7.3.100 which was a one-line
patch:

  changeset:   2682:35edf814f223
  user:        Bram Moolenaar <[email protected]>
  date:        Mon Jan 17 19:50:06 2011 +0100
  files:       src/ex_docmd.c src/version.c
  description:
  updated for version 7.3.100
  Problem:    When using :normal v:count isn't set.
  Solution:   Call normal_cmd() with toplevel set to TRUE.


  $ diff -r 85c5a72551e2 -r 35edf814f223 src/ex_docmd.c
  --- a/src/ex_docmd.c    Sat Jan 08 16:06:37 2011 +0100
  +++ b/src/ex_docmd.c    Mon Jan 17 19:50:06 2011 +0100
  @@ -9310,7 +9310,7 @@
                                                                    && !got_int)
       {
          update_topline_cursor();
  -       normal_cmd(&oa, FALSE); /* execute a Normal mode cmd */
  +       normal_cmd(&oa, TRUE);  /* execute a Normal mode cmd */
       }
   }
   #endif

Reverting patch 7.3.100 fixes the problem.

Regards
-- Dominique

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

Raspunde prin e-mail lui