Patch 8.2.2494

5 views
Skip to first unread message

Bram Moolenaar

unread,
Feb 10, 2021, 1:23:05 PM2/10/21
to vim...@googlegroups.com

Patch 8.2.2494
Problem: ":rviminfo!" clears most of oldfiles.
Solution: Add VIF_ONLY_CURBUF to read_viminfo(). (closes #1781)
Files: src/viminfo.c, src/vim.h


*** ../vim-8.2.2493/src/viminfo.c 2020-09-02 10:25:41.863436972 +0200
--- src/viminfo.c 2021-02-10 19:20:53.968591090 +0100
***************
*** 2219,2225 ****
/*
* Handle marks in the viminfo file:
* fp_out != NULL: copy marks, in time order with buffers in "buflist".
! * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only
* fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles
*/
static void
--- 2219,2226 ----
/*
* Handle marks in the viminfo file:
* fp_out != NULL: copy marks, in time order with buffers in "buflist".
! * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf
! * fp_out == NULL && (flags & VIF_ONLY_CURBUF): bail out after curbuf marks
* fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles
*/
static void
***************
*** 2448,2454 ****
wp->w_changelistidx = curbuf->b_changelistlen;
}
#endif
! break;
}
}

--- 2449,2456 ----
wp->w_changelistidx = curbuf->b_changelistlen;
}
#endif
! if (flags & VIF_ONLY_CURBUF)
! break;
}
}

***************
*** 2473,2479 ****
{
if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
&& curbuf->b_ffname != NULL)
! read_viminfo(NULL, VIF_WANT_MARKS);

// Always set b_marks_read; needed when 'viminfo' is changed to include
// the ' parameter after opening a buffer.
--- 2475,2481 ----
{
if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
&& curbuf->b_ffname != NULL)
! read_viminfo(NULL, VIF_WANT_MARKS | VIF_ONLY_CURBUF);

// Always set b_marks_read; needed when 'viminfo' is changed to include
// the ' parameter after opening a buffer.
***************
*** 2953,2960 ****
&& vir.vir_line[0] != '>')
;

! do_copy_marks = (flags &
! (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT));
}

if (fp_out != NULL)
--- 2955,2962 ----
&& vir.vir_line[0] != '>')
;

! do_copy_marks = (flags & (VIF_WANT_MARKS | VIF_ONLY_CURBUF
! | VIF_GET_OLDFILES | VIF_FORCEIT));
}

if (fp_out != NULL)
*** ../vim-8.2.2493/src/vim.h 2021-01-21 21:42:09.409150461 +0100
--- src/vim.h 2021-02-10 17:39:39.895908491 +0100
***************
*** 2458,2467 ****
#define DOSO_GVIMRC 2 // loading gvimrc file

// flags for read_viminfo() and children
! #define VIF_WANT_INFO 1 // load non-mark info
! #define VIF_WANT_MARKS 2 // load file marks
! #define VIF_FORCEIT 4 // overwrite info already read
! #define VIF_GET_OLDFILES 8 // load v:oldfiles

// flags for buf_freeall()
#define BFA_DEL 1 // buffer is going to be deleted
--- 2458,2468 ----
#define DOSO_GVIMRC 2 // loading gvimrc file

// flags for read_viminfo() and children
! #define VIF_WANT_INFO 1 // load non-mark info
! #define VIF_WANT_MARKS 2 // load file marks
! #define VIF_ONLY_CURBUF 4 // bail out after loading marks for curbuf
! #define VIF_FORCEIT 8 // overwrite info already read
! #define VIF_GET_OLDFILES 16 // load v:oldfiles

// flags for buf_freeall()
#define BFA_DEL 1 // buffer is going to be deleted
*** ../vim-8.2.2493/src/version.c 2021-02-10 17:19:52.614643725 +0100
--- src/version.c 2021-02-10 19:21:34.772491572 +0100
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 2494,
/**/

--
WOMAN: King of the who?
ARTHUR: The Britons.
WOMAN: Who are the Britons?
ARTHUR: Well, we all are. we're all Britons and I am your king.
The Quest for the Holy Grail (Monty Python)

/// Bram Moolenaar -- Br...@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 ///
Reply all
Reply to author
Forward
0 new messages