diff options
author | Florian Weimer <fweimer@redhat.com> | 2015-03-06 10:26:58 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2015-03-06 10:26:58 +0100 |
commit | d176a41a62cad5cee4541176077380a84c0f49d7 (patch) | |
tree | f5673579958482c1ef6466ac716d135bfdbf0207 | |
parent | 7e7af3496ee4b13366726546dd8b712a698fa5c4 (diff) | |
download | glibc-d176a41a62cad5cee4541176077380a84c0f49d7.zip glibc-d176a41a62cad5cee4541176077380a84c0f49d7.tar.gz glibc-d176a41a62cad5cee4541176077380a84c0f49d7.tar.bz2 |
vfprintf: Introduce THOUSANDS_SEP_T
This avoids preprocessor conditionals in function declarations.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | stdio-common/vfprintf.c | 23 |
2 files changed, 10 insertions, 18 deletions
@@ -1,3 +1,8 @@ +2015-03-06 Florian Weimer <fweimer@redhat.com> + + * stdio-common/vfprintf.c (THOUSANDS_SEP_T): New typedef. + (group_number, vfprintf): Use it. + 2015-03-06 Rical Jasan <ricaljasan@pacific.net> * manual/errno.texi (Error Messages): Complete example function diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index a41449d..d575994 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -81,6 +81,7 @@ # define CHAR_T char # define UCHAR_T unsigned char # define INT_T int +typedef const char *THOUSANDS_SEP_T; # define L_(Str) Str # define ISDIGIT(Ch) ((unsigned int) ((Ch) - '0') < 10) # define STR_LEN(Str) strlen (Str) @@ -108,6 +109,7 @@ /* This is a hack!!! There should be a type uwchar_t. */ # define UCHAR_T unsigned int /* uwchar_t */ # define INT_T wint_t +typedef wchar_t THOUSANDS_SEP_T; # define L_(Str) L##Str # define ISDIGIT(Ch) ((unsigned int) ((Ch) - L'0') < 10) # define STR_LEN(Str) __wcslen (Str) @@ -207,25 +209,15 @@ static int printf_unknown (FILE *, const struct printf_info *, const void *const *) __THROW; /* Group digits of number string. */ -#ifdef COMPILE_WPRINTF -static CHAR_T *group_number (CHAR_T *, CHAR_T *, const char *, wchar_t) - __THROW internal_function; -#else -static CHAR_T *group_number (CHAR_T *, CHAR_T *, const char *, const char *) +static CHAR_T *group_number (CHAR_T *, CHAR_T *, const char *, THOUSANDS_SEP_T) __THROW internal_function; -#endif - /* The function itself. */ int vfprintf (FILE *s, const CHAR_T *format, va_list ap) { /* The character used as thousands separator. */ -#ifdef COMPILE_WPRINTF - wchar_t thousands_sep = L'\0'; -#else - const char *thousands_sep = NULL; -#endif + THOUSANDS_SEP_T thousands_sep = 0; /* The string describing the size of groups of digits. */ const char *grouping; @@ -2150,12 +2142,7 @@ printf_unknown (FILE *s, const struct printf_info *info, static CHAR_T * internal_function group_number (CHAR_T *w, CHAR_T *rear_ptr, const char *grouping, -#ifdef COMPILE_WPRINTF - wchar_t thousands_sep -#else - const char *thousands_sep -#endif - ) + THOUSANDS_SEP_T thousands_sep) { int len; CHAR_T *src, *s; |