diff options
Diffstat (limited to 'scmfig.h')
| -rw-r--r-- | scmfig.h | 111 | 
1 files changed, 78 insertions, 33 deletions
| @@ -15,26 +15,26 @@   * the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111, USA.   *   * As a special exception, the Free Software Foundation gives permission - * for additional uses of the text contained in its release of GUILE. + * for additional uses of the text contained in its release of SCM.   * - * The exception is that, if you link the GUILE library with other files + * The exception is that, if you link the SCM library with other files   * to produce an executable, this does not by itself cause the   * resulting executable to be covered by the GNU General Public License.   * Your use of that executable is in no way restricted on account of - * linking the GUILE library code into it. + * linking the SCM library code into it.   *   * This exception does not however invalidate any other reasons why   * the executable file might be covered by the GNU General Public License.   *   * This exception applies only to the code released by the - * Free Software Foundation under the name GUILE.  If you copy + * Free Software Foundation under the name SCM.  If you copy   * code from other Free Software Foundation releases into a copy of - * GUILE, as the General Public License permits, the exception does + * SCM, as the General Public License permits, the exception does   * not apply to the code that you add in this way.  To avoid misleading   * anyone as to the status of such modified files, you must delete   * this exception notice from them.   * - * If you write modifications of your own for GUILE, it is your choice + * If you write modifications of your own for SCM, it is your choice   * whether to permit this exception to apply to your modifications.   * If you do not wish that, delete this exception notice.   */ @@ -47,7 +47,9 @@  # define strchr index  # define strrchr rindex  #else -# include <string.h> +# ifndef PLAN9 +#  include <string.h> +# endif  #endif  #include "scmflags.h"		/* user specified, system independent flags */ @@ -106,7 +108,7 @@ rgx.c	init_rgx();	regcomp and regexec. */  #  define CDR_DOUBLES  # endif -# ifdef _UNICOS          /* doubles are no better than singles on Cray. */ +# ifdef _UNICOS		/* doubles are no better than singles on Cray. */  #  define SINGLESONLY  # endif @@ -211,7 +213,7 @@ rgx.c	init_rgx();	regcomp and regexec. */  #endif  /* added by Denys Duchier */  #ifndef SVR4 -# ifdef __svr4__ +# ifdef __SVR4  #  define SVR4  # endif  #endif @@ -262,6 +264,7 @@ rgx.c	init_rgx();	regcomp and regexec. */  #endif  #ifdef _WIN32  # define MSDOS +# define LACK_SBRK  # define LACK_TIMES  #endif  #ifdef _MSDOS @@ -297,13 +300,17 @@ rgx.c	init_rgx();	regcomp and regexec. */  # define STDC_HEADERS  # define USE_ANSI_PROTOTYPES  # define HAVE_SYS_TIME_H -# define __svr4__ +# define __SVR4  #endif -#ifdef __svr4__ +#ifdef __SVR4  # define HAVE_SELECT  #endif +#ifdef PLAN9 +# define STDC_HEADERS +#endif +  #ifdef hpux  # define LACK_E_IDs  #endif @@ -312,6 +319,7 @@ rgx.c	init_rgx();	regcomp and regexec. */  #ifdef __IBMC__  # define STDC_HEADERS  # define LACK_TIMES +# define LACK_SBRK  #endif  #ifdef __CYGWIN32__ @@ -321,7 +329,7 @@ rgx.c	init_rgx();	regcomp and regexec. */  # undef MSDOS  #endif -#ifdef __amigados__ +#ifdef __amigaos__  # define HAVE_SELECT  # define HAVE_SYS_TIME_H  # define LACK_SBRK @@ -409,26 +417,26 @@ rgx.c	init_rgx();	regcomp and regexec. */  # define ALLOW_INTS_EGC /**/  #else  # ifdef CAREFUL_INTS -typedef struct {char *fname; long linum;} ints_infot; +typedef struct {char *fname; int linum;} ints_infot;  extern ints_infot *ints_info;  #  define VERIFY_INTS(s1, s2) {if (!ints_disabled)\ -     ints_warn(s1, s2, __FILE__,__LINE__); } +     ints_warn(s1, s2, __FILE__, __LINE__); }  #  define DEFER_INTS \     {static ints_infot info = {__FILE__, __LINE__};\       FENCE;if (1==ints_disabled) ints_viol(&info, 1);\ -           else {ints_info = &info; ints_disabled = 1;FENCE;}} +	   else {ints_info = &info; ints_disabled = 1;FENCE;}}  #  define ALLOW_INTS \     {static ints_infot info = {__FILE__, __LINE__};\      FENCE;if (1!=ints_disabled) ints_viol(&info, 0);\ -          else {ints_info = &info; ints_disabled = 0;FENCE;CHECK_INTS}} +	  else {ints_info = &info; ints_disabled = 0;FENCE;CHECK_INTS}}  #  define DEFER_INTS_EGC \     {static ints_infot info = {__FILE__, __LINE__};\      FENCE;if (1==ints_disabled) ints_viol(&info, 1);\ -          else {ints_info = &info; ints_disabled = 2;FENCE;}} +	  else {ints_info = &info; ints_disabled = 2;FENCE;}}  #  define ALLOW_INTS_EGC \     {static ints_infot info = {__FILE__, __LINE__};\      FENCE;if (1==ints_disabled) ints_viol(&info, 0);\ -          else {ints_info = &info; ints_disabled = 0;FENCE;CHECK_INTS}} +	  else {ints_info = &info; ints_disabled = 0;FENCE;CHECK_INTS}}  # else  #  define VERIFY_INTS(s1, s2) /**/  #  define DEFER_INTS {FENCE;ints_disabled = 1;FENCE;} @@ -462,8 +470,14 @@ extern ints_infot *ints_info;  # define PTR2SCM(x) (((SCM)(x)) << 3)  # define POINTERS_MUNGED  #else -# define SCM2PTR(x) (x) -# define PTR2SCM(x) ((SCM)(x)) +# ifdef TEST_SCM2PTR +#  define SCM2PTR(x) ((x) ^ 0xf0L) +#  define PTR2SCM(x) (((SCM)(x)) ^ 0xf0L) +#  define POINTERS_MUNGED +# else +#  define SCM2PTR(x) (x) +#  define PTR2SCM(x) ((SCM)(x)) +# endif  #endif  /* FIXABLE is non-null if its long argument can be encoded in an INUM. */ @@ -576,7 +590,9 @@ extern ints_infot *ints_info;  #ifdef FLOATS  # ifdef STDC_HEADERS  #  ifndef macintosh -#   include <float.h> +#   ifndef PLAN9 +#    include <float.h> +#   endif  #  endif  # endif  # ifdef DBL_MAX_10_EXP @@ -597,12 +613,19 @@ extern ints_infot *ints_info;  # endif  #endif -/* Only some machines have pipes */ +#ifdef unix +# define HAVE_UNIX +#endif +#ifdef __unix__ +# define HAVE_UNIX +#endif  #ifdef _IBMR2 -# define unix +# define HAVE_UNIX  # define STDC_HEADERS  #endif -#ifdef unix + +/* Only some machines have pipes */ +#ifdef HAVE_UNIX    /* DJGPP (gcc for i386) defines unix! */  # define HAVE_PIPE  #endif @@ -644,12 +667,20 @@ typedef SCM  *SCMPTR;  # endif  #endif +#define PTR_GT(x, y) PTR_LT(y, x) +#define PTR_LE(x, y) (!PTR_GT(x, y)) +#define PTR_GE(x, y) (!PTR_LT(x, y)) +  #ifdef STDC_HEADERS -# include <stdlib.h> -# ifdef AMIGA -#  include <stddef.h> +# ifdef PLAN9 +#  define sizet long +# else +#  include <stdlib.h> +#  ifdef AMIGA +#   include <stddef.h> +#  endif +#  define sizet size_t  # endif -# define sizet size_t  #else  # ifdef _SIZE_T  #  define sizet size_t @@ -665,7 +696,9 @@ typedef SCM  *SCMPTR;  /* On VMS, GNU C's errno.h contains a special hack to get link attributes     for errno correct for linking with libc. */ -#include <errno.h> +#ifndef PLAN9 +# include <errno.h> +#endif  /* SYSCALL retries system calls that have been interrupted (EINTR) */  #ifdef vms @@ -691,15 +724,19 @@ typedef SCM  *SCMPTR;  #define SYSCALL(line) do{errno = 0;line}while(SCM_INTERRUPTED(errno))  #ifdef EMFILE -# define SCM_NEED_FDS(errno) (EMFILE==errno || ENFILE==errno) +# ifdef ENFILE +#  define SCM_NEED_FDS(errno) (EMFILE==errno || ENFILE==errno) +# else +#  define SCM_NEED_FDS(errno) (EMFILE==errno) +# endif  #else  # define SCM_NEED_FDS(errno) (0)  #endif  #define SCM_OPENCALL(line) {int gcs = 0;\ -                             while (!0) {errno = 0; if (line) break;\ -                             if (0==gcs++ && SCM_NEED_FDS(errno)) \ -                               gc_for_open_files();\ +			     while (!0) {errno = 0; if (line) break;\ +			     if (0==gcs++ && SCM_NEED_FDS(errno)) \ +			       gc_for_open_files();\  			      else if (!SCM_INTERRUPTED(errno)) break;}}  #ifndef MSDOS @@ -751,4 +788,12 @@ typedef SCM  *SCMPTR;  # define VOLATILE /**/  #endif +#ifdef _MSC_VER +				// Disable annoying warnings for: +# pragma warning (disable: 4102) // unreferenced label +# pragma warning (disable: 4018) // signed/unsigned mismatch +# pragma warning (disable: 4101) // unreferenced variables +# pragma warning (disable: 4244) // conversion from unsigned long to unsigned short +#endif +  /* end of automatic C pre-processor definitions */ | 
