summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Browning <rlb@defaultvalue.org>2003-03-26 00:00:58 +0000
committerRob Browning <rlb@defaultvalue.org>2003-03-26 00:00:58 +0000
commit353d4770e6ba63590054fbbaa9424e6c1cf5f76e (patch)
tree8af1afa7919e7e7e7b93e53bc5b163895326221d
parentcf00748508c435e2c9777cbfc9b0b0b5fc55502c (diff)
downloadguile-353d4770e6ba63590054fbbaa9424e6c1cf5f76e.tar.gz
* tags.h: move HAVE_STDINT_H handling to scmconfig.h. Move
HAVE_INTTYPES_H handling to scmconfig.h. #include "libguile/__scm.h". Rework handling for scm_t_bits, scm_t_signed_bits, SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX, SCM_T_SIGNED_BITS_MIN, and SIZEOF_SCM_T_BITS to use scm_t_intptr, scm_t_uintptr, SCM_SIZEOF_INTPTR_T, and SCM_SIZEOF_UINTPTR_T, and SCM_SIZEOF_UNSIGNED_LONG. Rename usage of HAVE_ARRAYS to SCM_HAVE_ARRAYS.
-rw-r--r--libguile/tags.h33
1 files changed, 15 insertions, 18 deletions
diff --git a/libguile/tags.h b/libguile/tags.h
index e8f6d117f..4b5a00cc3 100644
--- a/libguile/tags.h
+++ b/libguile/tags.h
@@ -50,34 +50,31 @@
** It is here that tag bits are assigned for various purposes.
**/
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-
-
+/* picks up scmconfig.h too */
+#include "libguile/__scm.h"
/* In the beginning was the Word:
*/
-#ifdef HAVE_UINTPTR_T
-typedef uintptr_t scm_t_bits;
-typedef intptr_t scm_t_signed_bits;
-#define SIZEOF_SCM_T_BITS SIZEOF_UINTPTR_T
-#define SCM_T_BITS_MAX UINTPTR_MAX
+#if SCM_SIZEOF_INTPTR_T != 0 && defined(INTPTR_MAX) && defined(INTPTR_MIN)
+typedef scm_t_intptr scm_t_signed_bits;
#define SCM_T_SIGNED_BITS_MAX INTPTR_MAX
#define SCM_T_SIGNED_BITS_MIN INTPTR_MIN
#else
-typedef unsigned long scm_t_bits;
typedef signed long scm_t_signed_bits;
-#define SIZEOF_SCM_T_BITS SIZEOF_LONG
-#define SCM_T_BITS_MAX ULONG_MAX
#define SCM_T_SIGNED_BITS_MAX LONG_MAX
#define SCM_T_SIGNED_BITS_MIN LONG_MIN
#endif
+#if SCM_SIZEOF_UINTPTR_T != 0 && defined(UINTPTR_MAX)
+typedef uintptr_t scm_t_bits;
+#define SIZEOF_SCM_T_BITS SCM_SIZEOF_UINTPTR_T
+#define SCM_T_BITS_MAX UINTPTR_MAX
+#else
+typedef unsigned long scm_t_bits;
+#define SIZEOF_SCM_T_BITS SCM_SIZEOF_UNSIGNED_LONG
+#define SCM_T_BITS_MAX ULONG_MAX
+#endif
+
/* But as external interface, we use SCM, which may, according to the desired
* level of type checking, be defined in several ways:
*/
@@ -333,7 +330,7 @@ typedef signed long scm_t_signed_bits;
*/
#define scm_tc7_pws 31
-#ifdef HAVE_ARRAYS
+#ifdef SCM_HAVE_ARRAYS
#define scm_tc7_llvect 29
#define scm_tc7_uvect 37
/* free 39 */