X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=gmime-filter-reply.c;h=2b0676698b8ff7225b164c9db52ab5ad5b5ea314;hp=3e298e1b647d4bf34ed91c6d033b6914f67fc50b;hb=HEAD;hpb=357aba3ec8177c11a7ce22cbe26d92482f6a5e53 diff --git a/gmime-filter-reply.c b/gmime-filter-reply.c index 3e298e1b..35349cc8 100644 --- a/gmime-filter-reply.c +++ b/gmime-filter-reply.c @@ -16,7 +16,10 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include + #include "gmime-filter-reply.h" +#include "notmuch-client.h" /** * SECTION: gmime-filter-reply @@ -27,7 +30,7 @@ **/ -static void g_mime_filter_reply_class_init (GMimeFilterReplyClass *klass); +static void g_mime_filter_reply_class_init (GMimeFilterReplyClass *klass, void *class_data); static void g_mime_filter_reply_init (GMimeFilterReply *filter, GMimeFilterReplyClass *klass); static void g_mime_filter_reply_finalize (GObject *object); @@ -40,157 +43,158 @@ static void filter_reset (GMimeFilter *filter); static GMimeFilterClass *parent_class = NULL; +static GType type = 0; +static const GTypeInfo info = { + .class_size = sizeof (GMimeFilterReplyClass), + .base_init = NULL, + .base_finalize = NULL, + .class_init = (GClassInitFunc) g_mime_filter_reply_class_init, + .class_finalize = NULL, + .class_data = NULL, + .instance_size = sizeof (GMimeFilterReply), + .n_preallocs = 0, + .instance_init = (GInstanceInitFunc) g_mime_filter_reply_init, + .value_table = NULL, +}; + + +void +g_mime_filter_reply_module_init (void) +{ + type = g_type_register_static (GMIME_TYPE_FILTER, "GMimeFilterReply", &info, (GTypeFlags) 0); + parent_class = (GMimeFilterClass *) g_type_class_ref (GMIME_TYPE_FILTER); +} GType g_mime_filter_reply_get_type (void) { - static GType type = 0; - - if (!type) { - static const GTypeInfo info = { - sizeof (GMimeFilterReplyClass), - NULL, /* base_class_init */ - NULL, /* base_class_finalize */ - (GClassInitFunc) g_mime_filter_reply_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (GMimeFilterReply), - 0, /* n_preallocs */ - (GInstanceInitFunc) g_mime_filter_reply_init, - NULL /* value_table */ - }; - - type = g_type_register_static (GMIME_TYPE_FILTER, "GMimeFilterReply", &info, (GTypeFlags) 0); - } - - return type; + return type; } static void -g_mime_filter_reply_class_init (GMimeFilterReplyClass *klass) +g_mime_filter_reply_class_init (GMimeFilterReplyClass *klass, unused (void *class_data)) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GMimeFilterClass *filter_class = GMIME_FILTER_CLASS (klass); - - parent_class = (GMimeFilterClass *) g_type_class_ref (GMIME_TYPE_FILTER); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GMimeFilterClass *filter_class = GMIME_FILTER_CLASS (klass); - object_class->finalize = g_mime_filter_reply_finalize; + object_class->finalize = g_mime_filter_reply_finalize; - filter_class->copy = filter_copy; - filter_class->filter = filter_filter; - filter_class->complete = filter_complete; - filter_class->reset = filter_reset; + filter_class->copy = filter_copy; + filter_class->filter = filter_filter; + filter_class->complete = filter_complete; + filter_class->reset = filter_reset; } static void g_mime_filter_reply_init (GMimeFilterReply *filter, GMimeFilterReplyClass *klass) { - (void) klass; - filter->saw_nl = TRUE; - filter->saw_angle = FALSE; + (void) klass; + filter->saw_nl = true; + filter->saw_angle = false; } static void g_mime_filter_reply_finalize (GObject *object) { - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (parent_class)->finalize (object); } static GMimeFilter * filter_copy (GMimeFilter *filter) { - GMimeFilterReply *reply = (GMimeFilterReply *) filter; + GMimeFilterReply *reply = (GMimeFilterReply *) filter; - return g_mime_filter_reply_new (reply->encode); + return g_mime_filter_reply_new (reply->encode); } static void filter_filter (GMimeFilter *filter, char *inbuf, size_t inlen, size_t prespace, char **outbuf, size_t *outlen, size_t *outprespace) { - GMimeFilterReply *reply = (GMimeFilterReply *) filter; - register const char *inptr = inbuf; - const char *inend = inbuf + inlen; - char *outptr; - - (void) prespace; - if (reply->encode) { - g_mime_filter_set_size (filter, 3 * inlen, FALSE); - - outptr = filter->outbuf; - while (inptr < inend) { - if (reply->saw_nl) { - *outptr++ = '>'; - *outptr++ = ' '; - reply->saw_nl = FALSE; - } - if (*inptr == '\n') - reply->saw_nl = TRUE; - else - reply->saw_nl = FALSE; - - *outptr++ = *inptr++; - } - } else { - g_mime_filter_set_size (filter, inlen + 1, FALSE); - - outptr = filter->outbuf; - while (inptr < inend) { - if (reply->saw_nl) { - if (*inptr == '>') - reply->saw_angle = TRUE; - else - *outptr++ = *inptr; - reply->saw_nl = FALSE; - } else if (reply->saw_angle) { - if (*inptr == ' ') - ; - else - *outptr++ = *inptr; - reply->saw_angle = FALSE; - } else { - if (*inptr == '\n') - reply->saw_nl = TRUE; - *outptr++ = *inptr; - } - - inptr++; - } + GMimeFilterReply *reply = (GMimeFilterReply *) filter; + const char *inptr = inbuf; + const char *inend = inbuf + inlen; + char *outptr; + + (void) prespace; + if (reply->encode) { + g_mime_filter_set_size (filter, 3 * inlen, false); + + outptr = filter->outbuf; + while (inptr < inend) { + if (reply->saw_nl) { + *outptr++ = '>'; + *outptr++ = ' '; + reply->saw_nl = false; + } + if (*inptr == '\n') + reply->saw_nl = true; + else + reply->saw_nl = false; + if (*inptr != '\r') + *outptr++ = *inptr; + inptr++; + } + } else { + g_mime_filter_set_size (filter, inlen + 1, false); + + outptr = filter->outbuf; + while (inptr < inend) { + if (reply->saw_nl) { + if (*inptr == '>') + reply->saw_angle = true; + else + *outptr++ = *inptr; + reply->saw_nl = false; + } else if (reply->saw_angle) { + if (*inptr == ' ') + ; + else + *outptr++ = *inptr; + reply->saw_angle = false; + } else if (*inptr != '\r') { + if (*inptr == '\n') + reply->saw_nl = true; + *outptr++ = *inptr; + } + + inptr++; } + } - *outlen = outptr - filter->outbuf; - *outprespace = filter->outpre; - *outbuf = filter->outbuf; + *outlen = outptr - filter->outbuf; + *outprespace = filter->outpre; + *outbuf = filter->outbuf; } static void filter_complete (GMimeFilter *filter, char *inbuf, size_t inlen, size_t prespace, char **outbuf, size_t *outlen, size_t *outprespace) { - if (inbuf && inlen) - filter_filter (filter, inbuf, inlen, prespace, outbuf, outlen, outprespace); + if (inbuf && inlen) + filter_filter (filter, inbuf, inlen, prespace, outbuf, outlen, outprespace); } static void filter_reset (GMimeFilter *filter) { - GMimeFilterReply *reply = (GMimeFilterReply *) filter; + GMimeFilterReply *reply = (GMimeFilterReply *) filter; - reply->saw_nl = TRUE; - reply->saw_angle = FALSE; + reply->saw_nl = true; + reply->saw_angle = false; } /** * g_mime_filter_reply_new: - * @encode: %TRUE if the filter should encode or %FALSE otherwise + * @encode: %true if the filter should encode or %false otherwise * @dots: encode/decode dots (as for SMTP) * * Creates a new #GMimeFilterReply filter. * - * If @encode is %TRUE, then all lines will be prefixed by "> ", + * If @encode is %true, then all lines will be prefixed by "> ", * otherwise any lines starting with "> " will have that removed * * Returns: a new #GMimeFilterReply filter. @@ -198,11 +202,11 @@ filter_reset (GMimeFilter *filter) GMimeFilter * g_mime_filter_reply_new (gboolean encode) { - GMimeFilterReply *new_reply; + GMimeFilterReply *new_reply; - new_reply = (GMimeFilterReply *) g_object_newv (GMIME_TYPE_FILTER_REPLY, 0, NULL); - new_reply->encode = encode; + new_reply = (GMimeFilterReply *) g_object_new (GMIME_TYPE_FILTER_REPLY, NULL); + new_reply->encode = encode; - return (GMimeFilter *) new_reply; + return (GMimeFilter *) new_reply; }