File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -62,15 +62,27 @@ def _restore_term_title():
6262 pass
6363
6464
65+ _xterm_term_title_saved = False
66+
67+
6568def _set_term_title_xterm (title ):
6669 """ Change virtual terminal title in xterm-workalikes """
67- # save the current title to the xterm "stack"
68- sys .stdout .write ('\033 [22;0t' )
70+ global _xterm_term_title_saved
71+ # Only save the title the first time we set, otherwise restore will only
72+ # go back one title (probably undoing a %cd title change).
73+ if not _xterm_term_title_saved :
74+ # save the current title to the xterm "stack"
75+ sys .stdout .write ('\033 [22;0t' )
76+ _xterm_term_title_saved = True
6977 sys .stdout .write ('\033 ]0;%s\007 ' % title )
7078
7179
7280def _restore_term_title_xterm ():
81+ # Make sure the restore has at least one accompanying set.
82+ global _xterm_term_title_saved
83+ assert _xterm_term_title_saved
7384 sys .stdout .write ('\033 [23;0t' )
85+ _xterm_term_title_saved = False
7486
7587
7688if os .name == 'posix' :
You can’t perform that action at this time.
0 commit comments