summaryrefslogtreecommitdiff
path: root/src/cairo-misc.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2014-03-24 19:08:10 +1030
committerBryce Harrington <bryce@osg.samsung.com>2014-09-23 11:40:03 -0700
commit9a19ef185884da1e7d5344b301f48aa2ba0f88b6 (patch)
tree39f752f1e4746d2d9f601eebaf7af04d88812488 /src/cairo-misc.c
parenta02e29a12d82f177bdf99ed8cfd0c3b3b78c44da (diff)
downloadcairo-9a19ef185884da1e7d5344b301f48aa2ba0f88b6.tar.gz
Fix compilation with bionic libc
Refactor out a cairo_get_locale_decimal_point() routine to handle a case where localeconv() is not available. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=70492 Reviewed-by: Bryce Harrington <b.harrington@samsung.com> [edit: Condensed cairo_get_locale_decimal_point and conditionalized locale.h inclusion. -- bryce]
Diffstat (limited to 'src/cairo-misc.c')
-rw-r--r--src/cairo-misc.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/cairo-misc.c b/src/cairo-misc.c
index 7575d42ce..df8a4efc9 100644
--- a/src/cairo-misc.c
+++ b/src/cairo-misc.c
@@ -759,6 +759,24 @@ _cairo_half_from_float (float f)
}
}
+#ifndef __BIONIC__
+# include <locale.h>
+
+const char *
+cairo_get_locale_decimal_point (void)
+{
+ struct lconv *locale_data = localeconv ();
+ return locale_data->decimal_point;
+}
+
+#else
+/* Android's Bionic libc doesn't provide decimal_point */
+const char *
+cairo_get_locale_decimal_point (void)
+{
+ return '.';
+}
+#endif
#ifdef _WIN32