summaryrefslogtreecommitdiffstats
path: root/src/rccenca.c
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@dside.dyndns.org>2005-07-18 15:22:28 +0000
committerSuren A. Chilingaryan <csa@dside.dyndns.org>2005-07-18 15:22:28 +0000
commit537c4b33fdf6e143243d5a0d286eeb247362e806 (patch)
treed8a94cfaa4a71ffc826b7d8176c54445369539f3 /src/rccenca.c
parent4032f92867e5570f130e4175b3b4fb61240f9752 (diff)
downloadlibrcc-537c4b33fdf6e143243d5a0d286eeb247362e806.tar.gz
librcc-537c4b33fdf6e143243d5a0d286eeb247362e806.tar.bz2
librcc-537c4b33fdf6e143243d5a0d286eeb247362e806.tar.xz
librcc-537c4b33fdf6e143243d5a0d286eeb247362e806.zip
API Improvements
- Removed 'rlen' return parameters there not necessary for multibyte encodings - Two versions of recode functions: rccRecode -> rccRecode, rccSizedRecode - Class Types: CONST, SKIP_SAVELOAD - New recode functions: rccToCharset, rccFromCharset - More new recode functions: rccRecodeToCharset, rccRecodeFromCharset, rccRecodeCharsets - New function: rccGetCompiledConfiguration - All warnings are fixed - Perform "File Name" search only if there are non ISO8859-1 chars in the name. - Do not copy invalid characters, - skip them. - Fixed error in rccRecode with 'Recoding Cache' switched On. - Strip leading and trailing spaces in rccDB4 get/set
Diffstat (limited to 'src/rccenca.c')
-rw-r--r--src/rccenca.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rccenca.c b/src/rccenca.c
index 8a439bc..8263742 100644
--- a/src/rccenca.c
+++ b/src/rccenca.c
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <string.h>
#include "internal.h"
#include "plugin.h"
@@ -14,7 +15,9 @@
# endif /* RCC_ENCA_DYNAMIC */
#endif /* RCC_ENCA_SUPPORT */
+#ifdef RCC_ENCA_DYNAMIC
static rcc_library_handle enca_handle = NULL;
+#endif /* RCC_ENCA_DYNAMIC */
static rcc_engine *enca_engines = NULL;
rcc_engine_internal rccEncaInitContext(rcc_engine_context ctx) {
@@ -49,7 +52,7 @@ void rccEncaFreeContext(rcc_engine_context ctx) {
#endif /* RCC_ENCA_SUPPORT */
}
-rcc_charset_id rccEnca(rcc_engine_context ctx, const char *buf, int len) {
+rcc_autocharset_id rccEnca(rcc_engine_context ctx, const char *buf, int len) {
#ifdef RCC_ENCA_SUPPORT
rcc_engine_internal internal;
const char *charset;
@@ -58,9 +61,7 @@ rcc_charset_id rccEnca(rcc_engine_context ctx, const char *buf, int len) {
internal = rccEngineGetInternal(ctx);
if ((!internal)||(!buf)) return (rcc_charset_id)-1;
- len = STRNLEN(buf, len);
-
- ee = enca_analyse_const((EncaAnalyser)ctx->internal,buf,len);
+ ee = enca_analyse_const((EncaAnalyser)ctx->internal,buf,len?len:strlen(buf));
if (ee.charset<0) return (rcc_charset_id)-1;
charset = enca_charset_name(ee.charset, ENCA_NAME_STYLE_ICONV);