To: vim_dev@googlegroups.com Subject: Patch 8.2.2494 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///