Problem: After restoring a session buffer order can be quite different.
Solution: Create buffers first. (Evgeni Chasnovski, closesvim/vim#9520)
26ebf1f036
---------------
As in Vim, this basically reverts 8.1.0829 providing different solution
(see vim/vim#9520).
Regarding Neovim, this basically reverts changes from #15062. Test about
restoring same terminals was a bit too restrictive with using actual
buffer ids, which changed with this patch (now they should be in the
same order as at `mksession` call), so I tweaked it.
Problem: Session does not restore help buffer properly when "options' is
missing from 'sessionoptions'.
Solution: Use a ":help" command to create the help window. (closesvim/vim#9475,
closesvim/vim#9458, closesvim/vim#9472)
8e7d9db32b
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
vim/vim#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
f9e3e09fdc
Problem: Cannot handle change of directory.
Solution: Add the DirChanged autocommand event. (Andy Massimino,
closesvim/vim#888) Avoid changing directory for 'autochdir' too often.
b7407d3fc9
Only add "auto" pattern. "window" and "global" are already implemented.
Skip `Test_dirchanged_auto` using `CheckFunction test_autochdir`.
Part of PR #15952. More information can be found there.
N/A patches for version.c:
vim-patch:8.0.1460: missing file in patch
Problem: Missing file in patch.
Solution: Add changes to missing file.
b5cb65ba2b
vim-patch:8.0.1461: missing another file in patch
Problem: Missing another file in patch.
Solution: Add changes to missing file.
15833239a4
Problem: When 'hidden' is set session creates extra buffers.
Solution: Move :badd commands to the end. (Jason Franklin)
d39e275b57
Adjust some tests in ex_cmds/mksession_spec.lua:
- 'restores same :terminal buf in splits': Buffers aren't always :badded
in the same order as they're :edited, :balted, etc, so the order of
buffers in the buffer list may change slightly now that :badd happens
afterwards.
- 'restores buffers with tab-local CWD': This is explained in a comment.
Problem: Problems when restoring 'runtimepath' from a session file.
Solution: Add the "skiprtp" item in 'sessionoptions'.
635bd60804
Allow "terminal" value for sessionoptions even if it's no-opt
because patch v8.0.1592 is not ported yet.
Omit vim9 test, Test_mksession_skiprtp().
Problem: Session file may divide by zero.
Solution: Avoid writing difide by zero. (closesvim/vim#8162)
b6c2e9a010
Avoid typecasts if possible.
Use PRIdLINENR, PRId64, to format line numbers.
Problem: :mksession uses current value of 'splitbelow' and 'splitright'
even though "options" is not in 'sessionoptions'. (Maxim Kim)
Solution: Save and restore the values, instead of setting to the current
value. (closesvim/vim#8119)
0995c81f2f
Patch v8.2.1682 is not ported.
Replace "goto fail;" with "return FAIL;".
Problem: Alternate buffer added to session file even when it's hidden.
Solution: Check the 'buflisted' option. (closesvim/vim#7951)
0756f757ed
N/A patches for version.c:
vim-patch:8.2.2593: list of distributed files is incomplete
Problem: List of distributed files is incomplete.
Solution: Add a file and rename another.
0de8e2d6a3
Problem: Script generated by :mkview changes alternate file.
Solution: Only write :balt in the session file. (Harish Rajagopal,
closesvim/vim#7779)
139348f3e8
Problem: Using mkview/loadview changes the jumplist.
Solution: Use ":keepjumps". Don't let ":badd" or ":balt" change the
jumplist. (closesvim/vim#7371)
3482be6a33
Definition for BufWinEnter autocmd in Test_mkview_loadview_jumplist()
was moved down a few lines until after the views are written, as in
Nvim, :loadview throws if the view file can't be opened.
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. (closesvim/vim#7269,
closesvim/vim#6714)
59d8e56e04
Include minimal test_buffer.vim from patch 8.2.0243 for Test_balt().
Add entry for :balt to runtime/doc/index.txt from vim/vim#7819.
Problem: The generated sessions file does not restore tabs properly if :lcd
was used in one of them.
Solution: Create the tab pages before setting the directory. (Yee Cheng
Chin, closesvim/vim#3152)
26d4b896a7
Problem: The hlsearch state is not stored in a session file.
Solution: Add "nohlsearch" if appropriate. (Jason Franklin)
e3c74d249a
Vi default for 'sessionoptions' includes 'options'.
Use 'set sessionoptions&vi' to use Vim's default 'sessionoptions'.
If a test sets 'sessionoptions',
reset 'sessionoptions' at the end of the test.
N/A patches for version.c:
vim-patch:8.2.0119: message test fails on some platforms
Problem: Message test fails on some platforms. (Elimar Riesebieter)
Solution: Add type cast to vim_snprintf() argument. (Dominique Pelle)
1470dc35c4
vim-patch:8.2.0234: message test fails on SunOS
Problem: Message test fails on SunOS.
Solution: Adjust expectation for printf "%p". (Ozaki Kiichi, closesvim/vim#5595)
d5b9914938
vim-patch:8.2.2149: popupwin test for latin1 sometimes fails
Problem: Popupwin test for latin1 sometimes fails.
Solution: Wait for the script to finish.
4c5bdb99ad
vim-patch:8.2.2150: Github actions CI isn't used for all available platforms
Problem: Github actions CI isn't used for all available platforms.
Solution: Update the github workflows. (Ozaki Kiichi, closesvim/vim#7433)
8ea05de6aa
vim-patch:8.2.2151: $dir not expanded when configure checks for moonjit
Problem: $dir not expanded when configure checks for moonjit.
Solution: Use double quotes instead of single quotes. (closesvim/vim#7478)
a79a8944da
vim-patch:8.2.2153: popupwin test for latin1 still fails sometimes
Problem: Popupwin test for latin1 still fails sometimes.
Solution: Wait for the "cat" command to finish.
b125b535bb
vim-patch:8.2.2154: popupwin test for terminal buffer fails sometimes
Problem: Popupwin test for terminal buffer fails sometimes.
Solution: Wait for the prompt to appear.
0353f56ddb
Problem: Session sets the local 'scrolloff' value to the global value.
Solution: Do not let restoring the global option value change the local
value.
388908352f
Since 1c3ca4f18f, 2c1d12d0be, #7836, the "unix" and "slash" behavior
of 'sessionoptions'/'viewoptions' is always enabled, and the flags are
just ignored. There is no reason for that behavior to be configurable.
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>