From e3f702e83a26468ee44f3f342a7a40a252f4603c Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Fri, 29 Jul 2005 03:26:28 +0000 Subject: Translation - Language Translation using libtranslate is implemented - Autoengine sets current charset (option) --- src/rcciconv.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/rcciconv.c') diff --git a/src/rcciconv.c b/src/rcciconv.c index 65b32b3..d9903de 100644 --- a/src/rcciconv.c +++ b/src/rcciconv.c @@ -92,7 +92,28 @@ loop: return outsize - out_left; } -size_t rccIConv(rcc_context ctx, rcc_iconv icnv, const char *buf, size_t len) { +char *rccIConv(rcc_iconv icnv, const char *buf, size_t len, size_t *rlen) { + char *res; + size_t size; + char tmpbuffer[RCC_MAX_STRING_CHARS+1]; + + size = rccIConvRecode(icnv, tmpbuffer, RCC_MAX_STRING_CHARS, buf, len); + if (size != (size_t)-1) { + res = (char*)malloc((size+1)*sizeof(char)); + if (!res) return res; + + if (rlen) *rlen = size; + memcpy(res, tmpbuffer, size); + res[size] = 0; + + return res; + } + + return NULL; +} + +size_t rccIConvInternal(rcc_context ctx, rcc_iconv icnv, const char *buf, size_t len) { if (!ctx) return (size_t)-1; return rccIConvRecode(icnv, ctx->tmpbuffer, RCC_MAX_STRING_CHARS, buf, len); } + -- cgit v1.2.3