X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=util%2Fgmime-extra.c;h=04d8ed3d70a83b4b1bb7bab029f060227d2e3b70;hp=7562d9062a20ab1b1a2a9c917c3d4e9b56afe7f5;hb=HEAD;hpb=98b3eebc37eba8b86e888af5dc57dd28ca923e24 diff --git a/util/gmime-extra.c b/util/gmime-extra.c index 7562d906..192cb078 100644 --- a/util/gmime-extra.c +++ b/util/gmime-extra.c @@ -3,7 +3,8 @@ static GMimeStream * -_gzfile_maybe_filter (GMimeStream *file_stream) { +_gzfile_maybe_filter (GMimeStream *file_stream) +{ char buf[4]; int bytes_read; @@ -14,7 +15,7 @@ _gzfile_maybe_filter (GMimeStream *file_stream) { return NULL; /* check for gzipped input */ - if (bytes_read >= 2 && buf[0] == 0x1f && (unsigned char)buf[1] == 0x8b) { + if (bytes_read >= 2 && buf[0] == 0x1f && (unsigned char) buf[1] == 0x8b) { GMimeStream *gzstream; GMimeFilter *gzfilter; @@ -27,7 +28,9 @@ _gzfile_maybe_filter (GMimeStream *file_stream) { return NULL; /* ignore filter id */ - (void)g_mime_stream_filter_add ((GMimeStreamFilter *)gzstream, gzfilter); + (void) g_mime_stream_filter_add ((GMimeStreamFilter *) gzstream, gzfilter); + g_object_unref (gzfilter); + g_object_unref (file_stream); return gzstream; } else { return file_stream; @@ -59,13 +62,13 @@ g_mime_stream_gzfile_open (const char *filename) } GMimeStream * -g_mime_stream_stdout_new() +g_mime_stream_stdout_new () { GMimeStream *stream_stdout = NULL; GMimeStream *stream_buffered = NULL; stream_stdout = g_mime_stream_pipe_new (STDOUT_FILENO); - if (!stream_stdout) + if (! stream_stdout) return NULL; g_mime_stream_pipe_set_owner (GMIME_STREAM_PIPE (stream_stdout), FALSE); @@ -80,10 +83,11 @@ g_mime_stream_stdout_new() /** * copy a glib string into a talloc context, and free it. */ -static char* +static char * g_string_talloc_strdup (void *ctx, char *g_string) { char *new_str = talloc_strdup (ctx, g_string); + g_free (g_string); return new_str; } @@ -93,18 +97,37 @@ g_mime_certificate_get_valid_userid (GMimeCertificate *cert) { /* output user id only if validity is FULL or ULTIMATE. */ const char *uid = g_mime_certificate_get_user_id (cert); + if (uid == NULL) return uid; GMimeValidity validity = g_mime_certificate_get_id_validity (cert); + if (validity == GMIME_VALIDITY_FULL || validity == GMIME_VALIDITY_ULTIMATE) return uid; return NULL; } -const char* -g_mime_certificate_get_fpr16 (GMimeCertificate *cert) { +const char * +g_mime_certificate_get_valid_email (GMimeCertificate *cert) +{ + /* output e-mail address only if validity is FULL or ULTIMATE. */ + const char *email = g_mime_certificate_get_email(cert); + + if (email == NULL) + return email; + GMimeValidity validity = g_mime_certificate_get_id_validity (cert); + + if (validity == GMIME_VALIDITY_FULL || validity == GMIME_VALIDITY_ULTIMATE) + return email; + return NULL; +} + +const char * +g_mime_certificate_get_fpr16 (GMimeCertificate *cert) +{ const char *fpr = g_mime_certificate_get_fingerprint (cert); - if (!fpr || strlen (fpr) < 16) + + if (! fpr || strlen (fpr) < 16) return fpr; return fpr + (strlen (fpr) - 16); @@ -114,23 +137,25 @@ char * g_mime_message_get_address_string (GMimeMessage *message, GMimeAddressType type) { InternetAddressList *list = g_mime_message_get_addresses (message, type); + return internet_address_list_to_string (list, NULL, 0); } char * g_mime_message_get_date_string (void *ctx, GMimeMessage *message) { - GDateTime* parsed_date = g_mime_message_get_date (message); + GDateTime *parsed_date = g_mime_message_get_date (message); + if (parsed_date) { char *date = g_mime_utils_header_format_date (parsed_date); return g_string_talloc_strdup (ctx, date); } else { - return talloc_strdup(ctx, "Thu, 01 Jan 1970 00:00:00 +0000"); + return talloc_strdup (ctx, "Thu, 01 Jan 1970 00:00:00 +0000"); } } InternetAddressList * -g_mime_message_get_reply_to_list(GMimeMessage *message) +g_mime_message_get_reply_to_list (GMimeMessage *message) { return g_mime_message_get_reply_to (message); } @@ -145,6 +170,7 @@ char * g_mime_message_get_reply_to_string (void *ctx, GMimeMessage *message) { InternetAddressList *list = g_mime_message_get_reply_to (message); + return g_string_talloc_strdup (ctx, internet_address_list_to_string (list, NULL, 0)); } @@ -161,23 +187,27 @@ g_mime_parser_set_scan_from (GMimeParser *parser, gboolean flag) */ gboolean -g_mime_signature_status_good (GMimeSignatureStatus status) { - return ((status & (GMIME_SIGNATURE_STATUS_RED | GMIME_SIGNATURE_STATUS_ERROR_MASK)) == 0); +g_mime_signature_status_good (GMimeSignatureStatus status) +{ + return ((status & (GMIME_SIGNATURE_STATUS_RED | GMIME_SIGNATURE_STATUS_ERROR_MASK)) == 0); } gboolean -g_mime_signature_status_bad (GMimeSignatureStatus status) { +g_mime_signature_status_bad (GMimeSignatureStatus status) +{ return (status & GMIME_SIGNATURE_STATUS_RED); } gboolean -g_mime_signature_status_error (GMimeSignatureStatus status) { +g_mime_signature_status_error (GMimeSignatureStatus status) +{ return (status & GMIME_SIGNATURE_STATUS_ERROR_MASK); } gint64 -g_mime_utils_header_decode_date_unix (const char *date) { - GDateTime* parsed_date = g_mime_utils_header_decode_date (date); +g_mime_utils_header_decode_date_unix (const char *date) +{ + GDateTime *parsed_date = g_mime_utils_header_decode_date (date); time_t ret; if (parsed_date) {