summaryrefslogtreecommitdiff
path: root/i18n
diff options
context:
space:
mode:
authortrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2000-06-02 22:34:58 +0000
committertrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2000-06-02 22:34:58 +0000
commit754431afb15e585de7e0ce23b6c79c7ce7d1f3f3 (patch)
treed1cc4d75237da17ee515f82deeeecb6645492237 /i18n
parent7b64823e496cd25071bb34fb2b9158f605e049ab (diff)
downloadlibapr-754431afb15e585de7e0ce23b6c79c7ce7d1f3f3.tar.gz
ap_xlate_conv_buffer(): don't treat it as an error if
we run out of output buffer in a multi-byte translation (single-byte translation doesn't treat it as an error). git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@60132 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'i18n')
-rw-r--r--i18n/unix/xlate.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/i18n/unix/xlate.c b/i18n/unix/xlate.c
index a2bb502d2..92543b7a6 100644
--- a/i18n/unix/xlate.c
+++ b/i18n/unix/xlate.c
@@ -250,7 +250,11 @@ ap_status_t ap_xlate_conv_buffer(ap_xlate_t *convset, const char *inbuf,
translated = iconv(convset->ich, (const char **)&inbufptr,
inbytes_left, &outbufptr, outbytes_left);
- if (translated == (size_t)-1) {
+ /* If everything went fine but we ran out of buffer, don't
+ * report it as an error. Caller needs to look at the two
+ * bytes-left values anyway.
+ */
+ if (translated == (size_t)-1 && *outbytes_left) {
return errno;
}
}