summaryrefslogtreecommitdiffstats
path: root/lib/printf
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2019-05-12 22:39:28 +0200
committerDavid Lamparter <equinox@diac24.net>2019-06-03 16:44:29 +0200
commite8c672ea8101c541f66e0959d526ae4f5a2a778d (patch)
treed569dabe52f936a2667ccb1a896c10d235a1e5bf /lib/printf
parentlib/printf: add %Ld/%Lu for int64_t/uint64_t (diff)
downloadfrr-e8c672ea8101c541f66e0959d526ae4f5a2a778d.tar.xz
frr-e8c672ea8101c541f66e0959d526ae4f5a2a778d.zip
lib/printf: disable wchar_t support
... we just don't use wchar_t in FRR, no point in having this enabled. Signed-off-by: David Lamparter <equinox@diac24.net>
Diffstat (limited to 'lib/printf')
-rw-r--r--lib/printf/printf-pos.c4
-rw-r--r--lib/printf/printflocal.h2
-rw-r--r--lib/printf/vfprintf.c14
3 files changed, 16 insertions, 4 deletions
diff --git a/lib/printf/printf-pos.c b/lib/printf/printf-pos.c
index 7f83dea1a..c66f4d1a0 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 70131d10f..5860c5c04 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 8c26c2f7c..7374a03e7 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';