summaryrefslogtreecommitdiffstats
path: root/lib/libc/iconv/citrus_iconv.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/iconv/citrus_iconv.c')
-rw-r--r--lib/libc/iconv/citrus_iconv.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libc/iconv/citrus_iconv.c b/lib/libc/iconv/citrus_iconv.c
index 5c8bf49..5994063 100644
--- a/lib/libc/iconv/citrus_iconv.c
+++ b/lib/libc/iconv/citrus_iconv.c
@@ -278,7 +278,9 @@ _citrus_iconv_open(struct _citrus_iconv * __restrict * __restrict rcv,
struct _citrus_iconv *cv = NULL;
struct _citrus_iconv_shared *ci = NULL;
char realdst[PATH_MAX], realsrc[PATH_MAX];
+#ifdef _PATH_ICONV
char buf[PATH_MAX], path[PATH_MAX];
+#endif
int ret;
init_cache();
@@ -290,10 +292,16 @@ _citrus_iconv_open(struct _citrus_iconv * __restrict * __restrict rcv,
dst = nl_langinfo(CODESET);
/* resolve codeset name aliases */
+#ifdef _PATH_ICONV
+ snprintf(path, sizeof(path), "%s/%s", _PATH_ICONV, _CITRUS_ICONV_ALIAS);
strlcpy(realsrc, _lookup_alias(path, src, buf, (size_t)PATH_MAX,
_LOOKUP_CASE_IGNORE), (size_t)PATH_MAX);
strlcpy(realdst, _lookup_alias(path, dst, buf, (size_t)PATH_MAX,
_LOOKUP_CASE_IGNORE), (size_t)PATH_MAX);
+#else
+ strlcpy(realsrc, src, (size_t)PATH_MAX);
+ strlcpy(realdst, dst, (size_t)PATH_MAX);
+#endif
/* sanity check */
if (strchr(realsrc, '/') != NULL || strchr(realdst, '/'))
OpenPOWER on IntegriCloud