Patch 8.2.3795

4 views
Skip to first unread message

Bram Moolenaar

unread,
Dec 13, 2021, 8:45:54 AM12/13/21
to vim...@googlegroups.com

Patch 8.2.3795
Problem: Too many #ifdefs.
Solution: Graduate the jumplist feature.
Files: runtime/doc/various.txt, runtime/doc/motion.txt, src/feature.h,
src/buffer.c, src/change.c, src/evalfunc.c, src/ex_docmd.c,
src/mark.c, src/normal.c, src/undo.c, src/version.c,
src/viminfo.c, src/window.c, src/structs.h,
src/testdir/test_changelist.vim, src/testdir/test_jumplist.vim,
src/testdir/test_normal.vim


*** ../vim-8.2.3794/runtime/doc/various.txt 2021-11-29 20:39:06.682101619 +0000
--- runtime/doc/various.txt 2021-12-13 13:00:12.934311166 +0000
***************
*** 391,397 ****
T *+insert_expand* |insert_expand| Insert mode completion
m *+ipv6* Support for IPv6 networking |channel|
m *+job* starting and stopping jobs |job|
! S *+jumplist* |jumplist|
B *+keymap* |'keymap'|
N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
--- 391,397 ----
T *+insert_expand* |insert_expand| Insert mode completion
m *+ipv6* Support for IPv6 networking |channel|
m *+job* starting and stopping jobs |job|
! T *+jumplist* |jumplist|; Always enabled since 8.2.3795
B *+keymap* |'keymap'|
N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
*** ../vim-8.2.3794/runtime/doc/motion.txt 2021-01-31 16:02:06.254490174 +0000
--- runtime/doc/motion.txt 2021-12-13 13:01:14.298084637 +0000
***************
*** 1030,1064 ****
*CTRL-O*
CTRL-O Go to [count] Older cursor position in jump list
(not a motion command).
- {not available without the |+jumplist| feature}

<Tab> or *CTRL-I* *<Tab>*
CTRL-I Go to [count] newer cursor position in jump list
(not a motion command).
! {not available without the |+jumplist| feature}

*:ju* *:jumps*
:ju[mps] Print the jump list (not a motion command).
- {not available without the |+jumplist| feature}

*:cle* *:clearjumps*
:cle[arjumps] Clear the jump list of the current window.
- {not available without the |+jumplist| feature}

*jumplist*
Jumps are remembered in a jump list. With the CTRL-O and CTRL-I command you
can go to cursor positions before older jumps, and back again. Thus you can
move up and down the list. There is a separate jump list for each window.
The maximum number of entries is fixed at 100.
- {not available without the |+jumplist| feature}

For example, after three jump commands you have this jump list:

! jump line col file/text ~
! 3 1 0 some text ~
! 2 70 0 another line ~
! 1 1154 23 end. ~
! > ~

The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
--- 1038,1073 ----
*CTRL-O*
CTRL-O Go to [count] Older cursor position in jump list
(not a motion command).

<Tab> or *CTRL-I* *<Tab>*
CTRL-I Go to [count] newer cursor position in jump list
(not a motion command).
!
! NOTE: In the GUI and in a terminal supporting
! |modifyOtherKeys|, CTRL-I can be mapped separately
! from <Tab>, on the condition that CTRL-I is
! mapped before <Tab>, otherwise the mapping applies to
! both.

*:ju* *:jumps*
:ju[mps] Print the jump list (not a motion command).

*:cle* *:clearjumps*
:cle[arjumps] Clear the jump list of the current window.

*jumplist*
Jumps are remembered in a jump list. With the CTRL-O and CTRL-I command you
can go to cursor positions before older jumps, and back again. Thus you can
move up and down the list. There is a separate jump list for each window.
The maximum number of entries is fixed at 100.

For example, after three jump commands you have this jump list:

! jump line col file/text ~
! 3 1 0 some text ~
! 2 70 0 another line ~
! 1 1154 23 end. ~
! > ~

The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
***************
*** 1127,1139 ****
positions go to the oldest change.
If there is no older change an error message is given.
(not a motion command)
- {not available without the |+jumplist| feature}

