diff --git a/libguile/chars.c b/libguile/chars.c index 56239f597..552a2d9c1 100644 --- a/libguile/chars.c +++ b/libguile/chars.c @@ -363,7 +363,7 @@ static const scm_t_uint32 const scm_alt_charnums[] = { const char * scm_i_charname (SCM chr) { - int c; + size_t c; scm_t_uint32 i = SCM_CHAR (chr); for (c = 0; c < SCM_N_R5RS_CHARNAMES; c++) @@ -385,7 +385,7 @@ scm_i_charname (SCM chr) SCM scm_i_charname_to_char (const char *charname, size_t charname_len) { - int c; + size_t c; /* The R5RS charnames. These are supposed to be case insensitive. */ diff --git a/libguile/chars.h b/libguile/chars.h index e016cb28e..51adc21e5 100644 --- a/libguile/chars.h +++ b/libguile/chars.h @@ -32,9 +32,9 @@ #define SCM_CHARP(x) (SCM_ITAG8(x) == scm_tc8_char) #define SCM_CHAR(x) ((scm_t_wchar)SCM_ITAG8_DATA(x)) -#define SCM_MAKE_CHAR(x) \ - ((x) < 0 \ - ? SCM_MAKE_ITAG8 ((scm_t_bits) (unsigned char) (x), scm_tc8_char) \ +#define SCM_MAKE_CHAR(x) \ + ((scm_t_int32) (x) < 0 \ + ? SCM_MAKE_ITAG8 ((scm_t_bits) (unsigned char) (x), scm_tc8_char) \ : SCM_MAKE_ITAG8 ((scm_t_bits) (x), scm_tc8_char)) #define SCM_CODEPOINT_MAX (0x10ffff)