##// END OF EJS Templates
don't try to replace history when rl history unchanged...
Julian Taylor -
Show More
@@ -233,6 +233,11 b' class TerminalInteractiveShell(InteractiveShell):'
233 233 """Store multiple lines as a single entry in history"""
234 234 if self.multiline_history and self.has_readline and source_raw.rstrip():
235 235 hlen = self.readline.get_current_history_length()
236
237 # nothing changed do nothing, e.g. when rl removes consecutive dups
238 if self.hlen_before_cell == hlen:
239 return
240
236 241 for i in range(hlen - self.hlen_before_cell):
237 242 self.readline.remove_history_item(hlen - i - 1)
238 243 stdin_encoding = sys.stdin.encoding or "utf-8"
@@ -73,12 +73,13 b' class InteractiveShellTestCase(unittest.TestCase):'
73 73
74 74 #start cell
75 75 ip.hlen_before_cell = ip.readline.get_current_history_length()
76 # nothing added to rl history, should do nothing
76 77 ip._replace_rlhist_multiline(u'sourc€\nsource2')
77 78
78 79 self.assertEquals(ip.readline.get_current_history_length(),
79 80 ip.hlen_before_cell)
80 hist = self.rl_hist_entries(ip.readline, 3)
81 self.assertEquals(hist, ghist + ['sourc€\nsource2'])
81 hist = self.rl_hist_entries(ip.readline, 2)
82 self.assertEquals(hist, ghist)
82 83
83 84
84 85 @skipif(not get_ipython().has_readline, 'no readline')
General Comments 0
You need to be logged in to leave comments. Login now