diff --git a/src/bash.rs b/src/bash.rs index ba58921..b4699b7 100644 --- a/src/bash.rs +++ b/src/bash.rs @@ -1,6 +1,6 @@ -extern crate libc; +#![allow(non_camel_case_types, dead_code)] -// command.h +extern crate libc; #[repr(C)] pub struct word_desc { @@ -15,7 +15,7 @@ pub struct word_list { // general.h -type sh_builtin_func_t = extern fn (*mut word_list) -> libc::c_int; +pub type sh_builtin_func_t = extern fn (*mut word_list) -> libc::c_int; // builtins.h diff --git a/src/lib.rs b/src/lib.rs index d5cfb08..5dafb50 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,17 +1,20 @@ +#![feature(libc)] + extern crate libc; + mod bash; -extern fn builtin_lulz(args: *mut bash::word_list) -> libc::c_int { +extern fn builtin_lulz(_: *mut bash::word_list) -> libc::c_int { println!("lulz"); 0 } #[no_mangle] pub static mut lulz_struct: bash::builtin = bash::builtin { - name: &['l' as i8, 'u' as i8, 'l' as i8, 'z' as i8, 0 as i8] as *const i8, + name: b"lulz\0" as *const u8 as *const libc::c_char, function: builtin_lulz, flags: bash::BUILTIN_ENABLED, - long_doc: 0 as *const *const i8, - short_doc: &['l' as i8, 'o' as i8, 'l' as i8, 'w' as i8, 'u' as i8, 't' as i8, 0 as i8] as *const i8, + long_doc: 0 as *const *const libc::c_char, + short_doc: b"lolwut\0" as *const u8 as *const libc::c_char, handle: 0 as *const i8, };