diff --git a/ndk/platforms/android-20/include/locale.h b/ndk/platforms/android-20/include/locale.h index b6dbfdbb5..4efc5643b 100644 --- a/ndk/platforms/android-20/include/locale.h +++ b/ndk/platforms/android-20/include/locale.h @@ -51,12 +51,41 @@ enum { extern char* setlocale(int, const char*); -#if !defined(__LP64__) -// TODO: LP32 had these bogus declarations but LP64 should have a real struct lconv and localeconv(3). +#if defined(__LP64__) +struct lconv { + char* decimal_point; + char* thousands_sep; + char* grouping; + char* int_curr_symbol; + char* currency_symbol; + char* mon_decimal_point; + char* mon_thousands_sep; + char* mon_grouping; + char* positive_sign; + char* negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; + /* ISO-C99 */ + char int_p_cs_precedes; + char int_p_sep_by_space; + char int_n_cs_precedes; + char int_n_sep_by_space; + char int_p_sign_posn; + char int_n_sign_posn; +}; +#else +// Keep old declaration for ILP32 for compatibility struct lconv { }; -struct lconv* localeconv(void); #endif +struct lconv* localeconv(void); + __END_DECLS #endif /* _LOCALE_H_ */