@@ -178,140 +178,9 @@ pub type intptr_t = isize;
178178pub type uintptr_t = usize ;
179179pub type ssize_t = isize ;
180180
181- pub enum FILE { }
182- pub enum fpos_t { } // TODO: fill this out with a struct
183-
184181pub const INT_MIN : c_int = -2147483648 ;
185182pub const INT_MAX : c_int = 2147483647 ;
186183
187- extern "C" {
188- pub fn isalnum ( c : c_int ) -> c_int ;
189- pub fn isalpha ( c : c_int ) -> c_int ;
190- pub fn iscntrl ( c : c_int ) -> c_int ;
191- pub fn isdigit ( c : c_int ) -> c_int ;
192- pub fn isgraph ( c : c_int ) -> c_int ;
193- pub fn islower ( c : c_int ) -> c_int ;
194- pub fn isprint ( c : c_int ) -> c_int ;
195- pub fn ispunct ( c : c_int ) -> c_int ;
196- pub fn isspace ( c : c_int ) -> c_int ;
197- pub fn isupper ( c : c_int ) -> c_int ;
198- pub fn isxdigit ( c : c_int ) -> c_int ;
199- pub fn tolower ( c : c_int ) -> c_int ;
200- pub fn toupper ( c : c_int ) -> c_int ;
201-
202- #[ cfg_attr(
203- all( target_os = "macos" , target_arch = "x86" ) ,
204- link_name = "fopen$UNIX2003"
205- ) ]
206- pub fn fopen ( filename : * const c_char , mode : * const c_char ) -> * mut FILE ;
207- #[ cfg_attr(
208- all( target_os = "macos" , target_arch = "x86" ) ,
209- link_name = "freopen$UNIX2003"
210- ) ]
211- pub fn freopen ( filename : * const c_char , mode : * const c_char , file : * mut FILE ) -> * mut FILE ;
212- pub fn fflush ( file : * mut FILE ) -> c_int ;
213- pub fn fclose ( file : * mut FILE ) -> c_int ;
214- pub fn remove ( filename : * const c_char ) -> c_int ;
215- pub fn rename ( oldname : * const c_char , newname : * const c_char ) -> c_int ;
216- pub fn tmpfile ( ) -> * mut FILE ;
217- pub fn setvbuf ( stream : * mut FILE , buffer : * mut c_char , mode : c_int , size : size_t ) -> c_int ;
218- pub fn setbuf ( stream : * mut FILE , buf : * mut c_char ) ;
219- pub fn getchar ( ) -> c_int ;
220- pub fn putchar ( c : c_int ) -> c_int ;
221- pub fn fgetc ( stream : * mut FILE ) -> c_int ;
222- pub fn fgets ( buf : * mut c_char , n : c_int , stream : * mut FILE ) -> * mut c_char ;
223- pub fn fputc ( c : c_int , stream : * mut FILE ) -> c_int ;
224- #[ cfg_attr(
225- all( target_os = "macos" , target_arch = "x86" ) ,
226- link_name = "fputs$UNIX2003"
227- ) ]
228- pub fn fputs ( s : * const c_char , stream : * mut FILE ) -> c_int ;
229- pub fn puts ( s : * const c_char ) -> c_int ;
230- pub fn ungetc ( c : c_int , stream : * mut FILE ) -> c_int ;
231- pub fn fread ( ptr : * mut c_void , size : size_t , nobj : size_t , stream : * mut FILE ) -> size_t ;
232- #[ cfg_attr(
233- all( target_os = "macos" , target_arch = "x86" ) ,
234- link_name = "fwrite$UNIX2003"
235- ) ]
236- pub fn fwrite ( ptr : * const c_void , size : size_t , nobj : size_t , stream : * mut FILE ) -> size_t ;
237- pub fn fseek ( stream : * mut FILE , offset : c_long , whence : c_int ) -> c_int ;
238- pub fn ftell ( stream : * mut FILE ) -> c_long ;
239- pub fn rewind ( stream : * mut FILE ) ;
240- #[ cfg_attr( target_os = "netbsd" , link_name = "__fgetpos50" ) ]
241- pub fn fgetpos ( stream : * mut FILE , ptr : * mut fpos_t ) -> c_int ;
242- #[ cfg_attr( target_os = "netbsd" , link_name = "__fsetpos50" ) ]
243- pub fn fsetpos ( stream : * mut FILE , ptr : * const fpos_t ) -> c_int ;
244- pub fn feof ( stream : * mut FILE ) -> c_int ;
245- pub fn ferror ( stream : * mut FILE ) -> c_int ;
246- pub fn perror ( s : * const c_char ) ;
247- pub fn atoi ( s : * const c_char ) -> c_int ;
248- #[ cfg_attr(
249- all( target_os = "macos" , target_arch = "x86" ) ,
250- link_name = "strtod$UNIX2003"
251- ) ]
252- pub fn strtod ( s : * const c_char , endp : * mut * mut c_char ) -> c_double ;
253- pub fn strtol ( s : * const c_char , endp : * mut * mut c_char , base : c_int ) -> c_long ;
254- pub fn strtoul ( s : * const c_char , endp : * mut * mut c_char , base : c_int ) -> c_ulong ;
255- pub fn calloc ( nobj : size_t , size : size_t ) -> * mut c_void ;
256- pub fn malloc ( size : size_t ) -> * mut c_void ;
257- pub fn realloc ( p : * mut c_void , size : size_t ) -> * mut c_void ;
258- pub fn free ( p : * mut c_void ) ;
259- pub fn abort ( ) -> !;
260- pub fn exit ( status : c_int ) -> !;
261- pub fn _exit ( status : c_int ) -> !;
262- pub fn atexit ( cb : extern "C" fn ( ) ) -> c_int ;
263- #[ cfg_attr(
264- all( target_os = "macos" , target_arch = "x86" ) ,
265- link_name = "system$UNIX2003"
266- ) ]
267- pub fn system ( s : * const c_char ) -> c_int ;
268- pub fn getenv ( s : * const c_char ) -> * mut c_char ;
269-
270- pub fn strcpy ( dst : * mut c_char , src : * const c_char ) -> * mut c_char ;
271- pub fn strncpy ( dst : * mut c_char , src : * const c_char , n : size_t ) -> * mut c_char ;
272- pub fn strcat ( s : * mut c_char , ct : * const c_char ) -> * mut c_char ;
273- pub fn strncat ( s : * mut c_char , ct : * const c_char , n : size_t ) -> * mut c_char ;
274- pub fn strcmp ( cs : * const c_char , ct : * const c_char ) -> c_int ;
275- pub fn strncmp ( cs : * const c_char , ct : * const c_char , n : size_t ) -> c_int ;
276- pub fn strcoll ( cs : * const c_char , ct : * const c_char ) -> c_int ;
277- pub fn strchr ( cs : * const c_char , c : c_int ) -> * mut c_char ;
278- pub fn strrchr ( cs : * const c_char , c : c_int ) -> * mut c_char ;
279- pub fn strspn ( cs : * const c_char , ct : * const c_char ) -> size_t ;
280- pub fn strcspn ( cs : * const c_char , ct : * const c_char ) -> size_t ;
281- pub fn strdup ( cs : * const c_char ) -> * mut c_char ;
282- pub fn strpbrk ( cs : * const c_char , ct : * const c_char ) -> * mut c_char ;
283- pub fn strstr ( cs : * const c_char , ct : * const c_char ) -> * mut c_char ;
284- pub fn strlen ( cs : * const c_char ) -> size_t ;
285- pub fn strnlen ( cs : * const c_char , maxlen : size_t ) -> size_t ;
286- #[ cfg_attr(
287- all( target_os = "macos" , target_arch = "x86" ) ,
288- link_name = "strerror$UNIX2003"
289- ) ]
290- pub fn strerror ( n : c_int ) -> * mut c_char ;
291- pub fn strtok ( s : * mut c_char , t : * const c_char ) -> * mut c_char ;
292- pub fn strxfrm ( s : * mut c_char , ct : * const c_char , n : size_t ) -> size_t ;
293- pub fn wcslen ( buf : * const wchar_t ) -> size_t ;
294- pub fn wcstombs ( dest : * mut c_char , src : * const wchar_t , n : size_t ) -> :: size_t ;
295-
296- pub fn memchr ( cx : * const c_void , c : c_int , n : size_t ) -> * mut c_void ;
297- pub fn memcmp ( cx : * const c_void , ct : * const c_void , n : size_t ) -> c_int ;
298- pub fn memcpy ( dest : * mut c_void , src : * const c_void , n : size_t ) -> * mut c_void ;
299- pub fn memmove ( dest : * mut c_void , src : * const c_void , n : size_t ) -> * mut c_void ;
300- pub fn memset ( dest : * mut c_void , c : c_int , n : size_t ) -> * mut c_void ;
301- }
302-
303- // These are all inline functions on android, so they end up just being entirely
304- // missing on that platform.
305-
306- #[ cfg( not( target_os = "android" ) ) ]
307- extern "C" {
308- pub fn abs ( i : c_int ) -> c_int ;
309- pub fn atof ( s : * const c_char ) -> c_double ;
310- pub fn labs ( i : c_long ) -> c_long ;
311- pub fn rand ( ) -> c_int ;
312- pub fn srand ( seed : c_uint ) ;
313- }
314-
315184cfg_if ! {
316185 if #[ cfg( windows) ] {
317186 mod windows;
0 commit comments