diff options
| author | Sam Varshavchik | 2017-03-09 06:47:37 -0500 | 
|---|---|---|
| committer | Sam Varshavchik | 2017-03-09 06:47:37 -0500 | 
| commit | 914d160ada16463a76d42011aa8d721134fba9b8 (patch) | |
| tree | 0ca27e91d287778259c8b8f50b7cec0f5e4bafa4 | |
| parent | 51ba33a2e4b3a1e2679d240549c57963a845ae7c (diff) | |
| download | courier-libs-914d160ada16463a76d42011aa8d721134fba9b8.tar.bz2 | |
courier-unicode API update.
| -rw-r--r-- | cgi/cgi.h | 4 | ||||
| -rw-r--r-- | cgi/cgiinput.c | 6 | ||||
| -rw-r--r-- | cgi/cgitextarea.c | 6 | ||||
| -rw-r--r-- | imap/imapd.c | 2 | ||||
| -rw-r--r-- | imap/search.c | 4 | ||||
| -rw-r--r-- | maildir/maildirsearch.c | 6 | ||||
| -rw-r--r-- | maildir/maildirsearch.h | 13 | ||||
| -rw-r--r-- | maildir/testmaildirsearch.c | 2 | ||||
| -rw-r--r-- | rfc2045/rfc2045reply.c | 10 | ||||
| -rw-r--r-- | rfc2045/rfc3676parser.c | 97 | ||||
| -rw-r--r-- | rfc2045/rfc3676parser.h | 6 | ||||
| -rw-r--r-- | rfc2045/rfc3676parsercpp.C | 8 | ||||
| -rw-r--r-- | rfc2045/testrfc3676parser.c | 2 | ||||
| -rw-r--r-- | rfc822/rfc2047.c | 12 | ||||
| -rw-r--r-- | sqwebmail/filter.c | 10 | ||||
| -rw-r--r-- | sqwebmail/filter.h | 6 | ||||
| -rw-r--r-- | sqwebmail/folder.c | 24 | ||||
| -rw-r--r-- | sqwebmail/html.c | 126 | ||||
| -rw-r--r-- | sqwebmail/html.h | 4 | ||||
| -rw-r--r-- | sqwebmail/maildir.c | 26 | ||||
| -rw-r--r-- | sqwebmail/msg2html.c | 84 | ||||
| -rw-r--r-- | sqwebmail/newmsg.h | 2 | ||||
| -rw-r--r-- | sqwebmail/newmsg_create.c | 24 | ||||
| -rw-r--r-- | sqwebmail/sqispell.c | 2 | ||||
| -rw-r--r-- | sqwebmail/testhtml.c | 4 | 
25 files changed, 244 insertions, 246 deletions
| @@ -111,7 +111,7 @@ extern char *cgi_checkbox(const char *name,  			  const char *value,  			  const char *flags);  extern char *cgi_input(const char *name, -		       const unicode_char *value, +		       const char32_t *value,  		       int size,  		       int maxlength,  		       const char *opts); @@ -119,7 +119,7 @@ extern char *cgi_input(const char *name,  extern char *cgi_textarea(const char *name,  			  int rows,  			  int cols, -			  const unicode_char *value, +			  const char32_t *value,  			  const char *wrap,  			  const char *opts); diff --git a/cgi/cgiinput.c b/cgi/cgiinput.c index 64769de..b9330e3 100644 --- a/cgi/cgiinput.c +++ b/cgi/cgiinput.c @@ -12,7 +12,7 @@  #include	<stdlib.h>  #include	<ctype.h> -void cgi_output_unicode_escapes(const unicode_char *value, +void cgi_output_unicode_escapes(const char32_t *value,  				const char *escapes,  				void (*output_func)(const char *, size_t,  						    void *), @@ -62,7 +62,7 @@ void cgi_output_unicode_escapes(const unicode_char *value,  static void do_cgi_input(const char *name, -			 const unicode_char *value, +			 const char32_t *value,  			 int size,  			 int maxlength,  			 const char *flags, @@ -128,7 +128,7 @@ static void save_bytes(const char *str, size_t cnt, void *arg)  }  char *cgi_input(const char *name, -		const unicode_char *value, +		const char32_t *value,  		int size,  		int maxlength,  		const char *flags) diff --git a/cgi/cgitextarea.c b/cgi/cgitextarea.c index e9d814b..750b2ee 100644 --- a/cgi/cgitextarea.c +++ b/cgi/cgitextarea.c @@ -12,7 +12,7 @@  #include	<stdlib.h>  #include	<ctype.h> -extern void cgi_output_unicode_escapes(const unicode_char *value, +extern void cgi_output_unicode_escapes(const char32_t *value,  				       const char *escapes,  				       void (*output_func)(const char *,  							   size_t, @@ -22,7 +22,7 @@ extern void cgi_output_unicode_escapes(const unicode_char *value,  static void do_cgi_textarea(const char *name,  			    int rows,  			    int cols, -			    const unicode_char *value, +			    const char32_t *value,  			    const char *opts,  			    const char *wrap,  			    void (*output_func)(const char *, size_t, @@ -95,7 +95,7 @@ static void save_bytes(const char *str, size_t cnt, void *arg)  char *cgi_textarea(const char *name,  		   int rows,  		   int cols, -		   const unicode_char *value, +		   const char32_t *value,  		   const char *wrap,  		   const char *opts)  { diff --git a/imap/imapd.c b/imap/imapd.c index 07fa057..93317df 100644 --- a/imap/imapd.c +++ b/imap/imapd.c @@ -4115,7 +4115,7 @@ int folder_rename(struct maildir_info *mi1,  static int validate_charset(const char *tag, char **charset)  {  	unicode_convert_handle_t conv; -	unicode_char *ucptr; +	char32_t *ucptr;  	size_t ucsize;  	if (*charset == NULL) diff --git a/imap/search.c b/imap/search.c index cc64bbf..baacfba 100644 --- a/imap/search.c +++ b/imap/search.c @@ -892,7 +892,7 @@ static int fill_search_header_done(const char *name, void *arg)  	int issubject=rfc822hdr_namecmp(name, "subject");  	size_t j;  	unicode_convert_handle_t conv; -	unicode_char *ucptr; +	char32_t *ucptr;  	size_t ucsize;  	int rc; @@ -1045,7 +1045,7 @@ static int fill_search_body_ucs4(const char *str, size_t n, void *arg)  	struct fill_search_body_info *decodeinfo=  		(struct fill_search_body_info *)arg;  	struct searchinfo *sip; -	const unicode_char *u=(const unicode_char *)str; +	const char32_t *u=(const char32_t *)str;  	int notfound=1;  	n /= 4; diff --git a/maildir/maildirsearch.c b/maildir/maildirsearch.c index 40b7409..5853785 100644 --- a/maildir/maildirsearch.c +++ b/maildir/maildirsearch.c @@ -8,7 +8,7 @@  int maildir_search_start_unicode(struct maildir_searchengine *sei, -				 const unicode_char *s) +				 const char32_t *s)  {  	unsigned i, j, *r; @@ -54,7 +54,7 @@ int maildir_search_start_unicode(struct maildir_searchengine *sei,  int maildir_search_start_str(struct maildir_searchengine *sei,  			     const char *s)  { -	unicode_char *uc=malloc((strlen(s)+1) * sizeof(unicode_char)); +	char32_t *uc=malloc((strlen(s)+1) * sizeof(char32_t));  	size_t n;  	int rc; @@ -75,7 +75,7 @@ int maildir_search_start_str_chset(struct maildir_searchengine *engine,  {  #define SPC(s) ((s) == ' '|| (s) == '\t' || (s) == '\r' || (s) == '\n') -	unicode_char *ucptr; +	char32_t *ucptr;  	size_t ucsize;  	unicode_convert_handle_t h=unicode_convert_tou_init(chset, &ucptr,  								&ucsize, 1); diff --git a/maildir/maildirsearch.h b/maildir/maildirsearch.h index b134c6d..64b257c 100644 --- a/maildir/maildirsearch.h +++ b/maildir/maildirsearch.h @@ -46,9 +46,9 @@ extern "C" {  #endif  struct maildir_searchengine { -	unicode_char *string; +	char32_t *string;  	size_t string_l; -	const unicode_char *ptr; +	const char32_t *ptr;  	unsigned *r;    /* Retry backoff indexes */  	unsigned i;  	int spc; @@ -64,7 +64,7 @@ int maildir_search_start_str_chset(struct maildir_searchengine *engine,  				   const char *string,  				   const char *chset);  int maildir_search_start_unicode(struct maildir_searchengine *engine, -				 const unicode_char *string); +				 const char32_t *string);  #define	maildir_search_reset(si)	((si)->i=0, (si)->ptr=(si)->string) @@ -79,7 +79,7 @@ int maildir_search_start_unicode(struct maildir_searchengine *engine,                  {\                          for (;;) \                          {\ -                                if ( (unicode_char)(sie)->ptr[(sie)->i] == (unicode_char)(ch) )\ +                                if ( (char32_t)(sie)->ptr[(sie)->i] == (char32_t)(ch) )\                                          { (sie)->i++; break; }\                                  if ( (sie)->i == 0) break;\                                  (sie)->i=(sie)->r[(sie)->i];\ @@ -89,7 +89,7 @@ int maildir_search_start_unicode(struct maildir_searchengine *engine,  #define maildir_search_step_unicode_lc(sie,ch) do	\  	{						\ -		unicode_char c=(ch);			\ +		char32_t c=(ch);			\  		int spc=0;				\  							\  									\ @@ -162,7 +162,7 @@ class Search {  	void operator<<(char c) { maildir_search_step(&sei, c); } -	void operator<<(unicode_char ch) +	void operator<<(char32_t ch)  	{  		maildir_search_step_unicode_lc(&sei, ch);  	} @@ -184,4 +184,3 @@ class Search {  #endif  #endif -  diff --git a/maildir/testmaildirsearch.c b/maildir/testmaildirsearch.c index 504304d..dc3288a 100644 --- a/maildir/testmaildirsearch.c +++ b/maildir/testmaildirsearch.c @@ -10,7 +10,7 @@ static int testmaildirsearch(const char *chset, const char *needle,  			     const char *haystack)  {  	struct maildir_searchengine se; -	unicode_char *ucptr; +	char32_t *ucptr;  	size_t ucsize;  	size_t i;  	unicode_convert_handle_t h=unicode_convert_tou_init(chset, &ucptr, diff --git a/rfc2045/rfc2045reply.c b/rfc2045/rfc2045reply.c index a3b57b5..da0d981 100644 --- a/rfc2045/rfc2045reply.c +++ b/rfc2045/rfc2045reply.c @@ -275,7 +275,7 @@ static int reply_begin(size_t quote_level,  		       void *arg)  {  	struct replyinfostruct *s=(struct replyinfostruct *)arg; -	unicode_char quoteChar='>'; +	char32_t quoteChar='>';  	/*  	** Save quote level, begin conversion from unicode to the native @@ -310,11 +310,11 @@ static int reply_begin(size_t quote_level,  ** RFC 3676: (possibly partial) contents of a deflowed line, as unicode.  */ -static int reply_contents(const unicode_char *txt, +static int reply_contents(const char32_t *txt,  			  size_t txt_size,  			  void *arg)  { -	unicode_char spaceChar=' '; +	char32_t spaceChar=' ';  	size_t nonspc_cnt;  	struct replyinfostruct *s=(struct replyinfostruct *)arg; @@ -380,7 +380,7 @@ static int reply_contents(const unicode_char *txt,  static int reply_end(void *arg)  { -	unicode_char newLine='\n'; +	char32_t newLine='\n';  	struct replyinfostruct *s=(struct replyinfostruct *)arg;  	unicode_convert_uc(s->u_handle, &newLine, 1); @@ -394,7 +394,7 @@ static int reply_end(void *arg)  */  static int reply_wrap(void *arg)  { -	unicode_char spaceChar=' '; +	char32_t spaceChar=' ';  	struct replyinfostruct *s=(struct replyinfostruct *)arg;  	/* diff --git a/rfc2045/rfc3676parser.c b/rfc2045/rfc3676parser.c index 0a458f4..e52da45 100644 --- a/rfc2045/rfc3676parser.c +++ b/rfc2045/rfc3676parser.c @@ -16,7 +16,7 @@  static void emit_line_begin(rfc3676_parser_t handle);  static void emit_line_contents(rfc3676_parser_t handle, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt);  static void emit_line_flowed_wrap(rfc3676_parser_t handle); @@ -27,13 +27,13 @@ static void emit_line_end(rfc3676_parser_t handle);  static void nonflowed_line_begin(rfc3676_parser_t handle);  static void nonflowed_line_contents(rfc3676_parser_t handle, -				    const unicode_char *uc, +				    const char32_t *uc,  				    size_t cnt);  static void nonflowed_line_end(rfc3676_parser_t handle);  static int nonflowed_line_process(int linebreak_opportunity, -				  unicode_char ch, void *dummy); +				  char32_t ch, void *dummy);  #define EMIT_LINE_BEGIN(h) do {			\  		(*(h)->line_begin_handler)(h);	\ @@ -56,14 +56,14 @@ struct rfc3676_parser_struct {  	/* Receive raw text stream, converted to unicode */  	size_t (*line_handler)(rfc3676_parser_t, -			       const unicode_char *ptr, size_t cnt); +			       const char32_t *ptr, size_t cnt);  	/*  	** Receive mostly raw text stream: CRs that precede an LF  	** are removed from the stream received by content_handler.  	*/  	size_t (*content_handler)(rfc3676_parser_t, -				  const unicode_char *ptr, size_t cnt); +				  const char32_t *ptr, size_t cnt);  	size_t quote_level;  	size_t sig_block_index; @@ -86,7 +86,7 @@ struct rfc3676_parser_struct {  	/* Content of this line */  	void (*line_content_handler)(rfc3676_parser_t handle, -				     const unicode_char *uc, +				     const char32_t *uc,  				     size_t cnt);  	/* End of this line */ @@ -116,7 +116,7 @@ struct rfc3676_parser_struct {  	/* Current handle of non-flowd content. */  	void (*nonflowed_line_process)(struct rfc3676_parser_struct *handle,  				       int linebreak_opportunity, -				       unicode_char ch, +				       char32_t ch,  				       size_t ch_width);  	void (*nonflowed_line_end)(struct rfc3676_parser_struct *handle); @@ -125,37 +125,37 @@ struct rfc3676_parser_struct {  static int parse_unicode(const char *, size_t, void *);  static size_t scan_crlf(rfc3676_parser_t handle, -			const unicode_char *ptr, size_t cnt); +			const char32_t *ptr, size_t cnt);  static size_t scan_crlf_seen_cr(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt); +				const char32_t *ptr, size_t cnt);  static size_t start_of_line(rfc3676_parser_t handle, -			    const unicode_char *ptr, size_t cnt); +			    const char32_t *ptr, size_t cnt);  static size_t count_quote_level(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt); +				const char32_t *ptr, size_t cnt);  static size_t counted_quote_level(rfc3676_parser_t handle, -				  const unicode_char *ptr, size_t cnt); +				  const char32_t *ptr, size_t cnt);  static size_t check_signature_block(rfc3676_parser_t handle, -				    const unicode_char *ptr, size_t cnt); +				    const char32_t *ptr, size_t cnt);  static size_t start_content_line(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt); +				const char32_t *ptr, size_t cnt);  static size_t scan_content_line(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt); +				const char32_t *ptr, size_t cnt);  static size_t seen_sig_block(rfc3676_parser_t handle, -			     const unicode_char *ptr, size_t cnt); +			     const char32_t *ptr, size_t cnt);  static size_t seen_notsig_block(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt); +				const char32_t *ptr, size_t cnt);  static size_t seen_content_sp(rfc3676_parser_t handle, -			      const unicode_char *ptr, size_t cnt); +			      const char32_t *ptr, size_t cnt);  /* @@ -218,21 +218,21 @@ int rfc3676parser(rfc3676_parser_t handle,  }  /* -** Convert char stream from iconv into unicode_chars, then pass them to the -** current handler, until all converted unicode_chars are consumed. +** Convert char stream from iconv into char32_ts, then pass them to the +** current handler, until all converted char32_ts are consumed.  */  static int parse_unicode(const char *ucs4, size_t nbytes, void *arg)  {  	rfc3676_parser_t handle=(rfc3676_parser_t)arg; -	unicode_char ucs4buf[128]; -	const unicode_char *p; +	char32_t ucs4buf[128]; +	const char32_t *p;  	/* Keep going until there's an error, or everything is consumed. */  	while (handle->errflag == 0 && nbytes)  	{ -		/* Do it in pieces, using the temporary unicode_char buffer */ +		/* Do it in pieces, using the temporary char32_t buffer */  		size_t cnt=nbytes; @@ -244,7 +244,7 @@ static int parse_unicode(const char *ucs4, size_t nbytes, void *arg)  		ucs4 += cnt;  		nbytes -= cnt; -		cnt /= sizeof(unicode_char); +		cnt /= sizeof(char32_t);  		p=ucs4buf;  		/* Keep feeding it to the current handler */ @@ -299,7 +299,7 @@ int rfc3676parser_deinit(rfc3676_parser_t handle, int *errptr)  */  static size_t scan_crlf(rfc3676_parser_t handle, -			const unicode_char *ptr, size_t cnt) +			const char32_t *ptr, size_t cnt)  {  	size_t i; @@ -342,9 +342,9 @@ static size_t scan_crlf(rfc3676_parser_t handle,  */  static size_t scan_crlf_seen_cr(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt) +				const char32_t *ptr, size_t cnt)  { -	unicode_char cr='\r'; +	char32_t cr='\r';  	handle->line_handler=scan_crlf; @@ -374,7 +374,7 @@ static size_t scan_crlf_seen_cr(rfc3676_parser_t handle,  */  static size_t start_of_line(rfc3676_parser_t handle, -			    const unicode_char *ptr, size_t cnt) +			    const char32_t *ptr, size_t cnt)  {  	if (ptr == NULL)  	{ @@ -396,7 +396,7 @@ static size_t start_of_line(rfc3676_parser_t handle,  */  static size_t count_quote_level(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt) +				const char32_t *ptr, size_t cnt)  {  	size_t i; @@ -425,7 +425,7 @@ static size_t count_quote_level(rfc3676_parser_t handle,  */  static size_t counted_quote_level(rfc3676_parser_t handle, -				  const unicode_char *ptr, size_t cnt) +				  const char32_t *ptr, size_t cnt)  {  	handle->was_previous_quote_level=0; @@ -492,7 +492,7 @@ static size_t counted_quote_level(rfc3676_parser_t handle,  */  static size_t start_content_line(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt) +				const char32_t *ptr, size_t cnt)  {  	/*  	** We'll start scanning for the signature block, as soon as @@ -500,7 +500,7 @@ static size_t start_content_line(rfc3676_parser_t handle,  	*/  	handle->content_handler=check_signature_block;  	handle->sig_block_index=0; -	 +  	if (ptr && *ptr == '\n' && handle->was_previous_quote_level)  	{  		EMIT_LINE_END(handle); @@ -512,12 +512,12 @@ static size_t start_content_line(rfc3676_parser_t handle,  } -static const unicode_char sig_block[]={'-', '-', ' '}; +static const char32_t sig_block[]={'-', '-', ' '};  /* Checking for a magical sig block */  static size_t check_signature_block(rfc3676_parser_t handle, -				    const unicode_char *ptr, size_t cnt) +				    const char32_t *ptr, size_t cnt)  {  	if (ptr && *ptr == sig_block[handle->sig_block_index])  	{ @@ -533,7 +533,7 @@ static size_t check_signature_block(rfc3676_parser_t handle,  }  static size_t seen_sig_block(rfc3676_parser_t handle, -			     const unicode_char *ptr, size_t cnt) +			     const char32_t *ptr, size_t cnt)  {  	if (ptr == NULL || *ptr == '\n')  	{ @@ -566,9 +566,9 @@ static size_t seen_sig_block(rfc3676_parser_t handle,  /* This is not a sig block line */  static size_t seen_notsig_block(rfc3676_parser_t handle, -				 const unicode_char *newptr, size_t newcnt) +				 const char32_t *newptr, size_t newcnt)  { -	const unicode_char *ptr; +	const char32_t *ptr;  	size_t i;  	if (handle->was_previous_quote_level) @@ -596,7 +596,7 @@ static size_t seen_notsig_block(rfc3676_parser_t handle,  */  static size_t scan_content_line(rfc3676_parser_t handle, -				const unicode_char *ptr, size_t cnt) +				const char32_t *ptr, size_t cnt)  {  	size_t i; @@ -627,9 +627,9 @@ static size_t scan_content_line(rfc3676_parser_t handle,  }  static size_t seen_content_sp(rfc3676_parser_t handle, -			      const unicode_char *ptr, size_t cnt) +			      const char32_t *ptr, size_t cnt)  { -	unicode_char sp=' '; +	char32_t sp=' ';  	handle->content_handler=scan_content_line; @@ -690,7 +690,7 @@ static void emit_line_flowed_wrap(rfc3676_parser_t handle)  }  static void emit_line_contents(rfc3676_parser_t handle, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt)  {  	if (handle->errflag == 0 && cnt > 0) @@ -717,7 +717,7 @@ static void emit_line_end(rfc3676_parser_t handle)  static void initial_nonflowed_line(rfc3676_parser_t handle,  				   int linebreak_opportunity, -				   unicode_char ch, +				   char32_t ch,  				   size_t ch_width);  static void initial_nonflowed_end(rfc3676_parser_t handle); @@ -772,7 +772,7 @@ static void nonflowed_line_begin(rfc3676_parser_t handle)  */  static void nonflowed_line_contents(rfc3676_parser_t handle, -				    const unicode_char *uc, +				    const char32_t *uc,  				    size_t cnt)  {  	if (!handle->lb) @@ -814,7 +814,7 @@ static void nonflowed_line_end(rfc3676_parser_t handle)  ** invoke the current handler.  */  static int nonflowed_line_process(int linebreak_opportunity, -				  unicode_char ch, void *dummy) +				  char32_t ch, void *dummy)  {  	rfc3676_parser_t handle=(rfc3676_parser_t)dummy; @@ -830,7 +830,7 @@ static int nonflowed_line_process(int linebreak_opportunity,  static void initial_nonflowed_line(rfc3676_parser_t handle,  				   int linebreak_opportunity, -				   unicode_char ch, +				   char32_t ch,  				   size_t ch_width)  {  	/* @@ -889,7 +889,7 @@ static void initial_nonflowed_end(rfc3676_parser_t handle)  static void check_abnormal_line(rfc3676_parser_t handle)  {  	size_t n, i; -	const unicode_char *p; +	const char32_t *p;  	if (unicode_buf_len(&handle->nonflowed_line) > 0)  		return; @@ -929,7 +929,7 @@ static void check_abnormal_line(rfc3676_parser_t handle)  static void forced_rewrap_line(rfc3676_parser_t handle,  			       int linebreak_opportunity, -			       unicode_char ch, +			       char32_t ch,  			       size_t ch_width);  static void forced_rewrap_end(rfc3676_parser_t handle); @@ -959,7 +959,7 @@ static void begin_forced_rewrap(rfc3676_parser_t handle)  static void forced_rewrap_line(rfc3676_parser_t handle,  			       int linebreak_opportunity, -			       unicode_char ch, +			       char32_t ch,  			       size_t ch_width)  {  	if (linebreak_opportunity != UNICODE_LB_NONE) @@ -1002,4 +1002,3 @@ static void forced_rewrap_end(rfc3676_parser_t handle)  {  	initial_nonflowed_end(handle); /* Same logic, for now */  } - diff --git a/rfc2045/rfc3676parser.h b/rfc2045/rfc3676parser.h index 3890983..497792c 100644 --- a/rfc2045/rfc3676parser.h +++ b/rfc2045/rfc3676parser.h @@ -61,7 +61,7 @@ struct rfc3676_parser_info {  	** rfc3676_parse() or rfc3676_deinit() returns the non-0 value.  	*/ -	int (*line_contents)(const unicode_char *txt, /* Contents */ +	int (*line_contents)(const char32_t *txt, /* Contents */  			     size_t txt_size,  			     /* Count of unicode chars in txt */  			     void *arg); @@ -135,7 +135,7 @@ namespace mail {  	extern "C" int tpp_trampoline_line_begin(size_t, void *); -	extern "C" int tpp_trampoline_line_contents(const unicode_char *, +	extern "C" int tpp_trampoline_line_contents(const char32_t *,  						    size_t, void *);  	extern "C" int tpp_trampoline_line_flowed_notify(void *); @@ -185,7 +185,7 @@ namespace mail {  		virtual void line_begin(size_t); -		virtual void line_contents(const unicode_char *, +		virtual void line_contents(const char32_t *,  					   size_t);  		virtual void line_flowed_notify(); diff --git a/rfc2045/rfc3676parsercpp.C b/rfc2045/rfc3676parsercpp.C index cb67993..98976f0 100644 --- a/rfc2045/rfc3676parsercpp.C +++ b/rfc2045/rfc3676parsercpp.C @@ -16,7 +16,7 @@ extern "C" {  		return 0;  	} -	int mail::tpp_trampoline_line_contents(const unicode_char *ptr, +	int mail::tpp_trampoline_line_contents(const char32_t *ptr,  					       size_t cnt, void *arg)  	{  		reinterpret_cast<mail::textplainparser *>(arg) @@ -91,7 +91,7 @@ void mail::textplainparser::line_begin(size_t quote_level)  {  	if (quote_level)  	{ -		std::vector<unicode_char> vec; +		std::vector<char32_t> vec;  		vec.reserve(quote_level+1);  		vec.insert(vec.end(), quote_level, '>'); @@ -100,7 +100,7 @@ void mail::textplainparser::line_begin(size_t quote_level)  	}  } -void mail::textplainparser::line_contents(const unicode_char *data, +void mail::textplainparser::line_contents(const char32_t *data,  					  size_t cnt)  {  } @@ -111,7 +111,7 @@ void mail::textplainparser::line_flowed_notify()  void mail::textplainparser::line_end()  { -	unicode_char nl='\n'; +	char32_t nl='\n';  	line_contents(&nl, 1);  } diff --git a/rfc2045/testrfc3676parser.c b/rfc2045/testrfc3676parser.c index 1a8c268..17e7477 100644 --- a/rfc2045/testrfc3676parser.c +++ b/rfc2045/testrfc3676parser.c @@ -15,7 +15,7 @@ static int line_begin(size_t quote_level, void *arg)  	return 0;  } -static int line_contents(const unicode_char *txt, +static int line_contents(const char32_t *txt,  			 size_t txt_size,  			 void *arg)  { diff --git a/rfc822/rfc2047.c b/rfc822/rfc2047.c index 2c18c50..970d9b7 100644 --- a/rfc822/rfc2047.c +++ b/rfc822/rfc2047.c @@ -376,7 +376,7 @@ static int encodeqp(const char *ptr, size_t len,  ** DOENCODEWORD().  */ -static int encode_word(const unicode_char *uc, +static int encode_word(const char32_t *uc,  		       size_t ucsize,  		       int (*qp_allow)(char), @@ -409,7 +409,7 @@ static int encode_word(const unicode_char *uc,  ** and keep going as long as encode_word() keeps returning the same value.  */ -static int encode_words(const unicode_char *uc, +static int encode_words(const char32_t *uc,  			size_t ucsize,  			int (*qp_allow)(char), @@ -454,7 +454,7 @@ static int encode_words(const unicode_char *uc,  /*  ** Encode a sequence of words.  */ -static int do_encode_words_method(const unicode_char *uc, +static int do_encode_words_method(const char32_t *uc,  				  size_t ucsize,  				  const char *charset,  				  int (*qp_allow)(char), @@ -537,7 +537,7 @@ static int cnt_conv(const char *dummy, size_t n, void *arg)  ** Encode, or not encode, words.  */ -static int do_encode_words(const unicode_char *uc, +static int do_encode_words(const char32_t *uc,  			   size_t ucsize,  			   const char *charset,  			   int flag, @@ -596,7 +596,7 @@ static int do_encode_words(const unicode_char *uc,  /*  ** RFC2047-encoding pass.  */ -static int rfc2047_encode_callback(const unicode_char *uc, +static int rfc2047_encode_callback(const char32_t *uc,  				   size_t ucsize,  				   const char *charset,  				   int (*qp_allow)(char), @@ -669,7 +669,7 @@ char *rfc2047_encode_str(const char *str, const char *charset,  {  	size_t	i=1;  	char	*s, *p; -	unicode_char *uc; +	char32_t *uc;  	size_t ucsize;  	int err; diff --git a/sqwebmail/filter.c b/sqwebmail/filter.c index d9f2813..7cdd213 100644 --- a/sqwebmail/filter.c +++ b/sqwebmail/filter.c @@ -45,7 +45,7 @@ void	filter_start(struct filter_info *info,  }  void	filter(struct filter_info *info, -	       const unicode_char *ptr, size_t cnt) +	       const char32_t *ptr, size_t cnt)  {  	size_t i, prev; @@ -57,7 +57,7 @@ void	filter(struct filter_info *info,  	while (1)  	{  		const char *p=0; -		unicode_char prevchar=info->prevchar; +		char32_t prevchar=info->prevchar;  		if (i < cnt)  		{ @@ -76,7 +76,7 @@ void	filter(struct filter_info *info,  				if (uc_w + info->u_w > info->linesize &&  				    unicode_grapheme_break(prevchar, ptr[i]))  				{ -					unicode_char nl='\n'; +					char32_t nl='\n';  					if (prev < i)  						unicode_convert_uc @@ -120,7 +120,7 @@ void	filter(struct filter_info *info,  		while (*p)  		{ -			unicode_char uc= *p++; +			char32_t uc= *p++;  			unicode_convert_uc(info->handle, &uc, 1);  		} @@ -128,7 +128,7 @@ void	filter(struct filter_info *info,  }  void	filter_passthru(struct filter_info *info, -			const unicode_char *ptr, size_t cnt) +			const char32_t *ptr, size_t cnt)  {  	unicode_convert_uc(info->handle, ptr, cnt);  } diff --git a/sqwebmail/filter.h b/sqwebmail/filter.h index df7e810..547e07f 100644 --- a/sqwebmail/filter.h +++ b/sqwebmail/filter.h @@ -46,7 +46,7 @@ struct filter_info {  	int conversion_error; -	unicode_char prevchar; +	char32_t prevchar;  	size_t u_w; @@ -59,9 +59,9 @@ struct filter_info {  void	filter_start(struct filter_info *, const char *,  		     void (*)(const char *, size_t, void *), void *);  void	filter(struct filter_info *, -	       const unicode_char *, size_t); +	       const char32_t *, size_t);  void	filter_passthru(struct filter_info *info, -			const unicode_char *ptr, size_t cnt); +			const char32_t *ptr, size_t cnt);  void	filter_end(struct filter_info *info);  #endif diff --git a/sqwebmail/folder.c b/sqwebmail/folder.c index c36c35a..bf31d36 100644 --- a/sqwebmail/folder.c +++ b/sqwebmail/folder.c @@ -156,7 +156,7 @@ void call_print_safe_to_stdout(const char *p, size_t cnt)  {  	print_safe_len(p, cnt, print_safe_to_stdout);  } -	 +  void folder_contents_title()  {  const char *lab; @@ -285,13 +285,13 @@ static const char *do_folder_delmsgs(const char *dir, size_t pos)  	{  		rc=group_movedel( dir, &groupdel );  		maildir_savefoldermsgs(dir); -	}  -	else if (*cgi("cmdpurgeall"))  +	} +	else if (*cgi("cmdpurgeall"))  	{  	    char *deldir;  	    struct maildir_info minfo; -	    if (maildir_info_imap_find(&minfo, dir, login_returnaddr())<0)  +	    if (maildir_info_imap_find(&minfo, dir, login_returnaddr())<0)  		    return "othererror";  	    if ((deldir=maildir_name2dir(minfo.homedir, minfo.maildir)) == NULL) @@ -299,7 +299,7 @@ static const char *do_folder_delmsgs(const char *dir, size_t pos)  		maildir_info_destroy(&minfo);  		return "othererror";  	    } -	     +  	    cur = malloc(strlen(deldir)+5);  	    strcpy(cur, deldir);  	    strcat(cur, "/cur"); @@ -310,7 +310,7 @@ static const char *do_folder_delmsgs(const char *dir, size_t pos)  	    maildir_info_destroy(&minfo);  	    free(deldir);  	    free(cur); -	     +  	}  	else if (*cgi("cmdmove"))  	{ @@ -334,7 +334,7 @@ static const char *do_folder_delmsgs(const char *dir, size_t pos)  void folder_delmsgs(const char *dir, size_t pos)  {  	const char *status=do_folder_delmsgs(dir, pos); -	 +  	if (*cgi("search"))  		http_redirect_argsss("&error=%s&form=folder&pos=%s&search=1&"  				     SEARCHRESFILENAME "=%s", status, @@ -1358,7 +1358,7 @@ static void show_transfer_dest_real(const char *, const char *,  				    const char *, const char *);  static void show_transfer_dest_fake(const char *,  				    struct maildir_shindex_cache *); -			     +  static void show_transfer_dest(const char *cur_folder)  {  	parse_hierarchy(cur_folder, show_transfer_dest_real, @@ -2830,7 +2830,7 @@ static void parse_hierarchy(const char *folderdir,  	if (strchr(folderdir, '/'))  		enomem(); -		 +  	if (strncmp(folderdir, NEWSHAREDSP, sizeof(NEWSHAREDSP)-1) == 0)  		switch (folderdir[sizeof(NEWSHAREDSP)-1]) {  		case 0: @@ -3643,7 +3643,7 @@ void folder_showtransfer()  	}  	if ((strcmp(sqwebmail_folder, INBOX "." TRASH) == 0) && (strlen(getarg("PURGEALL")))) -	    printf("<input type=\"submit\" name=\"cmdpurgeall\" value=\"%s\" onclick=\"javascript: return deleteAll();\" />",  +	    printf("<input type=\"submit\" name=\"cmdpurgeall\" value=\"%s\" onclick=\"javascript: return deleteAll();\" />",  		getarg("PURGEALL"));  	printf("<input type=\"submit\" name=\"cmddel\" value=\"%s\" />%s<select name=\"moveto\">",  		strcmp(sqwebmail_folder, INBOX "." TRASH) == 0 @@ -3715,7 +3715,7 @@ static char *truncate_at(const char *str,  			 const char *charset,  			 size_t ncols)  { -	unicode_char *uc; +	char32_t *uc;  	size_t n;  	size_t cols, tp=0;  	char *retbuf; @@ -3756,7 +3756,7 @@ static char *truncate_at(const char *str,  	if (chopped)  	{ -		uc = realloc(uc, sizeof(unicode_char) * (tp+4)); +		uc = realloc(uc, sizeof(char32_t) * (tp+4));  		if (uc == 0) enomem();  		uc[tp]='.';  		uc[tp+1]='.'; diff --git a/sqwebmail/html.c b/sqwebmail/html.c index 0e381c1..9472302 100644 --- a/sqwebmail/html.c +++ b/sqwebmail/html.c @@ -117,7 +117,7 @@ struct htmlfilter_info {  	/* The output function receives the HTML-filtered stream */ -	void (*output_func)(const unicode_char *, size_t, void *); +	void (*output_func)(const char32_t *, size_t, void *);  	void *output_func_arg;  	/* Content base for relative URLs */ @@ -136,7 +136,7 @@ struct htmlfilter_info {  	/* Current handle for the input HTML stream */  	size_t (*handler_func)(struct htmlfilter_info *, -			       const unicode_char *, +			       const char32_t *,  			       size_t);  	/* @@ -161,7 +161,7 @@ struct htmlfilter_info {  	** Quoting character  	*/ -	unicode_char value_quote; +	char32_t value_quote;  	/* Current tag being processed */  	const struct taginfo *tag; @@ -203,79 +203,79 @@ static void free_attrs(struct htmlfilter_info *p)  }  static size_t handle_chars(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt);  static size_t handle_entity(struct htmlfilter_info *p, -			    const unicode_char *uc, +			    const char32_t *uc,  			    size_t cnt);  static size_t seen_lt(struct htmlfilter_info *p, -		      const unicode_char *uc, +		      const char32_t *uc,  		      size_t cnt);  static size_t seen_ltexcl(struct htmlfilter_info *p, -			  const unicode_char *uc, +			  const char32_t *uc,  			  size_t cnt);  static size_t seen_sgentity(struct htmlfilter_info *p, -			    const unicode_char *uc, +			    const char32_t *uc,  			    size_t cnt);  static size_t seen_ltspace(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt);  static size_t seen_pi(struct htmlfilter_info *p, -		      const unicode_char *uc, +		      const char32_t *uc,  		      size_t cnt);  static size_t seen_piq(struct htmlfilter_info *p, -		       const unicode_char *uc, +		       const char32_t *uc,  		       size_t cnt);  static size_t seen_comment(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt);  static size_t seen_commentdash(struct htmlfilter_info *p, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt);  static size_t seen_commentdashdash(struct htmlfilter_info *p, -				   const unicode_char *uc, +				   const char32_t *uc,  				   size_t cnt);  static size_t seen_closing_elem(struct htmlfilter_info *p, -				const unicode_char *uc, +				const char32_t *uc,  				size_t cnt);  static size_t seen_opening_elem(struct htmlfilter_info *p, -				const unicode_char *uc, +				const char32_t *uc,  				size_t cnt);  static size_t seen_attr(struct htmlfilter_info *p, -			const unicode_char *uc, +			const char32_t *uc,  			size_t cnt);  static size_t seen_attrname(struct htmlfilter_info *p, -			    const unicode_char *uc, +			    const char32_t *uc,  			    size_t cnt);  static size_t seen_attrvalue_1stchar(struct htmlfilter_info *p, -				     const unicode_char *uc, +				     const char32_t *uc,  				     size_t cnt);  static size_t seen_attrvalue(struct htmlfilter_info *p, -			     const unicode_char *uc, +			     const char32_t *uc,  			     size_t cnt);  static size_t seen_attrvalue_entity(struct htmlfilter_info *p, -				    const unicode_char *uc, +				    const char32_t *uc,  				    size_t cnt);  struct htmlfilter_info *htmlfilter_alloc(void (*output_func) -					 (const unicode_char *, size_t, void *), +					 (const char32_t *, size_t, void *),  					 void *output_func_arg)  {  	struct htmlfilter_info *p; @@ -356,7 +356,7 @@ void htmlfilter_set_convertcid(struct htmlfilter_info *p,  }  void htmlfilter(struct htmlfilter_info *p, -		const unicode_char *str, size_t cnt) +		const char32_t *str, size_t cnt)  {  	while (cnt)  	{ @@ -372,7 +372,7 @@ void htmlfilter(struct htmlfilter_info *p,  */  static void output(struct htmlfilter_info *p, -		   const unicode_char *uc, +		   const char32_t *uc,  		   size_t cnt)  {  	if (cnt && !p->n_discarded) @@ -386,7 +386,7 @@ static void output_chars(struct htmlfilter_info *p,  			 const char *str,  			 size_t cnt)  { -	unicode_char unicode_buf[256]; +	char32_t unicode_buf[256];  	while (cnt)  	{ @@ -409,7 +409,7 @@ static void output_chars(struct htmlfilter_info *p,  */  static size_t handle_chars(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt)  {  	size_t i; @@ -443,7 +443,7 @@ static size_t handle_chars(struct htmlfilter_info *p,  			if (i)  				output(p, uc, i);  			{ -				static const unicode_char gt[]= +				static const char32_t gt[]=  					{'&','g','t',';'};  				output(p, gt, 4); @@ -461,7 +461,7 @@ static size_t handle_chars(struct htmlfilter_info *p,  ** Returns: non-zero US-ASCII lowercase value of passed character if the  ** passed character is US-ASCII alphabetic or numeric, 0 otherwise.  */ -static unicode_char isualnum(unicode_char c) +static char32_t isualnum(char32_t c)  {  	if (c >= 'a' && c <= 'z')  		return c; @@ -480,7 +480,7 @@ static unicode_char isualnum(unicode_char c)  */  static size_t handle_entity(struct htmlfilter_info *p, -			    const unicode_char *uc, +			    const char32_t *uc,  			    size_t cnt)  {  	size_t i; @@ -493,7 +493,7 @@ static size_t handle_entity(struct htmlfilter_info *p,  	for (i=0; i<cnt; ++i)  	{ -		unicode_char c=isualnum(uc[i]); +		char32_t c=isualnum(uc[i]);  		if (c != 0)  		{ @@ -523,7 +523,7 @@ static size_t handle_entity(struct htmlfilter_info *p,  */  static size_t seen_lt(struct htmlfilter_info *p, -		      const unicode_char *uc, +		      const char32_t *uc,  		      size_t cnt)  {  	if (*uc == '?') @@ -548,7 +548,7 @@ static size_t seen_lt(struct htmlfilter_info *p,  */  static size_t seen_ltexcl(struct htmlfilter_info *p, -			  const unicode_char *uc, +			  const char32_t *uc,  			  size_t cnt)  {  	if (*uc == '-') @@ -569,7 +569,7 @@ static size_t seen_ltexcl(struct htmlfilter_info *p,  */  static size_t seen_sgentity(struct htmlfilter_info *p, -			    const unicode_char *uc, +			    const char32_t *uc,  			    size_t cnt)  {  	size_t i; @@ -590,7 +590,7 @@ static size_t seen_sgentity(struct htmlfilter_info *p,  */  static size_t seen_ltspace(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt)  {  	if (SPACE(*uc)) @@ -619,7 +619,7 @@ static size_t seen_ltspace(struct htmlfilter_info *p,  */  static size_t seen_pi(struct htmlfilter_info *p, -		      const unicode_char *uc, +		      const char32_t *uc,  		      size_t cnt)  {  	size_t i; @@ -640,7 +640,7 @@ static size_t seen_pi(struct htmlfilter_info *p,  */  static size_t seen_piq(struct htmlfilter_info *p, -		       const unicode_char *uc, +		       const char32_t *uc,  		       size_t cnt)  {  	p->handler_func=seen_pi; @@ -661,7 +661,7 @@ static size_t seen_piq(struct htmlfilter_info *p,  */  static size_t seen_comment(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt)  {  	size_t i; @@ -682,7 +682,7 @@ static size_t seen_comment(struct htmlfilter_info *p,  */  static size_t seen_commentdash(struct htmlfilter_info *p, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt)  {  	if (*uc == '-') @@ -699,7 +699,7 @@ static size_t seen_commentdash(struct htmlfilter_info *p,  */  static size_t seen_commentdashdash(struct htmlfilter_info *p, -				   const unicode_char *uc, +				   const char32_t *uc,  				   size_t cnt)  {  	if (*uc == '>') @@ -720,14 +720,14 @@ static int search_tags(const void *key, const void *elem)  {  	size_t i;  	const char *cp=((const struct taginfo *)elem)->tagname; -	unicode_char c; +	char32_t c;  	const struct unicode_buf *ukey=(struct unicode_buf *)key; -	const unicode_char *k=unicode_buf_ptr(ukey); +	const char32_t *k=unicode_buf_ptr(ukey);  	size_t kl=unicode_buf_len(ukey);  	for (i=0; (c=i >= kl ? 0:k[i]) != 0 || cp[i] != 0; ++i)  	{ -		unicode_char c2=(unsigned char)cp[i]; +		char32_t c2=(unsigned char)cp[i];  		if (c < c2)  			return -1; @@ -758,7 +758,7 @@ static const struct taginfo *change_element(const struct taginfo *tag)  */  static void output_escaped(struct htmlfilter_info *p, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t cnt)  {  	while (cnt) @@ -779,8 +779,8 @@ static void output_escaped(struct htmlfilter_info *p,  		if (cnt)  		{ -			unicode_char c; -			char buf[sizeof(unicode_char)*2+4]; +			char32_t c; +			char buf[sizeof(char32_t)*2+4];  			char *cp;  			c= *uc++; @@ -1004,11 +1004,11 @@ static void close_elements_until(struct htmlfilter_info *p, size_t i)  */  static size_t seen_closing_elem(struct htmlfilter_info *p, -				const unicode_char *uc, +				const char32_t *uc,  				size_t cnt)  {  	size_t i; -	unicode_char c; +	char32_t c;  	for (i=0; i<cnt; ++i)  	{ @@ -1064,14 +1064,14 @@ static size_t seen_closing_elem(struct htmlfilter_info *p,  */  static size_t seen_opening_elem(struct htmlfilter_info *p, -				const unicode_char *uc, +				const char32_t *uc,  				size_t cnt)  {  	size_t i;  	for (i=0; i<cnt; ++i)  	{ -		unicode_char c; +		char32_t c;  		if ((c=uc[i]) == ':' || (c=isualnum(c)) != 0)  		{ @@ -1110,7 +1110,7 @@ static void save_attr(struct htmlfilter_info *p);  */  static size_t seen_attr(struct htmlfilter_info *p, -			const unicode_char *uc, +			const char32_t *uc,  			size_t cnt)  {  	if (SPACE(*uc)) @@ -1157,7 +1157,7 @@ static void append_orig_href(struct htmlfilter_info *p,  		if (i == 0)  		{ -			unicode_char b[3]; +			char32_t b[3];  			b[0]='%';  			b[1]=hex[ (url[0] >> 4) & 15]; @@ -1530,14 +1530,14 @@ static void save_attr(struct htmlfilter_info *p)  */  static size_t seen_attrname(struct htmlfilter_info *p, -			    const unicode_char *uc, +			    const char32_t *uc,  			    size_t cnt)  {  	size_t i;  	for (i=0; i<cnt; ++i)  	{ -		unicode_char c; +		char32_t c;  		if ((c=uc[i]) == ':' || c == '-' || (c=isualnum(c)) != 0)  		{ @@ -1566,7 +1566,7 @@ static size_t seen_attrname(struct htmlfilter_info *p,  */  static size_t seen_attrvalue_1stchar(struct htmlfilter_info *p, -				     const unicode_char *uc, +				     const char32_t *uc,  				     size_t cnt)  {  	p->handler_func=seen_attrvalue; @@ -1586,7 +1586,7 @@ static size_t seen_attrvalue_1stchar(struct htmlfilter_info *p,  */  static size_t seen_attrvalue(struct htmlfilter_info *p, -			     const unicode_char *uc, +			     const char32_t *uc,  			     size_t cnt)  {  	size_t i; @@ -1636,12 +1636,12 @@ static size_t seen_attrvalue(struct htmlfilter_info *p,  static void append_entity(struct htmlfilter_info *p)  { -	unicode_char v=0; +	char32_t v=0;  	if (unicode_buf_len(&p->atom2) &&  	    unicode_buf_ptr(&p->atom2)[0] == '#')  	{ -		const unicode_char *u=unicode_buf_ptr(&p->atom2); +		const char32_t *u=unicode_buf_ptr(&p->atom2);  		size_t n=unicode_buf_len(&p->atom2);  		++u; @@ -1651,7 +1651,7 @@ static void append_entity(struct htmlfilter_info *p)  		{  			while (--n)  			{ -				unicode_char c=*++u; +				char32_t c=*++u;  				const char *cp;  				if (c >= 'a' && c <= 'f') @@ -1672,7 +1672,7 @@ static void append_entity(struct htmlfilter_info *p)  		{  			while (n)  			{ -				unicode_char c= *u++; +				char32_t c= *u++;  				--n; @@ -1693,7 +1693,7 @@ static void append_entity(struct htmlfilter_info *p)  		for (i=0; i<unicode_buf_len(&p->atom2); ++i)  		{ -			unicode_char c=unicode_buf_ptr(&p->atom2)[i]; +			char32_t c=unicode_buf_ptr(&p->atom2)[i];  			if ((unsigned char)c != c)  				return; @@ -1718,7 +1718,7 @@ static void append_entity(struct htmlfilter_info *p)  */  static size_t seen_attrvalue_entity(struct htmlfilter_info *p, -				    const unicode_char *uc, +				    const char32_t *uc,  				    size_t cnt)  {  	size_t i; @@ -1731,7 +1731,7 @@ static size_t seen_attrvalue_entity(struct htmlfilter_info *p,  	for (i=0; i<cnt; ++i)  	{ -		unicode_char c=isualnum(uc[i]); +		char32_t c=isualnum(uc[i]);  		if (c)  		{ @@ -1750,7 +1750,7 @@ static size_t seen_attrvalue_entity(struct htmlfilter_info *p,  			/* Broken URL, most likely */  			{ -				unicode_char amp='&'; +				char32_t amp='&';  				unicode_buf_append(&p->value, &, 1);  			} diff --git a/sqwebmail/html.h b/sqwebmail/html.h index c8d25fa..658dade 100644 --- a/sqwebmail/html.h +++ b/sqwebmail/html.h @@ -13,11 +13,11 @@  struct htmlfilter_info;  extern struct htmlfilter_info -*htmlfilter_alloc(void (*)(const unicode_char *, size_t, void *), void *); +*htmlfilter_alloc(void (*)(const char32_t *, size_t, void *), void *);  extern void htmlfilter_free(struct htmlfilter_info *);  extern void htmlfilter(struct htmlfilter_info *, -		       const unicode_char *, size_t); +		       const char32_t *, size_t);  extern void htmlfilter_set_contentbase(struct htmlfilter_info *,  				   const char *); diff --git a/sqwebmail/maildir.c b/sqwebmail/maildir.c index 79dfbda..9c09813 100644 --- a/sqwebmail/maildir.c +++ b/sqwebmail/maildir.c @@ -2007,10 +2007,10 @@ static const char spaces[]=" \t\r\n";  struct searchresults_match_context {  	struct searchresults_match_context *next; -	unicode_char *match_context_before; -	unicode_char *match_context; +	char32_t *match_context_before; +	char32_t *match_context; -	unicode_char *match_context_after; +	char32_t *match_context_after;  	size_t match_context_after_len;  	size_t match_context_after_max_len;  }; @@ -2025,7 +2025,7 @@ struct searchresults {  	char utf8buf[512];  	size_t utf8buf_cnt; -	unicode_char *context_buf; +	char32_t *context_buf;  	size_t context_buf_len;  	size_t context_buf_head; @@ -2115,7 +2115,7 @@ static void execute_maildir_search(const char *dirname,  	{  		struct maildir_searchengine se;  		int rc=-1; -		unicode_char *ustr; +		char32_t *ustr;  		size_t ustr_size;  		unicode_convert_handle_t h; @@ -2200,7 +2200,7 @@ static int searchresults_init(struct searchresults *sr,  	sr->utf8buf_cnt=0;  	sr->context_buf_len=maildir_search_len(se)+SEARCH_MATCH_CONTEXT_LEN*2+1; -	sr->context_buf=malloc(sr->context_buf_len * sizeof(unicode_char)); +	sr->context_buf=malloc(sr->context_buf_len * sizeof(char32_t));  	if (sr->context_buf == NULL)  		return -1; @@ -2241,14 +2241,14 @@ static void search_found_save_context(struct searchresults *sr)  		return;  	if ((c->match_context_before=malloc((SEARCH_MATCH_CONTEXT_LEN+1) -					    * sizeof(unicode_char))) == NULL) +					    * sizeof(char32_t))) == NULL)  	{  		free(c);  		return;  	}  	if ((c->match_context=malloc((maildir_search_len(sr->se)+1) -				     * sizeof(unicode_char))) == NULL) +				     * sizeof(char32_t))) == NULL)  	{  		free(c->match_context_before);  		free(c); @@ -2256,7 +2256,7 @@ static void search_found_save_context(struct searchresults *sr)  	}  	if ((c->match_context_after=malloc((SEARCH_MATCH_CONTEXT_LEN+1) -					   * sizeof(unicode_char))) == NULL) +					   * sizeof(char32_t))) == NULL)  	{  		free(c->match_context);  		free(c->match_context_before); @@ -2318,7 +2318,7 @@ static void search_found_save_context(struct searchresults *sr)  static int do_search_utf8(struct searchresults *res)  { -	unicode_char *uc=NULL; +	char32_t *uc=NULL;  	size_t n;  	unicode_convert_handle_t h; @@ -2349,8 +2349,8 @@ static int do_search_utf8(struct searchresults *res)  	{  		struct searchresults_match_context *c; -		unicode_char origch=uc[n]; -		unicode_char ch=unicode_lc(origch); +		char32_t origch=uc[n]; +		char32_t ch=unicode_lc(origch);  		maildir_search_step_unicode(res->se, ch); @@ -2519,7 +2519,7 @@ static MATCHEDSTR *creatematches(struct searchresults *sr)  	return retval;  } -static char *match_conv(const unicode_char *uc) +static char *match_conv(const char32_t *uc)  {  	char *cbuf;  	size_t csize; diff --git a/sqwebmail/msg2html.c b/sqwebmail/msg2html.c index f58df1d..80387ac 100644 --- a/sqwebmail/msg2html.c +++ b/sqwebmail/msg2html.c @@ -472,7 +472,7 @@ static int showmsgrfc822_header(const char *output_chset,  {  	struct filter_info info; -	unicode_char *uc; +	char32_t *uc;  	size_t ucsize;  	int conv_err; @@ -927,7 +927,7 @@ static int text_to_stdout(const char *p, size_t n, void *dummy)  	return 0;  } -static void convert_unicode(const unicode_char *uc, +static void convert_unicode(const char32_t *uc,  			    size_t n, void *dummy)  {  	unicode_convert_uc(*(unicode_convert_handle_t *)dummy, uc, n); @@ -936,7 +936,7 @@ static void convert_unicode(const unicode_char *uc,  static int htmlfilter_stub(const char *ptr, size_t cnt, void *voidptr)  {  	htmlfilter((struct htmlfilter_info *)voidptr, -		   (const unicode_char *)ptr, cnt/sizeof(unicode_char)); +		   (const char32_t *)ptr, cnt/sizeof(char32_t));  	return (0);  } @@ -1373,7 +1373,7 @@ struct msg2html_textplain_info {  	int text_decor_apostrophe_cnt; /* Apostrophe accumulator */ -	unicode_char text_decor_uline_prev; +	char32_t text_decor_uline_prev;  	/* Previous character, used when scanning for underline enable */  	/* @@ -1383,7 +1383,7 @@ struct msg2html_textplain_info {  	** handle wikifmt codes.  	*/ -	unicode_char lookahead_buf[64]; +	char32_t lookahead_buf[64];  	size_t lookahead_saved;  	/* @@ -1402,7 +1402,7 @@ struct msg2html_textplain_info {  	** highlights them.  	*/  	size_t (*text_url_handler)(struct msg2html_textplain_info *, -				   const unicode_char *, +				   const char32_t *,  				   size_t);  	/* @@ -1438,7 +1438,7 @@ static void text_emit_passthru(struct msg2html_textplain_info *info,  {  	while (*str)  	{ -		unicode_char ch=(unsigned char)*str++; +		char32_t ch=(unsigned char)*str++;  		filter_passthru(&info->info, &ch, 1);  	} @@ -1450,7 +1450,7 @@ static void text_close_paragraph(struct msg2html_textplain_info *info)  {  	if (info->paragraph_open)  	{ -		unicode_char uc='\n'; +		char32_t uc='\n';  		info->paragraph_open=0;  		text_emit_passthru(info, info->paragraph_close); @@ -1477,7 +1477,7 @@ static void text_close_li(struct msg2html_textplain_info *info)  	if (info->li_open)  	{ -		unicode_char uc='\n'; +		char32_t uc='\n';  		info->li_open=0;  		text_emit_passthru(info, "</li>"); @@ -1604,14 +1604,14 @@ static void text_process_decor_begin(struct msg2html_textplain_info *ptr);  static void text_process_decor_end(struct msg2html_textplain_info *ptr);  static size_t text_contents_notalpha(struct msg2html_textplain_info *ptr, -				     const unicode_char *txt, +				     const char32_t *txt,  				     size_t txt_size); -static void text_line_contents_with_lookahead(const unicode_char *txt, +static void text_line_contents_with_lookahead(const char32_t *txt,  					      size_t txt_size,  					      struct msg2html_textplain_info  					      *info); -static void process_text(const unicode_char *txt, +static void process_text(const char32_t *txt,  			 size_t txt_size,  			 struct msg2html_textplain_info *info); @@ -1631,7 +1631,7 @@ static void process_text(const unicode_char *txt,  ** at the beginning of the logical line.  */ -static int do_text_line_contents(const unicode_char *txt, +static int do_text_line_contents(const char32_t *txt,  				 size_t txt_size,  				 void *arg); @@ -1671,7 +1671,7 @@ static int text_line_begin(size_t quote_level,  ** Process the contents of a logical line.  */ -static int text_line_contents(const unicode_char *txt, +static int text_line_contents(const char32_t *txt,  			      size_t txt_size,  			      void *arg)  { @@ -1689,13 +1689,13 @@ static int text_line_contents(const unicode_char *txt,  #endif  } -static int do_text_line_contents(const unicode_char *txt, +static int do_text_line_contents(const char32_t *txt,  				 size_t txt_size,  				 void *arg)  {  	struct msg2html_textplain_info *info=  		(struct msg2html_textplain_info *)arg; -	unicode_char lookahead_cpy_buf[sizeof(info->lookahead_buf) +	char32_t lookahead_cpy_buf[sizeof(info->lookahead_buf)  				       /sizeof(info->lookahead_buf[0])];  	size_t n; @@ -1752,7 +1752,7 @@ static int do_text_line_contents(const unicode_char *txt,  ** to this function, prepended to any new content.  */ -static void text_line_contents_with_lookahead(const unicode_char *txt, +static void text_line_contents_with_lookahead(const char32_t *txt,  					      size_t txt_size,  					      struct msg2html_textplain_info  					      *info) @@ -1895,7 +1895,7 @@ static void text_line_contents_with_lookahead(const unicode_char *txt,  */  static int text_line_flowed_notify(void *arg)  { -	unicode_char nl='\n'; +	char32_t nl='\n';  	struct msg2html_textplain_info *info=  		(struct msg2html_textplain_info *)arg;  	filter(&info->info, &nl, 1); @@ -1929,7 +1929,7 @@ static int text_line_end(void *arg)  	if (info->flowed)  	{ -		unicode_char uc='\n'; +		char32_t uc='\n';  		if (info->start_of_line)  		{ @@ -1976,7 +1976,7 @@ static int text_line_end(void *arg)  	{ -		unicode_char uc='\n'; +		char32_t uc='\n';  		filter(&info->info, &uc, 1);  	} @@ -1984,17 +1984,17 @@ static int text_line_end(void *arg)  }  static void process_text_wiki(char *paragraph_open, -			      const unicode_char **txt_ret, +			      const char32_t **txt_ret,  			      size_t *txt_size_ret,  			      struct msg2html_textplain_info *info); -static void process_text(const unicode_char *txt, +static void process_text(const char32_t *txt,  			 size_t txt_size,  			 struct msg2html_textplain_info *info)  {  	if (info->flowed && info->start_of_line)  	{ -		unicode_char uc='\n'; +		char32_t uc='\n';  		filter(&info->info, &uc, 1); @@ -2056,7 +2056,7 @@ static void process_text(const unicode_char *txt,  */  static void process_text_wiki(char *paragraph_open, -			      const unicode_char **txt, +			      const char32_t **txt,  			      size_t *txt_size,  			      struct msg2html_textplain_info *info)  { @@ -2189,27 +2189,27 @@ static void process_text_wiki(char *paragraph_open,  */  static void text_process_decor(struct msg2html_textplain_info *info, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt);  static void text_process_decor_uline(struct msg2html_textplain_info *info, -				     const unicode_char *uc, +				     const char32_t *uc,  				     size_t cnt);  static void text_process_plain(struct msg2html_textplain_info *info, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt);  static void emit_char_buffer(struct msg2html_textplain_info *info,  			     const char *uc,  			     size_t cnt,  			     void (*func)(struct msg2html_textplain_info *info, -					  const unicode_char *uc, +					  const char32_t *uc,  					  size_t cnt));  static size_t text_contents_checkurl(struct msg2html_textplain_info *info, -				     const unicode_char *txt, +				     const char32_t *txt,  				     size_t txt_size);  /*  ** Initial state of the URL collection layer -- processing non-alphabetic @@ -2218,7 +2218,7 @@ static size_t text_contents_checkurl(struct msg2html_textplain_info *info,  */  static size_t text_contents_notalpha(struct msg2html_textplain_info *info, -				     const unicode_char *txt, +				     const char32_t *txt,  				     size_t txt_size)  {  	size_t i; @@ -2247,17 +2247,17 @@ static size_t text_contents_notalpha(struct msg2html_textplain_info *info,  }  static size_t text_contents_nourl(struct msg2html_textplain_info *info, -				  const unicode_char *txt, +				  const char32_t *txt,  				  size_t txt_size);  static size_t text_contents_collecturl(struct msg2html_textplain_info *info, -				       const unicode_char *txt, +				       const char32_t *txt,  				       size_t txt_size);  /*  ** Collecting what may be a URL method name.  */  static size_t text_contents_checkurl(struct msg2html_textplain_info *info, -				     const unicode_char *txt, +				     const char32_t *txt,  				     size_t txt_size)  {  	size_t i; @@ -2339,7 +2339,7 @@ static size_t text_contents_checkurl(struct msg2html_textplain_info *info,  */  static size_t text_contents_nourl(struct msg2html_textplain_info *info, -				  const unicode_char *txt, +				  const char32_t *txt,  				  size_t txt_size)  {  	size_t i; @@ -2425,7 +2425,7 @@ static void emiturl(struct msg2html_textplain_info *info)  ** Ok, we have a URL, so collect it, then mark it up.  */  static size_t text_contents_collecturl(struct msg2html_textplain_info *info, -				       const unicode_char *txt, +				       const char32_t *txt,  				       size_t txt_size)  {  	size_t i; @@ -2460,10 +2460,10 @@ static void emit_char_buffer(struct msg2html_textplain_info *info,  			     const char *uc,  			     size_t cnt,  			     void (*func)(struct msg2html_textplain_info *info, -					  const unicode_char *uc, +					  const char32_t *uc,  					  size_t cnt))  { -	unicode_char buf[64]; +	char32_t buf[64];  	while (cnt)  	{ @@ -2549,7 +2549,7 @@ static void text_process_decor_begin(struct msg2html_textplain_info *info)  static void text_process_decor_apostrophe(struct msg2html_textplain_info *info)  { -	unicode_char apos='\''; +	char32_t apos='\'';  	int n=info->text_decor_apostrophe_cnt;  	info->text_decor_apostrophe_cnt=0; @@ -2588,7 +2588,7 @@ static void text_process_decor_end(struct msg2html_textplain_info *info)  ** Process text decorations.  */  static void text_process_decor(struct msg2html_textplain_info *info, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt)  {  	size_t i; @@ -2635,11 +2635,11 @@ static void text_process_decor(struct msg2html_textplain_info *info,  */  static void text_process_decor_uline(struct msg2html_textplain_info *info, -				     const unicode_char *uc, +				     const char32_t *uc,  				     size_t cnt)  {  	size_t i; -	unicode_char space=' '; +	char32_t space=' ';  	while (cnt)  	{ @@ -2740,7 +2740,7 @@ static void text_process_decor_uline(struct msg2html_textplain_info *info,  */  static void text_process_plain(struct msg2html_textplain_info *info, -			       const unicode_char *uc, +			       const char32_t *uc,  			       size_t cnt)  {  	/* Set any requested text decorations that should be active now. */ diff --git a/sqwebmail/newmsg.h b/sqwebmail/newmsg.h index b86742a..3cd0394 100644 --- a/sqwebmail/newmsg.h +++ b/sqwebmail/newmsg.h @@ -30,7 +30,7 @@ struct wrap_info {  	void (*output_func)(const char *p, size_t l, void *arg);  	void *arg; -	const unicode_char *uc; +	const char32_t *uc;  	size_t ucsize;  	size_t cur_index; diff --git a/sqwebmail/newmsg_create.c b/sqwebmail/newmsg_create.c index 1fb712f..f78a275 100644 --- a/sqwebmail/newmsg_create.c +++ b/sqwebmail/newmsg_create.c @@ -172,7 +172,7 @@ size_t	offset=strlen(name);  		*outbuf=0;  	++*outcnt;  } -			 +  static void create_draftheader_do(const char *hdrname, const char *p,  	int isrfc822addr)  { @@ -226,7 +226,7 @@ void newmsg_create_multipart(int newdraftfd, const char *charset,  	maildir_writemsgstr(newdraftfd, multipart_boundary);  	maildir_writemsgstr(newdraftfd, "\"; charset=\"");  	maildir_writemsgstr(newdraftfd, charset); -	maildir_writemsgstr(newdraftfd,  +	maildir_writemsgstr(newdraftfd,  					"\"\n\n");  	maildir_writemsgstr(newdraftfd, mimemsg); @@ -299,7 +299,7 @@ void wrap_text_init(struct wrap_info *uw,  }  static void do_save_u_line(struct wrap_info *uw, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t ucsize,  			   int flowed)  { @@ -324,12 +324,12 @@ static void do_save_u_line(struct wrap_info *uw,  		}  		if (flowed)  		{ -			unicode_char spc=' '; +			char32_t spc=' ';  			unicode_convert_uc(h, &spc, 1);  		}  		{ -			unicode_char nl='\n'; +			char32_t nl='\n';  			unicode_convert_uc(h, &nl, 1);  		} @@ -394,7 +394,7 @@ static int do_save_u_process_lb(int type, void *arg)  }  static void do_wrap_u_line(struct wrap_info *uw, -			   const unicode_char *uc, +			   const char32_t *uc,  			   size_t ucsize)  {  	unicode_lb_info_t lb; @@ -435,7 +435,7 @@ void wrap_text(struct wrap_info *uw,  	while (i < newmsg_size)  	{ -		unicode_char *uc; +		char32_t *uc;  		size_t ucsize;  		unicode_convert_handle_t h; @@ -742,7 +742,7 @@ char *sig, *footer;  		if ((sig && *sig) || (footer && *footer))  		{ -			static const unicode_char sig_line[]={'-', '-', ' '}; +			static const char32_t sig_line[]={'-', '-', ' '};  			do_save_u_line(&uw, sig_line, 0, 0);  			do_save_u_line(&uw, sig_line, 3, 0); @@ -919,7 +919,7 @@ static void sentmsg_copy(FILE *f, struct rfc2045 *p)                  if ((n=fread(buf, 1, cnt, f)) <= 0)                  { -                        fclose(f);       +                        fclose(f);                          close(newdraftfd);                          enomem();                  } @@ -1105,7 +1105,7 @@ struct	rfc2045 *rfcp;  int	x;  	*isgpgerr=0; -  +  	if (!filename)	return (0);  	fp=0; @@ -1180,7 +1180,7 @@ int	x;  		char buf[BUFSIZ];  		int n;  		off_t   dummy; -		 +  		rfc2045_mimepos(rfcp, &start_pos, &end_pos, &start_body,  				&dummy, &dummy); @@ -1200,7 +1200,7 @@ int	x;  			if ((n=fread(buf, 1, cnt, fp)) <= 0)  			{ -				fclose(fp);       +				fclose(fp);  				close(newdraftfd);  				enomem();  			} diff --git a/sqwebmail/sqispell.c b/sqwebmail/sqispell.c index 3e72873..51f1cfa 100644 --- a/sqwebmail/sqispell.c +++ b/sqwebmail/sqispell.c @@ -388,7 +388,7 @@ static void showfunc(const char *p, size_t n, void *dummy)  static void show_part(const char *ptr, size_t cnt)  { -	unicode_char *uc; +	char32_t *uc;  	size_t ucsize;  	int conv_err; diff --git a/sqwebmail/testhtml.c b/sqwebmail/testhtml.c index aa7572f..a940486 100644 --- a/sqwebmail/testhtml.c +++ b/sqwebmail/testhtml.c @@ -3,7 +3,7 @@  #include <stdio.h>  #include <string.h> -static void write_stdout(const unicode_char *uc, size_t n, void *dummy) +static void write_stdout(const char32_t *uc, size_t n, void *dummy)  {  	while (n)  	{ @@ -21,7 +21,7 @@ int main(int argc, char **argv)  {  	struct htmlfilter_info *p;  	char buf[1024]; -	unicode_char ubuf[1024]; +	char32_t ubuf[1024];  	size_t n;  	p=htmlfilter_alloc(write_stdout, NULL); | 
