1+ -- -
2+ source : c2rust - transpile / tests / snapshots .rs
3+ expression : cat tests / snapshots / main .rs
4+ input_file : c2rust - transpile / tests / snapshots / main .c
5+ -- -
6+ #! [allow (
7+ dead_code ,
8+ non_camel_case_types ,
9+ non_snake_case ,
10+ non_upper_case_globals ,
11+ unused_assignments ,
12+ unused_mut
13+ )]
14+ unsafe fn main_0 (
15+ mut argc : ::core ::ffi ::c_int ,
16+ mut argv : * mut * mut ::core ::ffi ::c_char ,
17+ mut envp : * mut * mut ::core ::ffi ::c_char ,
18+ ) - > ::core ::ffi ::c_int {
19+ return 0 as ::core ::ffi ::c_int ;
20+ }
21+ pub fn main () {
22+ let mut args_strings: Vec <Vec <u8 >> = ::std ::env ::args ()
23+ .map (| arg | {
24+ ::std::ffi ::CString ::new (arg )
25+ .expect (" Failed to convert argument into CString." )
26+ .into_bytes_with_nul ()
27+ })
28+ .collect ();
29+ let mut args_ptrs: Vec <*mut ::core ::ffi ::c_char > = args_strings
30+ .iter_mut ()
31+ .map (| arg | arg .as_mut_ptr () as *mut ::core ::ffi ::c_char )
32+ .chain (::core ::iter ::once (::core ::ptr ::null_mut ()))
33+ .collect ();
34+ let mut vars: Vec <*mut ::core ::ffi ::c_char > = Vec ::new ();
35+ for (var_name , var_value ) in ::std ::env ::vars () {
36+ let var: String = format ! (" {}={}" , var_name , var_value );
37+ vars .push (
38+ ::std ::ffi ::CString ::new (var )
39+ .expect (" Failed to convert environment variable into CString." )
40+ .into_raw (),
41+ );
42+ }
43+ vars .push (::core ::ptr ::null_mut ());
44+ unsafe {
45+ ::std ::process ::exit (main_0 (
46+ (args_ptrs .len () - 1 ) as ::core ::ffi ::c_int ,
47+ args_ptrs .as_mut_ptr () as *mut *mut ::core ::ffi ::c_char ,
48+ vars .as_mut_ptr () as *mut *mut ::core ::ffi ::c_char ,
49+ ) as i32 )
50+ }
51+ }
0 commit comments