forked from pixie-lang/pixie
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreadline.py
More file actions
25 lines (19 loc) · 819 Bytes
/
readline.py
File metadata and controls
25 lines (19 loc) · 819 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import py
from rpython.rtyper.lltypesystem import lltype, rffi
from rpython.rtyper.lltypesystem.lloperation import llop
from rpython.translator import cdir
from rpython.translator.tool.cbuild import ExternalCompilationInfo
# ____________________________________________________________
srcdir = py.path.local(cdir) / 'src'
compilation_info = ExternalCompilationInfo(
includes=['readline/readline.h'],
libraries=["readline"])
def llexternal(*args, **kwargs):
return rffi.llexternal(*args, compilation_info=compilation_info, **kwargs)
__readline = llexternal('readline', [rffi.CCHARP], rffi.CCHARP)
def _readline(prompt):
result = __readline(rffi.str2charp(prompt))
if result == lltype.nullptr(rffi.CCHARP.TO):
return u""
else:
return unicode(rffi.charp2str(result))