diff options
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 3 | ||||
-rw-r--r-- | camel/camel-mime-filter-charset.c | 28 | ||||
-rw-r--r-- | camel/camel-mime-utils.c | 27 |
3 files changed, 31 insertions, 27 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 47945a66b4..6329faab7d 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,8 @@ 2000-11-29 Dan Winship <danw@helixcode.com> + * camel-mime-utils.c: + * camel-mime-filter-charset.c: Use iconv instead of unicode_iconv. + * providers/imap/camel-imap-command.c (imap_read_untagged): Fix some off-by-one-ness. diff --git a/camel/camel-mime-filter-charset.c b/camel/camel-mime-filter-charset.c index 40562dc88d..6c1f668713 100644 --- a/camel/camel-mime-filter-charset.c +++ b/camel/camel-mime-filter-charset.c @@ -19,7 +19,7 @@ */ -#include <unicode.h> +#include <iconv.h> #include <string.h> #include <errno.h> @@ -59,9 +59,9 @@ camel_mime_filter_charset_finalize(CamelObject *o) g_free(f->from); g_free(f->to); - if (f->ic != (unicode_iconv_t)-1) { - unicode_iconv_close(f->ic); - f->ic = (unicode_iconv_t) -1; + if (f->ic != (iconv_t)-1) { + iconv_close(f->ic); + f->ic = (iconv_t) -1; } } @@ -74,9 +74,9 @@ reset(CamelMimeFilter *mf) int outlen = 16; /* what happens with the output bytes if this resets the state? */ - if (f->ic != (unicode_iconv_t) -1) { + if (f->ic != (iconv_t) -1) { buffer = buf; - unicode_iconv(f->ic, NULL, 0, &buffer, &outlen); + iconv(f->ic, NULL, 0, &buffer, &outlen); } } @@ -89,7 +89,7 @@ complete(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out, char *outbuf; int inlen, outlen; - if (f->ic == (unicode_iconv_t) -1) { + if (f->ic == (iconv_t) -1) { goto donothing; } @@ -106,7 +106,7 @@ complete(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out, d(memset(outbuf, 0, outlen)); if (inlen>0) { - converted = unicode_iconv(f->ic, &inbuf, &inlen, &outbuf, &outlen); + converted = iconv(f->ic, &inbuf, &inlen, &outbuf, &outlen); if (converted == -1) { if (errno != EINVAL) { g_warning("error occured converting: %s", strerror(errno)); @@ -121,7 +121,7 @@ complete(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out, /* this 'resets' the output stream, returning back to the initial shift state for multishift charactersets */ - converted = unicode_iconv(f->ic, NULL, 0, &outbuf, &outlen); + converted = iconv(f->ic, NULL, 0, &outbuf, &outlen); if (converted == -1) { g_warning("Conversion failed to complete: %s", strerror(errno)); } @@ -155,7 +155,7 @@ filter(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out, s char *outbuf; int inlen, outlen; - if (f->ic == (unicode_iconv_t) -1) { + if (f->ic == (iconv_t) -1) { goto donothing; } @@ -165,7 +165,7 @@ filter(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out, s inlen = len; outbuf = mf->outbuf; outlen = mf->outsize; - converted = unicode_iconv(f->ic, &inbuf, &inlen, &outbuf, &outlen); + converted = iconv(f->ic, &inbuf, &inlen, &outbuf, &outlen); if (converted == -1) { if (errno != EINVAL) { g_warning("error occured converting: %s", strerror(errno)); @@ -208,7 +208,7 @@ camel_mime_filter_charset_class_init (CamelMimeFilterCharsetClass *klass) static void camel_mime_filter_charset_init (CamelMimeFilterCharset *obj) { - obj->ic = (unicode_iconv_t)-1; + obj->ic = (iconv_t)-1; } /** @@ -230,8 +230,8 @@ camel_mime_filter_charset_new_convert(const char *from_charset, const char *to_c { CamelMimeFilterCharset *new = CAMEL_MIME_FILTER_CHARSET ( camel_object_new (camel_mime_filter_charset_get_type ())); - new->ic = unicode_iconv_open(to_charset, from_charset); - if (new->ic == (unicode_iconv_t) -1) { + new->ic = iconv_open(to_charset, from_charset); + if (new->ic == (iconv_t) -1) { g_warning("Cannot create charset conversion from %s to %s: %s", from_charset, to_charset, strerror(errno)); camel_object_unref((CamelObject *)new); new = NULL; diff --git a/camel/camel-mime-utils.c b/camel/camel-mime-utils.c index 82162a0239..ccdd03634e 100644 --- a/camel/camel-mime-utils.c +++ b/camel/camel-mime-utils.c @@ -33,6 +33,7 @@ #include <unistd.h> #include <unicode.h> +#include <iconv.h> #include <glib.h> #include <time.h> @@ -874,7 +875,7 @@ rfc2047_decode_word(const char *in, int len) char *outbase = NULL; char *inbuf, *outbuf; int inlen, outlen; - unicode_iconv_t ic; + iconv_t ic; d(printf("decoding '%.*s'\n", len, in)); @@ -920,10 +921,10 @@ rfc2047_decode_word(const char *in, int len) outbuf = outbase; /* TODO: Should this cache iconv converters? */ - ic = unicode_iconv_open("UTF-8", encname); - if (ic != (unicode_iconv_t)-1) { - ret = unicode_iconv(ic, (const char **)&inbuf, &inlen, &outbuf, &outlen); - unicode_iconv_close(ic); + ic = iconv_open("UTF-8", encname); + if (ic != (iconv_t)-1) { + ret = iconv(ic, (const char **)&inbuf, &inlen, &outbuf, &outlen); + iconv_close(ic); if (ret>=0) { *outbuf = 0; decoded = g_strdup(outbase); @@ -1098,7 +1099,7 @@ header_decode_string(const char *in) static void rfc2047_encode_word(GString *outstring, const char *in, int len, const char *type, unsigned short safemask) { - unicode_iconv_t ic; + iconv_t ic; char *buffer, *out, *ascii; size_t inlen, outlen, enclen; @@ -1112,15 +1113,15 @@ rfc2047_encode_word(GString *outstring, const char *in, int len, const char *typ /* if we can't convert from utf-8, just encode as utf-8 */ if (!strcasecmp(type, "UTF-8") - || (ic = unicode_iconv_open(type, "UTF-8")) == (unicode_iconv_t)-1) { + || (ic = iconv_open(type, "UTF-8")) == (iconv_t)-1) { memcpy(buffer, in, len); out = buffer+len; type = "UTF-8"; } else { - if (unicode_iconv(ic, &in, &inlen, &out, &outlen) == -1) { + if (iconv(ic, &in, &inlen, &out, &outlen) == -1) { w(g_warning("Conversion problem: conversion truncated: %s", strerror(errno))); } - unicode_iconv_close(ic); + iconv_close(ic); } enclen = out-buffer; @@ -3126,16 +3127,16 @@ void run_test(void) inbuf = "Dra¾en Kaèar"; inlen = strlen(inbuf); outbuf = buffer; - ic = unicode_iconv_open("UTF-8", "ISO-8859-1"); - unicode_iconv(ic, &inbuf, &inlen, &outbuf, &outlen); + ic = iconv_open("UTF-8", "ISO-8859-1"); + iconv(ic, &inbuf, &inlen, &outbuf, &outlen); test_phrase(buffer); outlen = 256; inbuf = "This is an encoded phrase Tomasz K³oczko"; inlen = strlen(inbuf); outbuf = buffer; - ic = unicode_iconv_open("UTF-8", "ISO-8859-2"); - unicode_iconv(ic, &inbuf, &inlen, &outbuf, &outlen); + ic = iconv_open("UTF-8", "ISO-8859-2"); + iconv(ic, &inbuf, &inlen, &outbuf, &outlen); test_phrase(buffer); } |