diff options
author | trawick <trawick@13f79535-47bb-0310-9956-ffa450edef68> | 2000-06-02 22:34:58 +0000 |
---|---|---|
committer | trawick <trawick@13f79535-47bb-0310-9956-ffa450edef68> | 2000-06-02 22:34:58 +0000 |
commit | 754431afb15e585de7e0ce23b6c79c7ce7d1f3f3 (patch) | |
tree | d1cc4d75237da17ee515f82deeeecb6645492237 /i18n/unix | |
parent | 7b64823e496cd25071bb34fb2b9158f605e049ab (diff) | |
download | libapr-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/unix')
-rw-r--r-- | i18n/unix/xlate.c | 6 |
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; } } |