Show More
@@ -139,14 +139,24 b' class ReadlineNoRecord(object):' | |||||
139 | self._nested_level = 0 |
|
139 | self._nested_level = 0 | |
140 |
|
140 | |||
141 | def __enter__(self): |
|
141 | def __enter__(self): | |
|
142 | if self._nested_level == 0: | |||
|
143 | self.readline_tail = self.get_readline_tail() | |||
142 | self._nested_level += 1 |
|
144 | self._nested_level += 1 | |
143 |
|
145 | |||
144 | def __exit__(self, type, value, traceback): |
|
146 | def __exit__(self, type, value, traceback): | |
145 | self._nested_level -= 1 |
|
147 | self._nested_level -= 1 | |
146 | if self._nested_level == 0: |
|
148 | if self._nested_level == 0: | |
147 | self.shell.refill_readline_hist() |
|
149 | if self.get_readline_tail() != self.readline_tail: | |
|
150 | self.shell.refill_readline_hist() | |||
148 | # Returning False will cause exceptions to propagate |
|
151 | # Returning False will cause exceptions to propagate | |
149 | return False |
|
152 | return False | |
|
153 | ||||
|
154 | def get_readline_tail(self, n=10): | |||
|
155 | """Get the last n items in readline history.""" | |||
|
156 | end = self.shell.readline.get_current_history_length() + 1 | |||
|
157 | start = max(end-n, 1) | |||
|
158 | ghi = self.shell.readline.get_history_item | |||
|
159 | return [ghi(x) for x in range(start, end)] | |||
150 |
|
160 | |||
151 |
|
161 | |||
152 | #----------------------------------------------------------------------------- |
|
162 | #----------------------------------------------------------------------------- |
General Comments 0
You need to be logged in to leave comments.
Login now