Skip to content

Commit dd8931a

Browse files
committed
BUG: Wrong "global session" label when saving tab session for the first time.
The problem is that xolox#session#get_label() determines the tab-scope through xolox#session#is_tab_scoped(), which checks the existence of t:this_session. But before the save of a tab-scoped session, this variable hasn't been set yet, and therefore it yields the wrong label "global session"! All places that invoke xolox#session#get_label() in fact already determine the scope themselves, so let's scrap the logic and just pass in the boolean flag as an additional is_tab_scoped argument. This eliminates any risk that the message contradicts what's actually happening, and it's simpler, too.
1 parent cfc5bdf commit dd8931a

1 file changed

Lines changed: 6 additions & 12 deletions

File tree

autoload/xolox/session.vim

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ function! xolox#session#auto_save() " {{{2
366366
if !empty(name)
367367
let is_tab_scoped = xolox#session#is_tab_scoped()
368368
let msg = "Do you want to save your %s before quitting Vim?"
369-
if s:prompt(printf(msg, xolox#session#get_label(name)), ['&Yes', '&No'], 'g:session_autosave') == 1
369+
if s:prompt(printf(msg, xolox#session#get_label(name, is_tab_scoped)), ['&Yes', '&No'], 'g:session_autosave') == 1
370370
if is_tab_scoped
371371
call xolox#session#save_tab_cmd(name, '', 'SaveTabSession')
372372
else
@@ -496,7 +496,7 @@ function! xolox#session#save_cmd(name, bang, command) abort " {{{2
496496
else
497497
call s:last_session_persist(name)
498498
call s:flush_session()
499-
let label = xolox#session#get_label(name)
499+
let label = xolox#session#get_label(name, !xolox#session#include_tabs())
500500
call xolox#misc#timer#stop("session.vim %s: Saved %s in %s.", g:xolox#session#version, label, starttime)
501501
call xolox#misc#msg#info("session.vim %s: Saved %s to %s.", g:xolox#session#version, label, friendly_path)
502502
if xolox#session#include_tabs()
@@ -535,7 +535,7 @@ function! xolox#session#close_cmd(bang, silent, save_allowed, command) abort " {
535535
if name != ''
536536
if a:save_allowed
537537
let msg = "Do you want to save your current %s before closing it?"
538-
let label = xolox#session#get_label(name)
538+
let label = xolox#session#get_label(name, !is_all_tabs)
539539
if s:prompt(printf(msg, label), ['&Yes', '&No'], 'g:session_autosave') == 1
540540
call xolox#session#save_cmd(name, a:bang, a:command)
541541
endif
@@ -573,7 +573,7 @@ function! xolox#session#close_cmd(bang, silent, save_allowed, command) abort " {
573573
call s:flush_session()
574574
if !a:silent
575575
let msg = "session.vim %s: Closed %s."
576-
let label = xolox#session#get_label(xolox#session#find_current_session())
576+
let label = xolox#session#get_label(xolox#session#find_current_session(), !is_all_tabs)
577577
call xolox#misc#msg#info(msg, g:xolox#session#version, label)
578578
endif
579579
if xolox#session#is_tab_scoped()
@@ -743,14 +743,8 @@ function! xolox#session#find_current_session() " {{{2
743743
return xolox#session#path_to_name(pathname)
744744
endfunction
745745

746-
function! xolox#session#get_label(name) " {{{2
747-
if xolox#session#is_tab_scoped()
748-
let name = xolox#session#path_to_name(t:this_session)
749-
if a:name == name
750-
return printf('tab scoped session %s', string(a:name))
751-
endif
752-
endif
753-
return printf('global session %s', string(a:name))
746+
function! xolox#session#get_label(name, is_tab_scoped) " {{{2
747+
return printf('%s session %s', a:is_tab_scoped ? 'tab scoped' : 'global', string(a:name))
754748
endfunction
755749

756750
function! xolox#session#options_include(value) " {{{2

0 commit comments

Comments
 (0)