diff src/session.c @ 22840:7c1e2e3f2d8d v8.2.1967

patch 8.2.1967: the session file does not restore the alternate file Commit: https://github.com/vim/vim/commit/59d8e56e048eb5d384649284fb35363931fc3697 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 7 18:41:10 2020 +0100 patch 8.2.1967: the session file does not restore the alternate file Problem: The session file does not restore the alternate file. Solution: Add ":balt". Works like ":badd" and also sets the buffer as the alternate file. Use it in the session file. (closes #7269, closes #6714)
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 Nov 2020 18:45:04 +0100
parents 0583f3e2c12e
children 4384c44c031a
line wrap: on
line diff
--- a/src/session.c
+++ b/src/session.c
@@ -397,6 +397,19 @@ put_view(
 	}
     }
 
+    if (wp->w_alt_fnum)
+    {
+	buf_T *alt = buflist_findnr(wp->w_alt_fnum);
+
+	// Set the alternate file.
+	if (alt != NULL
+		&& alt->b_fname != NULL
+		&& *alt->b_fname != NUL
+		&& (fputs("balt ", fd) < 0
+		|| ses_fname(fd, alt, flagp, TRUE) == FAIL))
+	    return FAIL;
+    }
+
     // Local mappings and abbreviations.
     if ((*flagp & (SSOP_OPTIONS | SSOP_LOCALOPTIONS))
 					 && makemap(fd, wp->w_buffer) == FAIL)