diff options
| author | Sam Varshavchik | 2018-07-13 20:18:57 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2018-07-13 20:43:16 -0400 | 
| commit | 83b8a17c2dbb0feccc7c1c02d7d170ef84880126 (patch) | |
| tree | a027bbee394867f277d5174b1af374b5900f7582 /unicode/unicode.c | |
| parent | fdc3f1b75ed5dbded07c69c1000f31bb7c74f0e0 (diff) | |
| download | courier-libs-83b8a17c2dbb0feccc7c1c02d7d170ef84880126.tar.bz2 | |
courier-unicode: update the internal x-smap-modutf8 encoding
Diffstat (limited to 'unicode/unicode.c')
| -rw-r--r-- | unicode/unicode.c | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/unicode/unicode.c b/unicode/unicode.c index 2cf5856..82d5c21 100644 --- a/unicode/unicode.c +++ b/unicode/unicode.c @@ -309,8 +309,8 @@ unicode_convert_init(const char *src_chset,  	memset(toutf7, 0, sizeof(*toutf7)); -	h=init_nottoimaputf7(src_chset, unicode_u_ucs2_native, -			     do_convert_toutf7, toutf7); +	h=unicode_convert_init(src_chset, unicode_u_ucs2_native, +			       do_convert_toutf7, toutf7);  	if (!h)  	{  		free(toutf7); @@ -482,9 +482,9 @@ init_nottoimaputf7(const char *src_chset,  	memset(toutf8, 0, sizeof(*toutf8)); -	h=init_nottosmaputf8(src_chset, "utf-8", -			     do_convert_tosmaputf8, -			     toutf8); +	h=unicode_convert_init(src_chset, "utf-8", +			       do_convert_tosmaputf8, +			       toutf8);  	if (!h)  	{  		free(toutf8); @@ -511,6 +511,9 @@ static int deinit_tosmaputf8(void *ptr, int *errptr)  	/* Flush out the downstream stack */  	rc=(*toutf8->hdr.next->deinit_handler)(toutf8->hdr.next->ptr, errptr); +	if (toutf8->errflag && rc == 0) +		rc=toutf8->errflag; +  	free(toutf8);  	return rc;  } @@ -529,7 +532,8 @@ static int do_convert_tosmaputf8(const char *text, size_t cnt, void *arg)  			return toutf8->errflag;  		for (i=0; i<cnt; ++i) -			if (strchr(" ./~:\\", text[i])) +			if ((unsigned char)text[i] < ' ' || +			    strchr("./~:\\", text[i]))  				break;  		if (i)  		{ @@ -669,7 +673,7 @@ init_nottosmaputf8(const char *src_chset,  	/* Create a stack for converting UCS-2 to the dest charset */ -	h=init_notfromimaputf7(unicode_u_ucs2_native, dst_chset, +	h=unicode_convert_init(unicode_u_ucs2_native, dst_chset,  			       output_func, convert_arg);  	if (!h) @@ -863,7 +867,7 @@ init_notfromimaputf7(const char *src_chset,  	/* Create a stack for converting UTF-8 to the dest charset */ -	h=init_notfromimaputf7("utf-8", dst_chset, +	h=unicode_convert_init("utf-8", dst_chset,  			       output_func, convert_arg);  	if (!h) | 
