1 ! Copyright (C) 2011 Erik Charlebois.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.strings destructors io.encodings.utf8 kernel libc
4 sequences macros quotations words compiler.units fry
5 alien.data alien.libraries ;
6 QUALIFIED: readline.ffi
9 : readline ( prompt -- str )
11 readline.ffi:readline [
12 |free utf8 alien>string [
13 [ readline.ffi:add_history ] unless-empty
18 : current-line ( -- str )
19 readline.ffi:rl_line_buffer ;
21 : has-readline? ( -- ? )
22 "readline" dup load-library dlsym-raw >boolean ;
24 : set-completion ( quot -- )
27 [ @ [ utf8 malloc-string ] [ f ] if* ]
28 readline.ffi:rl_compentry_func_t
29 ] ( -- alien ) define-temp
30 ] with-compilation-unit execute( -- alien )
31 readline.ffi:set-rl_completion_entry_function ;