##// END OF EJS Templates
Merge pull request #1003 from takluyver/refill-readline-dedup...
Fernando Perez -
r5347:5e714073 merge
parent child Browse files
Show More
@@ -1794,16 +1794,20 b' class InteractiveShell(SingletonConfigurable, Magic):'
1794 # Load the last 1000 lines from history
1794 # Load the last 1000 lines from history
1795 self.readline.clear_history()
1795 self.readline.clear_history()
1796 stdin_encoding = sys.stdin.encoding or "utf-8"
1796 stdin_encoding = sys.stdin.encoding or "utf-8"
1797 last_cell = u""
1797 for _, _, cell in self.history_manager.get_tail(1000,
1798 for _, _, cell in self.history_manager.get_tail(1000,
1798 include_latest=True):
1799 include_latest=True):
1799 if cell.strip(): # Ignore blank lines
1800 # Ignore blank lines and consecutive duplicates
1801 cell = cell.rstrip()
1802 if cell and (cell != last_cell):
1800 if self.multiline_history:
1803 if self.multiline_history:
1801 self.readline.add_history(py3compat.unicode_to_str(cell.rstrip(),
1804 self.readline.add_history(py3compat.unicode_to_str(cell,
1802 stdin_encoding))
1805 stdin_encoding))
1803 else:
1806 else:
1804 for line in cell.splitlines():
1807 for line in cell.splitlines():
1805 self.readline.add_history(py3compat.unicode_to_str(line,
1808 self.readline.add_history(py3compat.unicode_to_str(line,
1806 stdin_encoding))
1809 stdin_encoding))
1810 last_cell = cell
1807
1811
1808 def set_next_input(self, s):
1812 def set_next_input(self, s):
1809 """ Sets the 'default' input string for the next command line.
1813 """ Sets the 'default' input string for the next command line.
@@ -1815,9 +1819,7 b' class InteractiveShell(SingletonConfigurable, Magic):'
1815 [D:\ipython]|1> _ip.set_next_input("Hello Word")
1819 [D:\ipython]|1> _ip.set_next_input("Hello Word")
1816 [D:\ipython]|2> Hello Word_ # cursor is here
1820 [D:\ipython]|2> Hello Word_ # cursor is here
1817 """
1821 """
1818 if isinstance(s, unicode):
1822 self.rl_next_input = py3compat.cast_bytes_py2(s)
1819 s = s.encode(self.stdin_encoding, 'replace')
1820 self.rl_next_input = s
1821
1823
1822 # Maybe move this to the terminal subclass?
1824 # Maybe move this to the terminal subclass?
1823 def pre_readline(self):
1825 def pre_readline(self):
@@ -197,7 +197,13 b' class IPythonWidget(FrontendWidget):'
197 # reset retry flag
197 # reset retry flag
198 self._retrying_history_request = False
198 self._retrying_history_request = False
199 history_items = content['history']
199 history_items = content['history']
200 items = [ line.rstrip() for _, _, line in history_items ]
200 items = []
201 last_cell = u""
202 for _, _, cell in history_items:
203 cell = cell.rstrip()
204 if cell != last_cell:
205 items.append(cell)
206 last_cell = cell
201 self._set_history(items)
207 self._set_history(items)
202
208
203 def _handle_pyout(self, msg):
209 def _handle_pyout(self, msg):
General Comments 0
You need to be logged in to leave comments. Login now