use std::os::raw::c_char;
#[link(name="alpm")]
extern {
fn vsnprintf(s: *mut c_char, num: usize,fmt: *mut i32, args: va_list::VaList) -> i32;
}
pub unsafe fn vsn_printf(fmt: *mut c_char, args: va_list::VaList) -> String{
let mut buf = vec![0;300];
println!("0] {}", cstr!(fmt));
let mut test_buf = [0;666];
let len = vsnprintf(fmt, 0, test_buf.as_mut_ptr(), args) as usize;
println!("1] {}", len);
if len > buf.len(){
buf = vec![0;len + 1].into();
}
println!("2] {}", len);
cstr!(buf.as_mut_ptr() as *mut c_char).to_string()
}