Re: [60am,mb] visual selection is not drawn correctly
- Yasuhiro Matsumoto wrote:
> but do_put doesn't work correctly. X-(On further investigation I discovered this was wrong for control characters as
> if it need inserting visual selected area and
> it located between two multibyte string,
> pasted text need shifting left.
> this is a patch.
> please check this.
well. When pasting halfway a ^V (or <16>, when 'display' is "uhex"), the
character would be deleted.
The patch below fixes this by only deleting the character if it is a tab. I
think a put operation is allowed to replace a tab by spaces, to make the text
aligned. But deleting another character is not what a user expects. The
result is that the text after the put block is misaligned. I don't see a
simple way to avoid that.
*** ../dist/vim60am/src/ops.c Wed Jun 27 13:41:37 2001
--- ops.c Wed Jul 4 15:03:55 2001
*** 3023,3028 ****
--- 3023,3040 ----
bd.startspaces = incr - bd.endspaces;
delcount = 1;
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ bd.textcol -= (*mb_head_off)(oldp, oldp + bd.textcol);
+ if (oldp[bd.textcol] != TAB)
+ /* Only a Tab can be split into spaces. Other
+ * characters will have to be moved to after the
+ * block, causing misalignment. */
+ delcount = 0;
+ bd.endspaces = 0;
yanklen = (int)STRLEN(y_array[i]);
>From "know your smileys"::.-( Crying
/// Bram Moolenaar -- Bram@... -- http://www.moolenaar.net \\\
((( Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim )))
\\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org ///