va_list-rs 0.0.4

Library to handle va_list
Documentation
extern crate libc;
#[macro_use] extern crate va_list;

use libc::{c_char, c_int};

extern "C" {
    fn vprintf(f: *const c_char, v: va_list::va_list) -> c_int;
}

#[test]
fn test1() {
    unsafe {
        to_va_list!(|v: va_list::va_list| {
            vprintf(b"%d %d\n\0".as_ptr() as *const c_char, v);
        }, 1 as c_int, 2 as c_int);
        to_va_list!(|v: va_list::va_list| {
            vprintf(b"%d %d %d\n\0".as_ptr() as *const c_char, v);
        }, 1 as c_int, 2 as c_int, 3 as c_int);
        to_va_list!(|v: va_list::va_list| {
            vprintf(b"%d %d %d %d\n\0".as_ptr() as *const c_char, v);
        }, 1 as c_int, 2 as c_int, 3 as c_int, 4 as c_int);
        to_va_list!(|v: va_list::va_list| {
            vprintf(b"%d %d %d %d %d\n\0".as_ptr() as *const c_char, v);
        }, 1 as c_int, 2 as c_int, 3 as c_int, 4 as c_int, 5 as c_int);
    }
}

#[test]
fn no_args() {
    unsafe {
        to_va_list!(|v: va_list::va_list| {
            vprintf(b"test\n\0".as_ptr() as *const c_char, v);
        });
    }
}

#[cfg(all(target_os = "windows", target_env = "msvc"))]
mod platform {
    #[link(name = "legacy_stdio_definitions")] extern {}
}