patch 8.2.3795: too many #ifdefs
Problem: Too many #ifdefs.
Solution: Graduate the jumplist feature.
diff --git a/src/mark.c b/src/mark.c
index 099214e..867833f 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -136,10 +136,8 @@
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))
@@ -148,7 +146,6 @@
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)
{
@@ -163,9 +160,8 @@
fm->fmark.mark = curwin->w_pcmark;
fm->fmark.fnum = curbuf->b_fnum;
fm->fname = NULL;
-# ifdef FEAT_VIMINFO
+#ifdef FEAT_VIMINFO
fm->time_set = vim_time();
-# endif
#endif
}
@@ -185,7 +181,6 @@
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)
*/
@@ -274,7 +269,6 @@
curwin->w_changelistidx = n;
return curbuf->b_changelist + n;
}
-#endif
/*
* Find mark "c" in buffer pointed to by "buf".
@@ -532,9 +526,7 @@
{
char_u *name;
int i;
-#ifdef FEAT_JUMPLIST
win_T *wp;
-#endif
if (buf->b_ffname == NULL)
return;
@@ -546,13 +538,11 @@
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);
}
@@ -626,9 +616,7 @@
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
}
/*
@@ -867,7 +855,6 @@
}
}
-#if defined(FEAT_JUMPLIST) || defined(PROTO)
/*
* print the jumplist
*/
@@ -965,7 +952,6 @@
if (curwin->w_changelistidx == curbuf->b_changelistlen)
msg_puts("\n>");
}
-#endif
#define one_adjust(add) \
{ \
@@ -1071,11 +1057,9 @@
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));
@@ -1109,14 +1093,12 @@
*/
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)
{
@@ -1249,11 +1231,9 @@
// 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));
@@ -1273,12 +1253,10 @@
*/
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)
{
@@ -1294,7 +1272,6 @@
}
}
-#ifdef FEAT_JUMPLIST
/*
* When deleting lines, this may create duplicate marks in the
* jumplist. They will be removed here for the specified window.
@@ -1371,7 +1348,6 @@
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)