diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2013-08-21 09:31:02 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2013-08-21 10:50:42 -0400 |
| commit | ffb6404c5ade3af113738c3cb72fd853e82a379e (patch) | |
| tree | 1d23b3e18b9b6da03291111a039cf3e9aca7f717 /src/libextra | |
| parent | 82a9abbf624daaaca0c9761ee1bea6097472975c (diff) | |
Adjust callbacks in the libraries for the new type of extern fns
cc #3678
Diffstat (limited to 'src/libextra')
| -rw-r--r-- | src/libextra/rl.rs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/libextra/rl.rs b/src/libextra/rl.rs index db87cf94641..09ef7f22be5 100644 --- a/src/libextra/rl.rs +++ b/src/libextra/rl.rs @@ -16,27 +16,31 @@ use std::libc::{c_char, c_int}; use std::local_data; use std::str; +#[cfg(stage0)] pub mod rustrt { use std::libc::{c_char, c_int}; - #[cfg(stage0)] - mod macro_hack { - #[macro_escape]; - macro_rules! externfn( - (fn $name:ident ($($arg_name:ident : $arg_ty:ty),*) $(-> $ret_ty:ty),*) => ( - extern { - fn $name($($arg_name : $arg_ty),*) $(-> $ret_ty),*; - } - ) - ) + extern { + fn linenoise(prompt: *c_char) -> *c_char; + fn linenoiseHistoryAdd(line: *c_char) -> c_int; + fn linenoiseHistorySetMaxLen(len: c_int) -> c_int; + fn linenoiseHistorySave(file: *c_char) -> c_int; + fn linenoiseHistoryLoad(file: *c_char) -> c_int; + fn linenoiseSetCompletionCallback(callback: *u8); + fn linenoiseAddCompletion(completions: *(), line: *c_char); } +} + +#[cfg(not(stage0))] +pub mod rustrt { + use std::libc::{c_char, c_int}; externfn!(fn linenoise(prompt: *c_char) -> *c_char) externfn!(fn linenoiseHistoryAdd(line: *c_char) -> c_int) externfn!(fn linenoiseHistorySetMaxLen(len: c_int) -> c_int) externfn!(fn linenoiseHistorySave(file: *c_char) -> c_int) externfn!(fn linenoiseHistoryLoad(file: *c_char) -> c_int) - externfn!(fn linenoiseSetCompletionCallback(callback: *u8)) + externfn!(fn linenoiseSetCompletionCallback(callback: extern "C" fn(*i8, *()))) externfn!(fn linenoiseAddCompletion(completions: *(), line: *c_char)) } |
