diff --git a/lib/printf/printf-pos.c b/lib/printf/printf-pos.c index 7f83dea1aa..c66f4d1a06 100644 --- a/lib/printf/printf-pos.c +++ b/lib/printf/printf-pos.c @@ -214,6 +214,7 @@ addaster(struct typetable *types, char **fmtp) return (0); } +#ifdef WCHAR_SUPPORT static inline int addwaster(struct typetable *types, wchar_t **fmtp) { @@ -239,6 +240,7 @@ addwaster(struct typetable *types, wchar_t **fmtp) } return (0); } +#endif /* WCHAR_SUPPORT */ /* * Find all arguments when a positional parameter is encountered. Returns a @@ -437,6 +439,7 @@ error: return (error || *argtable == NULL); } +#ifdef WCHAR_SUPPORT /* wchar version of __find_arguments. */ int __find_warguments (const wchar_t *fmt0, va_list ap, union arg **argtable) @@ -627,6 +630,7 @@ error: freetypes(&types); return (error || *argtable == NULL); } +#endif /* WCHAR_SUPPORT */ /* * Increase the size of the type table. Returns 0 on success. diff --git a/lib/printf/printflocal.h b/lib/printf/printflocal.h index 70131d10fd..5860c5c04e 100644 --- a/lib/printf/printflocal.h +++ b/lib/printf/printflocal.h @@ -93,4 +93,6 @@ union arg { /* Handle positional parameters. */ int __find_arguments(const char *, va_list, union arg **); +#ifdef WCHAR_SUPPORT int __find_warguments(const wchar_t *, va_list, union arg **); +#endif diff --git a/lib/printf/vfprintf.c b/lib/printf/vfprintf.c index 8c26c2f7c5..7374a03e73 100644 --- a/lib/printf/vfprintf.c +++ b/lib/printf/vfprintf.c @@ -73,11 +73,10 @@ struct __suio { #include "printflocal.h" -static char *__wcsconv(wchar_t *, int); - #define CHAR char #include "printfcommon.h" +#ifdef WCHAR_SUPPORT /* * Convert a wide character string argument for the %ls format to a multibyte * string representation. If not -1, prec specifies the maximum number of @@ -136,6 +135,7 @@ __wcsconv(wchar_t *wcsarg, int prec) convbuf[nbytes] = '\0'; return (convbuf); } +#endif /* WCHAR_SUPPORT */ /* * The size of the buffer we use as scratch space for integer @@ -412,6 +412,7 @@ reswitch: switch (ch) { flags |= LONGINT; /*FALLTHROUGH*/ case 'c': +#ifdef WCHAR_SUPPORT if (flags & LONGINT) { static const mbstate_t initial; mbstate_t mbs; @@ -424,7 +425,9 @@ reswitch: switch (ch) { goto error; } size = (int)mbseqlen; - } else { + } else +#endif /* WCHAR_SUPPORT */ + { *(cp = buf) = GETARG(int); size = 1; } @@ -542,6 +545,7 @@ reswitch: switch (ch) { flags |= LONGINT; /*FALLTHROUGH*/ case 's': +#ifdef WCHAR_SUPPORT if (flags & LONGINT) { wchar_t *wcp; @@ -556,7 +560,9 @@ reswitch: switch (ch) { } cp = convbuf; } - } else if ((cp = GETARG(char *)) == NULL) + } else +#endif + if ((cp = GETARG(char *)) == NULL) cp = "(null)"; size = (prec >= 0) ? strnlen(cp, prec) : strlen(cp); sign = '\0';