From 84d5ee1480d105fd2e050894791824eb3dd22618 Mon Sep 17 00:00:00 2001 From: vds Date: Sun, 17 Aug 2008 12:29:22 +0200 Subject: [PATCH] Solve the tab-emulation bug. --- pyreadline/modes/basemode.py | 1 + pyreadline/modes/emacs.py | 6 +++++- pyreadline/modes/notemacs.py | 6 +++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pyreadline/modes/basemode.py b/pyreadline/modes/basemode.py index 1d4ff64..a450190 100644 --- a/pyreadline/modes/basemode.py +++ b/pyreadline/modes/basemode.py @@ -25,6 +25,7 @@ class BaseMode(object): self.key_dispatch = {} self.argument=1 self.prevargument=None + self.tabstop = 4 # vds def __repr__(self): return "" diff --git a/pyreadline/modes/emacs.py b/pyreadline/modes/emacs.py index b29a7b8..802716e 100644 --- a/pyreadline/modes/emacs.py +++ b/pyreadline/modes/emacs.py @@ -283,7 +283,11 @@ class EmacsMode(basemode.BaseMode): def tab_insert(self, e): # (M-TAB) '''Insert a tab character. ''' - ws = ' ' * (self.tabstop - (self.line_cursor%self.tabstop)) + # vds: >> + line_cursor = len(self.l_buffer) + ws = ' ' * (self.tabstop - (line_cursor%self.tabstop)) + #ws = ' ' * (self.tabstop - (self.line_cursor%self.tabstop)) + # vds: << self.insert_text(ws) def transpose_chars(self, e): # (C-t) diff --git a/pyreadline/modes/notemacs.py b/pyreadline/modes/notemacs.py index 539e3a0..a6a4c9f 100644 --- a/pyreadline/modes/notemacs.py +++ b/pyreadline/modes/notemacs.py @@ -272,7 +272,11 @@ class NotEmacsMode(basemode.BaseMode): def tab_insert(self, e): # (M-TAB) '''Insert a tab character. ''' - ws = ' ' * (self.tabstop - (self.line_cursor%self.tabstop)) + # vds: >> + line_cursor = len(self.l_buffer) + ws = ' ' * (self.tabstop - (line_cursor%self.tabstop)) + #ws = ' ' * (self.tabstop - (self.line_cursor%self.tabstop)) + # vds: << self.insert_text(ws) def self_insert(self, e): # (a, b, A, 1, !, ...)