*g,* *E663*
g, Go to [count] newer cursor position in change list.
Just like |g;| but in the opposite direction.
(not a motion command)
- {not available without the |+jumplist| feature}

When using a count you jump as far back or forward as possible. Thus you can
use "999g;" to go to the first change for which the position is still
--- 1136,1146 ----
*** ../vim-8.2.3794/src/feature.h 2021-11-29 20:39:06.666101630 +0000
--- src/feature.h 2021-12-13 12:56:36.763200945 +0000
***************
*** 110,115 ****
--- 110,116 ----
* +modify_fname modifiers for file name. E.g., "%:p:h".
* +comments 'comments' option.
* +title 'title' and 'icon' options
+ * +jumplist Jumplist, CTRL-O and CTRL-I commands.
*
* Obsolete:
* +tag_old_static Old style static tags: "file:tag file ..".
***************
*** 127,139 ****
# define MAX_MSG_HIST_LEN 20
#endif

- /*
- * +jumplist Jumplist, CTRL-O and CTRL-I commands.
- */
- #ifdef FEAT_SMALL
- # define FEAT_JUMPLIST
- #endif
-
#if defined(FEAT_SMALL)
# define FEAT_CMDWIN
#endif
--- 128,133 ----
*** ../vim-8.2.3794/src/buffer.c 2021-12-05 22:19:22.832153464 +0000
--- src/buffer.c 2021-12-13 12:12:34.077685610 +0000
***************
*** 1416,1422 ****
bp = NULL; // used when no loaded buffer found
if (au_new_curbuf.br_buf != NULL && bufref_valid(&au_new_curbuf))
buf = au_new_curbuf.br_buf;
- #ifdef FEAT_JUMPLIST
else if (curwin->w_jumplistlen > 0)
{
int jumpidx;
--- 1416,1421 ----
***************
*** 1452,1458 ****
break;
}
}
- #endif

if (buf == NULL) // No previous buffer, Try 2'nd approach
{
--- 1451,1456 ----
*** ../vim-8.2.3794/src/change.c 2021-12-12 19:10:39.629912018 +0000
--- src/change.c 2021-12-13 12:12:54.437667771 +0000
***************
*** 469,479 ****
win_T *wp;
tabpage_T *tp;
int i;
- #ifdef FEAT_JUMPLIST
int cols;
pos_T *p;
int add;
- #endif

// mark the buffer as modified
changed();
--- 469,477 ----
***************
*** 492,498 ****
curbuf->b_last_change.lnum = lnum;
curbuf->b_last_change.col = col;

- #ifdef FEAT_JUMPLIST
// Create a new entry if a new undo-able change was started or we
// don't have an entry yet.
if (curbuf->b_new_change || curbuf->b_changelistlen == 0)
--- 490,495 ----
***************
*** 552,558 ****
// The current window is always after the last change, so that "g,"
// takes you back to it.
curwin->w_changelistidx = curbuf->b_changelistlen;
- #endif
}

FOR_ALL_TAB_WINDOWS(tp, wp)
--- 549,554 ----
*** ../vim-8.2.3794/src/evalfunc.c 2021-11-30 18:25:04.984458295 +0000
--- src/evalfunc.c 2021-12-13 12:53:01.504284605 +0000
***************
*** 4301,4312 ****
static void
f_getchangelist(typval_T *argvars, typval_T *rettv)
{
- #ifdef FEAT_JUMPLIST
buf_T *buf;
int i;
list_T *l;
dict_T *d;
- #endif

if (rettv_list_alloc(rettv) != OK)
return;
--- 4301,4310 ----
***************
*** 4314,4320 ****
if (in_vim9script() && check_for_opt_buffer_arg(argvars, 0) == FAIL)
return;

- #ifdef FEAT_JUMPLIST
if (argvars[0].v_type == VAR_UNKNOWN)
buf = curbuf;
else
--- 4312,4317 ----
***************
*** 4349,4355 ****
dict_add_number(d, "col", (long)buf->b_changelist[i].col);
dict_add_number(d, "coladd", (long)buf->b_changelist[i].coladd);
}
- #endif
}

