70 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* The <ansi.h> header attempts to decide whether the compiler has enough
 | |
|  * conformance to Standard C for Minix to take advantage of.  If so, the
 | |
|  * symbol _ANSI is defined (as 31459).  Otherwise _ANSI is not defined
 | |
|  * here, but it may be defined by applications that want to bend the rules.
 | |
|  * The magic number in the definition is to inhibit unnecessary bending
 | |
|  * of the rules.  (For consistency with the new '#ifdef _ANSI" tests in
 | |
|  * the headers, _ANSI should really be defined as nothing, but that would
 | |
|  * break many library routines that use "#if _ANSI".)
 | |
| 
 | |
|  * If _ANSI ends up being defined, a macro
 | |
|  *
 | |
|  *	_PROTOTYPE(function, params)
 | |
|  *
 | |
|  * is defined.  This macro expands in different ways, generating either
 | |
|  * ANSI Standard C prototypes or old-style K&R (Kernighan & Ritchie)
 | |
|  * prototypes, as needed.  Finally, some programs use _CONST, _VOIDSTAR etc
 | |
|  * in such a way that they are portable over both ANSI and K&R compilers.
 | |
|  * The appropriate macros are defined here.
 | |
|  */
 | |
| 
 | |
| #ifndef _ANSI_H
 | |
| #define _ANSI_H
 | |
| 
 | |
| #if __STDC__ == 1
 | |
| #define _ANSI		31459	/* compiler claims full ANSI conformance */
 | |
| #endif
 | |
| 
 | |
| #ifdef __GNUC__
 | |
| #define _ANSI		31459	/* gcc conforms enough even in non-ANSI mode */
 | |
| #endif
 | |
| 
 | |
| #ifdef _ANSI
 | |
| 
 | |
| /* Keep everything for ANSI prototypes. */
 | |
| #define	_PROTOTYPE(function, params)	function params
 | |
| #define	_ARGS(params)			params
 | |
| 
 | |
| #define	_VOIDSTAR	void *
 | |
| #define	_VOID		void
 | |
| #define	_CONST		const
 | |
| #define	_VOLATILE	volatile
 | |
| #define _SIZET		size_t
 | |
| 
 | |
| #else
 | |
| 
 | |
| /* Throw away the parameters for K&R prototypes. */
 | |
| #define	_PROTOTYPE(function, params)	function()
 | |
| #define	_ARGS(params)			()
 | |
| 
 | |
| #define	_VOIDSTAR	void *
 | |
| #define	_VOID		void
 | |
| #define	_CONST
 | |
| #define	_VOLATILE
 | |
| #define _SIZET		int
 | |
| 
 | |
| #endif /* _ANSI */
 | |
| 
 | |
| /* This should be defined as restrict when a C99 compiler is used. */
 | |
| #define _RESTRICT
 | |
| 
 | |
| /* Setting any of _MINIX, _POSIX_C_SOURCE or _POSIX2_SOURCE implies
 | |
|  * _POSIX_SOURCE.  (Seems wrong to put this here in ANSI space.)
 | |
|  */
 | |
| #if defined(_MINIX) || _POSIX_C_SOURCE > 0 || defined(_POSIX2_SOURCE)
 | |
| #undef _POSIX_SOURCE
 | |
| #define _POSIX_SOURCE	1
 | |
| #endif
 | |
| 
 | |
| #endif /* ANSI_H */
 | 
