@@ -967,7 +967,8 @@ def p_key(self, key):
967967 return ""
968968
969969 elif key in key_dispatch [config .clear_screen_key ]:
970- self .s_hist = [self .s_hist [- 1 ]]
970+ # clear all but current line
971+ self .screen_hist = [self .screen_hist [- 1 ]]
971972 self .highlighted_paren = None
972973 self .redraw ()
973974 return ""
@@ -1099,7 +1100,7 @@ def prompt(self, more):
10991100 self .stdout_hist += self .ps1
11001101 else :
11011102 self .stdout_hist += self .ps1 .encode (getpreferredencoding ())
1102- self .s_hist .append (
1103+ self .screen_hist .append (
11031104 "\x01 %s\x03 %s\x04 "
11041105 % (self .config .color_scheme ["prompt" ], self .ps1 )
11051106 )
@@ -1110,7 +1111,7 @@ def prompt(self, more):
11101111 self .stdout_hist += self .ps2
11111112 else :
11121113 self .stdout_hist += self .ps2 .encode (getpreferredencoding ())
1113- self .s_hist .append (
1114+ self .screen_hist .append (
11141115 "\x01 %s\x03 %s\x04 " % (prompt_more_color , self .ps2 )
11151116 )
11161117
@@ -1128,15 +1129,15 @@ def push(self, s, insert_into_history=True):
11281129 curses .raw (True )
11291130
11301131 def redraw (self ):
1131- """Redraw the screen. """
1132+ """Redraw the screen using screen_hist """
11321133 self .scr .erase ()
1133- for k , s in enumerate (self .s_hist ):
1134+ for k , s in enumerate (self .screen_hist ):
11341135 if not s :
11351136 continue
11361137 self .iy , self .ix = self .scr .getyx ()
11371138 for i in s .split ("\x04 " ):
11381139 self .echo (i , redraw = False )
1139- if k < len (self .s_hist ) - 1 :
1140+ if k < len (self .screen_hist ) - 1 :
11401141 self .scr .addstr ("\n " )
11411142 self .iy , self .ix = self .scr .getyx ()
11421143 self .print_line (self .s )
@@ -1175,7 +1176,7 @@ def repl(self):
11751176 return self .exit_value
11761177
11771178 self .history .append (inp )
1178- self .s_hist [- 1 ] += self .f_string
1179+ self .screen_hist [- 1 ] += self .f_string
11791180 if py3 :
11801181 self .stdout_hist += inp + "\n "
11811182 else :
@@ -1234,7 +1235,7 @@ def reevaluate(self):
12341235 self .f_string = ""
12351236 self .buffer = []
12361237 self .scr .erase ()
1237- self .s_hist = []
1238+ self .screen_hist = []
12381239 # Set cursor position to -1 to prevent paren matching
12391240 self .cpos = - 1
12401241
@@ -1247,7 +1248,7 @@ def reevaluate(self):
12471248 else :
12481249 self .stdout_hist += line .encode (getpreferredencoding ()) + "\n "
12491250 self .print_line (line )
1250- self .s_hist [- 1 ] += self .f_string
1251+ self .screen_hist [- 1 ] += self .f_string
12511252 # I decided it was easier to just do this manually
12521253 # than to make the print_line and history stuff more flexible.
12531254 self .scr .addstr ("\n " )
@@ -1288,7 +1289,7 @@ def write(self, s):
12881289 self .stdout_hist += t
12891290
12901291 self .echo (s )
1291- self .s_hist .append (s .rstrip ())
1292+ self .screen_hist .append (s .rstrip ())
12921293
12931294 def show_list (
12941295 self , items , arg_pos , topline = None , formatter = None , current_item = None
@@ -1551,7 +1552,7 @@ def send_current_line_to_editor(self):
15511552 self .stdout_hist += line .encode (getpreferredencoding ()) + "\n "
15521553 self .history .append (line )
15531554 self .print_line (line )
1554- self .s_hist [- 1 ] += self .f_string
1555+ self .screen_hist [- 1 ] += self .f_string
15551556 self .scr .addstr ("\n " )
15561557 self .more = self .push (line )
15571558 self .prompt (self .more )
0 commit comments