[pypy-commit] pyrepl default: split keymap creation from EventQueue
RonnyPfannschmidt
noreply at buildbot.pypy.org
Thu May 3 18:10:43 CEST 2012
Author: Ronny Pfannschmidt <Ronny.Pfannschmidt at gmx.de>
Branch:
Changeset: r189:3ca3f2b26ee3
Date: 2012-05-03 17:58 +0200
http://bitbucket.org/pypy/pyrepl/changeset/3ca3f2b26ee3/
Log: split keymap creation from EventQueue
diff --git a/pyrepl/unix_eventqueue.py b/pyrepl/unix_eventqueue.py
--- a/pyrepl/unix_eventqueue.py
+++ b/pyrepl/unix_eventqueue.py
@@ -52,18 +52,29 @@
"up" : "kcuu1",
}
-class EventQueue(object):
- def __init__(self, fd, encoding):
- our_keycodes = {}
- for key, tiname in _keynames.items():
- keycode = curses.tigetstr(tiname)
- trace('key {key} tiname {tiname} keycode {keycode!r}', **locals())
- if keycode:
- our_keycodes[keycode] = key
- if os.isatty(fd):
- our_keycodes[tcgetattr(fd)[6][VERASE]] = unicode('backspace')
- self.k = self.ck = keymap.compile_keymap(our_keycodes)
- trace('keymap {k!r}', k=self.k)
+def general_keycodes():
+ keycodes = {}
+ for key, tiname in _keynames.items():
+ keycode = curses.tigetstr(tiname)
+ trace('key {key} tiname {tiname} keycode {keycode!r}', **locals())
+ if keycode:
+ keycodes[keycode] = key
+ return keycodes
+
+
+
+def EventQueue(fd, encoding):
+ keycodes = general_keycodes()
+ if os.isatty(fd):
+ backspace = tcgetattr(fd)[6][VERASE]
+ keycodes[backspace] = unicode('backspace')
+ k = keymap.compile_keymap(keycodes)
+ trace('keymap {k!r}', k=k)
+ return EncodedQueue(k, encoding)
+
+class EncodedQueue(object):
+ def __init__(self, keymap, encoding):
+ self.k = self.ck = keymap
self.events = []
self.buf = []
self.encoding=encoding
diff --git a/testing/test_unix_reader.py b/testing/test_unix_reader.py
--- a/testing/test_unix_reader.py
+++ b/testing/test_unix_reader.py
@@ -1,9 +1,8 @@
-from pyrepl.unix_eventqueue import EventQueue
+from pyrepl.unix_eventqueue import EncodedQueue
from pyrepl import curses
- at pytest.mark.xfail(run=False, reason='wtf segfault')
def test_simple():
- q = EventQueue(0, 'utf-8')
+ q = EncodedQueue({}, 'utf-8')
More information about the pypy-commit
mailing list