static void
--- 4346,4351 ----
***************
*** 4525,4536 ****
static void
f_getjumplist(typval_T *argvars, typval_T *rettv)
{
- #ifdef FEAT_JUMPLIST
win_T *wp;
int i;
list_T *l;
dict_T *d;
- #endif

if (rettv_list_alloc(rettv) != OK)
return;
--- 4521,4530 ----
***************
*** 4541,4547 ****
&& check_for_opt_number_arg(argvars, 1) == FAIL)))
return;

- #ifdef FEAT_JUMPLIST
wp = find_tabwin(&argvars[0], &argvars[1], NULL);
if (wp == NULL)
return;
--- 4535,4540 ----
***************
*** 4571,4577 ****
if (wp->w_jumplist[i].fname != NULL)
dict_add_string(d, "filename", wp->w_jumplist[i].fname);
}
- #endif
}

/*
--- 4564,4569 ----
***************
*** 5322,5334 ****
0
#endif
},
! {"jumplist",
! #ifdef FEAT_JUMPLIST
! 1
! #else
! 0
! #endif
! },
{"keymap",
#ifdef FEAT_KEYMAP
1
--- 5314,5320 ----
0
#endif
},
! {"jumplist", 1},
{"keymap",
#ifdef FEAT_KEYMAP
1
*** ../vim-8.2.3794/src/ex_docmd.c 2021-12-11 12:26:55.924402407 +0000
--- src/ex_docmd.c 2021-12-13 12:53:20.292179840 +0000
***************
*** 359,370 ****
# define ex_nbstart ex_ni
#endif

- #ifndef FEAT_JUMPLIST
- # define ex_jumps ex_ni
- # define ex_clearjumps ex_ni
- # define ex_changes ex_ni
- #endif
-
#ifndef FEAT_PROFILE
# define ex_profile ex_ni
#endif
--- 359,364 ----
*** ../vim-8.2.3794/src/mark.c 2021-12-05 22:19:22.832153464 +0000
--- src/mark.c 2021-12-13 12:54:21.071855474 +0000
***************
*** 136,145 ****
void
setpcmark(void)
{
- #ifdef FEAT_JUMPLIST
int i;
xfmark_T *fm;
- #endif

// for :global the mark is set only once
if (global_busy || listcmd_busy || (cmdmod.cmod_flags & CMOD_KEEPJUMPS))
--- 136,143 ----
***************
*** 148,154 ****
curwin->w_prev_pcmark = curwin->w_pcmark;
curwin->w_pcmark = curwin->w_cursor;

- #ifdef FEAT_JUMPLIST
// If jumplist is full: remove oldest entry
if (++curwin->w_jumplistlen > JUMPLISTSIZE)
{
--- 146,151 ----
***************
*** 163,171 ****
fm->fmark.mark = curwin->w_pcmark;
fm->fmark.fnum = curbuf->b_fnum;
fm->fname = NULL;
! # ifdef FEAT_VIMINFO
fm->time_set = vim_time();
- # endif
#endif
}

--- 160,167 ----
fm->fmark.mark = curwin->w_pcmark;
fm->fmark.fnum = curbuf->b_fnum;
fm->fname = NULL;
! #ifdef FEAT_VIMINFO
fm->time_set = vim_time();
#endif
}

***************
*** 185,191 ****
curwin->w_prev_pcmark.lnum = 0; // it has been checked
}

- #if defined(FEAT_JUMPLIST) || defined(PROTO)
/*
* move "count" positions in the jump list (count may be negative)
*/
--- 181,186 ----
***************
*** 274,280 ****
curwin->w_changelistidx = n;
return curbuf->b_changelist + n;
}
- #endif

