aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/fallback.h
diff options
context:
space:
mode:
authorGravatar Kurtis Rader <krader@skepticism.us>2016-05-18 17:46:13 -0700
committerGravatar Kurtis Rader <krader@skepticism.us>2016-05-19 18:42:34 -0700
commit46be5ac468db923bd3d19c55638b723aa760cd4e (patch)
tree44726156923b2243b946e11101242e543656de76 /src/fallback.h
parent30ea7cc3f8a5d56ad30dc749ea374363c15f312a (diff)
make fish buildable on OS X Snow Leopard
I noticed that the `test_convert()` function was randomly failing when run on OS X Snow Leopard. I tracked it down to the `mbrtowc()` function on that OS being broken. Explicitly testing for UTF-8 prefixes that identify a sequence longer than four bytes (which the Unicode standard made illegal long ago) keeps us from having encoding errors on those OS's. This also makes the errors reported by the `test_convert()` function actually useful and readable. Lastly, it makes it possible to build fish on OS X Snow Leopard.
Diffstat (limited to 'src/fallback.h')
-rw-r--r--src/fallback.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/fallback.h b/src/fallback.h
index b28e7b17..a3143f09 100644
--- a/src/fallback.h
+++ b/src/fallback.h
@@ -62,13 +62,20 @@ char *tparm_solaris_kludge(char *str, ...);
/// these functions only exist on 10.7+.
///
/// On other platforms, use what's detected at build time.
-#if __APPLE__ && __DARWIN_C_LEVEL >= 200809L
+#if __APPLE__
+#if __DARWIN_C_LEVEL >= 200809L
wchar_t *wcsdup_use_weak(const wchar_t *);
int wcscasecmp_use_weak(const wchar_t *, const wchar_t *);
int wcsncasecmp_use_weak(const wchar_t *s1, const wchar_t *s2, size_t n);
#define wcsdup(a) wcsdup_use_weak((a))
#define wcscasecmp(a, b) wcscasecmp_use_weak((a), (b))
#define wcsncasecmp(a, b, c) wcsncasecmp_use_weak((a), (b), (c))
+#else
+wchar_t *wcsdup(const wchar_t *in);
+int wcscasecmp(const wchar_t *a, const wchar_t *b);
+int wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n);
+wchar_t *wcsndup(const wchar_t *in, size_t c);
+#endif
#endif //__APPLE__
#ifndef HAVE_WCSNDUP