1/* stdc.h -- macros to make source compile on both ANSI C and K&R C 2 compilers. */ 3 4/* Copyright (C) 1993 Free Software Foundation, Inc. 5 6 This file is part of GNU Bash, the Bourne Again SHell. 7 8 Bash is free software; you can redistribute it and/or modify it 9 under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2, or (at your option) 11 any later version. 12 13 Bash is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 16 License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with Bash; see the file COPYING. If not, write to the Free 20 Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 21 22#if !defined (_STDC_H_) 23#define _STDC_H_ 24 25/* Adapted from BSD /usr/include/sys/cdefs.h. */ 26 27/* A function can be defined using prototypes and compile on both ANSI C 28 and traditional C compilers with something like this: 29 extern char *func __P((char *, char *, int)); */ 30 31#if !defined (__P) 32# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus) || defined (PROTOTYPES) 33# define __P(protos) protos 34# else 35# define __P(protos) () 36# endif 37#endif 38 39#if defined (HAVE_STRINGIZE) 40# define __STRING(x) #x 41#else 42# define __STRING(x) "x" 43#endif 44 45#if !defined (__STDC__) 46 47#if defined (__GNUC__) /* gcc with -traditional */ 48# if !defined (signed) 49# define signed __signed 50# endif 51# if !defined (volatile) 52# define volatile __volatile 53# endif 54#else /* !__GNUC__ */ 55# if !defined (inline) 56# define inline 57# endif 58# if !defined (signed) 59# define signed 60# endif 61# if !defined (volatile) 62# define volatile 63# endif 64#endif /* !__GNUC__ */ 65 66#endif /* !__STDC__ */ 67 68#ifndef __attribute__ 69# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) 70# define __attribute__(x) 71# endif 72#endif 73 74/* For those situations when gcc handles inlining a particular function but 75 other compilers complain. */ 76#ifdef __GNUC__ 77# define INLINE inline 78#else 79# define INLINE 80#endif 81 82#if defined (PREFER_STDARG) 83# define SH_VA_START(va, arg) va_start(va, arg) 84#else 85# define SH_VA_START(va, arg) va_start(va) 86#endif 87 88#endif /* !_STDC_H_ */ 89