readline: change to create alien at run-time. Fixes #254.

db4
John Benediktsson 2011-10-13 13:24:56 -07:00
parent 4baf14972f
commit a80d176720
2 changed files with 8 additions and 8 deletions

View File

@ -4,7 +4,6 @@ USING: accessors alien.data fry io io.encodings.utf8 kernel
listener namespaces readline sequences threads vocabs listener namespaces readline sequences threads vocabs
command-line vocabs.hierarchy sequences.deep locals command-line vocabs.hierarchy sequences.deep locals
splitting math ; splitting math ;
QUALIFIED: readline.ffi
IN: readline-listener IN: readline-listener
<PRIVATE <PRIVATE

View File

@ -18,13 +18,14 @@ IN: readline
: current-line ( -- str ) : current-line ( -- str )
readline.ffi:rl_line_buffer ; readline.ffi:rl_line_buffer ;
: has-readline ( -- ? ) : has-readline? ( -- ? )
"readline" dup load-library dlsym-raw >boolean ; "readline" dup load-library dlsym-raw >boolean ;
MACRO: set-completion ( quot -- ) : set-completion ( quot -- )
[ [
'[ @ [ utf8 malloc-string ] [ f ] if* ] '[
'[ _ readline.ffi:rl_compentry_func_t ] [ @ [ utf8 malloc-string ] [ f ] if* ]
(( -- alien )) define-temp readline.ffi:rl_compentry_func_t
] with-compilation-unit execute ] (( -- alien )) define-temp
'[ _ readline.ffi:set-rl_completion_entry_function ] ; ] with-compilation-unit execute( -- alien )
readline.ffi:set-rl_completion_entry_function ;