summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0826
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0826')
-rw-r--r--data/vim/patches/8.1.08263149
1 files changed, 0 insertions, 3149 deletions
diff --git a/data/vim/patches/8.1.0826 b/data/vim/patches/8.1.0826
deleted file mode 100644
index f224fef2a..000000000
--- a/data/vim/patches/8.1.0826
+++ /dev/null
@@ -1,3149 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0826
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 8.1.0826
-Problem: Too many #ifdefs.
-Solution: Graduate FEAT_VIRTUALEDIT. Adds about 10Kbyte to the code.
-Files: src/buffer.c, src/charset.c, src/edit.c, src/eval.c,
- src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/feature.h,
- src/globals.h, src/gui.c, src/if_py_both.h, src/macros.h,
- src/mark.c, src/mbyte.c, src/memline.c, src/menu.c, src/misc1.c,
- src/misc2.c, src/move.c, src/netbeans.c, src/normal.c, src/ops.c,
- src/option.c, src/option.h, src/screen.c, src/search.c,
- src/spell.c, src/structs.h, src/tag.c, src/ui.c, src/undo.c,
- src/userfunc.c, src/version.c, src/vim.h, src/window.c
-
-
-*** ../vim-8.1.0825/src/buffer.c 2019-01-24 15:04:44.662887892 +0100
---- src/buffer.c 2019-01-26 16:53:13.030607118 +0100
-***************
-*** 1729,1737 ****
- /* Cursor on first line by default. */
- curwin->w_cursor.lnum = 1;
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_set_curswant = TRUE;
- curwin->w_topline_was_set = FALSE;
-
---- 1729,1735 ----
-***************
-*** 2333,2341 ****
- {
- curwin->w_cursor.col = col;
- check_cursor_col();
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_set_curswant = TRUE;
- }
- return OK;
---- 2331,2337 ----
-***************
-*** 2363,2371 ****
- {
- curwin->w_cursor.col = fpos->col;
- check_cursor_col();
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_set_curswant = TRUE;
- }
- }
---- 2359,2365 ----
-***************
-*** 2958,2964 ****
- buflist_findfpos(buf_T *buf)
- {
- wininfo_T *wip;
-! static pos_T no_position = INIT_POS_T(1, 0, 0);
-
- wip = find_wininfo(buf, FALSE);
- if (wip != NULL)
---- 2952,2958 ----
- buflist_findfpos(buf_T *buf)
- {
- wininfo_T *wip;
-! static pos_T no_position = {1, 0, 0};
-
- wip = find_wininfo(buf, FALSE);
- if (wip != NULL)
-***************
-*** 3955,3963 ****
- // Line may have changed since checking the cursor column, or the lnum
- // was adjusted above.
- wp->w_cursor.col = (colnr_T)len;
-- #ifdef FEAT_VIRTUALEDIT
- wp->w_cursor.coladd = 0;
-- #endif
- byteval = 0;
- }
- else
---- 3949,3955 ----
-*** ../vim-8.1.0825/src/charset.c 2019-01-24 15:54:17.794846944 +0100
---- src/charset.c 2019-01-26 16:53:46.770374525 +0100
-***************
-*** 1365,1381 ****
- colnr_T vcol;
-
- curwin->w_p_list = FALSE;
-- #ifdef FEAT_VIRTUALEDIT
- if (posp->coladd)
- getvvcol(curwin, posp, NULL, &vcol, NULL);
- else
-- #endif
- getvcol(curwin, posp, NULL, &vcol, NULL);
- curwin->w_p_list = list_save;
- return vcol;
- }
-
-- #if defined(FEAT_VIRTUALEDIT) || defined(PROTO)
- /*
- * Get virtual column in virtual mode.
- */
---- 1365,1378 ----
-***************
-*** 1425,1431 ****
- else
- getvcol(wp, pos, start, cursor, end);
- }
-- #endif
-
- /*
- * Get the leftmost and rightmost virtual column of pos1 and pos2.
---- 1422,1427 ----
-*** ../vim-8.1.0825/src/edit.c 2019-01-25 22:29:54.139821894 +0100
---- src/edit.c 2019-01-26 16:55:18.241740105 +0100
-***************
-*** 1072,1085 ****
- break;
- ins_ctrl_o();
-
-- #ifdef FEAT_VIRTUALEDIT
- /* don't move the cursor left when 'virtualedit' has "onemore". */
- if (ve_flags & VE_ONEMORE)
- {
- ins_at_eol = FALSE;
- nomove = TRUE;
- }
-- #endif
- count = 0;
- goto doESCkey;
-
---- 1072,1083 ----
-***************
-*** 7125,7138 ****
- {
- if (gchar_cursor() != NUL)
- inc_cursor();
-! #ifdef FEAT_VIRTUALEDIT
-! /* If the cursor is still at the same character, also keep
-! * the "coladd". */
- if (gchar_cursor() == NUL
- && curwin->w_cursor.lnum == tpos.lnum
- && curwin->w_cursor.col == tpos.col)
- curwin->w_cursor.coladd = tpos.coladd;
-- #endif
- }
- }
-
---- 7123,7134 ----
- {
- if (gchar_cursor() != NUL)
- inc_cursor();
-! // If the cursor is still at the same character, also keep
-! // the "coladd".
- if (gchar_cursor() == NUL
- && curwin->w_cursor.lnum == tpos.lnum
- && curwin->w_cursor.col == tpos.col)
- curwin->w_cursor.coladd = tpos.coladd;
- }
- }
-
-***************
-*** 7182,7190 ****
- if (VIsual.col > len)
- {
- VIsual.col = len;
-- #ifdef FEAT_VIRTUALEDIT
- VIsual.coladd = 0;
-- #endif
- }
- }
- }
---- 7178,7184 ----
-***************
-*** 7293,7301 ****
- else
- {
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
-
- if (flags & (BL_WHITE | BL_SOL))
- {
---- 7287,7293 ----
-***************
-*** 7323,7329 ****
- char_u *ptr;
- int l;
-
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- {
- pos_T prevpos = curwin->w_cursor;
---- 7315,7320 ----
-***************
-*** 7338,7344 ****
- return (prevpos.col != curwin->w_cursor.col
- || prevpos.coladd != curwin->w_cursor.coladd) ? OK : FAIL;
- }
-- #endif
-
- ptr = ml_get_cursor();
- if (*ptr == NUL)
---- 7329,7334 ----
-***************
-*** 7351,7361 ****
-
- /* move "l" bytes right, but don't end up on the NUL, unless 'virtualedit'
- * contains "onemore". */
-! if (ptr[l] == NUL
-! #ifdef FEAT_VIRTUALEDIT
-! && (ve_flags & VE_ONEMORE) == 0
-! #endif
-! )
- return FAIL;
- curwin->w_cursor.col += l;
-
---- 7341,7347 ----
-
- /* move "l" bytes right, but don't end up on the NUL, unless 'virtualedit'
- * contains "onemore". */
-! if (ptr[l] == NUL && (ve_flags & VE_ONEMORE) == 0)
- return FAIL;
- curwin->w_cursor.col += l;
-
-***************
-*** 7366,7383 ****
- int
- oneleft(void)
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- {
-! # ifdef FEAT_LINEBREAK
- int width;
-! # endif
- int v = getviscol();
-
- if (v == 0)
- return FAIL;
-
-! # ifdef FEAT_LINEBREAK
- /* We might get stuck on 'showbreak', skip over it. */
- width = 1;
- for (;;)
---- 7352,7368 ----
- int
- oneleft(void)
- {
- if (virtual_active())
- {
-! #ifdef FEAT_LINEBREAK
- int width;
-! #endif
- int v = getviscol();
-
- if (v == 0)
- return FAIL;
-
-! #ifdef FEAT_LINEBREAK
- /* We might get stuck on 'showbreak', skip over it. */
- width = 1;
- for (;;)
-***************
-*** 7391,7399 ****
- break;
- ++width;
- }
-! # else
- coladvance(v - 1);
-! # endif
-
- if (curwin->w_cursor.coladd == 1)
- {
---- 7376,7384 ----
- break;
- ++width;
- }
-! #else
- coladvance(v - 1);
-! #endif
-
- if (curwin->w_cursor.coladd == 1)
- {
-***************
-*** 7409,7415 ****
- curwin->w_set_curswant = TRUE;
- return OK;
- }
-- #endif
-
- if (curwin->w_cursor.col == 0)
- return FAIL;
---- 7394,7399 ----
-***************
-*** 8665,8674 ****
- */
- if (!nomove
- && (curwin->w_cursor.col != 0
-! #ifdef FEAT_VIRTUALEDIT
-! || curwin->w_cursor.coladd > 0
-! #endif
-! )
- && (restart_edit == NUL
- || (gchar_cursor() == NUL && !VIsual_active))
- #ifdef FEAT_RIGHTLEFT
---- 8649,8655 ----
- */
- if (!nomove
- && (curwin->w_cursor.col != 0
-! || curwin->w_cursor.coladd > 0)
- && (restart_edit == NUL
- || (gchar_cursor() == NUL && !VIsual_active))
- #ifdef FEAT_RIGHTLEFT
-***************
-*** 8676,8682 ****
- #endif
- )
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (curwin->w_cursor.coladd > 0 || ve_flags == VE_ALL)
- {
- oneleft();
---- 8657,8662 ----
-***************
-*** 8684,8690 ****
- ++curwin->w_cursor.coladd;
- }
- else
-- #endif
- {
- --curwin->w_cursor.col;
- /* Correct cursor for multi-byte character. */
---- 8664,8669 ----
-***************
-*** 8874,8884 ****
- restart_edit = 'R';
- else
- restart_edit = 'I';
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- ins_at_eol = FALSE; /* cursor always keeps its column */
- else
-- #endif
- ins_at_eol = (gchar_cursor() == NUL);
- }
-
---- 8853,8861 ----
-***************
-*** 9040,9046 ****
- inc_cursor();
- #endif
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Virtualedit:
- * BACKSPACE_CHAR eats a virtual space
- * BACKSPACE_WORD eats all coladd
---- 9017,9022 ----
-***************
-*** 9060,9066 ****
- }
- curwin->w_cursor.coladd = 0;
- }
-- #endif
-
- /*
- * Delete newline!
---- 9036,9041 ----
-***************
-*** 9744,9752 ****
- if (c == K_C_HOME)
- curwin->w_cursor.lnum = 1;
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_curswant = 0;
- start_arrow(&tpos);
- }
---- 9719,9725 ----
-***************
-*** 9797,9817 ****
- foldOpenCursor();
- #endif
- undisplay_dollar();
-! if (gchar_cursor() != NUL
-! #ifdef FEAT_VIRTUALEDIT
-! || virtual_active()
-! #endif
-! )
- {
- start_arrow_with_change(&curwin->w_cursor, end_change);
- if (!end_change)
- AppendCharToRedobuff(K_RIGHT);
- curwin->w_set_curswant = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- oneright();
- else
-- #endif
- {
- if (has_mbyte)
- curwin->w_cursor.col += (*mb_ptr2len)(ml_get_cursor());
---- 9770,9784 ----
- foldOpenCursor();
- #endif
- undisplay_dollar();
-! if (gchar_cursor() != NUL || virtual_active())
- {
- start_arrow_with_change(&curwin->w_cursor, end_change);
- if (!end_change)
- AppendCharToRedobuff(K_RIGHT);
- curwin->w_set_curswant = TRUE;
- if (virtual_active())
- oneright();
- else
- {
- if (has_mbyte)
- curwin->w_cursor.col += (*mb_ptr2len)(ml_get_cursor());
-***************
-*** 10268,10279 ****
- * in open_line().
- */
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Put cursor on NUL if on the last char and coladd is 1 (happens after
- * CTRL-O). */
- if (virtual_active() && curwin->w_cursor.coladd > 0)
- coladvance(getviscol());
-- #endif
-
- #ifdef FEAT_RIGHTLEFT
- # ifdef FEAT_FKMAP
---- 10235,10244 ----
-*** ../vim-8.1.0825/src/eval.c 2019-01-25 20:48:29.381157353 +0100
---- src/eval.c 2019-01-26 16:55:31.845645313 +0100
-***************
-*** 6207,6218 ****
- return NULL; /* invalid column number */
- --pos.col;
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Get the virtual offset. Defaults to zero. */
- pos.coladd = list_find_nr(l, 2L, &error);
- if (error)
- pos.coladd = 0;
-- #endif
-
- return &pos;
- }
---- 6207,6216 ----
-***************
-*** 6236,6244 ****
- return pp;
- }
-
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
-- #endif
-
- if (name[0] == 'w' && dollar_lnum)
- {
---- 6234,6240 ----
-***************
-*** 6323,6335 ****
- return FAIL;
- posp->col = n;
-
-- #ifdef FEAT_VIRTUALEDIT
- n = list_find_nr(l, i, NULL); /* off */
- if (n < 0)
- posp->coladd = 0;
- else
- posp->coladd = n;
-- #endif
-
- if (curswantp != NULL)
- *curswantp = list_find_nr(l, i + 1, NULL); /* curswant */
---- 6319,6329 ----
-*** ../vim-8.1.0825/src/evalfunc.c 2019-01-24 21:57:11.574719854 +0100
---- src/evalfunc.c 2019-01-26 16:56:16.065336486 +0100
-***************
-*** 2517,2523 ****
- else
- {
- col = fp->col + 1;
-- #ifdef FEAT_VIRTUALEDIT
- /* col(".") when the cursor is on the NUL at the end of the line
- * because of "coladd" can be seen as an extra column. */
- if (virtual_active() && fp == &curwin->w_cursor)
---- 2517,2522 ----
-***************
-*** 2533,2539 ****
- col += l;
- }
- }
-- #endif
- }
- }
- rettv->vval.v_number = col;
---- 2532,2537 ----
-***************
-*** 2838,2846 ****
- f_cursor(typval_T *argvars, typval_T *rettv)
- {
- long line, col;
-- #ifdef FEAT_VIRTUALEDIT
- long coladd = 0;
-- #endif
- int set_curswant = TRUE;
-
- rettv->vval.v_number = -1;
---- 2836,2842 ----
-***************
-*** 2856,2864 ****
- }
- line = pos.lnum;
- col = pos.col;
-- #ifdef FEAT_VIRTUALEDIT
- coladd = pos.coladd;
-- #endif
- if (curswant >= 0)
- {
- curwin->w_curswant = curswant - 1;
---- 2852,2858 ----
-***************
-*** 2869,2892 ****
- {
- line = tv_get_lnum(argvars);
- col = (long)tv_get_number_chk(&argvars[1], NULL);
-- #ifdef FEAT_VIRTUALEDIT
- if (argvars[2].v_type != VAR_UNKNOWN)
- coladd = (long)tv_get_number_chk(&argvars[2], NULL);
-- #endif
- }
-! if (line < 0 || col < 0
-! #ifdef FEAT_VIRTUALEDIT
-! || coladd < 0
-! #endif
-! )
- return; /* type error; errmsg already given */
- if (line > 0)
- curwin->w_cursor.lnum = line;
- if (col > 0)
- curwin->w_cursor.col = col - 1;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = coladd;
-- #endif
-
- /* Make sure the cursor is in a valid position. */
- check_cursor();
---- 2863,2878 ----
- {
- line = tv_get_lnum(argvars);
- col = (long)tv_get_number_chk(&argvars[1], NULL);
- if (argvars[2].v_type != VAR_UNKNOWN)
- coladd = (long)tv_get_number_chk(&argvars[2], NULL);
- }
-! if (line < 0 || col < 0 || coladd < 0)
- return; /* type error; errmsg already given */
- if (line > 0)
- curwin->w_cursor.lnum = line;
- if (col > 0)
- curwin->w_cursor.col = col - 1;
- curwin->w_cursor.coladd = coladd;
-
- /* Make sure the cursor is in a valid position. */
- check_cursor();
-***************
-*** 4810,4818 ****
- return;
- dict_add_number(d, "lnum", (long)buf->b_changelist[i].lnum);
- dict_add_number(d, "col", (long)buf->b_changelist[i].col);
-- # ifdef FEAT_VIRTUALEDIT
- dict_add_number(d, "coladd", (long)buf->b_changelist[i].coladd);
-- # endif
- }
- #endif
- }
---- 4796,4802 ----
-***************
-*** 5304,5312 ****
- return;
- dict_add_number(d, "lnum", (long)wp->w_jumplist[i].fmark.mark.lnum);
- dict_add_number(d, "col", (long)wp->w_jumplist[i].fmark.mark.col);
-- # ifdef FEAT_VIRTUALEDIT
- dict_add_number(d, "coladd", (long)wp->w_jumplist[i].fmark.mark.coladd);
-- # endif
- dict_add_number(d, "bufnr", (long)wp->w_jumplist[i].fmark.fnum);
- if (wp->w_jumplist[i].fname != NULL)
- dict_add_string(d, "filename", wp->w_jumplist[i].fname);
---- 5288,5294 ----
-***************
-*** 5483,5492 ****
- list_append_number(l, (fp != NULL)
- ? (varnumber_T)(fp->col == MAXCOL ? MAXCOL : fp->col + 1)
- : (varnumber_T)0);
-! list_append_number(l,
-! #ifdef FEAT_VIRTUALEDIT
-! (fp != NULL) ? (varnumber_T)fp->coladd :
-! #endif
- (varnumber_T)0);
- if (getcurpos)
- {
---- 5465,5471 ----
- list_append_number(l, (fp != NULL)
- ? (varnumber_T)(fp->col == MAXCOL ? MAXCOL : fp->col + 1)
- : (varnumber_T)0);
-! list_append_number(l, (fp != NULL) ? (varnumber_T)fp->coladd :
- (varnumber_T)0);
- if (getcurpos)
- {
-***************
-*** 6574,6582 ****
- "viminfo",
- #endif
- "vertsplit",
-- #ifdef FEAT_VIRTUALEDIT
- "virtualedit",
-- #endif
- "visual",
- "visualextra",
- "vreplace",
---- 6553,6559 ----
-***************
-*** 14611,14620 ****
- curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, (char_u *)"lnum");
- if (dict_find(dict, (char_u *)"col", -1) != NULL)
- curwin->w_cursor.col = (colnr_T)dict_get_number(dict, (char_u *)"col");
-- #ifdef FEAT_VIRTUALEDIT
- if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
- curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, (char_u *)"coladd");
-- #endif
- if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
- {
- curwin->w_curswant = (colnr_T)dict_get_number(dict, (char_u *)"curswant");
---- 14588,14595 ----
-***************
-*** 14661,14669 ****
-
- dict_add_number(dict, "lnum", (long)curwin->w_cursor.lnum);
- dict_add_number(dict, "col", (long)curwin->w_cursor.col);
-- #ifdef FEAT_VIRTUALEDIT
- dict_add_number(dict, "coladd", (long)curwin->w_cursor.coladd);
-- #endif
- update_curswant();
- dict_add_number(dict, "curswant", (long)curwin->w_curswant);
-
---- 14636,14642 ----
-*** ../vim-8.1.0825/src/ex_cmds.c 2019-01-24 15:04:44.666887862 +0100
---- src/ex_cmds.c 2019-01-26 16:56:25.545270146 +0100
-***************
-*** 4332,4340 ****
- /* 'sol' is off: Use last known column. */
- curwin->w_cursor.col = solcol;
- check_cursor_col();
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_set_curswant = TRUE;
- }
- else
---- 4332,4338 ----
-*** ../vim-8.1.0825/src/ex_docmd.c 2019-01-24 15:54:17.782847030 +0100
---- src/ex_docmd.c 2019-01-26 16:56:43.125146996 +0100
-***************
-*** 4650,4658 ****
- pos.col = MAXCOL;
- else
- pos.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
-- #endif
- if (searchit(curwin, curbuf, &pos, NULL,
- *cmd == '?' ? BACKWARD : FORWARD,
- (char_u *)"", 1L, SEARCH_MSG,
---- 4650,4656 ----
-***************
-*** 9421,9429 ****
- oa.end.lnum = eap->line2;
- oa.line_count = eap->line2 - eap->line1 + 1;
- oa.motion_type = MLINE;
-- #ifdef FEAT_VIRTUALEDIT
- virtual_op = FALSE;
-- #endif
- if (eap->cmdidx != CMD_yank) /* position cursor for undo */
- {
- setpcmark();
---- 9419,9425 ----
-***************
-*** 9460,9468 ****
- op_shift(&oa, FALSE, eap->amount);
- break;
- }
-- #ifdef FEAT_VIRTUALEDIT
- virtual_op = MAYBE;
-- #endif
- ex_may_print(eap);
- }
-
---- 9456,9462 ----
-*** ../vim-8.1.0825/src/feature.h 2019-01-24 18:20:14.436543394 +0100
---- src/feature.h 2019-01-26 17:08:35.436071531 +0100
-***************
-*** 199,208 ****
-
- /*
- * +virtualedit 'virtualedit' option and its implementation
- */
-- #ifdef FEAT_NORMAL
-- # define FEAT_VIRTUALEDIT
-- #endif
-
- /*
- * +cmdline_info 'showcmd' and 'ruler' options.
---- 199,206 ----
-
- /*
- * +virtualedit 'virtualedit' option and its implementation
-+ * Now always included.
- */
-
- /*
- * +cmdline_info 'showcmd' and 'ruler' options.
-*** ../vim-8.1.0825/src/globals.h 2019-01-26 16:20:44.264683546 +0100
---- src/globals.h 2019-01-26 17:08:47.047987932 +0100
-***************
-*** 771,777 ****
-
- EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
- #ifdef DO_INIT
-! = INIT_POS_T(0, 0, 0)
- #endif
- ;
-
---- 771,777 ----
-
- EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
- #ifdef DO_INIT
-! = {0, 0, 0}
- #endif
- ;
-
-***************
-*** 1066,1072 ****
- EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */
- EXTERN pos_T last_cursormoved /* for CursorMoved event */
- # ifdef DO_INIT
-! = INIT_POS_T(0, 0, 0)
- # endif
- ;
-
---- 1066,1072 ----
- EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */
- EXTERN pos_T last_cursormoved /* for CursorMoved event */
- # ifdef DO_INIT
-! = {0, 0, 0}
- # endif
- ;
-
-***************
-*** 1335,1345 ****
- EXTERN char pseps[2] INIT(= {'\\' COMMA 0});
- #endif
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Set to TRUE when an operator is being executed with virtual editing, MAYBE
- * when no operator is being executed, FALSE otherwise. */
- EXTERN int virtual_op INIT(= MAYBE);
-- #endif
-
- #ifdef FEAT_SYN_HL
- /* Display tick, incremented for each call to update_screen() */
---- 1335,1343 ----
-*** ../vim-8.1.0825/src/gui.c 2019-01-24 15:04:44.670887836 +0100
---- src/gui.c 2019-01-26 16:56:48.273110907 +0100
-***************
-*** 4599,4612 ****
- longest_lnum = gui_find_longest_lnum();
- max = scroll_line_len(longest_lnum);
-
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- {
- /* May move the cursor even further to the right. */
- if (curwin->w_virtcol >= (colnr_T)max)
- max = curwin->w_virtcol;
- }
-- #endif
-
- #ifndef SCROLL_PAST_END
- max += curwin->w_width - 1;
---- 4599,4610 ----
-*** ../vim-8.1.0825/src/if_py_both.h 2019-01-24 17:18:37.599462306 +0100
---- src/if_py_both.h 2019-01-26 17:08:58.951902215 +0100
-***************
-*** 4033,4041 ****
- self->win->w_cursor.lnum = lnum;
- self->win->w_cursor.col = col;
- self->win->w_set_curswant = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- self->win->w_cursor.coladd = 0;
-- #endif
- /* When column is out of range silently correct it. */
- check_cursor_col_win(self->win);
-
---- 4033,4039 ----
-*** ../vim-8.1.0825/src/macros.h 2019-01-24 17:18:37.599462306 +0100
---- src/macros.h 2019-01-26 17:09:21.635738827 +0100
-***************
-*** 21,47 ****
- /*
- * Position comparisons
- */
-! #ifdef FEAT_VIRTUALEDIT
-! # define LT_POS(a, b) (((a).lnum != (b).lnum) \
- ? (a).lnum < (b).lnum \
- : (a).col != (b).col \
- ? (a).col < (b).col \
- : (a).coladd < (b).coladd)
-! # define LT_POSP(a, b) (((a)->lnum != (b)->lnum) \
- ? (a)->lnum < (b)->lnum \
- : (a)->col != (b)->col \
- ? (a)->col < (b)->col \
- : (a)->coladd < (b)->coladd)
-! # define EQUAL_POS(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col) && ((a).coladd == (b).coladd))
-! # define CLEAR_POS(a) {(a)->lnum = 0; (a)->col = 0; (a)->coladd = 0;}
-! #else
-! # define LT_POS(a, b) (((a).lnum != (b).lnum) \
-! ? ((a).lnum < (b).lnum) : ((a).col < (b).col))
-! # define LT_POSP(a, b) (((a)->lnum != (b)->lnum) \
-! ? ((a)->lnum < (b)->lnum) : ((a)->col < (b)->col))
-! # define EQUAL_POS(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col))
-! # define CLEAR_POS(a) {(a)->lnum = 0; (a)->col = 0;}
-! #endif
-
- #define LTOREQ_POS(a, b) (LT_POS(a, b) || EQUAL_POS(a, b))
-
---- 21,38 ----
- /*
- * Position comparisons
- */
-! #define LT_POS(a, b) (((a).lnum != (b).lnum) \
- ? (a).lnum < (b).lnum \
- : (a).col != (b).col \
- ? (a).col < (b).col \
- : (a).coladd < (b).coladd)
-! #define LT_POSP(a, b) (((a)->lnum != (b)->lnum) \
- ? (a)->lnum < (b)->lnum \
- : (a)->col != (b)->col \
- ? (a)->col < (b)->col \
- : (a)->coladd < (b)->coladd)
-! #define EQUAL_POS(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col) && ((a).coladd == (b).coladd))
-! #define CLEAR_POS(a) {(a)->lnum = 0; (a)->col = 0; (a)->coladd = 0;}
-
- #define LTOREQ_POS(a, b) (LT_POS(a, b) || EQUAL_POS(a, b))
-
-*** ../vim-8.1.0825/src/mark.c 2019-01-19 17:43:03.417449145 +0100
---- src/mark.c 2019-01-26 16:57:22.132873211 +0100
-***************
-*** 414,422 ****
- pos_copy.col = 0;
- else
- pos_copy.col = MAXCOL;
-- #ifdef FEAT_VIRTUALEDIT
- pos_copy.coladd = 0;
-- #endif
- }
- }
- else if (ASCII_ISLOWER(c)) /* normal named mark */
---- 414,420 ----
-***************
-*** 651,659 ****
- buf->b_op_end.lnum = 0;
- buf->b_last_cursor.lnum = 1; /* '" mark cleared */
- buf->b_last_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- buf->b_last_cursor.coladd = 0;
-- #endif
- buf->b_last_insert.lnum = 0; /* '^ mark cleared */
- buf->b_last_change.lnum = 0; /* '. mark cleared */
- #ifdef FEAT_JUMPLIST
---- 649,655 ----
-***************
-*** 1052,1058 ****
- linenr_T *lp;
- win_T *win;
- tabpage_T *tab;
-! static pos_T initpos = INIT_POS_T(1, 0, 0);
-
- if (line2 < line1 && amount_after == 0L) /* nothing to do */
- return;
---- 1048,1054 ----
- linenr_T *lp;
- win_T *win;
- tabpage_T *tab;
-! static pos_T initpos = {1, 0, 0};
-
- if (line2 < line1 && amount_after == 0L) /* nothing to do */
- return;
-***************
-*** 1451,1459 ****
- fm->fmark.mark.lnum = getdigits(&str);
- str = skipwhite(str);
- fm->fmark.mark.col = getdigits(&str);
-- #ifdef FEAT_VIRTUALEDIT
- fm->fmark.mark.coladd = 0;
-- #endif
- fm->fmark.fnum = 0;
- str = skipwhite(str);
- vim_free(fm->fname);
---- 1447,1453 ----
-***************
-*** 1641,1649 ****
- {
- fm->fmark.mark.lnum = lnum;
- fm->fmark.mark.col = col;
-- #ifdef FEAT_VIRTUALEDIT
- fm->fmark.mark.coladd = 0;
-- #endif
- fm->fmark.fnum = 0;
- vim_free(fm->fname);
- if (vp[4].bv_allocated)
---- 1635,1641 ----
-***************
-*** 2146,2154 ****
- }
- vim_free(str);
-
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
-- #endif
- while (!(eof = viminfo_readline(virp)) && line[0] == TAB)
- {
- if (load_marks)
---- 2138,2144 ----
-*** ../vim-8.1.0825/src/mbyte.c 2019-01-24 15:54:17.790846972 +0100
---- src/mbyte.c 2019-01-26 16:57:48.512687656 +0100
-***************
-*** 3994,4002 ****
- convert_setup(&vimconv, p_enc, curbuf->b_p_fenc);
- }
-
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- for (;;)
- {
- p = ml_get_cursor();
---- 3994,4000 ----
-***************
-*** 4118,4135 ****
- {
- char_u *p;
-
-! if (lp->col > 0
-! #ifdef FEAT_VIRTUALEDIT
-! || lp->coladd > 1
-! #endif
-! )
- {
- p = ml_get_buf(buf, lp->lnum, FALSE);
- if (*p == NUL || (int)STRLEN(p) < lp->col)
- lp->col = 0;
- else
- lp->col -= (*mb_head_off)(p, p + lp->col);
-- #ifdef FEAT_VIRTUALEDIT
- /* Reset "coladd" when the cursor would be on the right half of a
- * double-wide character. */
- if (lp->coladd == 1
---- 4116,4128 ----
- {
- char_u *p;
-
-! if (lp->col > 0 || lp->coladd > 1)
- {
- p = ml_get_buf(buf, lp->lnum, FALSE);
- if (*p == NUL || (int)STRLEN(p) < lp->col)
- lp->col = 0;
- else
- lp->col -= (*mb_head_off)(p, p + lp->col);
- /* Reset "coladd" when the cursor would be on the right half of a
- * double-wide character. */
- if (lp->coladd == 1
-***************
-*** 4137,4143 ****
- && vim_isprintc((*mb_ptr2char)(p + lp->col))
- && ptr2cells(p + lp->col) > 1)
- lp->coladd = 0;
-- #endif
- }
- }
-
---- 4130,4135 ----
-*** ../vim-8.1.0825/src/memline.c 2019-01-24 15:54:17.790846972 +0100
---- src/memline.c 2019-01-26 16:57:59.360611264 +0100
-***************
-*** 5667,5675 ****
- {
- curwin->w_cursor.lnum = lnum;
- curwin->w_cursor.col = (colnr_T)boff;
-- # ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- # endif
- curwin->w_set_curswant = TRUE;
- }
- check_cursor();
---- 5667,5673 ----
-*** ../vim-8.1.0825/src/menu.c 2019-01-19 19:54:17.141981393 +0100
---- src/menu.c 2019-01-26 16:58:09.392540578 +0100
-***************
-*** 2318,2326 ****
- curwin->w_cursor.col = 1;
- tpos.lnum = eap->line2;
- tpos.col = MAXCOL;
-- #ifdef FEAT_VIRTUALEDIT
- tpos.coladd = 0;
-- #endif
- }
-
- /* Activate visual mode */
---- 2318,2324 ----
-*** ../vim-8.1.0825/src/misc1.c 2019-01-24 15:54:17.790846972 +0100
---- src/misc1.c 2019-01-26 16:58:37.044345517 +0100
-***************
-*** 622,630 ****
- {
- pos.lnum = lnum;
- pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
-- #endif
- }
- vim_regfree(regmatch.regprog);
- }
---- 622,628 ----
-***************
-*** 1708,1716 ****
- changed_lines(curwin->w_cursor.lnum, 0, curwin->w_cursor.lnum, 1L);
-
- curwin->w_cursor.col = newcol;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
-
- #if defined(FEAT_LISP) || defined(FEAT_CINDENT)
- /*
---- 1706,1712 ----
-***************
-*** 1781,1789 ****
-
- /* Insert new stuff into line again */
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- ins_bytes(p_extra); /* will call changed_bytes() */
- vim_free(p_extra);
- next_line = NULL;
---- 1777,1783 ----
-***************
-*** 2354,2364 ****
- linenr_T lnum = curwin->w_cursor.lnum;
- int i;
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Break tabs if needed. */
- if (virtual_active() && curwin->w_cursor.coladd > 0)
- coladvance_force(getviscol());
-- #endif
-
- col = curwin->w_cursor.col;
- oldp = ml_get(lnum);
---- 2348,2356 ----
-***************
-*** 2499,2508 ****
- colnr_T col;
- linenr_T lnum = curwin->w_cursor.lnum;
-
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active() && curwin->w_cursor.coladd > 0)
- coladvance_force(getviscol());
-- #endif
-
- col = curwin->w_cursor.col;
- oldp = ml_get(lnum);
---- 2491,2498 ----
-***************
-*** 2637,2651 ****
- * unless "restart_edit" is set or 'virtualedit' contains "onemore".
- */
- if (col > 0 && fixpos && restart_edit == 0
-! #ifdef FEAT_VIRTUALEDIT
-! && (ve_flags & VE_ONEMORE) == 0
-! #endif
-! )
- {
- --curwin->w_cursor.col;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- if (has_mbyte)
- curwin->w_cursor.col -=
- (*mb_head_off)(oldp, oldp + curwin->w_cursor.col);
---- 2627,2636 ----
- * unless "restart_edit" is set or 'virtualedit' contains "onemore".
- */
- if (col > 0 && fixpos && restart_edit == 0
-! && (ve_flags & VE_ONEMORE) == 0)
- {
- --curwin->w_cursor.col;
- curwin->w_cursor.coladd = 0;
- if (has_mbyte)
- curwin->w_cursor.col -=
- (*mb_head_off)(oldp, oldp + curwin->w_cursor.col);
-*** ../vim-8.1.0825/src/misc2.c 2019-01-24 15:54:17.790846972 +0100
---- src/misc2.c 2019-01-26 17:00:00.739753344 +0100
-***************
-*** 16,22 ****
-
- static char_u *ff_expand_buffer = NULL; /* used for expanding filenames */
-
-- #if defined(FEAT_VIRTUALEDIT) || defined(PROTO)
- static int coladvance2(pos_T *pos, int addspaces, int finetune, colnr_T wcol);
-
- /*
---- 16,21 ----
-***************
-*** 67,73 ****
- }
- return rc;
- }
-- #endif
-
- /*
- * Get the screen position of character col with a coladd in the cursor line.
---- 66,71 ----
-***************
-*** 80,88 ****
-
- pos.lnum = curwin->w_cursor.lnum;
- pos.col = col;
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = coladd;
-- #endif
- getvvcol(curwin, &pos, &x, NULL, NULL);
- return (int)x;
- }
---- 78,84 ----
-***************
-*** 119,125 ****
- int
- getvpos(pos_T *pos, colnr_T wcol)
- {
-- #ifdef FEAT_VIRTUALEDIT
- return coladvance2(pos, FALSE, virtual_active(), wcol);
- }
-
---- 115,120 ----
-***************
-*** 130,136 ****
- int finetune, /* change char offset for the exact column */
- colnr_T wcol) /* column to move to */
- {
-- #endif
- int idx;
- char_u *ptr;
- char_u *line;
---- 125,130 ----
-***************
-*** 144,153 ****
- one_more = (State & INSERT)
- || restart_edit != NUL
- || (VIsual_active && *p_sel != 'o')
-! #ifdef FEAT_VIRTUALEDIT
-! || ((ve_flags & VE_ONEMORE) && wcol < MAXCOL)
-! #endif
-! ;
- line = ml_get_buf(curbuf, pos->lnum, FALSE);
-
- if (wcol >= MAXCOL)
---- 138,144 ----
- one_more = (State & INSERT)
- || restart_edit != NUL
- || (VIsual_active && *p_sel != 'o')
-! || ((ve_flags & VE_ONEMORE) && wcol < MAXCOL) ;
- line = ml_get_buf(curbuf, pos->lnum, FALSE);
-
- if (wcol >= MAXCOL)
-***************
-*** 155,172 ****
- idx = (int)STRLEN(line) - 1 + one_more;
- col = wcol;
-
-- #ifdef FEAT_VIRTUALEDIT
- if ((addspaces || finetune) && !VIsual_active)
- {
- curwin->w_curswant = linetabsize(line) + one_more;
- if (curwin->w_curswant > 0)
- --curwin->w_curswant;
- }
-- #endif
- }
- else
- {
-- #ifdef FEAT_VIRTUALEDIT
- int width = curwin->w_width - win_col_off(curwin);
-
- if (finetune
---- 146,160 ----
-***************
-*** 188,194 ****
- wcol = (csize / width + 1) * width - 1;
- }
- }
-- #endif
-
- ptr = line;
- while (col <= wcol && *ptr != NUL)
---- 176,181 ----
-***************
-*** 219,225 ****
- col -= csize;
- }
-
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active()
- && addspaces
- && ((col != wcol && col != wcol + 1) || csize > 1))
---- 206,211 ----
-***************
-*** 283,289 ****
- col += correct;
- }
- }
-- #endif
- }
-
- if (idx < 0)
---- 269,274 ----
-***************
-*** 291,297 ****
- else
- pos->col = idx;
-
-- #ifdef FEAT_VIRTUALEDIT
- pos->coladd = 0;
-
- if (finetune)
---- 276,281 ----
-***************
-*** 318,324 ****
- col += b;
- }
- }
-- #endif
-
- /* prevent from moving onto a trail byte */
- if (has_mbyte)
---- 302,307 ----
-***************
-*** 364,372 ****
- return ((p[l] != NUL) ? 0 : 2);
- }
- lp->col++;
-- #ifdef FEAT_VIRTUALEDIT
- lp->coladd = 0;
-- #endif
- return ((p[1] != NUL) ? 0 : 2);
- }
- }
---- 347,353 ----
-***************
-*** 374,382 ****
- {
- lp->col = 0;
- lp->lnum++;
-- #ifdef FEAT_VIRTUALEDIT
- lp->coladd = 0;
-- #endif
- return 1;
- }
- return -1;
---- 355,361 ----
-***************
-*** 412,420 ****
- {
- char_u *p;
-
-- #ifdef FEAT_VIRTUALEDIT
- lp->coladd = 0;
-- #endif
- if (lp->col == MAXCOL)
- {
- /* past end of line */
---- 391,397 ----
-***************
-*** 574,583 ****
- check_cursor_col_win(win_T *win)
- {
- colnr_T len;
-- #ifdef FEAT_VIRTUALEDIT
- colnr_T oldcol = win->w_cursor.col;
- colnr_T oldcoladd = win->w_cursor.col + win->w_cursor.coladd;
-- #endif
-
- len = (colnr_T)STRLEN(ml_get_buf(win->w_buffer, win->w_cursor.lnum, FALSE));
- if (len == 0)
---- 551,558 ----
-***************
-*** 590,598 ****
- * - 'virtualedit' is set */
- if ((State & INSERT) || restart_edit
- || (VIsual_active && *p_sel != 'o')
-- #ifdef FEAT_VIRTUALEDIT
- || (ve_flags & VE_ONEMORE)
-- #endif
- || virtual_active())
- win->w_cursor.col = len;
- else
---- 565,571 ----
-***************
-*** 606,612 ****
- else if (win->w_cursor.col < 0)
- win->w_cursor.col = 0;
-
-- #ifdef FEAT_VIRTUALEDIT
- /* If virtual editing is on, we can leave the cursor on the old position,
- * only we must set it to virtual. But don't do it when at the end of the
- * line. */
---- 579,584 ----
-***************
-*** 634,640 ****
- /* avoid weird number when there is a miscalculation or overflow */
- win->w_cursor.coladd = 0;
- }
-- #endif
- }
-
- /*
---- 606,611 ----
-***************
-*** 2172,2178 ****
- #endif
-
- /*
-! * Concatenate a string to a growarray which contains characters.
- * When "s" is NULL does not do anything.
- * Note: Does NOT copy the NUL at the end!
- */
---- 2143,2149 ----
- #endif
-
- /*
-! * Concatenate a string to a growarray which contains bytes.
- * When "s" is NULL does not do anything.
- * Note: Does NOT copy the NUL at the end!
- */
-*** ../vim-8.1.0825/src/move.c 2019-01-24 15:54:17.790846972 +0100
---- src/move.c 2019-01-26 17:00:19.695618884 +0100
-***************
-*** 508,524 ****
- }
- else if (wp->w_cursor.col != wp->w_valid_cursor.col
- || wp->w_leftcol != wp->w_valid_leftcol
-! #ifdef FEAT_VIRTUALEDIT
-! || wp->w_cursor.coladd != wp->w_valid_cursor.coladd
-! #endif
-! )
- {
- wp->w_valid &= ~(VALID_WROW|VALID_WCOL|VALID_VIRTCOL);
- wp->w_valid_cursor.col = wp->w_cursor.col;
- wp->w_valid_leftcol = wp->w_leftcol;
-- #ifdef FEAT_VIRTUALEDIT
- wp->w_valid_cursor.coladd = wp->w_cursor.coladd;
-- #endif
- }
- }
-
---- 508,519 ----
- }
- else if (wp->w_cursor.col != wp->w_valid_cursor.col
- || wp->w_leftcol != wp->w_valid_leftcol
-! || wp->w_cursor.coladd != wp->w_valid_cursor.coladd)
- {
- wp->w_valid &= ~(VALID_WROW|VALID_WCOL|VALID_VIRTCOL);
- wp->w_valid_cursor.col = wp->w_cursor.col;
- wp->w_valid_leftcol = wp->w_leftcol;
- wp->w_valid_cursor.coladd = wp->w_cursor.coladd;
- }
- }
-
-***************
-*** 2800,2808 ****
- {
- linenr_T line = curwin->w_cursor.lnum;
- colnr_T col = curwin->w_cursor.col;
-- # ifdef FEAT_VIRTUALEDIT
- colnr_T coladd = curwin->w_cursor.coladd;
-- # endif
- colnr_T curswant = curwin->w_curswant;
- int set_curswant = curwin->w_set_curswant;
- win_T *old_curwin = curwin;
---- 2795,2801 ----
-***************
-*** 2829,2837 ****
- # endif
- curwin->w_cursor.lnum = line;
- curwin->w_cursor.col = col;
-- # ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = coladd;
-- # endif
- curwin->w_curswant = curswant;
- curwin->w_set_curswant = set_curswant;
-
---- 2822,2828 ----
-*** ../vim-8.1.0825/src/netbeans.c 2019-01-19 17:43:03.413449172 +0100
---- src/netbeans.c 2019-01-26 17:00:33.087523823 +0100
-***************
-*** 3344,3352 ****
-
- pos.lnum = 0;
- pos.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
-- #endif
-
- if (!(buf->b_ml.ml_flags & ML_EMPTY))
- {
---- 3344,3350 ----
-***************
-*** 3378,3386 ****
- mypos.lnum = (linenr_T)off;
- ++*argp;
- mypos.col = strtol((char *)*argp, (char **)argp, 10);
-- #ifdef FEAT_VIRTUALEDIT
- mypos.coladd = 0;
-- #endif
- return &mypos;
- }
- return off2pos(buf, off);
---- 3376,3382 ----
-*** ../vim-8.1.0825/src/normal.c 2019-01-24 15:54:17.794846944 +0100
---- src/normal.c 2019-01-26 17:02:50.254547145 +0100
-***************
-*** 1340,1348 ****
- static colnr_T redo_VIsual_vcol; /* number of cols or end column */
- static long redo_VIsual_count; /* count for Visual operator */
- static int redo_VIsual_arg; /* extra argument */
-- #ifdef FEAT_VIRTUALEDIT
- int include_line_break = FALSE;
-- #endif
-
- #if defined(FEAT_CLIPBOARD)
- /*
---- 1340,1346 ----
-***************
-*** 1527,1546 ****
- /* If 'selection' is "exclusive", backup one character for
- * charwise selections. */
- else if (VIsual_mode == 'v')
-! {
-! # ifdef FEAT_VIRTUALEDIT
-! include_line_break =
-! # endif
-! unadjust_for_sel();
-! }
-
- oap->start = VIsual;
- if (VIsual_mode == 'V')
- {
- oap->start.col = 0;
-- # ifdef FEAT_VIRTUALEDIT
- oap->start.coladd = 0;
-- # endif
- }
- }
-
---- 1525,1537 ----
- /* If 'selection' is "exclusive", backup one character for
- * charwise selections. */
- else if (VIsual_mode == 'v')
-! include_line_break = unadjust_for_sel();
-
- oap->start = VIsual;
- if (VIsual_mode == 'V')
- {
- oap->start.col = 0;
- oap->start.coladd = 0;
- }
- }
-
-***************
-*** 1590,1599 ****
- check_pos(curwin->w_buffer, &oap->end);
- oap->line_count = oap->end.lnum - oap->start.lnum + 1;
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Set "virtual_op" before resetting VIsual_active. */
- virtual_op = virtual_active();
-- #endif
-
- if (VIsual_active || redo_VIsual_busy)
- {
---- 1581,1588 ----
-***************
-*** 1685,1694 ****
- {
- oap->motion_type = MCHAR;
- if (VIsual_mode != Ctrl_V && *ml_get_pos(&(oap->end)) == NUL
-! #ifdef FEAT_VIRTUALEDIT
-! && (include_line_break || !virtual_op)
-! #endif
-! )
- {
- oap->inclusive = FALSE;
- /* Try to include the newline, unless it's an operator
---- 1674,1680 ----
- {
- oap->motion_type = MCHAR;
- if (VIsual_mode != Ctrl_V && *ml_get_pos(&(oap->end)) == NUL
-! && (include_line_break || !virtual_op))
- {
- oap->inclusive = FALSE;
- /* Try to include the newline, unless it's an operator
-***************
-*** 1699,1707 ****
- {
- ++oap->end.lnum;
- oap->end.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- oap->end.coladd = 0;
-- #endif
- ++oap->line_count;
- }
- }
---- 1685,1691 ----
-***************
-*** 1759,1768 ****
- || (oap->op_type == OP_YANK
- && gchar_pos(&oap->end) == NUL))
- && EQUAL_POS(oap->start, oap->end)
-! #ifdef FEAT_VIRTUALEDIT
-! && !(virtual_op && oap->start.coladd != oap->end.coladd)
-! #endif
-! );
- /*
- * For delete, change and yank, it's an error to operate on an
- * empty region, when 'E' included in 'cpoptions' (Vi compatible).
---- 1743,1749 ----
- || (oap->op_type == OP_YANK
- && gchar_pos(&oap->end) == NUL))
- && EQUAL_POS(oap->start, oap->end)
-! && !(virtual_op && oap->start.coladd != oap->end.coladd));
- /*
- * For delete, change and yank, it's an error to operate on an
- * empty region, when 'E' included in 'cpoptions' (Vi compatible).
-***************
-*** 2097,2105 ****
- default:
- clearopbeep(oap);
- }
-- #ifdef FEAT_VIRTUALEDIT
- virtual_op = MAYBE;
-- #endif
- if (!gui_yank)
- {
- /*
---- 2078,2084 ----
-***************
-*** 2198,2206 ****
- {
- #ifdef FEAT_EVAL
- typval_T argv[2];
-- # ifdef FEAT_VIRTUALEDIT
- int save_virtual_op = virtual_op;
-- # endif
-
- if (*p_opfunc == NUL)
- emsg(_("E774: 'operatorfunc' is empty"));
---- 2177,2183 ----
-***************
-*** 2222,2238 ****
- argv[0].vval.v_string = (char_u *)"char";
- argv[1].v_type = VAR_UNKNOWN;
-
-- # ifdef FEAT_VIRTUALEDIT
- /* Reset virtual_op so that 'virtualedit' can be changed in the
- * function. */
- virtual_op = MAYBE;
-- # endif
-
- (void)call_func_retnr(p_opfunc, 1, argv);
-
-- # ifdef FEAT_VIRTUALEDIT
- virtual_op = save_virtual_op;
-- # endif
- }
- #else
- emsg(_("E775: Eval feature not available"));
---- 2199,2211 ----
-***************
-*** 3290,3299 ****
- #ifdef FEAT_EVAL
- curbuf->b_visual_mode_eval = VIsual_mode;
- #endif
-- #ifdef FEAT_VIRTUALEDIT
- if (!virtual_active())
- curwin->w_cursor.coladd = 0;
-- #endif
- may_clear_cmdline();
-
- adjust_cursor_eol();
---- 3263,3270 ----
-***************
-*** 5944,5957 ****
- cap->oap->inclusive = FALSE;
- past_line = (VIsual_active && *p_sel != 'o');
-
-- #ifdef FEAT_VIRTUALEDIT
- /*
- * In virtual edit mode, there's no such thing as "past_line", as lines
- * are (theoretically) infinitely long.
- */
- if (virtual_active())
- past_line = 0;
-- #endif
-
- for (n = cap->count1; n > 0; --n)
- {
---- 5915,5926 ----
-***************
-*** 5983,5991 ****
- {
- ++curwin->w_cursor.lnum;
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_set_curswant = TRUE;
- cap->oap->inclusive = FALSE;
- }
---- 5952,5958 ----
-***************
-*** 6007,6017 ****
- else if (past_line)
- {
- curwin->w_set_curswant = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- oneright();
- else
-- #endif
- {
- if (has_mbyte)
- curwin->w_cursor.col +=
---- 5974,5982 ----
-***************
-*** 6242,6254 ****
- {
- cap->oap->motion_type = MCHAR;
- cap->oap->inclusive = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- /* In virtual mode when off the edge of a line and an operator
- * is pending (whew!) keep the cursor where it is.
- * Otherwise, send it to the end of the line. */
- if (!virtual_active() || gchar_cursor() != NUL
- || cap->oap->op_type == OP_NOP)
-- #endif
- curwin->w_curswant = MAXCOL; /* so we stay at the end */
- if (cursor_down((long)(cap->count1 - 1),
- cap->oap->op_type == OP_NOP) == FAIL)
---- 6207,6217 ----
-***************
-*** 6341,6349 ****
- {
- if (i == 2)
- cap->oap->motion_type = MLINE;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- #ifdef FEAT_FOLDING
- if (cap->oap->op_type == OP_NOP && (fdo_flags & FDO_SEARCH) && KeyTyped)
- foldOpenCursor();
---- 6304,6310 ----
-***************
-*** 6378,6384 ****
- else
- {
- curwin->w_set_curswant = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- /* Include a Tab for "tx" and for "dfx". */
- if (gchar_cursor() == TAB && virtual_active() && cap->arg == FORWARD
- && (t_cmd || cap->oap->op_type != OP_NOP))
---- 6339,6344 ----
-***************
-*** 6390,6396 ****
- }
- else
- curwin->w_cursor.coladd = 0;
-- #endif
- adjust_for_sel(cap);
- #ifdef FEAT_FOLDING
- if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP)
---- 6350,6355 ----
-***************
-*** 6406,6412 ****
- static void
- nv_brackets(cmdarg_T *cap)
- {
-! pos_T new_pos = INIT_POS_T(0, 0, 0);
- pos_T prev_pos;
- pos_T *pos = NULL; /* init for GCC */
- pos_T old_pos; /* cursor position before command */
---- 6365,6371 ----
- static void
- nv_brackets(cmdarg_T *cap)
- {
-! pos_T new_pos = {0, 0, 0};
- pos_T prev_pos;
- pos_T *pos = NULL; /* init for GCC */
- pos_T old_pos; /* cursor position before command */
-***************
-*** 6418,6426 ****
- cap->oap->motion_type = MCHAR;
- cap->oap->inclusive = FALSE;
- old_pos = curwin->w_cursor;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0; // TODO: don't do this for an error.
-- #endif
-
- #ifdef FEAT_SEARCHPATH
- /*
---- 6377,6383 ----
-***************
-*** 6815,6823 ****
- setpcmark();
- curwin->w_cursor = *pos;
- curwin->w_set_curswant = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- adjust_for_sel(cap);
- }
- }
---- 6772,6778 ----
-***************
-*** 6849,6857 ****
- {
- /* Don't leave the cursor on the NUL past end of line. */
- adjust_cursor(cap->oap);
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- #ifdef FEAT_FOLDING
- if ((fdo_flags & FDO_BLOCK) && KeyTyped && cap->oap->op_type == OP_NOP)
- foldOpenCursor();
---- 6804,6810 ----
-***************
-*** 6887,6895 ****
- clearopbeep(cap->oap);
- else
- {
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- #ifdef FEAT_FOLDING
- if ((fdo_flags & FDO_BLOCK) && KeyTyped && cap->oap->op_type == OP_NOP)
- foldOpenCursor();
---- 6840,6846 ----
-***************
-*** 6991,6997 ****
- return;
- }
-
-- #ifdef FEAT_VIRTUALEDIT
- /* Break tabs, etc. */
- if (virtual_active())
- {
---- 6942,6947 ----
-***************
-*** 7006,7012 ****
- else if (gchar_cursor() == TAB)
- coladvance_force(getviscol());
- }
-- #endif
-
- /* Abort if not enough characters to replace. */
- ptr = ml_get_cursor();
---- 6956,6961 ----
-***************
-*** 7172,7182 ****
- ++curwin->w_curswant;
- coladvance(curwin->w_curswant);
- if (curwin->w_cursor.col == old_cursor.col
-- #ifdef FEAT_VIRTUALEDIT
- && (!virtual_active()
-! || curwin->w_cursor.coladd == old_cursor.coladd)
-! #endif
-! )
- {
- curwin->w_cursor.lnum = VIsual.lnum;
- if (old_cursor.lnum <= VIsual.lnum && *p_sel == 'e')
---- 7121,7128 ----
- ++curwin->w_curswant;
- coladvance(curwin->w_curswant);
- if (curwin->w_cursor.col == old_cursor.col
- && (!virtual_active()
-! || curwin->w_cursor.coladd == old_cursor.coladd))
- {
- curwin->w_cursor.lnum = VIsual.lnum;
- if (old_cursor.lnum <= VIsual.lnum && *p_sel == 'e')
-***************
-*** 7218,7227 ****
- emsg(_(e_modifiable));
- else
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- coladvance(getviscol());
-- #endif
- invoke_edit(cap, FALSE, cap->arg ? 'V' : 'R', FALSE);
- }
- }
---- 7164,7171 ----
-***************
-*** 7249,7258 ****
- cap->extra_char = get_literal();
- stuffcharReadbuff(cap->extra_char);
- stuffcharReadbuff(ESC);
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- coladvance(getviscol());
-- #endif
- invoke_edit(cap, TRUE, 'v', FALSE);
- }
- }
---- 7193,7200 ----
-***************
-*** 7524,7534 ****
- else
- nv_cursormark(cap, cap->arg, pos);
-
-- #ifdef FEAT_VIRTUALEDIT
- /* May need to clear the coladd that a mark includes. */
- if (!virtual_active())
- curwin->w_cursor.coladd = 0;
-- #endif
- check_cursor_col();
- #ifdef FEAT_FOLDING
- if (cap->oap->op_type == OP_NOP
---- 7466,7474 ----
-***************
-*** 7761,7776 ****
- VIsual_mode = c;
- VIsual_active = TRUE;
- VIsual_reselect = TRUE;
-! #ifdef FEAT_VIRTUALEDIT
-! /* Corner case: the 0 position in a tab may change when going into
-! * virtualedit. Recalculate curwin->w_cursor to avoid bad hilighting.
-! */
- if (c == Ctrl_V && (ve_flags & VE_BLOCK) && gchar_cursor() == TAB)
- {
- validate_virtcol();
- coladvance(curwin->w_virtcol);
- }
-- #endif
- VIsual = curwin->w_cursor;
-
- #ifdef FEAT_FOLDING
---- 7701,7714 ----
- VIsual_mode = c;
- VIsual_active = TRUE;
- VIsual_reselect = TRUE;
-!
-! // Corner case: the 0 position in a tab may change when going into
-! // virtualedit. Recalculate curwin->w_cursor to avoid bad hilighting.
- if (c == Ctrl_V && (ve_flags & VE_BLOCK) && gchar_cursor() == TAB)
- {
- validate_virtcol();
- coladvance(curwin->w_virtcol);
- }
- VIsual = curwin->w_cursor;
-
- #ifdef FEAT_FOLDING
-***************
-*** 8212,8221 ****
- i = (int)STRLEN(ml_get_curline());
- if (curwin->w_cursor.col > (colnr_T)i)
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- curwin->w_cursor.coladd += curwin->w_cursor.col - i;
-- #endif
- curwin->w_cursor.col = i;
- }
- }
---- 8150,8157 ----
-***************
-*** 8773,8782 ****
- */
- if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL
- && (!VIsual_active || *p_sel == 'o')
-! #ifdef FEAT_VIRTUALEDIT
-! && !virtual_active() && (ve_flags & VE_ONEMORE) == 0
-! #endif
-! )
- {
- --curwin->w_cursor.col;
- /* prevent cursor from moving on the trail byte */
---- 8709,8715 ----
- */
- if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL
- && (!VIsual_active || *p_sel == 'o')
-! && !virtual_active() && (ve_flags & VE_ONEMORE) == 0)
- {
- --curwin->w_cursor.col;
- /* prevent cursor from moving on the trail byte */
-***************
-*** 8837,8847 ****
- pp = &curwin->w_cursor;
- else
- pp = &VIsual;
-- #ifdef FEAT_VIRTUALEDIT
- if (pp->coladd > 0)
- --pp->coladd;
- else
-- #endif
- if (pp->col > 0)
- {
- --pp->col;
---- 8770,8778 ----
-***************
-*** 9077,9083 ****
- {
- case 'A': /* "A"ppend after the line */
- curwin->w_set_curswant = TRUE;
-- #ifdef FEAT_VIRTUALEDIT
- if (ve_flags == VE_ALL)
- {
- int save_State = State;
---- 9008,9013 ----
-***************
-*** 9089,9095 ****
- State = save_State;
- }
- else
-- #endif
- curwin->w_cursor.col += (colnr_T)STRLEN(ml_get_cursor());
- break;
-
---- 9019,9024 ----
-***************
-*** 9108,9114 ****
- /* FALLTHROUGH */
-
- case 'a': /* "a"ppend is like "i"nsert on the next character. */
-- #ifdef FEAT_VIRTUALEDIT
- /* increment coladd when in virtual space, increment the
- * column otherwise, also to append after an unprintable char */
- if (virtual_active()
---- 9037,9042 ----
-***************
-*** 9116,9129 ****
- || *ml_get_cursor() == NUL
- || *ml_get_cursor() == TAB))
- curwin->w_cursor.coladd++;
-! else
-! #endif
-! if (*ml_get_cursor() != NUL)
- inc_cursor();
- break;
- }
-
-- #ifdef FEAT_VIRTUALEDIT
- if (curwin->w_cursor.coladd && cap->cmdchar != 'A')
- {
- int save_State = State;
---- 9044,9054 ----
- || *ml_get_cursor() == NUL
- || *ml_get_cursor() == TAB))
- curwin->w_cursor.coladd++;
-! else if (*ml_get_cursor() != NUL)
- inc_cursor();
- break;
- }
-
- if (curwin->w_cursor.coladd && cap->cmdchar != 'A')
- {
- int save_State = State;
-***************
-*** 9134,9140 ****
- coladvance(getviscol());
- State = save_State;
- }
-- #endif
-
- invoke_edit(cap, FALSE, cap->cmdchar, FALSE);
- }
---- 9059,9064 ----
-*** ../vim-8.1.0825/src/ops.c 2019-01-24 15:54:17.794846944 +0100
---- src/ops.c 2019-01-26 17:05:11.897533838 +0100
-***************
-*** 1802,1813 ****
- * It's an error to operate on an empty region, when 'E' included in
- * 'cpoptions' (Vi compatible).
- */
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- /* Virtual editing: Nothing gets deleted, but we set the '[ and ']
- * marks as if it happened. */
- goto setmarks;
-- #endif
- if (vim_strchr(p_cpo, CPO_EMPTYREGION) != NULL)
- beep_flush();
- return OK;
---- 1802,1811 ----
-***************
-*** 1909,1917 ****
- if (lnum == curwin->w_cursor.lnum)
- {
- curwin->w_cursor.col = bd.textcol + bd.startspaces;
-- # ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- # endif
- }
-
- /* n == number of chars deleted
---- 1907,1913 ----
-***************
-*** 1979,1985 ****
- }
- else
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
- int endcol = 0;
---- 1975,1980 ----
-***************
-*** 2016,2022 ****
- curwin->w_cursor = oap->start;
- }
- }
-- #endif
-
- if (oap->line_count == 1) /* delete characters within one line */
- {
---- 2011,2016 ----
-***************
-*** 2032,2038 ****
-
- n = oap->end.col - oap->start.col + 1 - !oap->inclusive;
-
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
- /* fix up things for virtualedit-delete:
---- 2026,2031 ----
-***************
-*** 2053,2059 ****
- if (gchar_cursor() != NUL)
- curwin->w_cursor.coladd = 0;
- }
-- #endif
- (void)del_bytes((long)n, !virtual_op,
- oap->op_type == OP_DELETE && !oap->is_VIsual);
- }
---- 2046,2051 ----
-***************
-*** 2084,2092 ****
-
- msgmore(curbuf->b_ml.ml_line_count - old_lcount);
-
-- #ifdef FEAT_VIRTUALEDIT
- setmarks:
-- #endif
- if (oap->block_mode)
- {
- curbuf->b_op_end.lnum = oap->end.lnum;
---- 2076,2082 ----
-***************
-*** 2183,2189 ****
- * If we split a TAB, it may be replaced by several characters.
- * Thus the number of characters may increase!
- */
-- #ifdef FEAT_VIRTUALEDIT
- /* If the range starts in virtual space, count the initial
- * coladd offset as part of "startspaces" */
- if (virtual_op && bd.is_short && *bd.textstart == NUL)
---- 2173,2178 ----
-***************
-*** 2196,2210 ****
- n = bd.startspaces;
- }
- else
-- #endif
- /* allow for pre spaces */
- n = (bd.startspaces ? bd.start_char_vcols - 1 : 0);
-
- /* allow for post spp */
- n += (bd.endspaces
-- #ifdef FEAT_VIRTUALEDIT
- && !bd.is_oneChar
-- #endif
- && bd.end_char_vcols > 0) ? bd.end_char_vcols - 1 : 0;
- /* Figure out how many characters to replace. */
- numc = oap->end_vcol - oap->start_vcol + 1;
---- 2185,2196 ----
-***************
-*** 2311,2317 ****
- }
- else
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (n == TAB)
- {
- int end_vcol = 0;
---- 2297,2302 ----
-***************
-*** 2327,2337 ****
- if (curwin->w_cursor.lnum == oap->end.lnum)
- getvpos(&oap->end, end_vcol);
- }
-- #endif
- PBYTE(curwin->w_cursor, c);
- }
- }
-- #ifdef FEAT_VIRTUALEDIT
- else if (virtual_op && curwin->w_cursor.lnum == oap->end.lnum)
- {
- int virtcols = oap->end.coladd;
---- 2312,2320 ----
-***************
-*** 2355,2361 ****
- break;
- }
- }
-- #endif
-
- /* Advance to next character, stop at the end of the file. */
- if (inc_cursor() == -1)
---- 2338,2343 ----
-***************
-*** 2609,2615 ****
-
- if (oap->block_mode)
- {
-- #ifdef FEAT_VIRTUALEDIT
- /* When 'virtualedit' is used, need to insert the extra spaces before
- * doing block_prep(). When only "block" is used, virtual edit is
- * already disabled, but still need it when calling
---- 2591,2596 ----
-***************
-*** 2627,2633 ****
- --curwin->w_cursor.col;
- ve_flags = old_ve_flags;
- }
-- #endif
- /* Get the info about the block before entering the text */
- block_prep(oap, &bd, oap->start.lnum, TRUE);
- /* Get indent information */
---- 2608,2613 ----
-***************
-*** 2641,2651 ****
-
- if (oap->op_type == OP_APPEND)
- {
-! if (oap->block_mode
-! #ifdef FEAT_VIRTUALEDIT
-! && curwin->w_cursor.coladd == 0
-! #endif
-! )
- {
- /* Move the cursor to the character right of the block. */
- curwin->w_set_curswant = TRUE;
---- 2621,2627 ----
-
- if (oap->op_type == OP_APPEND)
- {
-! if (oap->block_mode && curwin->w_cursor.coladd == 0)
- {
- /* Move the cursor to the character right of the block. */
- curwin->w_set_curswant = TRUE;
-***************
-*** 2715,2759 ****
- && !bd.is_MAX && !did_indent)
- {
- if (oap->op_type == OP_INSERT
-! && oap->start.col
-! #ifdef FEAT_VIRTUALEDIT
-! + oap->start.coladd
-! #endif
- != curbuf->b_op_start_orig.col
-! #ifdef FEAT_VIRTUALEDIT
-! + curbuf->b_op_start_orig.coladd
-! #endif
-! )
- {
- int t = getviscol2(curbuf->b_op_start_orig.col,
-! #ifdef FEAT_VIRTUALEDIT
-! curbuf->b_op_start_orig.coladd
-! #else
-! 0
-! #endif
-! );
- oap->start.col = curbuf->b_op_start_orig.col;
- pre_textlen -= t - oap->start_vcol;
- oap->start_vcol = t;
- }
- else if (oap->op_type == OP_APPEND
-! && oap->end.col
-! #ifdef FEAT_VIRTUALEDIT
-! + oap->end.coladd
-! #endif
- >= curbuf->b_op_start_orig.col
-! #ifdef FEAT_VIRTUALEDIT
-! + curbuf->b_op_start_orig.coladd
-! #endif
-! )
- {
- int t = getviscol2(curbuf->b_op_start_orig.col,
-! #ifdef FEAT_VIRTUALEDIT
-! curbuf->b_op_start_orig.coladd
-! #else
-! 0
-! #endif
-! );
- oap->start.col = curbuf->b_op_start_orig.col;
- /* reset pre_textlen to the value of OP_INSERT */
- pre_textlen += bd.textlen;
---- 2691,2713 ----
- && !bd.is_MAX && !did_indent)
- {
- if (oap->op_type == OP_INSERT
-! && oap->start.col + oap->start.coladd
- != curbuf->b_op_start_orig.col
-! + curbuf->b_op_start_orig.coladd)
- {
- int t = getviscol2(curbuf->b_op_start_orig.col,
-! curbuf->b_op_start_orig.coladd);
- oap->start.col = curbuf->b_op_start_orig.col;
- pre_textlen -= t - oap->start_vcol;
- oap->start_vcol = t;
- }
- else if (oap->op_type == OP_APPEND
-! && oap->end.col + oap->end.coladd
- >= curbuf->b_op_start_orig.col
-! + curbuf->b_op_start_orig.coladd)
- {
- int t = getviscol2(curbuf->b_op_start_orig.col,
-! curbuf->b_op_start_orig.coladd);
- oap->start.col = curbuf->b_op_start_orig.col;
- /* reset pre_textlen to the value of OP_INSERT */
- pre_textlen += bd.textlen;
-***************
-*** 2865,2876 ****
- /* skip blank lines too */
- if (oap->block_mode)
- {
-- #ifdef FEAT_VIRTUALEDIT
- /* Add spaces before getting the current line length. */
- if (virtual_op && (curwin->w_cursor.coladd > 0
- || gchar_cursor() == NUL))
- coladvance_force(getviscol());
-- #endif
- firstline = ml_get(oap->start.lnum);
- pre_textlen = (long)STRLEN(firstline);
- pre_indent = (long)getwhitecols(firstline);
---- 2819,2828 ----
-***************
-*** 2916,2922 ****
- block_prep(oap, &bd, linenr, TRUE);
- if (!bd.is_short || virtual_op)
- {
-- #ifdef FEAT_VIRTUALEDIT
- pos_T vpos;
-
- /* If the block starts in virtual space, count the
---- 2868,2873 ----
-***************
-*** 2928,2949 ****
- }
- else
- vpos.coladd = 0;
-- #endif
- oldp = ml_get(linenr);
- newp = alloc_check((unsigned)(STRLEN(oldp)
-! #ifdef FEAT_VIRTUALEDIT
-! + vpos.coladd
-! #endif
-! + ins_len + 1));
- if (newp == NULL)
- continue;
- /* copy up to block start */
- mch_memmove(newp, oldp, (size_t)bd.textcol);
- offset = bd.textcol;
-- #ifdef FEAT_VIRTUALEDIT
- vim_memset(newp + offset, ' ', (size_t)vpos.coladd);
- offset += vpos.coladd;
-- #endif
- mch_memmove(newp + offset, ins_text, (size_t)ins_len);
- offset += ins_len;
- oldp += bd.textcol;
---- 2879,2894 ----
- }
- else
- vpos.coladd = 0;
- oldp = ml_get(linenr);
- newp = alloc_check((unsigned)(STRLEN(oldp)
-! + vpos.coladd + ins_len + 1));
- if (newp == NULL)
- continue;
- /* copy up to block start */
- mch_memmove(newp, oldp, (size_t)bd.textcol);
- offset = bd.textcol;
- vim_memset(newp + offset, ' ', (size_t)vpos.coladd);
- offset += vpos.coladd;
- mch_memmove(newp + offset, ins_text, (size_t)ins_len);
- offset += ins_len;
- oldp += bd.textcol;
-***************
-*** 3148,3157 ****
- case MCHAR:
- {
- colnr_T startcol = 0, endcol = MAXCOL;
-- #ifdef FEAT_VIRTUALEDIT
- int is_oneChar = FALSE;
- colnr_T cs, ce;
-! #endif
- p = ml_get(lnum);
- bd.startspaces = 0;
- bd.endspaces = 0;
---- 3093,3101 ----
- case MCHAR:
- {
- colnr_T startcol = 0, endcol = MAXCOL;
- int is_oneChar = FALSE;
- colnr_T cs, ce;
-!
- p = ml_get(lnum);
- bd.startspaces = 0;
- bd.endspaces = 0;
-***************
-*** 3159,3165 ****
- if (lnum == oap->start.lnum)
- {
- startcol = oap->start.col;
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
- getvcol(curwin, &oap->start, &cs, NULL, &ce);
---- 3103,3108 ----
-***************
-*** 3172,3184 ****
- startcol++;
- }
- }
-- #endif
- }
-
- if (lnum == oap->end.lnum)
- {
- endcol = oap->end.col;
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_op)
- {
- getvcol(curwin, &oap->end, &cs, NULL, &ce);
---- 3115,3125 ----
-***************
-*** 3205,3219 ****
- }
- }
- }
-- #endif
- }
- if (endcol == MAXCOL)
- endcol = (colnr_T)STRLEN(p);
-! if (startcol > endcol
-! #ifdef FEAT_VIRTUALEDIT
-! || is_oneChar
-! #endif
-! )
- bd.textlen = 0;
- else
- {
---- 3146,3155 ----
- }
- }
- }
- }
- if (endcol == MAXCOL)
- endcol = (colnr_T)STRLEN(p);
-! if (startcol > endcol || is_oneChar)
- bd.textlen = 0;
- else
- {
-***************
-*** 3661,3667 ****
-
- yanklen = (int)STRLEN(y_array[0]);
-
-- #ifdef FEAT_VIRTUALEDIT
- if (ve_flags == VE_ALL && y_type == MCHAR)
- {
- if (gchar_cursor() == TAB)
---- 3597,3602 ----
-***************
-*** 3687,3693 ****
- else if (curwin->w_cursor.coladd > 0 || gchar_cursor() == NUL)
- coladvance_force(getviscol() + (dir == FORWARD));
- }
-- #endif
-
- lnum = curwin->w_cursor.lnum;
- col = curwin->w_cursor.col;
---- 3622,3627 ----
-***************
-*** 3702,3728 ****
-
- if (dir == FORWARD && c != NUL)
- {
-- #ifdef FEAT_VIRTUALEDIT
- if (ve_flags == VE_ALL)
- getvcol(curwin, &curwin->w_cursor, &col, NULL, &endcol2);
- else
-- #endif
- getvcol(curwin, &curwin->w_cursor, NULL, NULL, &col);
-
- if (has_mbyte)
- /* move to start of next multi-byte character */
- curwin->w_cursor.col += (*mb_ptr2len)(ml_get_cursor());
- else
-- #ifdef FEAT_VIRTUALEDIT
- if (c != TAB || ve_flags != VE_ALL)
-- #endif
- ++curwin->w_cursor.col;
- ++col;
- }
- else
- getvcol(curwin, &curwin->w_cursor, &col, NULL, &endcol2);
-
-- #ifdef FEAT_VIRTUALEDIT
- col += curwin->w_cursor.coladd;
- if (ve_flags == VE_ALL
- && (curwin->w_cursor.coladd > 0
---- 3636,3657 ----
-***************
-*** 3741,3747 ****
- }
- }
- curwin->w_cursor.coladd = 0;
-- #endif
- bd.textcol = 0;
- for (i = 0; i < y_size; ++i)
- {
---- 3670,3675 ----
-***************
-*** 3850,3858 ****
- /* adjust '] mark */
- curbuf->b_op_end.lnum = curwin->w_cursor.lnum - 1;
- curbuf->b_op_end.col = bd.textcol + totlen - 1;
-- # ifdef FEAT_VIRTUALEDIT
- curbuf->b_op_end.coladd = 0;
-- # endif
- if (flags & PUT_CURSEND)
- {
- colnr_T len;
---- 3778,3784 ----
-***************
-*** 4144,4158 ****
- {
- if (curwin->w_cursor.col > 0
- && gchar_cursor() == NUL
-- #ifdef FEAT_VIRTUALEDIT
- && (ve_flags & VE_ONEMORE) == 0
-- #endif
- && !(restart_edit || (State & INSERT)))
- {
- /* Put the cursor on the last character in the line. */
- dec_cursor();
-
-- #ifdef FEAT_VIRTUALEDIT
- if (ve_flags == VE_ALL)
- {
- colnr_T scol, ecol;
---- 4070,4081 ----
-***************
-*** 4161,4167 ****
- getvcol(curwin, &curwin->w_cursor, &scol, NULL, &ecol);
- curwin->w_cursor.coladd = ecol - scol + 1;
- }
-- #endif
- }
- }
-
---- 4084,4089 ----
-***************
-*** 4704,4712 ****
- (vim_strchr(p_cpo, CPO_JOINCOL) != NULL ? currsize : col);
- check_cursor_col();
-
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- curwin->w_set_curswant = TRUE;
-
- theend:
---- 4626,4632 ----
-***************
-*** 7394,7406 ****
- switch (VIsual_mode)
- {
- case Ctrl_V:
-- #ifdef FEAT_VIRTUALEDIT
- virtual_op = virtual_active();
-- #endif
- block_prep(&oparg, &bd, lnum, 0);
-- #ifdef FEAT_VIRTUALEDIT
- virtual_op = MAYBE;
-- #endif
- s = bd.textstart;
- len = (long)bd.textlen;
- break;
---- 7314,7322 ----
-*** ../vim-8.1.0825/src/option.c 2019-01-24 20:30:49.329537911 +0100
---- src/option.c 2019-01-26 17:05:29.437408083 +0100
-***************
-*** 2939,2951 ****
- SCTX_INIT},
- {"virtualedit", "ve", P_STRING|P_ONECOMMA|P_NODUP|P_VI_DEF
- |P_VIM|P_CURSWANT,
-- #ifdef FEAT_VIRTUALEDIT
- (char_u *)&p_ve, PV_NONE,
- {(char_u *)"", (char_u *)""}
-- #else
-- (char_u *)NULL, PV_NONE,
-- {(char_u *)0L, (char_u *)0L}
-- #endif
- SCTX_INIT},
- {"visualbell", "vb", P_BOOL|P_VI_DEF,
- (char_u *)&p_vb, PV_NONE,
---- 2939,2946 ----
-***************
-*** 5526,5534 ****
- #endif
- (void)opt_strings_flags(p_dy, p_dy_values, &dy_flags, TRUE);
- (void)opt_strings_flags(p_tc, p_tc_values, &tc_flags, FALSE);
-- #ifdef FEAT_VIRTUALEDIT
- (void)opt_strings_flags(p_ve, p_ve_values, &ve_flags, TRUE);
-- #endif
- #if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
- (void)opt_strings_flags(p_ttym, p_ttym_values, &ttym_flags, FALSE);
- #endif
---- 5521,5527 ----
-***************
-*** 7374,7380 ****
- }
- #endif
-
-- #ifdef FEAT_VIRTUALEDIT
- /* 'virtualedit' */
- else if (varp == &p_ve)
- {
---- 7367,7372 ----
-***************
-*** 7388,7394 ****
- coladvance(curwin->w_virtcol);
- }
- }
-- #endif
-
- #if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX)
- else if (varp == &p_csqf)
---- 7380,7385 ----
-*** ../vim-8.1.0825/src/option.h 2019-01-24 17:18:37.599462306 +0100
---- src/option.h 2019-01-26 17:09:57.939477219 +0100
-***************
-*** 908,924 ****
- EXTERN unsigned vop_flags; /* uses SSOP_ flags */
- #endif
- EXTERN int p_vb; /* 'visualbell' */
-- #ifdef FEAT_VIRTUALEDIT
- EXTERN char_u *p_ve; /* 'virtualedit' */
- EXTERN unsigned ve_flags;
-! # ifdef IN_OPTION_C
- static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL};
-- # endif
-- # define VE_BLOCK 5 /* includes "all" */
-- # define VE_INSERT 6 /* includes "all" */
-- # define VE_ALL 4
-- # define VE_ONEMORE 8
- #endif
- EXTERN long p_verbose; /* 'verbose' */
- #ifdef IN_OPTION_C
- char_u *p_vfile = (char_u *)""; /* used before options are initialized */
---- 908,922 ----
- EXTERN unsigned vop_flags; /* uses SSOP_ flags */
- #endif
- EXTERN int p_vb; /* 'visualbell' */
- EXTERN char_u *p_ve; /* 'virtualedit' */
- EXTERN unsigned ve_flags;
-! #ifdef IN_OPTION_C
- static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL};
- #endif
-+ #define VE_BLOCK 5 /* includes "all" */
-+ #define VE_INSERT 6 /* includes "all" */
-+ #define VE_ALL 4
-+ #define VE_ONEMORE 8
- EXTERN long p_verbose; /* 'verbose' */
- #ifdef IN_OPTION_C
- char_u *p_vfile = (char_u *)""; /* used before options are initialized */
-*** ../vim-8.1.0825/src/screen.c 2019-01-25 22:29:54.139821894 +0100
---- src/screen.c 2019-01-26 17:06:13.673090691 +0100
-***************
-*** 1622,1635 ****
- if (VIsual_mode == Ctrl_V)
- {
- colnr_T fromc, toc;
-! #if defined(FEAT_VIRTUALEDIT) && defined(FEAT_LINEBREAK)
- int save_ve_flags = ve_flags;
-
- if (curwin->w_p_lbr)
- ve_flags = VE_ALL;
- #endif
- getvcols(wp, &VIsual, &curwin->w_cursor, &fromc, &toc);
-! #if defined(FEAT_VIRTUALEDIT) && defined(FEAT_LINEBREAK)
- ve_flags = save_ve_flags;
- #endif
- ++toc;
---- 1622,1635 ----
- if (VIsual_mode == Ctrl_V)
- {
- colnr_T fromc, toc;
-! #if defined(FEAT_LINEBREAK)
- int save_ve_flags = ve_flags;
-
- if (curwin->w_p_lbr)
- ve_flags = VE_ALL;
- #endif
- getvcols(wp, &VIsual, &curwin->w_cursor, &fromc, &toc);
-! #if defined(FEAT_LINEBREAK)
- ve_flags = save_ve_flags;
- #endif
- ++toc;
-***************
-*** 3342,3352 ****
- }
- if (VIsual_mode != 'V' && lnum == bot->lnum)
- {
-! if (*p_sel == 'e' && bot->col == 0
-! #ifdef FEAT_VIRTUALEDIT
-! && bot->coladd == 0
-! #endif
-! )
- {
- fromcol = -10;
- tocol = MAXCOL;
---- 3342,3348 ----
- }
- if (VIsual_mode != 'V' && lnum == bot->lnum)
- {
-! if (*p_sel == 'e' && bot->col == 0 && bot->coladd == 0)
- {
- fromcol = -10;
- tocol = MAXCOL;
-***************
-*** 3545,3553 ****
- #ifdef FEAT_SYN_HL
- wp->w_p_cuc || draw_color_col ||
- #endif
-- #ifdef FEAT_VIRTUALEDIT
- virtual_active() ||
-- #endif
- (VIsual_active && wp->w_buffer == curwin->w_buffer)))
- {
- vcol = v;
---- 3541,3547 ----
-***************
-*** 5033,5046 ****
- )
- #endif
- {
-- #ifdef FEAT_VIRTUALEDIT
- /* In virtualedit, visual selections may extend
- * beyond end of line. */
- if (area_highlighting && virtual_active()
- && tocol != MAXCOL && vcol < tocol)
- n_extra = 0;
- else
-- #endif
- {
- p_extra = at_end_str;
- n_extra = 1;
---- 5027,5038 ----
-***************
-*** 5107,5113 ****
- }
- mb_utf8 = FALSE; /* don't draw as UTF-8 */
- }
-- #ifdef FEAT_VIRTUALEDIT
- else if (VIsual_active
- && (VIsual_mode == Ctrl_V
- || VIsual_mode == 'v')
---- 5099,5104 ----
-***************
-*** 5115,5129 ****
- && tocol != MAXCOL
- && vcol < tocol
- && (
-! # ifdef FEAT_RIGHTLEFT
- wp->w_p_rl ? (col >= 0) :
-! # endif
- (col < wp->w_width)))
- {
- c = ' ';
- --ptr; /* put it back at the NUL */
- }
-- #endif
- #if defined(LINE_ATTR)
- else if ((
- # ifdef FEAT_DIFF
---- 5106,5119 ----
- && tocol != MAXCOL
- && vcol < tocol
- && (
-! #ifdef FEAT_RIGHTLEFT
- wp->w_p_rl ? (col >= 0) :
-! #endif
- (col < wp->w_width)))
- {
- c = ' ';
- --ptr; /* put it back at the NUL */
- }
- #if defined(LINE_ATTR)
- else if ((
- # ifdef FEAT_DIFF
-***************
-*** 10866,10874 ****
- || wp->w_cursor.lnum != wp->w_ru_cursor.lnum
- || wp->w_cursor.col != wp->w_ru_cursor.col
- || wp->w_virtcol != wp->w_ru_virtcol
-- #ifdef FEAT_VIRTUALEDIT
- || wp->w_cursor.coladd != wp->w_ru_cursor.coladd
-- #endif
- || wp->w_topline != wp->w_ru_topline
- || wp->w_buffer->b_ml.ml_line_count != wp->w_ru_line_count
- #ifdef FEAT_DIFF
---- 10856,10862 ----
-*** ../vim-8.1.0825/src/search.c 2019-01-24 17:18:37.591462362 +0100
---- src/search.c 2019-01-26 17:06:44.472869513 +0100
-***************
-*** 1029,1039 ****
- end_pos->col = endpos.col;
- }
- }
-- #ifdef FEAT_VIRTUALEDIT
- pos->coladd = 0;
- if (end_pos != NULL)
- end_pos->coladd = 0;
-- #endif
- found = 1;
- first_match = FALSE;
-
---- 1029,1037 ----
-***************
-*** 1919,1927 ****
- #endif
-
- pos = curwin->w_cursor;
-- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
-- #endif
- linep = ml_get(pos.lnum);
-
- cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
---- 1917,1923 ----
-***************
-*** 3027,3035 ****
- int i;
- int last_line;
-
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- cls_bigword = bigword;
- while (--count >= 0)
- {
---- 3023,3029 ----
-***************
-*** 3094,3102 ****
- {
- int sclass; /* starting class */
-
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- cls_bigword = bigword;
- while (--count >= 0)
- {
---- 3088,3094 ----
-***************
-*** 3163,3171 ****
- {
- int sclass; /* starting class */
-
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- cls_bigword = bigword;
- while (--count >= 0)
- {
---- 3155,3161 ----
-***************
-*** 3233,3241 ****
- int sclass; /* starting class */
- int i;
-
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- cls_bigword = bigword;
- while (--count >= 0)
- {
---- 3223,3229 ----
-*** ../vim-8.1.0825/src/spell.c 2019-01-24 17:18:37.591462362 +0100
---- src/spell.c 2019-01-26 17:06:53.100807527 +0100
-***************
-*** 1652,1660 ****
- found_one = TRUE;
- found_pos.lnum = lnum;
- found_pos.col = (int)(p - buf);
-- #ifdef FEAT_VIRTUALEDIT
- found_pos.coladd = 0;
-- #endif
- if (dir == FORWARD)
- {
- /* No need to search further. */
---- 1652,1658 ----
-*** ../vim-8.1.0825/src/structs.h 2019-01-24 17:59:35.135217476 +0100
---- src/structs.h 2019-01-26 17:10:06.495415544 +0100
-***************
-*** 21,50 ****
- #endif
-
- /*
-! * position in file or buffer
- */
- typedef struct
- {
-! linenr_T lnum; /* line number */
-! colnr_T col; /* column number */
-! #ifdef FEAT_VIRTUALEDIT
-! colnr_T coladd;
-! #endif
- } pos_T;
-
-- #ifdef FEAT_VIRTUALEDIT
-- # define INIT_POS_T(l, c, ca) {l, c, ca}
-- #else
-- # define INIT_POS_T(l, c, ca) {l, c}
-- #endif
-
- /*
- * Same, but without coladd.
- */
- typedef struct
- {
-! linenr_T lnum; /* line number */
-! colnr_T col; /* column number */
- } lpos_T;
-
- /*
---- 21,43 ----
- #endif
-
- /*
-! * Position in file or buffer.
- */
- typedef struct
- {
-! linenr_T lnum; // line number
-! colnr_T col; // column number
-! colnr_T coladd; // extra virtual column
- } pos_T;
-
-
- /*
- * Same, but without coladd.
- */
- typedef struct
- {
-! linenr_T lnum; // line number
-! colnr_T col; // column number
- } lpos_T;
-
- /*
-***************
-*** 395,403 ****
- u_entry_T *uh_entry; /* pointer to first entry */
- u_entry_T *uh_getbot_entry; /* pointer to where ue_bot must be set */
- pos_T uh_cursor; /* cursor position before saving */
-- #ifdef FEAT_VIRTUALEDIT
- long uh_cursor_vcol;
-- #endif
- int uh_flags; /* see below */
- pos_T uh_namedm[NMARKS]; /* marks before undo/after redo */
- visualinfo_T uh_visual; /* Visual areas before undo/after redo */
---- 388,394 ----
-*** ../vim-8.1.0825/src/tag.c 2019-01-24 17:18:37.595462334 +0100
---- src/tag.c 2019-01-26 16:50:03.575895716 +0100
-***************
-*** 85,91 ****
- * Tag for preview window is remembered separately, to avoid messing up the
- * normal tagstack.
- */
-! static taggy_T ptag_entry = {NULL, {INIT_POS_T(0, 0, 0), 0}, 0, 0};
- #endif
-
- /*
---- 85,91 ----
- * Tag for preview window is remembered separately, to avoid messing up the
- * normal tagstack.
- */
-! static taggy_T ptag_entry = {NULL, {{0, 0, 0}, 0}, 0, 0};
- #endif
-
- /*
-*** ../vim-8.1.0825/src/ui.c 2019-01-24 17:18:37.595462334 +0100
---- src/ui.c 2019-01-26 17:07:03.456733114 +0100
-***************
-*** 3184,3192 ****
-
- if (mpos->col > 0)
- --mpos->col;
-- #ifdef FEAT_VIRTUALEDIT
- mpos->coladd = 0;
-- #endif
- return IN_BUFFER;
- }
- #endif
---- 3184,3190 ----
-*** ../vim-8.1.0825/src/undo.c 2019-01-19 17:43:03.429449066 +0100
---- src/undo.c 2019-01-26 17:07:37.328489616 +0100
-***************
-*** 548,559 ****
- uhp->uh_entry = NULL;
- uhp->uh_getbot_entry = NULL;
- uhp->uh_cursor = curwin->w_cursor; /* save cursor pos. for undo */
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active() && curwin->w_cursor.coladd > 0)
- uhp->uh_cursor_vcol = getviscol();
- else
- uhp->uh_cursor_vcol = -1;
-- #endif
-
- /* save changed and buffer empty flag for undo */
- uhp->uh_flags = (curbuf->b_changed ? UH_CHANGED : 0) +
---- 548,557 ----
-***************
-*** 1250,1260 ****
- put_header_ptr(bi, uhp->uh_alt_prev.ptr);
- undo_write_bytes(bi, uhp->uh_seq, 4);
- serialize_pos(bi, uhp->uh_cursor);
-- #ifdef FEAT_VIRTUALEDIT
- undo_write_bytes(bi, (long_u)uhp->uh_cursor_vcol, 4);
-- #else
-- undo_write_bytes(bi, (long_u)0, 4);
-- #endif
- undo_write_bytes(bi, (long_u)uhp->uh_flags, 2);
- /* Assume NMARKS will stay the same. */
- for (i = 0; i < NMARKS; ++i)
---- 1248,1254 ----
-***************
-*** 1309,1319 ****
- return NULL;
- }
- unserialize_pos(bi, &uhp->uh_cursor);
-- #ifdef FEAT_VIRTUALEDIT
- uhp->uh_cursor_vcol = undo_read_4c(bi);
-- #else
-- (void)undo_read_4c(bi);
-- #endif
- uhp->uh_flags = undo_read_2c(bi);
- for (i = 0; i < NMARKS; ++i)
- unserialize_pos(bi, &uhp->uh_namedm[i]);
---- 1303,1309 ----
-***************
-*** 1458,1468 ****
- {
- undo_write_bytes(bi, (long_u)pos.lnum, 4);
- undo_write_bytes(bi, (long_u)pos.col, 4);
-- #ifdef FEAT_VIRTUALEDIT
- undo_write_bytes(bi, (long_u)pos.coladd, 4);
-- #else
-- undo_write_bytes(bi, (long_u)0, 4);
-- #endif
- }
-
- /*
---- 1448,1454 ----
-***************
-*** 1477,1489 ****
- pos->col = undo_read_4c(bi);
- if (pos->col < 0)
- pos->col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- pos->coladd = undo_read_4c(bi);
- if (pos->coladd < 0)
- pos->coladd = 0;
-- #else
-- (void)undo_read_4c(bi);
-- #endif
- }
-
- /*
---- 1463,1471 ----
-***************
-*** 2855,2866 ****
- if (curhead->uh_cursor.lnum == curwin->w_cursor.lnum)
- {
- curwin->w_cursor.col = curhead->uh_cursor.col;
-- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active() && curhead->uh_cursor_vcol >= 0)
- coladvance((colnr_T)curhead->uh_cursor_vcol);
- else
- curwin->w_cursor.coladd = 0;
-- #endif
- }
- else
- beginline(BL_SOL | BL_FIX);
---- 2837,2846 ----
-***************
-*** 2872,2880 ****
- * check_cursor() will move the cursor to the last line. Move it to
- * the first column here. */
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- }
-
- /* Make sure the cursor is on an existing line and column. */
---- 2852,2858 ----
-*** ../vim-8.1.0825/src/userfunc.c 2019-01-23 23:00:27.425682956 +0100
---- src/userfunc.c 2019-01-26 17:07:50.264396582 +0100
-***************
-*** 3178,3186 ****
- }
- curwin->w_cursor.lnum = lnum;
- curwin->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
-- #endif
- }
- arg = startarg;
- if (get_func_tv(name, (int)STRLEN(name), &rettv, &arg,
---- 3178,3184 ----
-*** ../vim-8.1.0825/src/version.c 2019-01-26 16:20:44.264683546 +0100
---- src/version.c 2019-01-26 17:26:58.193155997 +0100
-***************
-*** 695,705 ****
- "-vartabs",
- #endif
- "+vertsplit",
-- #ifdef FEAT_VIRTUALEDIT
- "+virtualedit",
-- #else
-- "-virtualedit",
-- #endif
- "+visual",
- "+visualextra",
- #ifdef FEAT_VIMINFO
---- 695,701 ----
-*** ../vim-8.1.0825/src/vim.h 2019-01-24 23:11:44.635650160 +0100
---- src/vim.h 2019-01-26 17:10:40.183172636 +0100
-***************
-*** 2136,2147 ****
-
- #include "globals.h" /* global variables and messages */
-
-- #ifndef FEAT_VIRTUALEDIT
-- # define getvvcol(w, p, s, c, e) getvcol((w), (p), (s), (c), (e))
-- # define virtual_active() FALSE
-- # define virtual_op FALSE
-- #endif
--
- /*
- * If console dialog not supported, but GUI dialog is, use the GUI one.
- */
---- 2136,2141 ----
-*** ../vim-8.1.0825/src/window.c 2019-01-24 17:18:37.599462306 +0100
---- src/window.c 2019-01-26 17:08:16.564207364 +0100
-***************
-*** 3439,3447 ****
- wp->w_lines_valid = 0;
- wp->w_cursor.lnum = 1;
- wp->w_curswant = wp->w_cursor.col = 0;
-- #ifdef FEAT_VIRTUALEDIT
- wp->w_cursor.coladd = 0;
-- #endif
- wp->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */
- wp->w_pcmark.col = 0;
- wp->w_prev_pcmark.lnum = 0;
---- 3439,3445 ----
-***************
-*** 4418,4427 ****
- curwin = wp;
- curbuf = wp->w_buffer;
- check_cursor();
-- #ifdef FEAT_VIRTUALEDIT
- if (!virtual_active())
- curwin->w_cursor.coladd = 0;
-- #endif
- changed_line_abv_curs(); /* assume cursor position needs updating */
-
- if (curwin->w_localdir != NULL)
---- 4416,4423 ----
-*** ../vim-8.1.0825/src/version.c 2019-01-26 16:20:44.264683546 +0100
---- src/version.c 2019-01-26 17:26:58.193155997 +0100
-***************
-*** 789,790 ****
---- 785,788 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 826,
- /**/
-
---
-GUARD #1: Where'd you get the coconut?
-ARTHUR: We found them.
-GUARD #1: Found them? In Mercea? The coconut's tropical!
-ARTHUR: What do you mean?
-GUARD #1: Well, this is a temperate zone.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///