diff options
Diffstat (limited to 'rfc2045')
| -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 | 
5 files changed, 61 insertions, 62 deletions
| 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)  { | 
