Patch 8.0.0448
Problem: Some macros are in lower case, which can be confusing.
Solution: Make a few lower case macros upper case.
Files: src/macros.h, src/buffer.c, src/charset.c, src/ops.c, src/diff.c,
src/edit.c, src/evalfunc.c, src/ex_cmds.c, src/ex_getln.c,
src/fileio.c, src/fold.c, src/gui.c, src/gui_beval.c, src/main.c,
src/mark.c, src/misc1.c, src/move.c, src/normal.c, src/ops.c,
src/option.c, src/popupmnu.c, src/regexp.c, src/screen.c,
src/search.c, src/spell.c, src/tag.c, src/ui.c, src/undo.c,
src/version.c, src/workshop.c, src/if_perl.xs
*** ../vim-8.0.0447/src/macros.h 2016-11-06 14:17:13.182972857 +0100
--- src/macros.h 2017-03-12 18:10:53.595395697 +0100
***************
*** 11,56 ****
*/
/*
! * pchar(lp, c) - put character 'c' at position 'lp'
*/
! #define pchar(lp, c) (*(ml_get_buf(curbuf, (lp).lnum, TRUE) + (lp).col) = (c))
/*
* Position comparisons
*/
#ifdef FEAT_VIRTUALEDIT
! # define lt(a, b) (((a).lnum != (b).lnum) \
? (a).lnum < (b).lnum \
: (a).col != (b).col \
? (a).col < (b).col \
: (a).coladd < (b).coladd)
! # define ltp(a, b) (((a)->lnum != (b)->lnum) \
? (a)->lnum < (b)->lnum \
: (a)->col != (b)->col \
? (a)->col < (b)->col \
: (a)->coladd < (b)->coladd)
! # define equalpos(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col) &&
((a).coladd == (b).coladd))
! # define clearpos(a) {(a)->lnum = 0; (a)->col = 0; (a)->coladd = 0;}
#else
! # define lt(a, b) (((a).lnum != (b).lnum) \
? ((a).lnum < (b).lnum) : ((a).col < (b).col))
! # define ltp(a, b) (((a)->lnum != (b)->lnum) \
? ((a)->lnum < (b)->lnum) : ((a)->col < (b)->col))
! # define equalpos(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col))
! # define clearpos(a) {(a)->lnum = 0; (a)->col = 0;}
#endif
! #define ltoreq(a, b) (lt(a, b) || equalpos(a, b))
/*
! * lineempty() - return TRUE if the line is empty
*/
! #define lineempty(p) (*ml_get(p) == NUL)
/*
! * bufempty() - return TRUE if the current buffer is empty
*/
! #define bufempty() (curbuf->b_ml.ml_line_count == 1 && *ml_get((linenr_T)1)
== NUL)
/*
* toupper() and tolower() that use the current locale.
--- 11,56 ----
*/
/*
! * PCHAR(lp, c) - put character 'c' at position 'lp'
*/
! #define PCHAR(lp, c) (*(ml_get_buf(curbuf, (lp).lnum, TRUE) + (lp).col) = (c))
/*
* 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))
/*
! * LINEEMPTY() - return TRUE if the line is empty
*/
! #define LINEEMPTY(p) (*ml_get(p) == NUL)
/*
! * BUFEMPTY() - return TRUE if the current buffer is empty
*/
! #define BUFEMPTY() (curbuf->b_ml.ml_line_count == 1 && *ml_get((linenr_T)1)
== NUL)
/*
* toupper() and tolower() that use the current locale.
*** ../vim-8.0.0447/src/buffer.c 2017-03-05 17:43:10.616245604 +0100
--- src/buffer.c 2017-03-12 18:08:25.288475574 +0100
***************
*** 111,117 ****
{
/* Set or reset 'modified' before executing autocommands, so that
* it can be changed there. */
! if (!readonlymode && !bufempty())
changed();
else if (retval == OK)
unchanged(curbuf, FALSE);
--- 111,117 ----
{
/* Set or reset 'modified' before executing autocommands, so that
* it can be changed there. */
! if (!readonlymode && !BUFEMPTY())
changed();
else if (retval == OK)
unchanged(curbuf, FALSE);
***************
*** 1959,1965 ****
&& curbuf != NULL
&& curbuf->b_ffname == NULL
&& curbuf->b_nwindows <= 1
! && (curbuf->b_ml.ml_mfp == NULL || bufempty()))
{
buf = curbuf;
#ifdef FEAT_AUTOCMD
--- 1959,1965 ----
&& curbuf != NULL
&& curbuf->b_ffname == NULL
&& curbuf->b_nwindows <= 1
! && (curbuf->b_ml.ml_mfp == NULL || BUFEMPTY()))
{
buf = curbuf;
#ifdef FEAT_AUTOCMD
***************
*** 2334,2340 ****
/* If 'switchbuf' contains "split", "vsplit" or "newtab" and the
* current buffer isn't empty: open new tab or window */
if (wp == NULL && (swb_flags & (SWB_VSPLIT | SWB_SPLIT | SWB_NEWTAB))
! && !bufempty())
{
if (swb_flags & SWB_NEWTAB)
tabpage_new();
--- 2334,2340 ----
/* If 'switchbuf' contains "split", "vsplit" or "newtab" and the
* current buffer isn't empty: open new tab or window */
if (wp == NULL && (swb_flags & (SWB_VSPLIT | SWB_SPLIT | SWB_NEWTAB))
! && !BUFEMPTY())
{
if (swb_flags & SWB_NEWTAB)
tabpage_new();
***************
*** 5017,5023 ****
#ifdef FEAT_WINDOWS
/* ":drop all" should re-use an empty window to avoid "--remote-tab"
* leaving an empty tab page when executed locally. */
! if (keep_tabs && bufempty() && curbuf->b_nwindows == 1
&& curbuf->b_ffname == NULL && !curbuf->b_changed)
use_firstwin = TRUE;
#endif
--- 5017,5023 ----
#ifdef FEAT_WINDOWS
/* ":drop all" should re-use an empty window to avoid "--remote-tab"
* leaving an empty tab page when executed locally. */
! if (keep_tabs && BUFEMPTY() && curbuf->b_nwindows == 1
&& curbuf->b_ffname == NULL && !curbuf->b_changed)
use_firstwin = TRUE;
#endif
*** ../vim-8.0.0447/src/charset.c 2017-02-05 15:10:47.743484042 +0100
--- src/charset.c 2017-03-12 18:00:43.599849485 +0100
***************
*** 1403,1409 ****
&& (State & NORMAL)
&& !wp->w_p_list
&& !virtual_active()
! && !(VIsual_active && (*p_sel == 'e' || ltoreq(*pos, VIsual)))
)
*cursor = vcol + incr - 1; /* cursor at end */
else
--- 1403,1410 ----
&& (State & NORMAL)
&& !wp->w_p_list
&& !virtual_active()
! && !(VIsual_active
! && (*p_sel == 'e' || LTOREQ_POS(*pos, VIsual)))
)
*cursor = vcol + incr - 1; /* cursor at end */
else
***************
*** 1496,1502 ****
{
colnr_T from1, from2, to1, to2;
! if (ltp(pos1, pos2))
{
getvvcol(wp, pos1, &from1, NULL, &to1);
getvvcol(wp, pos2, &from2, NULL, &to2);
--- 1497,1503 ----
{
colnr_T from1, from2, to1, to2;
! if (LT_POSP(pos1, pos2))
{
getvvcol(wp, pos1, &from1, NULL, &to1);
getvvcol(wp, pos2, &from2, NULL, &to2);
*** ../vim-8.0.0447/src/ops.c 2017-03-05 18:02:59.999101021 +0100
--- src/ops.c 2017-03-12 18:09:38.955939134 +0100
***************
*** 2190,2196 ****
else if (!oap->inclusive)
dec(&(oap->end));
! while (ltoreq(curwin->w_cursor, oap->end))
{
n = gchar_cursor();
if (n != NUL)
--- 2190,2196 ----
else if (!oap->inclusive)
dec(&(oap->end));
! while (LTOREQ_POS(curwin->w_cursor, oap->end))
{
n = gchar_cursor();
if (n != NUL)
***************
*** 2229,2235 ****
getvpos(&oap->end, end_vcol);
}
#endif
! pchar(curwin->w_cursor, c);
}
}
#ifdef FEAT_VIRTUALEDIT
--- 2229,2235 ----
getvpos(&oap->end, end_vcol);
}
#endif
! PCHAR(curwin->w_cursor, c);
}
}
#ifdef FEAT_VIRTUALEDIT
***************
*** 2248,2254 ****
curwin->w_cursor.col -= (virtcols + 1);
for (; virtcols >= 0; virtcols--)
{
! pchar(curwin->w_cursor, c);
if (inc(&curwin->w_cursor) == -1)
break;
}
--- 2248,2254 ----
curwin->w_cursor.col -= (virtcols + 1);
for (; virtcols >= 0; virtcols--)
{
! PCHAR(curwin->w_cursor, c);
if (inc(&curwin->w_cursor) == -1)
break;
}
***************
*** 2338,2344 ****
did_change |= swapchars(oap->op_type, &pos,
pos.lnum == oap->end.lnum ? oap->end.col + 1:
(int)STRLEN(ml_get_pos(&pos)));
! if (ltoreq(oap->end, pos) || inc(&pos) == -1)
break;
}
if (did_change)
--- 2338,2344 ----
did_change |= swapchars(oap->op_type, &pos,
pos.lnum == oap->end.lnum ? oap->end.col + 1:
(int)STRLEN(ml_get_pos(&pos)));
! if (LTOREQ_POS(oap->end, pos) || inc(&pos) == -1)
break;
}
if (did_change)
***************
*** 2490,2496 ****
}
else
#endif
! pchar(*pos, nc);
return TRUE;
}
return FALSE;
--- 2490,2496 ----
}
else
#endif
! PCHAR(*pos, nc);
return TRUE;
}
return FALSE;
***************
*** 2575,2581 ****
check_cursor_col();
/* Works just like an 'i'nsert on the next character. */
! if (!lineempty(curwin->w_cursor.lnum)
&& oap->start_vcol != oap->end_vcol)
inc_cursor();
}
--- 2575,2581 ----
check_cursor_col();
/* Works just like an 'i'nsert on the next character. */
! if (!LINEEMPTY(curwin->w_cursor.lnum)
&& oap->start_vcol != oap->end_vcol)
inc_cursor();
}
***************
*** 2588,2594 ****
* have been converted to a tab as well, the column of the cursor
* might have actually been reduced, so need to adjust here. */
if (t1.lnum == curbuf->b_op_start_orig.lnum
! && lt(curbuf->b_op_start_orig, t1))
oap->start = curbuf->b_op_start_orig;
/* If user has moved off this line, we don't know what to do, so do
--- 2588,2594 ----
* have been converted to a tab as well, the column of the cursor
* might have actually been reduced, so need to adjust here. */
if (t1.lnum == curbuf->b_op_start_orig.lnum
! && LT_POS(curbuf->b_op_start_orig, t1))
oap->start = curbuf->b_op_start_orig;
/* If user has moved off this line, we don't know what to do, so do
***************
*** 2735,2741 ****
else if (op_delete(oap) == FAIL)
return FALSE;
! if ((l > curwin->w_cursor.col) && !lineempty(curwin->w_cursor.lnum)
&& !virtual_op)
inc_cursor();
--- 2735,2741 ----
else if (op_delete(oap) == FAIL)
return FALSE;
! if ((l > curwin->w_cursor.col) && !LINEEMPTY(curwin->w_cursor.lnum)
&& !virtual_op)
inc_cursor();
***************
*** 3519,3525 ****
++lnum;
/* In an empty buffer the empty line is going to be replaced, include
* it in the saved lines. */
! if ((bufempty() ? u_save(0, 2) : u_save(lnum - 1, lnum)) == FAIL)
goto end;
#ifdef FEAT_FOLDING
if (dir == FORWARD)
--- 3519,3525 ----
++lnum;
/* In an empty buffer the empty line is going to be replaced, include
* it in the saved lines. */
! if ((BUFEMPTY() ? u_save(0, 2) : u_save(lnum - 1, lnum)) == FAIL)
goto end;
#ifdef FEAT_FOLDING
if (dir == FORWARD)
***************
*** 4936,4942 ****
&& prev_is_end_par
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
{
! if (do_second_indent && !lineempty(curwin->w_cursor.lnum + 1))
{
#ifdef FEAT_COMMENTS
if (leader_len == 0 && next_leader_len == 0)
--- 4936,4942 ----
&& prev_is_end_par
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
{
! if (do_second_indent && !LINEEMPTY(curwin->w_cursor.lnum + 1))
{
#ifdef FEAT_COMMENTS
if (leader_len == 0 && next_leader_len == 0)
***************
*** 7237,7243 ****
if (VIsual_active)
{
! if (lt(VIsual, curwin->w_cursor))
{
min_pos = VIsual;
max_pos = curwin->w_cursor;
--- 7237,7243 ----
if (VIsual_active)
{
! if (LT_POS(VIsual, curwin->w_cursor))
{
min_pos = VIsual;
max_pos = curwin->w_cursor;
*** ../vim-8.0.0447/src/diff.c 2017-03-11 19:21:49.230723995 +0100
--- src/diff.c 2017-03-12 18:08:48.364307530 +0100
***************
*** 2333,2339 ****
end_skip = 0;
}
! buf_empty = bufempty();
added = 0;
for (i = 0; i < count; ++i)
{
--- 2333,2339 ----
end_skip = 0;
}
! buf_empty = BUFEMPTY();
added = 0;
for (i = 0; i < count; ++i)
{
*** ../vim-8.0.0447/src/edit.c 2017-03-09 18:19:58.157107877 +0100
--- src/edit.c 2017-03-12 18:08:55.384256409 +0100
***************
*** 408,414 ****
* the "A" command, thus set State to avoid that. Also check that the
* line number is still valid (lines may have been deleted).
* Do not restore if v:char was set to a non-empty string. */
! if (!equalpos(curwin->w_cursor, save_cursor)
# ifdef FEAT_EVAL
&& *get_vim_var_str(VV_CHAR) == NUL
# endif
--- 408,414 ----
* the "A" command, thus set State to avoid that. Also check that the
* line number is still valid (lines may have been deleted).
* Do not restore if v:char was set to a non-empty string. */
! if (!EQUAL_POS(curwin->w_cursor, save_cursor)
# ifdef FEAT_EVAL
&& *get_vim_var_str(VV_CHAR) == NUL
# endif
***************
*** 1631,1637 ****
# endif
)
# ifdef FEAT_AUTOCMD
! && !equalpos(last_cursormoved, curwin->w_cursor)
# endif
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
--- 1631,1637 ----
# endif
)
# ifdef FEAT_AUTOCMD
! && !EQUAL_POS(last_cursormoved, curwin->w_cursor)
# endif
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
***************
*** 4130,4136 ****
}
curwin->w_cursor = pos; /* restore the cursor position */
validate_cursor();
! if (!equalpos(curwin->w_cursor, pos))
{
EMSG(_(e_compldel));
goto theend;
--- 4130,4136 ----
}
curwin->w_cursor = pos; /* restore the cursor position */
validate_cursor();
! if (!EQUAL_POS(curwin->w_cursor, pos))
{
EMSG(_(e_compldel));
goto theend;
***************
*** 5408,5414 ****
}
curwin->w_cursor = pos; /* restore the cursor position */
validate_cursor();
! if (!equalpos(curwin->w_cursor, pos))
{
EMSG(_(e_compldel));
return FAIL;
--- 5408,5414 ----
}
curwin->w_cursor = pos; /* restore the cursor position */
validate_cursor();
! if (!EQUAL_POS(curwin->w_cursor, pos))
{
EMSG(_(e_compldel));
return FAIL;
***************
*** 8947,8953 ****
* can't backup past starting point unless 'backspace' > 1
* can backup to a previous line if 'backspace' == 0
*/
! if ( bufempty()
|| (
#ifdef FEAT_RIGHTLEFT
!revins_on &&
--- 8947,8953 ----
* can't backup past starting point unless 'backspace' > 1
* can backup to a previous line if 'backspace' == 0
*/
! if ( BUFEMPTY()
|| (
#ifdef FEAT_RIGHTLEFT
!revins_on &&
***************
*** 9462,9468 ****
}
# endif
! if (!equalpos(curwin->w_cursor, tpos))
{
start_arrow(&tpos);
# ifdef FEAT_CINDENT
--- 9462,9468 ----
}
# endif
! if (!EQUAL_POS(curwin->w_cursor, tpos))
{
start_arrow(&tpos);
# ifdef FEAT_CINDENT
*** ../vim-8.0.0447/src/evalfunc.c 2017-03-09 18:19:58.161107848 +0100
--- src/evalfunc.c 2017-03-12 18:04:52.098030950 +0100
***************
*** 9552,9571 ****
save_cursor = curwin->w_cursor;
pos = curwin->w_cursor;
! clearpos(&firstpos);
! clearpos(&foundpos);
pat = pat3;
for (;;)
{
n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
options, RE_SEARCH, lnum_stop, &tm);
! if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos)))
/* didn't find it or found the first match again: FAIL */
break;
if (firstpos.lnum == 0)
firstpos = pos;
! if (equalpos(pos, foundpos))
{
/* Found the same position again. Can happen with a pattern that
* has "\zs" at the end and searching backwards. Advance one
--- 9552,9571 ----
save_cursor = curwin->w_cursor;
pos = curwin->w_cursor;
! CLEAR_POS(&firstpos);
! CLEAR_POS(&foundpos);
pat = pat3;
for (;;)
{
n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
options, RE_SEARCH, lnum_stop, &tm);
! if (n == FAIL || (firstpos.lnum != 0 && EQUAL_POS(pos, firstpos)))
/* didn't find it or found the first match again: FAIL */
break;
if (firstpos.lnum == 0)
firstpos = pos;
! if (EQUAL_POS(pos, foundpos))
{
/* Found the same position again. Can happen with a pattern that
* has "\zs" at the end and searching backwards. Advance one
*** ../vim-8.0.0447/src/ex_cmds.c 2017-02-26 14:00:03.852862844 +0100
--- src/ex_cmds.c 2017-03-12 17:57:57.817063790 +0100
***************
*** 851,874 ****
* their final destination at the new text position -- webb
*/
last_line = curbuf->b_ml.ml_line_count;
! mark_adjust(line1, line2, last_line - line2, 0L);
! changed_lines(last_line - num_lines + 1, 0, last_line + 1, num_lines);
if (dest >= line2)
{
! mark_adjust(line2 + 1, dest, -num_lines, 0L);
curbuf->b_op_start.lnum = dest - num_lines + 1;
curbuf->b_op_end.lnum = dest;
}
else
{
! mark_adjust(dest + 1, line1 - 1, num_lines, 0L);
curbuf->b_op_start.lnum = dest + 1;
curbuf->b_op_end.lnum = dest + num_lines;
}
curbuf->b_op_start.col = curbuf->b_op_end.col = 0;
! mark_adjust(last_line - num_lines + 1, last_line,
-(last_line - dest - extra), 0L);
- changed_lines(last_line - num_lines + 1, 0, last_line + 1, -extra);
/*
* Now we delete the original text -- webb
--- 851,891 ----
* their final destination at the new text position -- webb
*/
last_line = curbuf->b_ml.ml_line_count;
! mark_adjust_nofold(line1, line2, last_line - line2, 0L);
if (dest >= line2)
{
! mark_adjust_nofold(line2 + 1, dest, -num_lines, 0L);
! #ifdef FEAT_FOLDING
! win_T *win;
! tabpage_T *tp;
!
! FOR_ALL_TAB_WINDOWS(tp, win) {
! if (win->w_buffer == curbuf)
! foldSwapRange(&win->w_folds, line1, line2, dest + 1,
! dest + num_lines);
! }
! #endif
curbuf->b_op_start.lnum = dest - num_lines + 1;
curbuf->b_op_end.lnum = dest;
}
else
{
! mark_adjust_nofold(dest + 1, line1 - 1, num_lines, 0L);
! #ifdef FEAT_FOLDING
! win_T *win;
! tabpage_T *tp;
!
! FOR_ALL_TAB_WINDOWS(tp, win) {
! if (win->w_buffer == curbuf)
! foldSwapRange(&win->w_folds, dest + 1, line1 - 1, line1, line2);
! }
! #endif
curbuf->b_op_start.lnum = dest + 1;
curbuf->b_op_end.lnum = dest + num_lines;
}
curbuf->b_op_start.col = curbuf->b_op_end.col = 0;
! mark_adjust_nofold(last_line - num_lines + 1, last_line,
-(last_line - dest - extra), 0L);
/*
* Now we delete the original text -- webb
***************
*** 4211,4217 ****
/* If autocommands change the cursor position or topline, we should
* keep it. Also when it moves within a line. */
! if (!equalpos(curwin->w_cursor, orig_pos))
{
newlnum = curwin->w_cursor.lnum;
newcol = curwin->w_cursor.col;
--- 4228,4234 ----
/* If autocommands change the cursor position or topline, we should
* keep it. Also when it moves within a line. */
! if (!EQUAL_POS(curwin->w_cursor, orig_pos))
{
newlnum = curwin->w_cursor.lnum;
newcol = curwin->w_cursor.col;
*** ../vim-8.0.0447/src/ex_getln.c 2017-02-26 14:00:03.852862844 +0100
--- src/ex_getln.c 2017-03-12 18:04:55.590005409 +0100
***************
*** 234,240 ****
ccline.overstrike = FALSE; /* always start in insert
mode */
#ifdef FEAT_SEARCH_EXTRA
! clearpos(&match_end);
save_cursor = curwin->w_cursor; /* may be restored later */
search_start = curwin->w_cursor;
old_curswant = curwin->w_curswant;
--- 234,240 ----
ccline.overstrike = FALSE; /* always start in insert
mode */
#ifdef FEAT_SEARCH_EXTRA
! CLEAR_POS(&match_end);
save_cursor = curwin->w_cursor; /* may be restored later */
search_start = curwin->w_cursor;
old_curswant = curwin->w_curswant;
***************
*** 1479,1485 ****
if (did_incsearch)
{
curwin->w_cursor = match_end;
! if (!equalpos(curwin->w_cursor, search_start))
{
c = gchar_cursor();
/* If 'ignorecase' and 'smartcase' are set and the
--- 1479,1485 ----
if (did_incsearch)
{
curwin->w_cursor = match_end;
! if (!EQUAL_POS(curwin->w_cursor, search_start))
{
c = gchar_cursor();
/* If 'ignorecase' and 'smartcase' are set and the
***************
*** 1707,1713 ****
search_start = t;
(void)decl(&search_start);
}
! if (lt(t, search_start) && c == Ctrl_G)
{
/* wrap around */
search_start = t;
--- 1707,1713 ----
search_start = t;
(void)decl(&search_start);
}
! if (LT_POS(t, search_start) && c == Ctrl_G)
{
/* wrap around */
search_start = t;
***************
*** 2007,2013 ****
curwin->w_cursor = save_cursor;
else
{
! if (!equalpos(save_cursor, search_start))
{
/* put the '" mark at the original position */
curwin->w_cursor = save_cursor;
--- 2007,2013 ----
curwin->w_cursor = save_cursor;
else
{
! if (!EQUAL_POS(save_cursor, search_start))
{
/* put the '" mark at the original position */
curwin->w_cursor = save_cursor;
*** ../vim-8.0.0447/src/fileio.c 2017-02-25 14:59:29.906090427 +0100
--- src/fileio.c 2017-03-12 18:09:15.736108210 +0100
***************
*** 7118,7124 ****
* the old contents. Can't use memory only, the file might be
* too big. Use a hidden buffer to move the buffer contents to.
*/
! if (bufempty() || saved == FAIL)
savebuf = NULL;
else
{
--- 7118,7124 ----
* the old contents. Can't use memory only, the file might be
* too big. Use a hidden buffer to move the buffer contents to.
*/
! if (BUFEMPTY() || saved == FAIL)
savebuf = NULL;
else
{
***************
*** 7161,7167 ****
{
/* Put the text back from the save buffer. First
* delete any lines that readfile() added. */
! while (!bufempty())
if (ml_delete(buf->b_ml.ml_line_count, FALSE) == FAIL)
break;
(void)move_lines(savebuf, buf);
--- 7161,7167 ----
{
/* Put the text back from the save buffer. First
* delete any lines that readfile() added. */
! while (!BUFEMPTY())
if (ml_delete(buf->b_ml.ml_line_count, FALSE) == FAIL)
break;
(void)move_lines(savebuf, buf);
*** ../vim-8.0.0447/src/fold.c 2017-03-04 18:42:35.715691765 +0100
--- src/fold.c 2017-03-12 18:00:58.355741445 +0100
***************
*** 1039,1045 ****
if (!VIsual_active || !hasAnyFolding(curwin))
return;
! if (ltoreq(VIsual, curwin->w_cursor))
{
start = &VIsual;
end = &curwin->w_cursor;
--- 1040,1046 ----
if (!VIsual_active || !hasAnyFolding(curwin))
return;
! if (LTOREQ_POS(VIsual, curwin->w_cursor))
{
start = &VIsual;
end = &curwin->w_cursor;
*** ../vim-8.0.0447/src/gui.c 2017-02-03 22:01:43.938349448 +0100
--- src/gui.c 2017-03-12 17:58:08.268987207 +0100
***************
*** 4476,4482 ****
pum_redraw();
#endif
! return (wp == curwin && !equalpos(curwin->w_cursor, old_cursor));
}
--- 4476,4482 ----
pum_redraw();
#endif
! return (wp == curwin && !EQUAL_POS(curwin->w_cursor, old_cursor));
}
***************
*** 5118,5124 ****
curwin->w_p_cole > 0
# endif
)
! && !equalpos(last_cursormoved, curwin->w_cursor))
{
# ifdef FEAT_AUTOCMD
if (has_cursormoved())
--- 5118,5124 ----
curwin->w_p_cole > 0
# endif
)
! && !EQUAL_POS(last_cursormoved, curwin->w_cursor))
{
# ifdef FEAT_AUTOCMD
if (has_cursormoved())
*** ../vim-8.0.0447/src/gui_beval.c 2016-11-17 19:11:51.713378271 +0100
--- src/gui_beval.c 2017-03-12 17:54:45.174475990 +0100
***************
*** 84,90 ****
result = eval_to_string(bexpr, NULL, TRUE);
/* Remove one trailing newline, it is added when the result was a
! * list and it's hardly every useful. If the user really wants a
* trailing newline he can add two and one remains. */
if (result != NULL)
{
--- 84,90 ----
result = eval_to_string(bexpr, NULL, TRUE);
/* Remove one trailing newline, it is added when the result was a
! * list and it's hardly ever useful. If the user really wants a
* trailing newline he can add two and one remains. */
if (result != NULL)
{
***************
*** 366,372 ****
if (VIsual_active)
{
! if (lt(VIsual, curwin->w_cursor))
{
spos = &VIsual;
epos = &curwin->w_cursor;
--- 366,372 ----
if (VIsual_active)
{
! if (LT_POS(VIsual, curwin->w_cursor))
{
spos = &VIsual;
epos = &curwin->w_cursor;
*** ../vim-8.0.0447/src/main.c 2017-03-05 17:43:10.620245573 +0100
--- src/main.c 2017-03-12 17:58:11.256965313 +0100
***************
*** 1144,1150 ****
# endif
)
# ifdef FEAT_AUTOCMD
! && !equalpos(last_cursormoved, curwin->w_cursor)
# endif
)
{
--- 1144,1150 ----
# endif
)
# ifdef FEAT_AUTOCMD
! && !EQUAL_POS(last_cursormoved, curwin->w_cursor)
# endif
)
{
***************
*** 3557,3564 ****
--- 3568,3578 ----
&& vim_FullName(argv0, buf, MAXPATHL, TRUE) != FAIL)
val = buf;
}
+ # endif
# endif
+
set_vim_var_string(VV_PROGPATH, val, -1);
+
# ifdef WIN32
vim_free(path);
# endif
*** ../vim-8.0.0447/src/mark.c 2017-01-28 18:23:49.725039260 +0100
--- src/mark.c 2017-03-12 17:58:35.896784789 +0100
***************
*** 206,212 ****
checkpcmark(void)
{
if (curwin->w_prev_pcmark.lnum != 0
! && (equalpos(curwin->w_pcmark, curwin->w_cursor)
|| curwin->w_pcmark.lnum == 0))
{
curwin->w_pcmark = curwin->w_prev_pcmark;
--- 208,214 ----
checkpcmark(void)
{
if (curwin->w_prev_pcmark.lnum != 0
! && (EQUAL_POS(curwin->w_pcmark, curwin->w_cursor)
|| curwin->w_pcmark.lnum == 0))
{
curwin->w_pcmark = curwin->w_prev_pcmark;
***************
*** 401,407 ****
{
startp = &buf->b_visual.vi_start;
endp = &buf->b_visual.vi_end;
! if (((c == '<') == lt(*startp, *endp) || endp->lnum == 0)
&& startp->lnum != 0)
posp = startp;
else
--- 403,409 ----
{
startp = &buf->b_visual.vi_start;
endp = &buf->b_visual.vi_end;
! if (((c == '<') == LT_POS(*startp, *endp) || endp->lnum == 0)
&& startp->lnum != 0)
posp = startp;
else
***************
*** 497,510 ****
{
if (dir == FORWARD)
{
! if ((result == NULL || lt(curbuf->b_namedm[i], *result))
! && lt(pos, curbuf->b_namedm[i]))
result = &curbuf->b_namedm[i];
}
else
{
! if ((result == NULL || lt(*result, curbuf->b_namedm[i]))
! && lt(curbuf->b_namedm[i], pos))
result = &curbuf->b_namedm[i];
}
}
--- 499,512 ----
{
if (dir == FORWARD)
{
! if ((result == NULL || LT_POS(curbuf->b_namedm[i], *result))
! && LT_POS(pos, curbuf->b_namedm[i]))
result = &curbuf->b_namedm[i];
}
else
{
! if ((result == NULL || LT_POS(*result, curbuf->b_namedm[i]))
! && LT_POS(curbuf->b_namedm[i], pos))
result = &curbuf->b_namedm[i];
}
}
***************
*** 1063,1069 ****
one_adjust(&(curbuf->b_last_change.lnum));
/* last cursor position, if it was set */
! if (!equalpos(curbuf->b_last_cursor, initpos))
one_adjust(&(curbuf->b_last_cursor.lnum));
--- 1086,1092 ----
one_adjust(&(curbuf->b_last_change.lnum));
/* last cursor position, if it was set */
! if (!EQUAL_POS(curbuf->b_last_cursor, initpos))
one_adjust(&(curbuf->b_last_cursor.lnum));
***************
*** 1838,1844 ****
for (i = 0; i < buf->b_changelistlen; ++i)
{
/* skip duplicates */
! if (i == 0 || !equalpos(buf->b_changelist[i - 1], buf->b_changelist[i]))
write_one_mark(fp_out, '+', &buf->b_changelist[i]);
}
#endif
--- 1862,1869 ----
for (i = 0; i < buf->b_changelistlen; ++i)
{
/* skip duplicates */
! if (i == 0 || !EQUAL_POS(buf->b_changelist[i - 1],
! buf->b_changelist[i]))
write_one_mark(fp_out, '+', &buf->b_changelist[i]);
}
#endif
*** ../vim-8.0.0447/src/misc1.c 2017-03-08 22:19:21.717870787 +0100
--- src/misc1.c 2017-03-12 17:59:51.080234077 +0100
***************
*** 5272,5278 ****
/* If comment_pos is before rs_pos the raw string is inside the comment.
* If rs_pos is before comment_pos the comment is inside the raw string.
*/
! if (comment_pos == NULL || (rs_pos != NULL && lt(*rs_pos, *comment_pos)))
return rs_pos;
return comment_pos;
}
--- 5272,5279 ----
/* If comment_pos is before rs_pos the raw string is inside the comment.
* If rs_pos is before comment_pos the comment is inside the raw string.
*/
! if (comment_pos == NULL || (rs_pos != NULL
! && LT_POS(*rs_pos, *comment_pos)))
return rs_pos;
return comment_pos;
}
***************
*** 7217,7223 ****
comment_pos = &tryposCopy;
}
trypos = find_start_rawstring(curbuf->b_ind_maxcomment);
! if (trypos != NULL && (comment_pos == NULL || lt(*trypos, *comment_pos)))
{
amount = -1;
goto laterend;
--- 7218,7225 ----
comment_pos = &tryposCopy;
}
trypos = find_start_rawstring(curbuf->b_ind_maxcomment);
! if (trypos != NULL && (comment_pos == NULL
! || LT_POS(*trypos, *comment_pos)))
{
amount = -1;
goto laterend;
***************
*** 9352,9358 ****
{
paren = *pos;
pos = findmatch(NULL, '[');
! if (pos == NULL || ltp(pos, &paren))
pos = &paren;
}
if (pos != NULL)
--- 9354,9360 ----
{
paren = *pos;
pos = findmatch(NULL, '[');
! if (pos == NULL || LT_POSP(pos, &paren))
pos = &paren;
}
if (pos != NULL)
*** ../vim-8.0.0447/src/move.c 2017-01-15 20:51:33.900962677 +0100
--- src/move.c 2017-03-12 18:09:32.059989347 +0100
***************
*** 210,216 ****
/*
* If the buffer is empty, always set topline to 1.
*/
! if (bufempty()) /* special case - file is empty */
{
if (curwin->w_topline != 1)
redraw_later(NOT_VALID);
--- 210,216 ----
/*
* If the buffer is empty, always set topline to 1.
*/
! if (BUFEMPTY()) /* special case - file is empty */
{
if (curwin->w_topline != 1)
redraw_later(NOT_VALID);
*** ../vim-8.0.0447/src/normal.c 2017-02-26 19:09:01.398217128 +0100
--- src/normal.c 2017-03-12 18:13:15.254364513 +0100
***************
*** 1540,1546 ****
if (VIsual_select && VIsual_mode == 'V'
&& cap->oap->op_type != OP_DELETE)
{
! if (lt(VIsual, curwin->w_cursor))
{
VIsual.col = 0;
curwin->w_cursor.col =
--- 1540,1546 ----
if (VIsual_select && VIsual_mode == 'V'
&& cap->oap->op_type != OP_DELETE)
{
! if (LT_POS(VIsual, curwin->w_cursor))
{
VIsual.col = 0;
curwin->w_cursor.col =
***************
*** 1572,1578 ****
* Set oap->start to the first position of the operated text, oap->end
* to the end of the operated text. w_cursor is equal to oap->start.
*/
! if (lt(oap->start, curwin->w_cursor))
{
#ifdef FEAT_FOLDING
/* Include folded lines completely. */
--- 1572,1578 ----
* Set oap->start to the first position of the operated text, oap->end
* to the end of the operated text. w_cursor is equal to oap->start.
*/
! if (LT_POS(oap->start, curwin->w_cursor))
{
#ifdef FEAT_FOLDING
/* Include folded lines completely. */
***************
*** 1776,1782 ****
&& (!oap->inclusive
|| (oap->op_type == OP_YANK
&& gchar_pos(&oap->end) == NUL))
! && equalpos(oap->start, oap->end)
#ifdef FEAT_VIRTUALEDIT
&& !(virtual_op && oap->start.coladd != oap->end.coladd)
#endif
--- 1776,1782 ----
&& (!oap->inclusive
|| (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
***************
*** 2683,2694 ****
jump_flags = MOUSE_MAY_STOP_VIS;
else
{
! if ((lt(curwin->w_cursor, VIsual)
! && (lt(m_pos, curwin->w_cursor)
! || lt(VIsual, m_pos)))
! || (lt(VIsual, curwin->w_cursor)
! && (lt(m_pos, VIsual)
! || lt(curwin->w_cursor, m_pos))))
{
jump_flags = MOUSE_MAY_STOP_VIS;
}
--- 2683,2694 ----
jump_flags = MOUSE_MAY_STOP_VIS;
else
{
! if ((LT_POS(curwin->w_cursor, VIsual)
! && (LT_POS(m_pos, curwin->w_cursor)
! || LT_POS(VIsual, m_pos)))
! || (LT_POS(VIsual, curwin->w_cursor)
! && (LT_POS(m_pos, VIsual)
! || LT_POS(curwin->w_cursor, m_pos))))
{
jump_flags = MOUSE_MAY_STOP_VIS;
}
***************
*** 2754,2760 ****
* Remember the start and end of visual before moving the
* cursor.
*/
! if (lt(curwin->w_cursor, VIsual))
{
start_visual = curwin->w_cursor;
end_visual = VIsual;
--- 2754,2760 ----
* Remember the start and end of visual before moving the
* cursor.
*/
! if (LT_POS(curwin->w_cursor, VIsual))
{
start_visual = curwin->w_cursor;
end_visual = VIsual;
***************
*** 2891,2899 ****
* If the click is after the end of visual, change the end. If
* the click is inside the visual, change the closest side.
*/
! if (lt(curwin->w_cursor, start_visual))
VIsual = end_visual;
! else if (lt(end_visual, curwin->w_cursor))
VIsual = start_visual;
else
{
--- 2891,2899 ----
* If the click is after the end of visual, change the end. If
* the click is inside the visual, change the closest side.
*/
! if (LT_POS(curwin->w_cursor, start_visual))
VIsual = end_visual;
! else if (LT_POS(end_visual, curwin->w_cursor))
VIsual = start_visual;
else
{
***************
*** 3097,3103 ****
if (oap != NULL
&& VIsual_mode == 'v'
&& !vim_iswordc(gchar_pos(&end_visual))
! && equalpos(curwin->w_cursor, VIsual)
&& (pos = findmatch(oap, NUL)) != NULL)
{
curwin->w_cursor = *pos;
--- 3097,3103 ----
if (oap != NULL
&& VIsual_mode == 'v'
&& !vim_iswordc(gchar_pos(&end_visual))
! && EQUAL_POS(curwin->w_cursor, VIsual)
&& (pos = findmatch(oap, NUL)) != NULL)
{
curwin->w_cursor = *pos;
***************
*** 3105,3111 ****
VIsual_mode = 'V';
else if (*p_sel == 'e')
{
! if (lt(curwin->w_cursor, VIsual))
++VIsual.col;
else
++curwin->w_cursor.col;
--- 3105,3111 ----
VIsual_mode = 'V';
else if (*p_sel == 'e')
{
! if (LT_POS(curwin->w_cursor, VIsual))
++VIsual.col;
else
++curwin->w_cursor.col;
***************
*** 3117,3123 ****
{
/* When not found a match or when dragging: extend to include
* a word. */
! if (lt(curwin->w_cursor, orig_cursor))
{
find_start_of_word(&curwin->w_cursor);
find_end_of_word(&VIsual);
--- 3117,3123 ----
{
/* When not found a match or when dragging: extend to include
* a word. */
! if (LT_POS(curwin->w_cursor, orig_cursor))
{
find_start_of_word(&curwin->w_cursor);
find_end_of_word(&VIsual);
***************
*** 3745,3751 ****
if (VIsual_active && !char_avail())
{
! int cursor_bot = lt(VIsual, curwin->w_cursor);
long lines;
colnr_T leftcol, rightcol;
linenr_T top, bot;
--- 3745,3751 ----
if (VIsual_active && !char_avail())
{
! int cursor_bot = LT_POS(VIsual, curwin->w_cursor);
long lines;
colnr_T leftcol, rightcol;
linenr_T top, bot;
***************
*** 4353,4359 ****
curwin->w_cursor.col = 0;
/* Search forward for the identifier, ignore comment lines. */
! clearpos(&found_pos);
for (;;)
{
valid = FALSE;
--- 4353,4359 ----
curwin->w_cursor.col = 0;
/* Search forward for the identifier, ignore comment lines. */
! CLEAR_POS(&found_pos);
for (;;)
{
valid = FALSE;
***************
*** 4419,4431 ****
* declarations this skips the function header without types. */
if (!valid)
{
! /* Braces needed due to macro expansion of clearpos. */
! clearpos(&found_pos);
}
else
- {
found_pos = curwin->w_cursor;
- }
/* Remove SEARCH_START from flags to avoid getting stuck at one
* position. */
searchflags &= ~SEARCH_START;
--- 4419,4428 ----
* declarations this skips the function header without types. */
if (!valid)
{
! CLEAR_POS(&found_pos);
}
else
found_pos = curwin->w_cursor;
/* Remove SEARCH_START from flags to avoid getting stuck at one
* position. */
searchflags &= ~SEARCH_START;
***************
*** 5834,5840 ****
}
else
{
! if (lt(curwin->w_cursor, VIsual))
{
*pp = ml_get_pos(&curwin->w_cursor);
*lenp = VIsual.col - curwin->w_cursor.col + 1;
--- 5831,5837 ----
}
else
{
! if (LT_POS(curwin->w_cursor, VIsual))
{
*pp = ml_get_pos(&curwin->w_cursor);
*lenp = VIsual.col - curwin->w_cursor.col + 1;
***************
*** 6020,6026 ****
* included, move to next line after that */
if ( cap->oap->op_type != OP_NOP
&& !cap->oap->inclusive
! && !lineempty(curwin->w_cursor.lnum))
cap->oap->inclusive = TRUE;
else
{
--- 6017,6023 ----
* included, move to next line after that */
if ( cap->oap->op_type != OP_NOP
&& !cap->oap->inclusive
! && !LINEEMPTY(curwin->w_cursor.lnum))
cap->oap->inclusive = TRUE;
else
{
***************
*** 6042,6048 ****
}
else
{
! if (!lineempty(curwin->w_cursor.lnum))
cap->oap->inclusive = TRUE;
}
break;
--- 6039,6045 ----
}
else
{
! if (!LINEEMPTY(curwin->w_cursor.lnum))
cap->oap->inclusive = TRUE;
}
break;
***************
*** 6121,6127 ****
* Don't adjust op_end now, otherwise it won't work. */
if ( (cap->oap->op_type == OP_DELETE
|| cap->oap->op_type == OP_CHANGE)
! && !lineempty(curwin->w_cursor.lnum))
{
char_u *cp = ml_get_cursor();
--- 6118,6124 ----
* Don't adjust op_end now, otherwise it won't work. */
if ( (cap->oap->op_type == OP_DELETE
|| cap->oap->op_type == OP_CHANGE)
! && !LINEEMPTY(curwin->w_cursor.lnum))
{
char_u *cp = ml_get_cursor();
***************
*** 6333,6339 ****
}
(void)normal_search(cap, cap->cmdchar, cap->searchbuf,
! (cap->arg || !equalpos(save_cursor, curwin->w_cursor))
? 0 : SEARCH_MARK);
}
--- 6330,6336 ----
}
(void)normal_search(cap, cap->cmdchar, cap->searchbuf,
! (cap->arg || !EQUAL_POS(save_cursor, curwin->w_cursor))
? 0 : SEARCH_MARK);
}
***************
*** 6347,6353 ****
pos_T old = curwin->w_cursor;
int i = normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg);
! if (i == 1 && equalpos(old, curwin->w_cursor))
{
/* Avoid getting stuck on the current cursor position, which can
* happen when an offset is given and the cursor is on the last char
--- 6344,6350 ----
pos_T old = curwin->w_cursor;
int i = normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg);
! if (i == 1 && EQUAL_POS(old, curwin->w_cursor))
{
/* Avoid getting stuck on the current cursor position, which can
* happen when an offset is given and the cursor is on the last char
***************
*** 6689,6697 ****
if (VIsual_active)
{
! start = ltoreq(VIsual, curwin->w_cursor)
? VIsual : curwin->w_cursor;
! end = equalpos(start,VIsual) ? curwin->w_cursor : VIsual;
curwin->w_cursor = (dir == BACKWARD ? start : end);
}
# ifdef FEAT_CLIPBOARD
--- 6686,6694 ----
if (VIsual_active)
{
! start = LTOREQ_POS(VIsual, curwin->w_cursor)
? VIsual : curwin->w_cursor;
! end = EQUAL_POS(start,VIsual) ? curwin->w_cursor : VIsual;
curwin->w_cursor = (dir == BACKWARD ? start : end);
}
# ifdef FEAT_CLIPBOARD
***************
*** 7315,7321 ****
if (checkclearopq(cap->oap))
return;
! if (lineempty(curwin->w_cursor.lnum) && vim_strchr(p_ww, '~') == NULL)
{
clearopbeep(cap->oap);
return;
--- 7312,7318 ----
if (checkclearopq(cap->oap))
return;
! if (LINEEMPTY(curwin->w_cursor.lnum) && vim_strchr(p_ww, '~') == NULL)
{
clearopbeep(cap->oap);
return;
***************
*** 7559,7565 ****
#ifdef FEAT_FOLDING
if (cap->oap->op_type == OP_NOP
&& pos != NULL
! && (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos))
&& (fdo_flags & FDO_MARK)
&& old_KeyTyped)
foldOpenCursor();
--- 7556,7562 ----
#ifdef FEAT_FOLDING
if (cap->oap->op_type == OP_NOP
&& pos != NULL
! && (pos == (pos_T *)-1 || !EQUAL_POS(old_cursor, *pos))
&& (fdo_flags & FDO_MARK)
&& old_KeyTyped)
foldOpenCursor();
***************
*** 8763,8769 ****
/* Don't leave the cursor on the NUL past the end of line. Unless we
* didn't move it forward. */
! if (lt(startpos, curwin->w_cursor))
adjust_cursor(cap->oap);
if (n == FAIL && cap->oap->op_type == OP_NOP)
--- 8760,8766 ----
/* Don't leave the cursor on the NUL past the end of line. Unless we
* didn't move it forward. */
! if (LT_POS(startpos, curwin->w_cursor))
adjust_cursor(cap->oap);
if (n == FAIL && cap->oap->op_type == OP_NOP)
***************
*** 8833,8839 ****
adjust_for_sel(cmdarg_T *cap)
{
if (VIsual_active && cap->oap->inclusive && *p_sel == 'e'
! && gchar_cursor() != NUL && lt(VIsual, curwin->w_cursor))
{
#ifdef FEAT_MBYTE
if (has_mbyte)
--- 8830,8836 ----
adjust_for_sel(cmdarg_T *cap)
{
if (VIsual_active && cap->oap->inclusive && *p_sel == 'e'
! && gchar_cursor() != NUL && LT_POS(VIsual, curwin->w_cursor))
{
#ifdef FEAT_MBYTE
if (has_mbyte)
***************
*** 8855,8863 ****
{
pos_T *pp;
! if (*p_sel == 'e' && !equalpos(VIsual, curwin->w_cursor))
{
! if (lt(VIsual, curwin->w_cursor))
pp = &curwin->w_cursor;
else
pp = &VIsual;
--- 8852,8860 ----
{
pos_T *pp;
! if (*p_sel == 'e' && !EQUAL_POS(VIsual, curwin->w_cursor))
{
! if (LT_POS(VIsual, curwin->w_cursor))
pp = &curwin->w_cursor;
else
pp = &VIsual;
***************
*** 9071,9078 ****
/* When the last char in the line was deleted then append. Detect this
* by checking if the cursor moved to before the Visual area. */
! if (*ml_get_cursor() != NUL && lt(curwin->w_cursor, old_pos)
! && lt(curwin->w_cursor, old_visual))
inc_cursor();
/* Insert to replace the deleted text with the pasted text. */
--- 9068,9075 ----
/* When the last char in the line was deleted then append. Detect this
* by checking if the cursor moved to before the Visual area. */
! if (*ml_get_cursor() != NUL && LT_POS(curwin->w_cursor, old_pos)
! && LT_POS(curwin->w_cursor, old_visual))
inc_cursor();
/* Insert to replace the deleted text with the pasted text. */
*** ../vim-8.0.0447/src/ops.c 2017-03-05 18:02:59.999101021 +0100
--- src/ops.c 2017-03-12 18:09:38.955939134 +0100
***************
*** 2190,2196 ****
else if (!oap->inclusive)
dec(&(oap->end));
! while (ltoreq(curwin->w_cursor, oap->end))
{
n = gchar_cursor();
if (n != NUL)
--- 2190,2196 ----
else if (!oap->inclusive)
dec(&(oap->end));
! while (LTOREQ_POS(curwin->w_cursor, oap->end))
{
n = gchar_cursor();
if (n != NUL)
***************
*** 2229,2235 ****
getvpos(&oap->end, end_vcol);
}
#endif
! pchar(curwin->w_cursor, c);
}
}
#ifdef FEAT_VIRTUALEDIT
--- 2229,2235 ----
getvpos(&oap->end, end_vcol);
}
#endif
! PCHAR(curwin->w_cursor, c);
}
}
#ifdef FEAT_VIRTUALEDIT
***************
*** 2248,2254 ****
curwin->w_cursor.col -= (virtcols + 1);
for (; virtcols >= 0; virtcols--)
{
! pchar(curwin->w_cursor, c);
if (inc(&curwin->w_cursor) == -1)
break;
}
--- 2248,2254 ----
curwin->w_cursor.col -= (virtcols + 1);
for (; virtcols >= 0; virtcols--)
{
! PCHAR(curwin->w_cursor, c);
if (inc(&curwin->w_cursor) == -1)
break;
}
***************
*** 2338,2344 ****
did_change |= swapchars(oap->op_type, &pos,
pos.lnum == oap->end.lnum ? oap->end.col + 1:
(int)STRLEN(ml_get_pos(&pos)));
! if (ltoreq(oap->end, pos) || inc(&pos) == -1)
break;
}
if (did_change)
--- 2338,2344 ----
did_change |= swapchars(oap->op_type, &pos,
pos.lnum == oap->end.lnum ? oap->end.col + 1:
(int)STRLEN(ml_get_pos(&pos)));
! if (LTOREQ_POS(oap->end, pos) || inc(&pos) == -1)
break;
}
if (did_change)
***************
*** 2490,2496 ****
}
else
#endif
! pchar(*pos, nc);
return TRUE;
}
return FALSE;
--- 2490,2496 ----
}
else
#endif
! PCHAR(*pos, nc);
return TRUE;
}
return FALSE;
***************
*** 2575,2581 ****
check_cursor_col();
/* Works just like an 'i'nsert on the next character. */
! if (!lineempty(curwin->w_cursor.lnum)
&& oap->start_vcol != oap->end_vcol)
inc_cursor();
}
--- 2575,2581 ----
check_cursor_col();
/* Works just like an 'i'nsert on the next character. */
! if (!LINEEMPTY(curwin->w_cursor.lnum)
&& oap->start_vcol != oap->end_vcol)
inc_cursor();
}
***************
*** 2588,2594 ****
* have been converted to a tab as well, the column of the cursor
* might have actually been reduced, so need to adjust here. */
if (t1.lnum == curbuf->b_op_start_orig.lnum
! && lt(curbuf->b_op_start_orig, t1))
oap->start = curbuf->b_op_start_orig;
/* If user has moved off this line, we don't know what to do, so do
--- 2588,2594 ----
* have been converted to a tab as well, the column of the cursor
* might have actually been reduced, so need to adjust here. */
if (t1.lnum == curbuf->b_op_start_orig.lnum
! && LT_POS(curbuf->b_op_start_orig, t1))
oap->start = curbuf->b_op_start_orig;
/* If user has moved off this line, we don't know what to do, so do
***************
*** 2735,2741 ****
else if (op_delete(oap) == FAIL)
return FALSE;
! if ((l > curwin->w_cursor.col) && !lineempty(curwin->w_cursor.lnum)
&& !virtual_op)
inc_cursor();
--- 2735,2741 ----
else if (op_delete(oap) == FAIL)
return FALSE;
! if ((l > curwin->w_cursor.col) && !LINEEMPTY(curwin->w_cursor.lnum)
&& !virtual_op)
inc_cursor();
***************
*** 3519,3525 ****
++lnum;
/* In an empty buffer the empty line is going to be replaced, include
* it in the saved lines. */
! if ((bufempty() ? u_save(0, 2) : u_save(lnum - 1, lnum)) == FAIL)
goto end;
#ifdef FEAT_FOLDING
if (dir == FORWARD)
--- 3519,3525 ----
++lnum;
/* In an empty buffer the empty line is going to be replaced, include
* it in the saved lines. */
! if ((BUFEMPTY() ? u_save(0, 2) : u_save(lnum - 1, lnum)) == FAIL)
goto end;
#ifdef FEAT_FOLDING
if (dir == FORWARD)
***************
*** 4936,4942 ****
&& prev_is_end_par
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
{
! if (do_second_indent && !lineempty(curwin->w_cursor.lnum + 1))
{
#ifdef FEAT_COMMENTS
if (leader_len == 0 && next_leader_len == 0)
--- 4936,4942 ----
&& prev_is_end_par
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
{
! if (do_second_indent && !LINEEMPTY(curwin->w_cursor.lnum + 1))
{
#ifdef FEAT_COMMENTS
if (leader_len == 0 && next_leader_len == 0)
***************
*** 7237,7243 ****
if (VIsual_active)
{
! if (lt(VIsual, curwin->w_cursor))
{
min_pos = VIsual;
max_pos = curwin->w_cursor;
--- 7237,7243 ----
if (VIsual_active)
{
! if (LT_POS(VIsual, curwin->w_cursor))
{
min_pos = VIsual;
max_pos = curwin->w_cursor;
*** ../vim-8.0.0447/src/option.c 2017-03-09 18:59:05.660711160 +0100
--- src/option.c 2017-03-12 18:09:54.567825462 +0100
***************
*** 4170,4176 ****
}
#endif
! if (bufempty())
{
int idx_ffs = findoption((char_u *)"ffs");
--- 4170,4176 ----
}
#endif
! if (BUFEMPTY())
{
int idx_ffs = findoption((char_u *)"ffs");
*** ../vim-8.0.0447/src/popupmnu.c 2016-11-24 17:47:03.865021031 +0100
--- src/popupmnu.c 2017-03-12 18:09:58.211798929 +0100
***************
*** 590,596 ****
&& curbuf->b_p_bh[0] == 'w')
{
/* Already a "wipeout" buffer, make it empty. */
! while (!bufempty())
ml_delete((linenr_T)1, FALSE);
}
else
--- 590,596 ----
&& curbuf->b_p_bh[0] == 'w')
{
/* Already a "wipeout" buffer, make it empty. */
! while (!BUFEMPTY())
ml_delete((linenr_T)1, FALSE);
}
else
*** ../vim-8.0.0447/src/regexp.c 2016-11-10 20:01:41.197582893 +0100
--- src/regexp.c 2017-03-12 17:56:40.025633901 +0100
***************
*** 4150,4156 ****
if (VIsual_active)
{
! if (lt(VIsual, wp->w_cursor))
{
top = VIsual;
bot = wp->w_cursor;
--- 4150,4156 ----
if (VIsual_active)
{
! if (LT_POS(VIsual, wp->w_cursor))
{
top = VIsual;
bot = wp->w_cursor;
***************
*** 4164,4170 ****
}
else
{
! if (lt(curbuf->b_visual.vi_start, curbuf->b_visual.vi_end))
{
top = curbuf->b_visual.vi_start;
bot = curbuf->b_visual.vi_end;
--- 4164,4170 ----
}
else
{
! if (LT_POS(curbuf->b_visual.vi_start, curbuf->b_visual.vi_end))
{
top = curbuf->b_visual.vi_start;
bot = curbuf->b_visual.vi_end;
*** ../vim-8.0.0447/src/screen.c 2017-03-09 18:19:58.161107848 +0100
--- src/screen.c 2017-03-12 18:01:53.231339720 +0100
***************
*** 2714,2720 ****
*/
if (VIsual_active && wp->w_buffer == curwin->w_buffer)
{
! if (ltoreq(curwin->w_cursor, VIsual))
{
/* Visual is after curwin->w_cursor */
top = &curwin->w_cursor;
--- 2714,2720 ----
*/
if (VIsual_active && wp->w_buffer == curwin->w_buffer)
{
! if (LTOREQ_POS(curwin->w_cursor, VIsual))
{
/* Visual is after curwin->w_cursor */
top = &curwin->w_cursor;
***************
*** 3170,3176 ****
if (VIsual_active && wp->w_buffer == curwin->w_buffer)
{
/* Visual is after curwin->w_cursor */
! if (ltoreq(curwin->w_cursor, VIsual))
{
top = &curwin->w_cursor;
bot = &VIsual;
--- 3170,3176 ----
if (VIsual_active && wp->w_buffer == curwin->w_buffer)
{
/* Visual is after curwin->w_cursor */
! if (LTOREQ_POS(curwin->w_cursor, VIsual))
{
top = &curwin->w_cursor;
bot = &VIsual;
*** ../vim-8.0.0447/src/search.c 2017-03-12 16:32:27.490343281 +0100
--- src/search.c 2017-03-12 18:13:25.858287335 +0100
***************
*** 2100,2106 ****
do_quotes = -1;
start_in_quotes = MAYBE;
! clearpos(&match_pos);
/* backward search: Check if this line contains a single-line comment */
if ((backwards && comment_dir)
--- 2100,2106 ----
do_quotes = -1;
start_in_quotes = MAYBE;
! CLEAR_POS(&match_pos);
/* backward search: Check if this line contains a single-line comment */
if ((backwards && comment_dir)
***************
*** 2720,2726 ****
if (decl(&pos) == -1)
break;
/* when going forward: Stop in front of empty line */
! if (lineempty(pos.lnum) && dir == FORWARD)
{
incl(&pos);
goto found;
--- 2720,2726 ----
if (decl(&pos) == -1)
break;
/* when going forward: Stop in front of empty line */
! if (LINEEMPTY(pos.lnum) && dir == FORWARD)
{
incl(&pos);
goto found;
***************
*** 3082,3088 ****
while (cls() == 0)
{
if (curwin->w_cursor.col == 0
! && lineempty(curwin->w_cursor.lnum))
goto finished;
if (dec_cursor() == -1) /* hit start of file, stop here */
return OK;
--- 3082,3088 ----
while (cls() == 0)
{
if (curwin->w_cursor.col == 0
! && LINEEMPTY(curwin->w_cursor.lnum))
goto finished;
if (dec_cursor() == -1) /* hit start of file, stop here */
return OK;
***************
*** 3163,3169 ****
while (cls() == 0)
{
if (empty && curwin->w_cursor.col == 0
! && lineempty(curwin->w_cursor.lnum))
goto finished;
if (inc_cursor() == -1) /* hit end of file, stop here */
return FAIL;
--- 3163,3169 ----
while (cls() == 0)
{
if (empty && curwin->w_cursor.col == 0
! && LINEEMPTY(curwin->w_cursor.lnum))
goto finished;
if (inc_cursor() == -1) /* hit end of file, stop here */
return FAIL;
***************
*** 3223,3229 ****
*/
while (cls() == 0)
{
! if (curwin->w_cursor.col == 0 && lineempty(curwin->w_cursor.lnum))
break;
if ((i = dec_cursor()) == -1 || (eol && i == 1))
return OK;
--- 3223,3229 ----
*/
while (cls() == 0)
{
! if (curwin->w_cursor.col == 0 && LINEEMPTY(curwin->w_cursor.lnum))
break;
if ((i = dec_cursor()) == -1 || (eol && i == 1))
return OK;
***************
*** 3320,3336 ****
int include_white = FALSE;
cls_bigword = bigword;
! clearpos(&start_pos);
/* Correct cursor when 'selection' is exclusive */
! if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
dec_cursor();
/*
* When Visual mode is not active, or when the VIsual area is only one
* character, select the word and/or white space under the cursor.
*/
! if (!VIsual_active || equalpos(curwin->w_cursor, VIsual))
{
/*
* Go to start of current word or white space.
--- 3320,3336 ----
int include_white = FALSE;
cls_bigword = bigword;
! CLEAR_POS(&start_pos);
/* Correct cursor when 'selection' is exclusive */
! if (VIsual_active && *p_sel == 'e' && LT_POS(VIsual, curwin->w_cursor))
dec_cursor();
/*
* When Visual mode is not active, or when the VIsual area is only one
* character, select the word and/or white space under the cursor.
*/
! if (!VIsual_active || EQUAL_POS(curwin->w_cursor, VIsual))
{
/*
* Go to start of current word or white space.
***************
*** 3387,3393 ****
while (count > 0)
{
inclusive = TRUE;
! if (VIsual_active && lt(curwin->w_cursor, VIsual))
{
/*
* In Visual mode, with cursor at start: move cursor back.
--- 3387,3393 ----
while (count > 0)
{
inclusive = TRUE;
! if (VIsual_active && LT_POS(curwin->w_cursor, VIsual))
{
/*
* In Visual mode, with cursor at start: move cursor back.
***************
*** 3463,3469 ****
if (VIsual_active)
{
! if (*p_sel == 'e' && inclusive && ltoreq(VIsual, curwin->w_cursor))
inc_cursor();
if (VIsual_mode == 'V')
{
--- 3463,3469 ----
if (VIsual_active)
{
! if (*p_sel == 'e' && inclusive && LTOREQ_POS(VIsual, curwin->w_cursor))
inc_cursor();
if (VIsual_mode == 'V')
{
***************
*** 3498,3507 ****
/*
* When the Visual area is bigger than one character: Extend it.
*/
! if (VIsual_active && !equalpos(start_pos, VIsual))
{
extend:
! if (lt(start_pos, VIsual))
{
/*
* Cursor at start of Visual area.
--- 3498,3507 ----
/*
* When the Visual area is bigger than one character: Extend it.
*/
! if (VIsual_active && !EQUAL_POS(start_pos, VIsual))
{
extend:
! if (LT_POS(start_pos, VIsual))
{
/*
* Cursor at start of Visual area.
***************
*** 3512,3518 ****
*/
at_start_sent = TRUE;
decl(&pos);
! while (lt(pos, curwin->w_cursor))
{
c = gchar_pos(&pos);
if (!vim_iswhite(c))
--- 3512,3518 ----
*/
at_start_sent = TRUE;
decl(&pos);
! while (LT_POS(pos, curwin->w_cursor))
{
c = gchar_pos(&pos);
if (!vim_iswhite(c))
***************
*** 3525,3531 ****
if (!at_start_sent)
{
findsent(BACKWARD, 1L);
! if (equalpos(curwin->w_cursor, start_pos))
at_start_sent = TRUE; /* exactly at start of sentence */
else
/* inside a sentence, go to its end (start of next) */
--- 3525,3531 ----
if (!at_start_sent)
{
findsent(BACKWARD, 1L);
! if (EQUAL_POS(curwin->w_cursor, start_pos))
at_start_sent = TRUE; /* exactly at start of sentence */
else
/* inside a sentence, go to its end (start of next) */
***************
*** 3554,3563 ****
*/
incl(&pos);
at_start_sent = TRUE;
! if (!equalpos(pos, curwin->w_cursor)) /* not just before a sentence
*/
{
at_start_sent = FALSE;
! while (lt(pos, curwin->w_cursor))
{
c = gchar_pos(&pos);
if (!vim_iswhite(c))
--- 3554,3564 ----
*/
incl(&pos);
at_start_sent = TRUE;
! /* not just before a sentence */
! if (!EQUAL_POS(pos, curwin->w_cursor))
{
at_start_sent = FALSE;
! while (LT_POS(pos, curwin->w_cursor))
{
c = gchar_pos(&pos);
if (!vim_iswhite(c))
***************
*** 3588,3594 ****
*/
while (c = gchar_pos(&pos), vim_iswhite(c)) /* vim_iswhite() is a
macro */
incl(&pos);
! if (equalpos(pos, curwin->w_cursor))
{
start_blank = TRUE;
find_first_blank(&start_pos); /* go back to first blank */
--- 3589,3595 ----
*/
while (c = gchar_pos(&pos), vim_iswhite(c)) /* vim_iswhite() is a
macro */
incl(&pos);
! if (EQUAL_POS(pos, curwin->w_cursor))
{
start_blank = TRUE;
find_first_blank(&start_pos); /* go back to first blank */
***************
*** 3633,3639 ****
if (VIsual_active)
{
/* Avoid getting stuck with "is" on a single space before a sentence. */
! if (equalpos(start_pos, curwin->w_cursor))
goto extend;
if (*p_sel == 'e')
++curwin->w_cursor.col;
--- 3634,3640 ----
if (VIsual_active)
{
/* Avoid getting stuck with "is" on a single space before a sentence. */
! if (EQUAL_POS(start_pos, curwin->w_cursor))
goto extend;
if (*p_sel == 'e')
++curwin->w_cursor.col;
***************
*** 3682,3688 ****
/*
* If we start on '(', '{', ')', '}', etc., use the whole block inclusive.
*/
! if (!VIsual_active || equalpos(VIsual, curwin->w_cursor))
{
setpcmark();
if (what == '{') /* ignore indent */
--- 3683,3689 ----
/*
* If we start on '(', '{', ')', '}', etc., use the whole block inclusive.
*/
! if (!VIsual_active || EQUAL_POS(VIsual, curwin->w_cursor))
{
setpcmark();
if (what == '{') /* ignore indent */
***************
*** 3693,3699 ****
/* cursor on '(' or '{', move cursor just after it */
++curwin->w_cursor.col;
}
! else if (lt(VIsual, curwin->w_cursor))
{
old_start = VIsual;
curwin->w_cursor = VIsual; /* cursor at low end of Visual */
--- 3694,3700 ----
/* cursor on '(' or '{', move cursor just after it */
++curwin->w_cursor.col;
}
! else if (LT_POS(VIsual, curwin->w_cursor))
{
old_start = VIsual;
curwin->w_cursor = VIsual; /* cursor at low end of Visual */
***************
*** 3751,3757 ****
* In Visual mode, when the resulting area is not bigger than what we
* started with, extend it to the next block, and then exclude again.
*/
! if (!lt(start_pos, old_start) && !lt(old_end, curwin->w_cursor)
&& VIsual_active)
{
curwin->w_cursor = old_start;
--- 3752,3758 ----
* In Visual mode, when the resulting area is not bigger than what we
* started with, extend it to the next block, and then exclude again.
*/
! if (!LT_POS(start_pos, old_start) && !LT_POS(old_end, curwin->w_cursor)
&& VIsual_active)
{
curwin->w_cursor = old_start;
***************
*** 3792,3798 ****
oap->inclusive = FALSE;
if (sol)
incl(&curwin->w_cursor);
! else if (ltoreq(start_pos, curwin->w_cursor))
/* Include the character under the cursor. */
oap->inclusive = TRUE;
else
--- 3793,3799 ----
oap->inclusive = FALSE;
if (sol)
incl(&curwin->w_cursor);
! else if (LTOREQ_POS(start_pos, curwin->w_cursor))
/* Include the character under the cursor. */
oap->inclusive = TRUE;
else
***************
*** 3916,3922 ****
/*
* If we start on "<aaa>" select that block.
*/
! if (!VIsual_active || equalpos(VIsual, curwin->w_cursor))
{
setpcmark();
--- 3917,3923 ----
/*
* If we start on "<aaa>" select that block.
*/
! if (!VIsual_active || EQUAL_POS(VIsual, curwin->w_cursor))
{
setpcmark();
***************
*** 3942,3948 ****
old_end = curwin->w_cursor;
}
}
! else if (lt(VIsual, curwin->w_cursor))
{
old_start = VIsual;
curwin->w_cursor = VIsual; /* cursor at low end of Visual */
--- 3943,3949 ----
old_end = curwin->w_cursor;
}
}
! else if (LT_POS(VIsual, curwin->w_cursor))
{
old_start = VIsual;
curwin->w_cursor = VIsual; /* cursor at low end of Visual */
***************
*** 3999,4005 ****
vim_free(spat);
vim_free(epat);
! if (r < 1 || lt(curwin->w_cursor, old_end))
{
/* Can't find other end or it's before the previous end. Could be a
* HTML tag that doesn't have a matching end. Search backwards for
--- 4000,4006 ----
vim_free(spat);
vim_free(epat);
! if (r < 1 || LT_POS(curwin->w_cursor, old_end))
{
/* Can't find other end or it's before the previous end. Could be a
* HTML tag that doesn't have a matching end. Search backwards for
***************
*** 4046,4052 ****
/* If we now have the same text as before reset "do_include" and try
* again. */
! if (equalpos(start_pos, old_start) && equalpos(end_pos, old_end))
{
do_include = TRUE;
curwin->w_cursor = old_start;
--- 4047,4053 ----
/* If we now have the same text as before reset "do_include" and try
* again. */
! if (EQUAL_POS(start_pos, old_start) && EQUAL_POS(end_pos, old_end))
{
do_include = TRUE;
curwin->w_cursor = old_start;
***************
*** 4059,4065 ****
{
/* If the end is before the start there is no text between tags, select
* the char under the cursor. */
! if (lt(end_pos, start_pos))
curwin->w_cursor = start_pos;
else if (*p_sel == 'e')
inc_cursor();
--- 4060,4066 ----
{
/* If the end is before the start there is no text between tags, select
* the char under the cursor. */
! if (LT_POS(end_pos, start_pos))
curwin->w_cursor = start_pos;
else if (*p_sel == 'e')
inc_cursor();
***************
*** 4072,4078 ****
{
oap->start = start_pos;
oap->motion_type = MCHAR;
! if (lt(end_pos, start_pos))
{
/* End is before the start: there is no text between tags; operate
* on an empty area. */
--- 4073,4079 ----
{
oap->start = start_pos;
oap->motion_type = MCHAR;
! if (LT_POS(end_pos, start_pos))
{
/* End is before the start: there is no text between tags; operate
* on an empty area. */
***************
*** 4362,4371 ****
if (VIsual.lnum != curwin->w_cursor.lnum)
return FALSE;
! vis_bef_curs = lt(VIsual, curwin->w_cursor);
if (*p_sel == 'e' && vis_bef_curs)
dec_cursor();
! vis_empty = equalpos(VIsual, curwin->w_cursor);
}
if (!vis_empty)
--- 4363,4372 ----
if (VIsual.lnum != curwin->w_cursor.lnum)
return FALSE;
! vis_bef_curs = LT_POS(VIsual, curwin->w_cursor);
if (*p_sel == 'e' && vis_bef_curs)
dec_cursor();
! vis_empty = EQUAL_POS(VIsual, curwin->w_cursor);
}
if (!vis_empty)
***************
*** 4605,4611 ****
p_ws = FALSE;
/* Correct cursor when 'selection' is exclusive */
! if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
dec_cursor();
if (VIsual_active)
--- 4606,4612 ----
p_ws = FALSE;
/* Correct cursor when 'selection' is exclusive */
! if (VIsual_active && *p_sel == 'e' && LT_POS(VIsual, curwin->w_cursor))
dec_cursor();
if (VIsual_active)
***************
*** 4668,4679 ****
}
else if (!i && !result)
{
! if (forward) /* try again from start of buffer */
{
! clearpos(&pos);
}
! else /* try again from end of buffer */
{
/* searching backwards, so set pos to last line and col */
pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
pos.col = (colnr_T)STRLEN(
--- 4669,4682 ----
}
else if (!i && !result)
{
! if (forward)
{
! /* try again from start of buffer */
! CLEAR_POS(&pos);
}
! else
{
+ /* try again from end of buffer */
/* searching backwards, so set pos to last line and col */
pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
pos.col = (colnr_T)STRLEN(
***************
*** 4709,4717 ****
if (*p_sel == 'e')
{
/* Correction for exclusive selection depends on the direction. */
! if (forward && ltoreq(VIsual, curwin->w_cursor))
inc_cursor();
! else if (!forward && ltoreq(curwin->w_cursor, VIsual))
inc(&VIsual);
}
--- 4712,4720 ----
if (*p_sel == 'e')
{
/* Correction for exclusive selection depends on the direction. */
! if (forward && LTOREQ_POS(VIsual, curwin->w_cursor))
inc_cursor();
! else if (!forward && LTOREQ_POS(curwin->w_cursor, VIsual))
inc(&VIsual);
}
***************
*** 4764,4770 ****
regmatch.startpos[0].col = -1;
/* move to match */
if (move)
! clearpos(&pos)
else
{
pos = curwin->w_cursor;
--- 4767,4775 ----
regmatch.startpos[0].col = -1;
/* move to match */
if (move)
! {
! CLEAR_POS(&pos);
! }
else
{
pos = curwin->w_cursor;
*** ../vim-8.0.0447/src/spell.c 2017-02-25 14:20:56.780372194 +0100
--- src/spell.c 2017-03-12 18:10:15.023676521 +0100
***************
*** 1603,1609 ****
* though...
*/
lnum = wp->w_cursor.lnum;
! clearpos(&found_pos);
while (!got_int)
{
--- 1603,1609 ----
* though...
*/
lnum = wp->w_cursor.lnum;
! CLEAR_POS(&found_pos);
while (!got_int)
{
***************
*** 8545,8551 ****
set_option_value((char_u*)"spl", dummy, spl, OPT_LOCAL);
vim_free(spl);
! if (!bufempty())
return;
spell_dump_compl(NULL, 0, NULL, eap->forceit ? DUMPFLAG_COUNT : 0);
--- 8545,8551 ----
set_option_value((char_u*)"spl", dummy, spl, OPT_LOCAL);
vim_free(spl);
! if (!BUFEMPTY())
return;
spell_dump_compl(NULL, 0, NULL, eap->forceit ? DUMPFLAG_COUNT : 0);
*** ../vim-8.0.0447/src/tag.c 2017-03-01 15:45:01.410957865 +0100
--- src/tag.c 2017-03-12 18:05:14.813864808 +0100
***************
*** 178,184 ****
free_string_option(nofile_fname);
nofile_fname = NULL;
! clearpos(&saved_fmark.mark); /* shutup gcc 4.0 */
saved_fmark.fnum = 0;
/*
--- 178,184 ----
free_string_option(nofile_fname);
nofile_fname = NULL;
! CLEAR_POS(&saved_fmark.mark); /* shutup gcc 4.0 */
saved_fmark.fnum = 0;
/*
*** ../vim-8.0.0447/src/ui.c 2017-01-31 22:07:37.907625018 +0100
--- src/ui.c 2017-03-12 17:59:15.432495170 +0100
***************
*** 442,448 ****
/* If visual mode is only due to a redo command ("."), then ignore it */
if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
{
! if (lt(VIsual, curwin->w_cursor))
{
start = VIsual;
end = curwin->w_cursor;
--- 442,448 ----
/* If visual mode is only due to a redo command ("."), then ignore it */
if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
{
! if (LT_POS(VIsual, curwin->w_cursor))
{
start = VIsual;
end = curwin->w_cursor;
***************
*** 456,463 ****
start = curwin->w_cursor;
end = VIsual;
}
! if (!equalpos(clip->start, start)
! || !equalpos(clip->end, end)
|| clip->vmode != VIsual_mode)
{
clip_clear_selection(clip);
--- 456,463 ----
start = curwin->w_cursor;
end = VIsual;
}
! if (!EQUAL_POS(clip->start, start)
! || !EQUAL_POS(clip->end, end)
|| clip->vmode != VIsual_mode)
{
clip_clear_selection(clip);
*** ../vim-8.0.0447/src/undo.c 2017-02-26 18:17:05.855360711 +0100
--- src/undo.c 2017-03-12 18:10:20.043639973 +0100
***************
*** 2784,2790 ****
curhead->uh_entry = newlist;
curhead->uh_flags = new_flags;
! if ((old_flags & UH_EMPTYBUF) && bufempty())
curbuf->b_ml.ml_flags |= ML_EMPTY;
if (old_flags & UH_CHANGED)
changed();
--- 2784,2790 ----
curhead->uh_entry = newlist;
curhead->uh_flags = new_flags;
! if ((old_flags & UH_EMPTYBUF) && BUFEMPTY())
curbuf->b_ml.ml_flags |= ML_EMPTY;
if (old_flags & UH_CHANGED)
changed();
***************
*** 3175,3188 ****
if (STRCMP(ml_get_buf(curbuf, lnum, FALSE),
uep->ue_array[lnum - 1]) != 0)
{
! clearpos(&(uhp->uh_cursor));
uhp->uh_cursor.lnum = lnum;
return;
}
if (curbuf->b_ml.ml_line_count != uep->ue_size)
{
/* lines added or deleted at the end, put the cursor there */
! clearpos(&(uhp->uh_cursor));
uhp->uh_cursor.lnum = lnum;
}
}
--- 3175,3188 ----
if (STRCMP(ml_get_buf(curbuf, lnum, FALSE),
uep->ue_array[lnum - 1]) != 0)
{
! CLEAR_POS(&(uhp->uh_cursor));
uhp->uh_cursor.lnum = lnum;
return;
}
if (curbuf->b_ml.ml_line_count != uep->ue_size)
{
/* lines added or deleted at the end, put the cursor there */
! CLEAR_POS(&(uhp->uh_cursor));
uhp->uh_cursor.lnum = lnum;
}
}
*** ../vim-8.0.0447/src/version.c 2017-03-12 17:10:14.417925081 +0100
--- src/version.c 2017-03-12 18:14:04.110008941 +0100
***************
*** 2089,2095 ****
void
maybe_intro_message(void)
{
! if (bufempty()
&& curbuf->b_fname == NULL
#ifdef FEAT_WINDOWS
&& firstwin->w_next == NULL
--- 2091,2097 ----
void
maybe_intro_message(void)
{
! if (BUFEMPTY()
&& curbuf->b_fname == NULL
#ifdef FEAT_WINDOWS
&& firstwin->w_next == NULL
*** ../vim-8.0.0447/src/workshop.c 2016-09-25 21:44:59.445600117 +0200
--- src/workshop.c 2017-03-12 17:59:18.780470647 +0100
***************
*** 1087,1093 ****
*curCol = curwin->w_cursor.col;
if (curbuf->b_visual.vi_mode == 'v' &&
! equalpos(curwin->w_cursor, curbuf->b_visual.vi_end))
{
*selStartLine = curbuf->b_visual.vi_start.lnum;
*selStartCol = curbuf->b_visual.vi_start.col;
--- 1087,1093 ----
*curCol = curwin->w_cursor.col;
if (curbuf->b_visual.vi_mode == 'v' &&
! EQUAL_POS(curwin->w_cursor, curbuf->b_visual.vi_end))
{
*selStartLine = curbuf->b_visual.vi_start.lnum;
*selStartCol = curbuf->b_visual.vi_start.col;
*** ../vim-8.0.0447/src/if_perl.xs 2017-01-29 22:59:08.253373379 +0100
--- src/if_perl.xs 2017-03-12 18:10:38.615504757 +0100
***************
*** 1288,1294 ****
linenr_T i;
buf_T *was_curbuf = curbuf;
! if (bufempty())
return;
if (perl_interp == NULL)
--- 1288,1294 ----
linenr_T i;
buf_T *was_curbuf = curbuf;
! if (BUFEMPTY())
return;
if (perl_interp == NULL)
*** ../vim-8.0.0447/src/version.c 2017-03-12 17:10:14.417925081 +0100
--- src/version.c 2017-03-12 18:14:04.110008941 +0100
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 448,
/**/
--
hundred-and-one symptoms of being an internet addict:
100. The most exciting sporting events you noticed during summer 1996
was Netscape vs. Microsoft.
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
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
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.