r79169 - pyrepl/trunk/pyrepl/pyrepl

[email protected] Wed, 17 Nov 2010 00:24:47 +0100 (CET)
Newsgroups gmane.comp.python.pyrepl.checkins
Message-ID <[email protected]>
Author: agaynor
Date: Wed Nov 17 00:24:46 2010
New Revision: 79169

Modified:
   pyrepl/trunk/pyrepl/pyrepl/readline.py
Log:
Added an of implementation of readline.get_{beg,end}idx.


Modified: pyrepl/trunk/pyrepl/pyrepl/readline.py
==============================================================================
--- pyrepl/trunk/pyrepl/pyrepl/readline.py	(original)
+++ pyrepl/trunk/pyrepl/pyrepl/readline.py	Wed Nov 17 00:24:46 2010
@@ -285,6 +285,22 @@
     def get_line_buffer(self):
         return self.get_reader().get_buffer()
 
+    def _get_idxs(self):
+        start = cursor = self.get_reader().pos
+        buf = self.get_line_buffer()
+        for i in xrange(cursor - 1, -1, -1):
+            if buf[i] in self.get_completer_delims():
+                break
+            start = i
+        return start, cursor
+
+    def get_begidx(self):
+        return self._get_idxs()[0]
+
+    def get_endidx(self):
+        return self._get_idxs()[1]
+
+
 _wrapper = _ReadlineWrapper()
 
 # ____________________________________________________________
@@ -307,6 +323,8 @@
 add_history = _wrapper.add_history
 set_startup_hook = _wrapper.set_startup_hook
 get_line_buffer = _wrapper.get_line_buffer
+get_begidx = _wrapper.get_begidx
+get_endidx = _wrapper.get_endidx
 
 # Extension
 multiline_input = _wrapper.multiline_input
@@ -329,8 +347,6 @@
     ('read_init_file', None),
     ('redisplay', None),
     ('set_pre_input_hook', None),
-    ('get_begidx', 0),
-    ('get_endidx', 0),
     ]:
     assert _name not in globals(), _name
     _make_stub(_name, _ret)