/*
* Find mark "c" in buffer pointed to by "buf".
--- 269,274 ----
***************
*** 532,540 ****
{
char_u *name;
int i;
- #ifdef FEAT_JUMPLIST
win_T *wp;
- #endif

if (buf->b_ffname == NULL)
return;
--- 526,532 ----
***************
*** 546,558 ****
for (i = 0; i < NMARKS + EXTRA_MARKS; ++i)
fmarks_check_one(&namedfm[i], name, buf);

- #ifdef FEAT_JUMPLIST
FOR_ALL_WINDOWS(wp)
{
for (i = 0; i < wp->w_jumplistlen; ++i)
fmarks_check_one(&wp->w_jumplist[i], name, buf);
}
- #endif

vim_free(name);
}
--- 538,548 ----
***************
*** 626,634 ****
buf->b_last_cursor.coladd = 0;
buf->b_last_insert.lnum = 0; // '^ mark cleared
buf->b_last_change.lnum = 0; // '. mark cleared
- #ifdef FEAT_JUMPLIST
buf->b_changelistlen = 0;
- #endif
}

/*
--- 616,622 ----
***************
*** 867,873 ****
}
}

- #if defined(FEAT_JUMPLIST) || defined(PROTO)
/*
* print the jumplist
*/
--- 855,860 ----
***************
*** 965,971 ****
if (curwin->w_changelistidx == curbuf->b_changelistlen)
msg_puts("\n>");
}
- #endif

