diff options
author | Darren Tucker <dtucker@zip.com.au> | 2016-07-14 10:59:09 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2016-07-14 10:59:09 +1000 |
commit | a2333584170a565adf4f209586772ef8053b10b8 (patch) | |
tree | 37e1f144bdabc09b1ce89c2e6fe603bc8845e7c2 /openbsd-compat/openbsd-compat.h | |
parent | 8aaec7050614494014c47510b7e94daf6e644c62 (diff) |
Add compat code for missing wcwidth.
If we don't have wcwidth force fallback implementations of nl_langinfo
and mbtowc. Based on advice from Ingo Schwarze.
Diffstat (limited to 'openbsd-compat/openbsd-compat.h')
-rw-r--r-- | openbsd-compat/openbsd-compat.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index 8cc8a11b..997541e4 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -36,6 +36,8 @@ #include <sys/socket.h> +#include <stddef.h> /* for wchar_t */ + /* OpenBSD function replacements */ #include "base64.h" #include "sigact.h" @@ -231,6 +233,22 @@ long long strtonum(const char *, long long, long long, const char **); # define mblen(x, y) (1) #endif +#ifndef HAVE_WCWIDTH +# define wcwidth(x) (((x) >= 0x20 && (x) <= 0x7e) ? 1 : -1) +/* force our no-op nl_langinfo and mbtowc */ +# undef HAVE_NL_LANGINFO +# undef HAVE_MBTOWC +# undef HAVE_LANGINFO_H +#endif + +#ifndef HAVE_NL_LANGINFO +# define nl_langinfo(x) "" +#endif + +#ifndef HAVE_MBTOWC +int mbtowc(wchar_t *, const char*, size_t); +#endif + #if !defined(HAVE_VASPRINTF) || !defined(HAVE_VSNPRINTF) # include <stdarg.h> #endif |