Loading...
--- fix_grouping.c.orig 2009-11-09 15:05:25.000000000 -0800 +++ fix_grouping.c 2009-11-09 15:05:25.000000000 -0800 @@ -31,7 +31,8 @@ __FBSDID("$FreeBSD: src/lib/libc/locale/ #include <limits.h> #include <stddef.h> -static const char nogrouping[] = { CHAR_MAX, '\0' }; +static const char nogrouping[] = { '\0' }; +static const char __nogrouping[] = { CHAR_MAX, '\0' }; /* * Internal helper used to convert grouping sequences from string @@ -84,3 +85,14 @@ __fix_locale_grouping_str(const char *st *dst = '\0'; return str; } + +/* + * internal helpers for SUSv3 compatibility. Since "nogrouping" needs to + * be just an empty string, we provide a routine to substitute __nogrouping + * so we don't have to modify code that expects CHAR_MAX. + */ +__private_extern__ const char * +__fix_nogrouping(const char *str) +{ + return ((str == NULL || *str == '\0') ? __nogrouping : str); +} |