#define one_adjust(add) \
{ \
--- 952,957 ----
***************
*** 1071,1081 ****
one_adjust(&(curbuf->b_last_cursor.lnum));


- #ifdef FEAT_JUMPLIST
// list of change positions
for (i = 0; i < curbuf->b_changelistlen; ++i)
one_adjust_nodel(&(curbuf->b_changelist[i].lnum));
- #endif

// Visual area
one_adjust_nodel(&(curbuf->b_visual.vi_start.lnum));
--- 1057,1065 ----
***************
*** 1109,1122 ****
*/
FOR_ALL_TAB_WINDOWS(tab, win)
{
- #ifdef FEAT_JUMPLIST
if ((cmdmod.cmod_flags & CMOD_LOCKMARKS) == 0)
// Marks in the jumplist. When deleting lines, this may create
// duplicate marks in the jumplist, they will be removed later.
for (i = 0; i < win->w_jumplistlen; ++i)
if (win->w_jumplist[i].fmark.fnum == fnum)
one_adjust_nodel(&(win->w_jumplist[i].fmark.mark.lnum));
- #endif

if (win->w_buffer == curbuf)
{
--- 1093,1104 ----
***************
*** 1249,1259 ****
// last change position
col_adjust(&(curbuf->b_last_change));

- #ifdef FEAT_JUMPLIST
// list of change positions
for (i = 0; i < curbuf->b_changelistlen; ++i)
col_adjust(&(curbuf->b_changelist[i]));
- #endif

// Visual area
col_adjust(&(curbuf->b_visual.vi_start));
--- 1231,1239 ----
***************
*** 1273,1284 ****
*/
FOR_ALL_WINDOWS(win)
{
- #ifdef FEAT_JUMPLIST
// marks in the jumplist
for (i = 0; i < win->w_jumplistlen; ++i)
if (win->w_jumplist[i].fmark.fnum == fnum)
col_adjust(&(win->w_jumplist[i].fmark.mark));
- #endif

if (win->w_buffer == curbuf)
{
--- 1253,1262 ----
***************
*** 1294,1300 ****
}
}

- #ifdef FEAT_JUMPLIST
/*
* When deleting lines, this may create duplicate marks in the
* jumplist. They will be removed here for the specified window.
--- 1272,1277 ----
***************
*** 1371,1377 ****
for (i = 0; i < wp->w_jumplistlen; ++i)
vim_free(wp->w_jumplist[i].fname);
}
- #endif // FEAT_JUMPLIST

void
set_last_cursor(win_T *win)
--- 1348,1353 ----
*** ../vim-8.2.3794/src/normal.c 2021-12-12 14:16:34.989862195 +0000
--- src/normal.c 2021-12-13 12:54:49.319711714 +0000
***************
*** 5593,5604 ****
static void
nv_pcmark(cmdarg_T *cap)
{
- #ifdef FEAT_JUMPLIST
pos_T *pos;
! # ifdef FEAT_FOLDING
linenr_T lnum = curwin->w_cursor.lnum;
int old_KeyTyped = KeyTyped; // getting file may reset it
! # endif

if (!checkclearopq(cap->oap))
{
--- 5593,5603 ----
static void
nv_pcmark(cmdarg_T *cap)
{
pos_T *pos;
! #ifdef FEAT_FOLDING
linenr_T lnum = curwin->w_cursor.lnum;
int old_KeyTyped = KeyTyped; // getting file may reset it
! #endif

if (!checkclearopq(cap->oap))
{
***************
*** 5638,5646 ****
foldOpenCursor();
# endif
}
- #else
- clearopbeep(cap->oap);
- #endif
}

/*
--- 5637,5642 ----
***************
*** 6444,6450 ****
do_exmode(TRUE);
break;

- #ifdef FEAT_JUMPLIST
case ',':
nv_pcmark(cap);
break;
--- 6440,6445 ----
***************
*** 6453,6459 ****
cap->count1 = -cap->count1;
nv_pcmark(cap);
break;
- #endif

case 't':
if (!checkclearop(oap))
--- 6448,6453 ----
*** ../vim-8.2.3794/src/undo.c 2021-10-14 17:52:19.016102283 +0100
--- src/undo.c 2021-12-13 12:54:58.227667267 +0000
***************
*** 240,246 ****

/*
* Save the lines between "top" and "bot" for both the "u" and "U" command.
! * "top" may be 0 and bot may be curbuf->b_ml.ml_line_count + 1.
* Careful: may trigger autocommands that reload the buffer.
* Returns FAIL when lines could not be saved, OK otherwise.
*/
--- 240,246 ----

/*
* Save the lines between "top" and "bot" for both the "u" and "U" command.
! * "top" may be 0 and "bot" may be curbuf->b_ml.ml_line_count + 1.
* Careful: may trigger autocommands that reload the buffer.
* Returns FAIL when lines could not be saved, OK otherwise.
*/
***************
*** 497,506 ****
*/
if (curbuf->b_u_synced)
{
- #ifdef FEAT_JUMPLIST
// Need to create new entry in b_changelist.
curbuf->b_new_change = TRUE;
- #endif

if (get_undolevel() >= 0)
{
--- 497,504 ----
*** ../vim-8.2.3794/src/version.c 2021-12-13 11:31:00.488529501 +0000
--- src/version.c 2021-12-13 12:55:06.763625034 +0000
***************
*** 312,322 ****
#else
"-job",
#endif
- #ifdef FEAT_JUMPLIST
"+jumplist",
- #else
- "-jumplist",
- #endif
#ifdef FEAT_KEYMAP
"+keymap",
#else
--- 312,318 ----
*** ../vim-8.2.3794/src/viminfo.c 2021-08-11 16:13:49.544650243 +0100
--- src/viminfo.c 2021-12-13 12:56:02.631357453 +0000
***************
*** 1947,1956 ****
*/

static xfmark_T *vi_namedfm = NULL;
- #ifdef FEAT_JUMPLIST
static xfmark_T *vi_jumplist = NULL;
static int vi_jumplist_len = 0;
- #endif

static void
write_one_mark(FILE *fp_out, int c, pos_T *pos)
--- 1947,1954 ----
***************
*** 1978,1984 ****
write_one_mark(fp_out, '"', &buf->b_last_cursor);
write_one_mark(fp_out, '^', &buf->b_last_insert);
write_one_mark(fp_out, '.', &buf->b_last_change);
- #ifdef FEAT_JUMPLIST
// changelist positions are stored oldest first
for (i = 0; i < buf->b_changelistlen; ++i)
{
--- 1976,1981 ----
***************
*** 1987,1993 ****
buf->b_changelist[i]))
write_one_mark(fp_out, '+', &buf->b_changelist[i]);
}
- #endif
for (i = 0; i < NMARKS; i++)
write_one_mark(fp_out, 'a' + i, &buf->b_namedm[i]);
}
--- 1984,1989 ----
***************
*** 2173,2179 ****
write_one_filemark(fp, fm, '\'', i - NMARKS + '0');
}

- #ifdef FEAT_JUMPLIST
// Write the jumplist with -'
fputs(_("\n# Jumplist (newest first):\n"), fp);
setpcmark(); // add current cursor position
--- 2169,2174 ----
***************
*** 2201,2207 ****
&& !skip_for_viminfo(buf)))
write_one_filemark(fp, fm, '-', '\'');
}
- #endif
}

