From 0d6e42ef4e54339f13d6895756add438b9d27e6a Mon Sep 17 00:00:00 2001 From: vds Date: Sun, 17 Aug 2008 21:06:25 +0200 Subject: [PATCH] Improve tab insertion to be sure it works in the middle of a line. --- pyreadline/modes/emacs.py | 5 ++--- pyreadline/modes/notemacs.py | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pyreadline/modes/emacs.py b/pyreadline/modes/emacs.py index 802716e..44ec75d 100644 --- a/pyreadline/modes/emacs.py +++ b/pyreadline/modes/emacs.py @@ -284,9 +284,8 @@ class EmacsMode(basemode.BaseMode): def tab_insert(self, e): # (M-TAB) '''Insert a tab character. ''' # vds: >> - line_cursor = len(self.l_buffer) - ws = ' ' * (self.tabstop - (line_cursor%self.tabstop)) - #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)) # vds: << self.insert_text(ws) diff --git a/pyreadline/modes/notemacs.py b/pyreadline/modes/notemacs.py index a6a4c9f..60ddea7 100644 --- a/pyreadline/modes/notemacs.py +++ b/pyreadline/modes/notemacs.py @@ -273,9 +273,8 @@ class NotEmacsMode(basemode.BaseMode): def tab_insert(self, e): # (M-TAB) '''Insert a tab character. ''' # vds: >> - line_cursor = len(self.l_buffer) - ws = ' ' * (self.tabstop - (line_cursor%self.tabstop)) - #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)) # vds: << self.insert_text(ws)