guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MinGW vs. setlocale


From: Eli Zaretskii
Subject: Re: MinGW vs. setlocale
Date: Sat, 21 Jun 2014 14:17:58 +0300

Ping!  Can the changes below please be committed?  Should I do that
myself?

TIA

> Date: Sun, 15 Jun 2014 20:23:17 +0300
> From: Eli Zaretskii <address@hidden>
> CC: address@hidden
> 
> Here are the changes I needed for i18n.c to get the tests to succeed.
> They have to do with non-portable assumptions about when the various
> nl_langinfo constants are defined.  E.g., there's no reason to assume
> that if INT_FRAC_DIGITS isn't defined, neither will be FRAC_DIGITS.
> As luck would have it, MinGW has some of these, but not the others, so
> the conditionals failed, and Guile failed to convert P_SIGN_POSN to
> one of the symbolic values, instead leaving it at its numerical value.
> 
> --- libguile/i18n.c~2 2014-06-15 14:21:53 +0300
> +++ libguile/i18n.c   2014-06-15 14:58:09 +0300
> @@ -1583,9 +1583,13 @@ SCM_DEFINE (scm_nl_langinfo, "nl-langinf
>         }
>  #endif
>  
> -#if (defined FRAC_DIGITS) && (defined INT_FRAC_DIGITS)
> +#if defined FRAC_DIGITS || defined INT_FRAC_DIGITS
> +#ifdef FRAC_DIGITS
>       case FRAC_DIGITS:
> +#endif
> +#ifdef INT_FRAC_DIGITS
>       case INT_FRAC_DIGITS:
> +#endif
>         /* This is to be interpreted as a single integer.  */
>         if (*c_result == CHAR_MAX)
>           /* Unspecified.  */
> @@ -1597,12 +1601,18 @@ SCM_DEFINE (scm_nl_langinfo, "nl-langinf
>         break;
>  #endif
>  
> -#if (defined P_CS_PRECEDES) && (defined INT_N_CS_PRECEDES)
> +#if defined P_CS_PRECEDES || defined N_CS_PRECEDES ||        \
> +  defined INT_P_CS_PRECEDES || defined INT_N_CS_PRECEDES || \
> +  defined P_SEP_BY_SPACE || defined N_SEP_BY_SPACE
> +#ifdef P_CS_PRECEDES
>       case P_CS_PRECEDES:
>       case N_CS_PRECEDES:
> +#endif
> +#ifdef INT_N_CS_PRECEDES
>       case INT_P_CS_PRECEDES:
>       case INT_N_CS_PRECEDES:
> -#if (defined P_SEP_BY_SPACE) && (defined N_SEP_BY_SPACE)
> +#endif
> +#ifdef P_SEP_BY_SPACE
>       case P_SEP_BY_SPACE:
>       case N_SEP_BY_SPACE:
>  #endif
> @@ -1613,11 +1623,16 @@ SCM_DEFINE (scm_nl_langinfo, "nl-langinf
>         break;
>  #endif
>  
> -#if (defined P_SIGN_POSN) && (defined INT_N_SIGN_POSN)
> +#if defined P_SIGN_POSN || defined N_SIGN_POSN || \
> +  defined INT_P_SIGN_POSN || defined INT_N_SIGN_POSN
> +#ifdef P_SIGN_POSN
>       case P_SIGN_POSN:
>       case N_SIGN_POSN:
> +#endif
> +#ifdef INT_P_SIGN_POSN
>       case INT_P_SIGN_POSN:
>       case INT_N_SIGN_POSN:
> +#endif
>         /* See `(libc) Sign of Money Amount' for the interpretation of the
>            return value here.  */
>         switch (*c_result)
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]