/*
--- 2196,2201 ----
***************
*** 2412,2418 ****
case '^': curbuf->b_last_insert = pos; break;
case '.': curbuf->b_last_change = pos; break;
case '+':
- #ifdef FEAT_JUMPLIST
// changelist positions are stored oldest
// first
if (curbuf->b_changelistlen == JUMPLISTSIZE)
--- 2406,2411 ----
***************
*** 2424,2430 ****
++curbuf->b_changelistlen;
curbuf->b_changelist[
curbuf->b_changelistlen - 1] = pos;
- #endif
break;

// Using the line number for the last-used
--- 2417,2422 ----
***************
*** 2442,2448 ****

if (load_marks)
{
- #ifdef FEAT_JUMPLIST
win_T *wp;

FOR_ALL_WINDOWS(wp)
--- 2434,2439 ----
***************
*** 2450,2456 ****
if (wp->w_buffer == curbuf)
wp->w_changelistidx = curbuf->b_changelistlen;
}
- #endif
if (flags & VIF_ONLY_CURBUF)
break;
}
--- 2441,2446 ----
***************
*** 2504,2510 ****
{
if (*str == '\'')
{
- #ifdef FEAT_JUMPLIST
// If the jumplist isn't full insert fmark as oldest entry
if (curwin->w_jumplistlen == JUMPLISTSIZE)
fm = NULL;
--- 2494,2499 ----
***************
*** 2518,2526 ****
fm->fmark.mark.lnum = 0;
fm->fname = NULL;
}
- #else
- fm = NULL;
- #endif
}
else if (VIM_ISDIGIT(*str))
fm = &namedfm_p[*str - '0' + NMARKS];
--- 2507,2512 ----
***************
*** 2551,2560 ****
prepare_viminfo_marks(void)
{
vi_namedfm = ALLOC_CLEAR_MULT(xfmark_T, NMARKS + EXTRA_MARKS);
- #ifdef FEAT_JUMPLIST
vi_jumplist = ALLOC_CLEAR_MULT(xfmark_T, JUMPLISTSIZE);
vi_jumplist_len = 0;
- #endif
}

static void
--- 2537,2544 ----
***************
*** 2568,2581 ****
vim_free(vi_namedfm[i].fname);
VIM_CLEAR(vi_namedfm);
}
- #ifdef FEAT_JUMPLIST
if (vi_jumplist != NULL)
{
for (i = 0; i < vi_jumplist_len; ++i)
vim_free(vi_jumplist[i].fname);
VIM_CLEAR(vi_jumplist);
}
- #endif
}

/*
--- 2552,2563 ----
***************
*** 2612,2618 ****

if (name == '\'')
{
- #ifdef FEAT_JUMPLIST
if (vi_jumplist != NULL)
{
if (vi_jumplist_len < JUMPLISTSIZE)
--- 2594,2599 ----
***************
*** 2667,2673 ****
fm->time_set = 0;
}
}
- #endif
}
else
{
--- 2648,2653 ----
*** ../vim-8.2.3794/src/window.c 2021-12-10 13:40:05.060213928 +0000
--- src/window.c 2021-12-13 12:56:25.447252270 +0000
***************
*** 1332,1341 ****
p_wh = size;
}

- #ifdef FEAT_JUMPLIST
// Keep same changelist position in new window.
wp->w_changelistidx = oldwin->w_changelistidx;
- #endif

/*
* make the new window the current window
--- 1332,1339 ----
***************
*** 1383,1391 ****
newp->w_wrow = oldp->w_wrow;
newp->w_fraction = oldp->w_fraction;
newp->w_prev_fraction_row = oldp->w_prev_fraction_row;
- #ifdef FEAT_JUMPLIST
copy_jumplist(oldp, newp);
- #endif
#ifdef FEAT_QUICKFIX
if (flags & WSP_NEWLOC)
{
--- 1381,1387 ----
***************
*** 5161,5169 ****
clear_matches(wp);
#endif

- #ifdef FEAT_JUMPLIST
free_jumplist(wp);
- #endif

#ifdef FEAT_QUICKFIX
qf_free_all(wp);
--- 5157,5163 ----
*** ../vim-8.2.3794/src/structs.h 2021-12-11 16:13:32.227721221 +0000
--- src/structs.h 2021-12-13 12:56:54.655120868 +0000
***************
*** 2763,2776 ****
pos_T b_last_insert; // where Insert mode was left
pos_T b_last_change; // position of last change: '. mark

- #ifdef FEAT_JUMPLIST
/*
* the changelist contains old change positions
*/
pos_T b_changelist[JUMPLISTSIZE];
int b_changelistlen; // number of active entries
int b_new_change; // set by u_savecommon()
- #endif

