diff --git a/doc/ChangeLog b/doc/ChangeLog index 02be9a4..730a5fe 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2008-08-25 Jörgen Stenarson + * Merging tab insert patch from Vivian De Smedt. Removed comments + with vds initials. + 2008-02-21 Jörgen Stenarson * unicodehelper functions now defaults to ascii if supplied pyreadline_encoding is not a valid encoding. This is a brute force solution to ticket #228 it fixes diff --git a/pyreadline/modes/emacs.py b/pyreadline/modes/emacs.py index 11ac2fb..ee45531 100644 --- a/pyreadline/modes/emacs.py +++ b/pyreadline/modes/emacs.py @@ -347,7 +347,8 @@ class EmacsMode(DigitArgumentMode, IncrementalSearchPromptMode, SearchPromptMode def tab_insert(self, e): # (M-TAB) '''Insert a tab character. ''' - ws = ' ' * (self.tabstop - (self.l_buffer.point%self.tabstop)) + cursor = min(self.l_buffer.point, len(self.l_buffer.line_buffer)) + ws = ' ' * (self.tabstop - (cursor % self.tabstop)) self.insert_text(ws) self.finalize() diff --git a/pyreadline/modes/notemacs.py b/pyreadline/modes/notemacs.py index 539e3a0..67b2efa 100644 --- a/pyreadline/modes/notemacs.py +++ b/pyreadline/modes/notemacs.py @@ -272,7 +272,8 @@ class NotEmacsMode(basemode.BaseMode): def tab_insert(self, e): # (M-TAB) '''Insert a tab character. ''' - ws = ' ' * (self.tabstop - (self.line_cursor%self.tabstop)) + cursor = min(self.l_buffer.point, len(self.l_buffer.line_buffer)) + ws = ' ' * (self.tabstop - (cursor % self.tabstop)) self.insert_text(ws) def self_insert(self, e): # (a, b, A, 1, !, ...)