summaryrefslogtreecommitdiffstats
path: root/rfc2045
diff options
context:
space:
mode:
authorSam Varshavchik2017-03-09 06:47:37 -0500
committerSam Varshavchik2017-03-09 06:47:37 -0500
commit914d160ada16463a76d42011aa8d721134fba9b8 (patch)
tree0ca27e91d287778259c8b8f50b7cec0f5e4bafa4 /rfc2045
parent51ba33a2e4b3a1e2679d240549c57963a845ae7c (diff)
downloadcourier-libs-914d160ada16463a76d42011aa8d721134fba9b8.tar.bz2
courier-unicode API update.
Diffstat (limited to 'rfc2045')
-rw-r--r--rfc2045/rfc2045reply.c10
-rw-r--r--rfc2045/rfc3676parser.c97
-rw-r--r--rfc2045/rfc3676parser.h6
-rw-r--r--rfc2045/rfc3676parsercpp.C8
-rw-r--r--rfc2045/testrfc3676parser.c2
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)
{