/*
* Character table, only used in charset.c for 'iskeyword'
--- 2763,2774 ----
***************
*** 3730,3736 ****
pos_T w_pcmark; // previous context mark
pos_T w_prev_pcmark; // previous w_pcmark

- #ifdef FEAT_JUMPLIST
/*
* the jumplist contains old cursor positions
*/
--- 3728,3733 ----
***************
*** 3739,3745 ****
int w_jumplistidx; // current position

int w_changelistidx; // current position in b_changelist
- #endif

#ifdef FEAT_SEARCH_EXTRA
matchitem_T *w_match_head; // head of match list
--- 3736,3741 ----
*** ../vim-8.2.3794/src/testdir/test_changelist.vim 2020-08-12 17:50:31.871655841 +0100
--- src/testdir/test_changelist.vim 2021-12-13 12:57:30.978962284 +0000
***************
*** 1,11 ****
" Tests for the changelist functionality

- source check.vim
-
" Tests for the getchangelist() function
func Test_getchangelist()
- CheckFeature jumplist
-
bwipe!
enew
call assert_equal([], 10->getchangelist())
--- 1,7 ----
*** ../vim-8.2.3794/src/testdir/test_jumplist.vim 2020-08-12 17:50:31.879655802 +0100
--- src/testdir/test_jumplist.vim 2021-12-13 12:58:05.278817085 +0000
***************
*** 1,11 ****
" Tests for the jumplist functionality

- source check.vim
-
" Tests for the getjumplist() function
func Test_getjumplist()
- CheckFeature jumplist
-
%bwipe
clearjumps
call assert_equal([[], 0], getjumplist())
--- 1,7 ----
*** ../vim-8.2.3794/src/testdir/test_normal.vim 2021-12-12 20:07:58.724337327 +0000
--- src/testdir/test_normal.vim 2021-12-13 12:58:47.090645699 +0000
***************
*** 2336,2342 ****
" Test for g`, g;, g,, g&, gv, gk, gj, gJ, g0, g^, g_, gm, g$, gM, g CTRL-G,
" gi and gI commands
func Test_normal33_g_cmd2()
- CheckFeature jumplist
call Setup_NewWindow()
" Test for g`
clearjumps
--- 2336,2341 ----
***************
*** 3270,3276 ****

" Tests for g cmds
func Test_normal_gdollar_cmd()
- CheckFeature jumplist
call Setup_NewWindow()
" Make long lines that will wrap
%s/$/\=repeat(' foobar', 10)/
--- 3269,3274 ----
*** ../vim-8.2.3794/src/version.c 2021-12-13 11:31:00.488529501 +0000
--- src/version.c 2021-12-13 12:55:06.763625034 +0000
***************
*** 755,756 ****
--- 751,754 ----
{ /* Add new patch number below this line */
+ /**/
+ 3795,
/**/

--
The History of every major Galactic Civilization tends to pass through
three distinct and recognizable phases, those of Survival, Inquiry and
Sophistication, otherwise known as the How, Why and Where phases.
For instance, the first phase is characterized by the question 'How can
we eat?' the second by the question 'Why do we eat?' and the third by
the question 'Where shall we have lunch?'
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages