[pan] remove support for GMime2
- From: Dominique Dumont <ddumont src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pan] remove support for GMime2
- Date: Fri, 21 Jan 2022 17:48:05 +0000 (UTC)
commit 62e3c588c5a46733e034974e9509573dd12835c4
Author: Dominique Dumont <dod debian org>
Date: Fri Jan 21 18:43:11 2022 +0100
remove support for GMime2
GMime2 is dead, long live GMime3
GMime2 code was removed with this handy command:
$ unifdef -m -D HAVE_GMIME_30 $(ack -l HAVE_GMIME_30 pan)
README.org | 1 -
configure.ac | 13 +--
pan/general/utf8-utils.cc | 20 ----
pan/gui/body-pane.cc | 49 ----------
pan/gui/gui.cc | 48 ----------
pan/gui/pan.cc | 4 -
pan/gui/post-ui.cc | 190 --------------------------------------
pan/tasks/nzb.cc | 4 -
pan/tasks/task-post.cc | 4 -
pan/tasks/task-upload.cc | 20 ----
pan/tasks/task-xover.cc | 4 -
pan/usenet-utils/gpg.cc | 35 -------
pan/usenet-utils/message-check.cc | 4 -
pan/usenet-utils/mime-utils.cc | 92 ------------------
pan/usenet-utils/mime-utils.h | 4 -
15 files changed, 1 insertion(+), 491 deletions(-)
---
diff --git a/README.org b/README.org
index 9dfcbde..f2bee35 100644
--- a/README.org
+++ b/README.org
@@ -96,7 +96,6 @@ other than testing. Use at your own risk:
The following librairies are deprecated and will be removed in future
releases:
-- [[https://gitlab.gnome.org/GNOME/gmime][GMime]] 2.6.20 or higher (optionally with PGP cryptography support)
- GTK 2 2.16.0 or higher
Run the following command to get a list of all options that you can
diff --git a/configure.ac b/configure.ac
index 4e21165..645dc3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,7 +50,6 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
dnl glib, gmime, and gtk are mandatory prerequisites.
GLIB_REQUIRED=2.17.6
GLIB_REQUIRED_FOR_DBUS=2.26.0
-GMIME26_REQUIRED=2.6.20
GMIME30_REQUIRED=3.0.0
GTK_REQUIRED=2.16.0
GTK3_REQUIRED=3.0.0
@@ -123,16 +122,7 @@ dnl warnings when features of a newer GLib version are used.
GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION\\(2,36\\)"
dnl Check for GMime
-AC_ARG_WITH([gmime2],
- AS_HELP_STRING([--with-gmime2],[enable GMime 2 support (deprecated, normally: no)]),
[want_gmime2=$withval], [want_gmime2=no])
-if test "x$want_gmime2" = "xyes" ; then
- PKG_CHECK_MODULES([GMIME], [gmime-2.6 >= $GMIME26_REQUIRED])
-else
- PKG_CHECK_MODULES([GMIME], [gmime-3.0 >= $GMIME30_REQUIRED],
- [
- AC_DEFINE(HAVE_GMIME_30,[1],[GMime 3.0 available])
- ])
-fi
+PKG_CHECK_MODULES([GMIME], [gmime-3.0 >= $GMIME30_REQUIRED])
dnl Check for GMime cryptography support
AC_ARG_WITH([gmime-crypto],
@@ -356,7 +346,6 @@ Configuration:
Source code location: ${srcdir}
Compiler: ${CXX}
With D-Bus: ${want_dbus}
- With GMime 2: ${want_gmime2}
With GMime crypto: ${want_gmime_crypto}
With GtkSpell: ${gtkspell_msg}
With GTK 3: ${gtk_msg}
diff --git a/pan/general/utf8-utils.cc b/pan/general/utf8-utils.cc
index d8e6dc9..2a40478 100644
--- a/pan/general/utf8-utils.cc
+++ b/pan/general/utf8-utils.cc
@@ -127,7 +127,6 @@ pan :: clean_utf8 (const StringView& in_arg)
return out;
}
-#ifdef HAVE_GMIME_30
std::string
pan :: header_to_utf8 (const StringView & header,
const char * fallback_charset1,
@@ -142,21 +141,6 @@ pan :: header_to_utf8 (const StringView & header,
return s;
}
-#else
-std::string
-pan :: header_to_utf8 (const StringView & header,
- const char * fallback_charset1,
- const char * fallback_charset2)
-{
- std::string s = content_to_utf8 (header, fallback_charset1, fallback_charset2);
- if (header.strstr ("=?")) {
- char * decoded (g_mime_utils_header_decode_text ( s.c_str()));
- s = clean_utf8 (decoded);
- g_free (decoded);
- }
- return s;
-}
-#endif
std::string
pan :: mime_part_to_utf8 (GMimePart * part,
@@ -167,11 +151,7 @@ pan :: mime_part_to_utf8 (GMimePart * part,
g_return_val_if_fail (GMIME_IS_PART(part), ret);
const char * charset =
g_mime_object_get_content_type_parameter (GMIME_OBJECT (part), "charset");
-#ifdef HAVE_GMIME_30
GMimeDataWrapper * content = g_mime_part_get_content (part);
-#else
- GMimeDataWrapper * content = g_mime_part_get_content_object (part);
-#endif
GMimeStream *stream = g_mime_stream_mem_new ();
g_mime_data_wrapper_write_to_stream (content, stream);
diff --git a/pan/gui/body-pane.cc b/pan/gui/body-pane.cc
index 6e8bb7d..43f0c43 100644
--- a/pan/gui/body-pane.cc
+++ b/pan/gui/body-pane.cc
@@ -903,11 +903,7 @@ namespace
GError * err (0);
// populate the loader
-#ifdef HAVE_GMIME_30
GMimeDataWrapper * wrapper (g_mime_part_get_content (part));
-#else
- GMimeDataWrapper * wrapper (g_mime_part_get_content_object (part));
-#endif
if (wrapper)
{
GMimeStream * mem_stream (g_mime_stream_mem_new ());
@@ -1252,11 +1248,7 @@ BodyPane :: set_text_from_message (GMimeMessage * message)
// maybe add the headers
const bool do_show_headers (_prefs.get_flag ("show-all-headers", false));
if (message && do_show_headers) {
-#ifdef HAVE_GMIME_30
char * headers (g_mime_object_get_headers ((GMimeObject *) message, NULL));
-#else
- char * headers (g_mime_object_get_headers ((GMimeObject *) message));
-#endif
GtkTextIter end;
gtk_text_buffer_get_end_iter (_buffer, &end);
StringView line, v(headers);
@@ -2068,18 +2060,10 @@ BodyPane :: create_followup_or_reply (bool is_reply)
if (is_reply || fup_to=="poster") {
const std::string& to (reply_to.empty() ? from : reply_to);
-#ifdef HAVE_GMIME_30
pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.c_str());
-#else
- pan_g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.c_str());
-#endif
} else {
const std::string& groups (fup_to.empty() ? newsgroups : fup_to);
-#ifdef HAVE_GMIME_30
g_mime_object_append_header ((GMimeObject *) msg, "Newsgroups", groups.c_str(), NULL);
-#else
- g_mime_object_append_header ((GMimeObject *) msg, "Newsgroups", groups.c_str());
-#endif
}
// Subject:
@@ -2088,43 +2072,22 @@ BodyPane :: create_followup_or_reply (bool is_reply)
std::string val (normalize_subject_re (h));
if (val.find ("Re:") != 0) // add "Re: " if we don't have one
val.insert (0, "Re: ");
-#ifdef HAVE_GMIME_30
g_mime_message_set_subject (msg, val.c_str(), NULL);
-#else
- g_mime_message_set_subject (msg, val.c_str());
-#endif
// attribution lines
const char * cpch = g_mime_object_get_header (_message_obj, "From");
h = header_to_utf8 (cpch, message_charset, group_charset);
-#ifdef HAVE_GMIME_30
g_mime_object_append_header (msg_obj, "X-Draft-Attribution-Author", h.c_str(), NULL);
-#else
- g_mime_object_append_header (msg_obj, "X-Draft-Attribution-Author", h.c_str());
-#endif
cpch = g_mime_message_get_message_id (_message);
h = header_to_utf8 (cpch, message_charset, group_charset);
-#ifdef HAVE_GMIME_30
g_mime_object_append_header (msg_obj, "X-Draft-Attribution-Id", h.c_str(), NULL);
-#else
- g_mime_object_append_header (msg_obj, "X-Draft-Attribution-Id", h.c_str());
-#endif
-#ifdef HAVE_GMIME_30
const char * header_t = "Date";
const char * tmp_s = g_mime_object_get_header (_message_obj, header_t);
const char * tmp = tmp_s; // FIXME: convert time to string
-#else
- char * tmp = g_mime_message_get_date_as_string (_message);
-#endif
h = header_to_utf8 (tmp, message_charset, group_charset);
-#ifdef HAVE_GMIME_30
g_mime_object_append_header (msg_obj, "X-Draft-Attribution-Date", h.c_str(), NULL);
-#else
- g_mime_object_append_header (msg_obj, "X-Draft-Attribution-Date", h.c_str());
- g_free (tmp);
-#endif
// references
const char * header = "References";
@@ -2136,11 +2099,7 @@ BodyPane :: create_followup_or_reply (bool is_reply)
val += g_mime_message_get_message_id (_message);
val += ">";
val = GNKSA :: trim_references (val);
-#ifdef HAVE_GMIME_30
g_mime_object_append_header (msg_obj, header, val.c_str(), NULL);
-#else
- g_mime_object_append_header (msg_obj, header, val.c_str());
-#endif
///
/// BODY
@@ -2178,17 +2137,9 @@ BodyPane :: create_followup_or_reply (bool is_reply)
g_mime_stream_write_string (stream, s.c_str());
GMimeDataWrapper * wrapper = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_8BIT);
GMimePart * part = g_mime_part_new ();
-#ifdef HAVE_GMIME_30
GMimeContentType * new_type = g_mime_content_type_parse (NULL, "text/plain; charset=UTF-8");
-#else
- GMimeContentType * new_type = g_mime_content_type_new_from_string ("text/plain; charset=UTF-8");
-#endif
g_mime_object_set_content_type ((GMimeObject *) part, new_type);
-#ifdef HAVE_GMIME_30
g_mime_part_set_content (part, wrapper);
-#else
- g_mime_part_set_content_object (part, wrapper);
-#endif
g_mime_part_set_content_encoding (part, GMIME_CONTENT_ENCODING_8BIT);
g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
g_object_unref (new_type);
diff --git a/pan/gui/gui.cc b/pan/gui/gui.cc
index 7dca1e7..f45c294 100644
--- a/pan/gui/gui.cc
+++ b/pan/gui/gui.cc
@@ -745,11 +745,7 @@ namespace
if (GMIME_IS_PART(o))
{
GMimePart * part (GMIME_PART (o));
-#ifdef HAVE_GMIME_30
GMimeDataWrapper * wrapper (g_mime_part_get_content (part));
-#else
- GMimeDataWrapper * wrapper (g_mime_part_get_content_object (part));
-#endif
GMimeStream * mem_stream (g_mime_stream_mem_new ());
g_mime_data_wrapper_write_to_stream (wrapper, mem_stream);
const GByteArray * buffer (GMIME_STREAM_MEM(mem_stream)->buffer);
@@ -1326,12 +1322,8 @@ void GUI :: do_supersede_article ()
return;
// did this user post the message?
-#ifdef HAVE_GMIME_30
InternetAddressList * Lsender (g_mime_message_get_sender (message));
char * sender = internet_address_list_to_string(Lsender, NULL, TRUE);
-#else
- const char * sender (g_mime_message_get_sender (message));
-#endif
const bool user_posted_this (_data.has_from_header (sender));
if (!user_posted_this) {
@@ -1357,7 +1349,6 @@ void GUI :: do_supersede_article ()
GMimeMessage * new_message (g_mime_message_new (false));
GMimeObject * new_message_obj = (GMimeObject*)new_message;
-#ifdef HAVE_GMIME_30
g_mime_object_set_header (new_message_obj, "Supersedes", old_mid, NULL);
const char * addr = internet_address_list_to_string (g_mime_message_get_sender (message), NULL, TRUE);
g_mime_message_add_mailbox (new_message, GMIME_ADDRESS_TYPE_SENDER, NULL, addr);
@@ -1369,28 +1360,13 @@ void GUI :: do_supersede_article ()
g_mime_message_add_mailbox (new_message, GMIME_ADDRESS_TYPE_REPLY_TO, NULL, cpch);
if ((cpch = g_mime_object_get_header ((GMimeObject *)message, "Followup-To")))
g_mime_object_set_header (new_message_obj, "Followup-To", cpch, NULL);
-#else
- g_mime_object_set_header (new_message_obj, "Supersedes", old_mid);
- g_mime_message_set_sender (new_message, g_mime_message_get_sender (message));
- g_mime_message_set_subject (new_message, g_mime_message_get_subject (message));
- g_mime_object_set_header (new_message_obj, "Newsgroups", g_mime_object_get_header ((GMimeObject *)message,
"Newsgroups"));
- g_mime_object_set_header (new_message_obj, "References", g_mime_object_get_header ((GMimeObject *)message,
"References"));
- if ((cpch = g_mime_message_get_reply_to (message)))
- g_mime_message_set_reply_to (new_message, cpch);
- if ((cpch = g_mime_object_get_header ((GMimeObject *)message, "Followup-To")))
- g_mime_object_set_header (new_message_obj, "Followup-To", cpch);
-#endif
gboolean unused (false);
char * body (pan_g_mime_message_get_body (message, &unused));
GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body, strlen(body));
g_free (body);
GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream,
GMIME_CONTENT_ENCODING_DEFAULT);
GMimePart * part = g_mime_part_new ();
-#ifdef HAVE_GMIME_30
g_mime_part_set_content(part, content_object);
-#else
- g_mime_part_set_content_object (part, content_object);
-#endif
g_mime_message_set_mime_part (new_message, GMIME_OBJECT(part));
g_object_unref (part);
g_object_unref (content_object);
@@ -1424,11 +1400,7 @@ void GUI :: do_cancel_article ()
return;
// did this user post the message?
-#ifdef HAVE_GMIME_30
const char * sender = internet_address_list_to_string(g_mime_message_get_sender (message), NULL, TRUE);
-#else
- const char * sender (g_mime_message_get_sender (message));
-#endif
const bool user_posted_this (_data.has_from_header (sender));
if (!user_posted_this) {
GtkWidget * w = gtk_message_dialog_new (
@@ -1448,28 +1420,16 @@ void GUI :: do_cancel_article ()
// okay then...
GMimeMessage * cancel = g_mime_message_new (false);
char * cancel_message = g_strdup_printf ("cancel <%s>", g_mime_message_get_message_id(message));
-#ifdef HAVE_GMIME_30
const char * s_addr = internet_address_list_to_string(g_mime_message_get_sender (message), NULL, TRUE);
g_mime_message_add_mailbox (cancel, GMIME_ADDRESS_TYPE_SENDER, NULL, s_addr);
g_mime_message_set_subject (cancel, "Cancel", NULL);
g_mime_object_set_header ((GMimeObject *)cancel, "Newsgroups", g_mime_object_get_header ((GMimeObject
*)message, "Newsgroups"), NULL);
g_mime_object_set_header ((GMimeObject *)cancel, "Control", cancel_message, NULL);
-#else
- g_mime_message_set_sender (cancel, g_mime_message_get_sender (message));
- g_mime_message_set_subject (cancel, "Cancel");
- g_mime_object_set_header ((GMimeObject *)cancel, "Newsgroups", g_mime_object_get_header ((GMimeObject
*)message, "Newsgroups"));
- g_mime_object_set_header ((GMimeObject *)cancel, "Control", cancel_message);
-
-#endif
const char * body ("Ignore\r\nArticle canceled by author using " PACKAGE_STRING "\r\n");
GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body, strlen(body));
GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream,
GMIME_CONTENT_ENCODING_DEFAULT);
GMimePart * part = g_mime_part_new ();
-#ifdef HAVE_GMIME_30
g_mime_part_set_content (part, content_object);
-#else
- g_mime_part_set_content_object (part, content_object);
-#endif
g_mime_message_set_mime_part (cancel, GMIME_OBJECT(part));
g_object_unref (part);
g_object_unref (content_object);
@@ -1631,19 +1591,11 @@ GUI :: do_post ()
newsgroups = group;
}
if (!newsgroups.empty())
-#ifdef HAVE_GMIME_30
g_mime_object_append_header ((GMimeObject *) message, "Newsgroups", newsgroups.c_str(), NULL);
-#else
- g_mime_object_append_header ((GMimeObject *) message, "Newsgroups", newsgroups.c_str());
-#endif
// content type
GMimePart * part = g_mime_part_new ();
-#ifdef HAVE_GMIME_30
GMimeContentType *type = g_mime_content_type_parse (NULL, "text/plain; charset=UTF-8");
-#else
- GMimeContentType *type = g_mime_content_type_new_from_string ("text/plain; charset=UTF-8");
-#endif
g_mime_object_set_content_type ((GMimeObject *) part, type);
g_object_unref (type);
g_mime_part_set_content_encoding (part, GMIME_CONTENT_ENCODING_8BIT);
diff --git a/pan/gui/pan.cc b/pan/gui/pan.cc
index c123f2d..301c86f 100644
--- a/pan/gui/pan.cc
+++ b/pan/gui/pan.cc
@@ -907,11 +907,7 @@ main (int argc, char *argv[])
#if !GLIB_CHECK_VERSION(2,32,0)
g_thread_init (0);
#endif
-#ifdef HAVE_GMIME_30
g_mime_init ();
-#else
- g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS);
-#endif
bool gui(true), nzb(false), verbosed(false);
std::string url;
diff --git a/pan/gui/post-ui.cc b/pan/gui/post-ui.cc
index 4812d00..ce93c5a 100644
--- a/pan/gui/post-ui.cc
+++ b/pan/gui/post-ui.cc
@@ -950,11 +950,7 @@ PostUI :: maybe_mail_message (GMimeMessage * message)
{
std::string url, to, groups;
gboolean unused;
-#ifdef HAVE_GMIME_30
char * headers (g_mime_object_get_headers ((GMimeObject *) message, NULL));
-#else
- char * headers (g_mime_object_get_headers ((GMimeObject *) message));
-#endif
char * body (pan_g_mime_message_get_body (message, &unused));
StringView key, val, v(headers);
v.trim ();
@@ -1052,11 +1048,7 @@ PostUI :: save_message_in_local_folder(const Mode& mode, const std::string& fold
p.get_from_header(author);
std::string subject(utf8ize (g_mime_message_get_subject (msg)));
const char * refs = g_mime_object_get_header(GMIME_OBJECT(msg), "References");
-#ifdef HAVE_GMIME_30
g_mime_object_set_header((GMimeObject *) msg, "Newsgroups", folder.c_str(), NULL);
-#else
- g_mime_object_set_header((GMimeObject *) msg, "Newsgroups", folder.c_str());
-#endif
// pseudo mid to get data from cache
std::string message_id = pan_g_mime_message_set_message_id(msg, mid.c_str());
@@ -1066,18 +1058,10 @@ PostUI :: save_message_in_local_folder(const Mode& mode, const std::string& fold
const Article* article = _data.xover_add (p.posting_server, folder, subject, author, posted,
message_id, refs, sizeof(*msg), 3, xref.str(), true);
if (article)
{
-#ifdef HAVE_GMIME_30
GDateTime * postedGDT = g_date_time_new_from_unix_utc(posted);
g_mime_message_set_date(msg, postedGDT);
-#else
- g_mime_message_set_date(msg, posted, 0);
-#endif
ArticleCache& cache(_data.get_cache());
-#ifdef HAVE_GMIME_30
ArticleCache :: CacheResponse response = cache.add(mid,
g_mime_object_to_string(GMIME_OBJECT(msg), NULL), true);
-#else
- ArticleCache :: CacheResponse response = cache.add(mid,
g_mime_object_to_string(GMIME_OBJECT(msg)), true);
-#endif
g_object_unref(msg);
if (response.type != ArticleCache::CACHE_OK)
@@ -1516,11 +1500,7 @@ PostUI :: open_draft ()
{
GMimeStream * stream = g_mime_stream_mem_new_with_buffer (txt.c_str(), txt.size());
GMimeParser * parser = g_mime_parser_new_with_stream (stream);
-#ifdef HAVE_GMIME_30
GMimeMessage * message = g_mime_parser_construct_message (parser, NULL);
-#else
- GMimeMessage * message = g_mime_parser_construct_message (parser);
-#endif
if (message) {
set_message (message);
g_object_unref (G_OBJECT(message));
@@ -1591,7 +1571,6 @@ namespace
GMimeMessage*
PostUI :: new_message_from_ui (Mode mode, bool copy_body)
{
-#ifdef HAVE_GMIME_30
GMimeMessage * msg(0);
msg = g_mime_message_new (true);
@@ -1733,138 +1712,6 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body)
return msg;
-#else
-
- GMimeMessage * msg(0);
- msg = g_mime_message_new (false);
-
- // headers from the ui: From
- const Profile profile (get_current_profile ());
- std::string s;
- profile.get_from_header (s);
- g_mime_message_set_sender (msg, s.c_str());
-
- // headers from the ui: Subject
- const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry)));
- if (cpch) {
- g_mime_message_set_subject (msg, cpch);
- }
-
- // headers from the ui: To
- const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry)));
- if (!to.empty())
- pan_g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.str);
-
- // headers from the ui: Newsgroups
- const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry)));
- if (!groups.empty())
- g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str);
-
- // headers from the ui: Followup-To
- const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry)));
- if (!followupto.empty())
- g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str);
-
- // headers from the ui: Reply-To
- const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry)));
- if (!replyto.empty())
- g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str);
-
- // headers from posting profile (via prefs): Face
- if (!profile.face.empty())
- {
- std::string f;
- f += profile.face;
-
- for (int i = GMIME_FOLD_BASE64_INTERVAL; i < f.length(); i += GMIME_FOLD_BASE64_INTERVAL)
- {
- f.insert (i, " ");
- }
- g_mime_object_set_header ((GMimeObject *) msg, "Face", f.c_str());
- }
-
- // headers from posting profile(via prefs): X-Face
- if (!profile.xface.empty())
- {
- std::string f;
- f += profile.xface;
-
- // GMIME_FOLD_INTERVAL - 8: Accounting for 'X-Face: ' beginning of header
- for(int i = GMIME_FOLD_INTERVAL - 8; i < f.length(); i += GMIME_FOLD_INTERVAL)
- {
- f.insert(i, " ");
- }
- g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str());
- }
-
- // add the 'hidden headers'
- foreach_const (str2str_t, _hidden_headers, it)
- if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0))
- g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str());
-
- // build headers from the 'more headers' entry field
- std::map<std::string,std::string> headers;
- GtkTextBuffer * buf (_headers_buf);
- GtkTextIter start, end;
- gtk_text_buffer_get_bounds (buf, &start, &end);
- char * pch = gtk_text_buffer_get_text (buf, &start, &end, false);
- StringView key, val, v(pch);
- v.trim ();
- while (v.pop_token (val, '\n') && val.pop_token(key,':')) {
- key.trim ();
- val.eat_chars (1);
- val.trim ();
- std::string key_str (key.to_string());
- if (extra_header_is_editable (key, val))
- g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
- val.to_string().c_str());
- }
- g_free (pch);
-
- // User-Agent
- if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true))
- g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent());
-
- // Message-ID for single text-only posts
- if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY,
false))) {
- const std::string message_id = generate_message_id(profile);
- pan_g_mime_message_set_message_id (msg, message_id.c_str());
- }
-
- // body & charset
- {
- std::string body;
- if (copy_body) body = get_body();
-
- GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body.c_str(), body.size());
-
- const std::string charset ((mode==POSTING && !_charset.empty()) ? _charset : "UTF-8");
- if (charset != "UTF-8") {
- // add a wrapper to convert from UTF-8 to $charset
- GMimeStream * tmp = g_mime_stream_filter_new (stream);
- g_object_unref (stream);
- GMimeFilter * filter = g_mime_filter_charset_new ("UTF-8", charset.c_str());
- g_mime_stream_filter_add (GMIME_STREAM_FILTER(tmp), filter);
- g_object_unref (filter);
- stream = tmp;
- }
- GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream,
GMIME_CONTENT_ENCODING_DEFAULT);
- g_object_unref (stream);
- GMimePart * part = g_mime_part_new ();
- pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str());
- GMimeContentType * type = g_mime_content_type_new_from_string (pch);
- g_free (pch);
- g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't
refcounted.
- g_mime_part_set_content_object (part, content_object);
- if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc);
- g_object_unref (content_object);
- g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
- g_object_unref (part);
- }
-
- return msg;
-
-#endif
}
void
@@ -1940,11 +1787,7 @@ PostUI :: save_draft ()
{
errno = 0;
std::ofstream o (filename);
-#ifdef HAVE_GMIME_30
char * pch = g_mime_object_to_string ((GMimeObject *) msg, NULL);
-#else
- char * pch = g_mime_object_to_string ((GMimeObject *) msg);
-#endif
o << pch;
o.close ();
@@ -2441,13 +2284,8 @@ PostUI :: set_message (GMimeMessage * message)
s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Reply-To"));
gtk_entry_set_text (GTK_ENTRY(_replyto_entry), s.c_str());
-#ifdef HAVE_GMIME_30
InternetAddressList * addresses = g_mime_message_get_addresses (message, GMIME_ADDRESS_TYPE_TO);
char * pch = internet_address_list_to_string (addresses, NULL, true);
-#else
- InternetAddressList * addresses = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO);
- char * pch = internet_address_list_to_string (addresses, true);
-#endif
s = utf8ize (pch);
gtk_entry_set_text (GTK_ENTRY(_to_entry), s.c_str());
g_free (pch);
@@ -2455,13 +2293,8 @@ PostUI :: set_message (GMimeMessage * message)
// update 'other headers'
SetMessageForeachHeaderData data;
const char *name, *value;
-#ifdef HAVE_GMIME_30
GMimeHeaderList HList;
-#else
- GMimeHeaderIter iter;
-#endif
-#ifdef HAVE_GMIME_30
// FIXME: GMime 3.0
int index_v = 0;
int message_count = g_mime_header_list_get_count (message->mime_part->headers);
@@ -2488,25 +2321,6 @@ PostUI :: set_message (GMimeMessage * message)
index_v++;
} while ( index_v < message_count);
}
-#else
- if (message->mime_part && g_mime_header_list_get_stream (message->mime_part->headers)) {
- if (g_mime_header_list_get_iter (message->mime_part->headers, &iter)) {
- do {
- value = g_mime_header_iter_get_value (&iter);
- name = g_mime_header_iter_get_name (&iter);
- set_message_foreach_header_func (name, value, &data);
- } while (g_mime_header_iter_next (&iter));
- }
- }
-
- if (g_mime_header_list_get_iter (GMIME_OBJECT (message)->headers, &iter)) {
- do {
- value = g_mime_header_iter_get_value (&iter);
- name = g_mime_header_iter_get_name (&iter);
- set_message_foreach_header_func (name, value, &data);
- } while (g_mime_header_iter_next (&iter));
- }
-#endif
s = utf8ize (data.visible_headers);
if (!s.empty())
@@ -3274,11 +3088,7 @@ PostUI::draft_save_cb(gpointer ptr)
char * filename = g_build_filename (draft_filename.c_str(), "autosave", NULL);
std::ofstream o (filename);
-#ifdef HAVE_GMIME_30
char * headers (g_mime_object_get_headers ((GMimeObject *) msg, NULL));
-#else
- char * headers (g_mime_object_get_headers ((GMimeObject *) msg));
-#endif
o << headers;
const std::string body (data->get_body ());
o << body;
diff --git a/pan/tasks/nzb.cc b/pan/tasks/nzb.cc
index 14df6f6..3677404 100644
--- a/pan/tasks/nzb.cc
+++ b/pan/tasks/nzb.cc
@@ -50,11 +50,7 @@ namespace
{
GMimeStream * stream = g_mime_stream_mem_new_with_buffer (txt.c_str(), txt.size());
GMimeParser * parser = g_mime_parser_new_with_stream (stream);
-#ifdef HAVE_GMIME_30
msg = g_mime_parser_construct_message (parser, NULL);
-#else
- msg = g_mime_parser_construct_message (parser);
-#endif
g_object_unref (G_OBJECT(parser));
g_object_unref (G_OBJECT(stream));
}
diff --git a/pan/tasks/task-post.cc b/pan/tasks/task-post.cc
index 977b012..afdba28 100644
--- a/pan/tasks/task-post.cc
+++ b/pan/tasks/task-post.cc
@@ -55,11 +55,7 @@ TaskPost :: use_nntp (NNTP * nntp)
{
_state.set_working ();
-#ifdef HAVE_GMIME_30
char * text = g_mime_object_to_string (GMIME_OBJECT(_message), NULL);
-#else
- char * text = g_mime_object_to_string (GMIME_OBJECT(_message));
-#endif
nntp->post (text, this);
g_free (text);
}
diff --git a/pan/tasks/task-upload.cc b/pan/tasks/task-upload.cc
index 3008958..acf8d2f 100644
--- a/pan/tasks/task-upload.cc
+++ b/pan/tasks/task-upload.cc
@@ -194,40 +194,20 @@ TaskUpload :: prepend_headers(GMimeMessage* msg, TaskUpload::Needed * n, std::st
//modify subject
char buf[4096];
if (_queue_pos != -1)
-#ifdef HAVE_GMIME_30
g_mime_message_set_subject (msg, build_subject_line (buf, 4096, _subject, _basename, n->partno,
_total_parts), NULL);
-#else
- g_mime_message_set_subject (msg, build_subject_line (buf, 4096, _subject, _basename, n->partno,
_total_parts));
-#endif
//modify references header
std::string mids(_references);
if (!_first_mid.empty()) mids += " <" + _first_mid + ">";
if (_first_mid != n->last_mid && !_first && !n->last_mid.empty()) mids += " <" + n->last_mid + ">";
-#ifdef HAVE_GMIME_30
if (!mids.empty()) g_mime_object_set_header ((GMimeObject *) msg, "References", mids.c_str(), NULL);
-#else
- if (!mids.empty()) g_mime_object_set_header ((GMimeObject *) msg, "References", mids.c_str());
-#endif
-#ifdef HAVE_GMIME_30
char * all(g_mime_object_get_headers ((GMimeObject *) msg, NULL));
-#else
- char * all(g_mime_object_get_headers ((GMimeObject *) msg));
-#endif
if (_first && _queue_pos==-1)
-#ifdef HAVE_GMIME_30
all = g_mime_object_to_string ((GMimeObject *) msg, NULL);
-#else
- all = g_mime_object_to_string ((GMimeObject *) msg);
-#endif
else if (_first && _queue_pos == 0)
-#ifdef HAVE_GMIME_30
all = g_mime_object_get_headers ((GMimeObject *) msg, NULL);
-#else
- all = g_mime_object_get_headers ((GMimeObject *) msg);
-#endif
out << all << "\n";
if (_first && _queue_pos == -1) g_free(all);
diff --git a/pan/tasks/task-xover.cc b/pan/tasks/task-xover.cc
index 021f099..815c71c 100644
--- a/pan/tasks/task-xover.cc
+++ b/pan/tasks/task-xover.cc
@@ -399,12 +399,8 @@ TaskXOver::on_nntp_line_process(NNTP * nntp, const StringView & line)
const char * fallback_charset = NULL; // FIXME
// are we done?
-#ifdef HAVE_GMIME_30
GDateTime * time_posted_gd = g_mime_utils_header_decode_date(date.str);
const time_t time_posted = g_date_time_to_unix(time_posted_gd);
-#else
- const time_t time_posted = g_mime_utils_header_decode_date(date.str, NULL);
-#endif
if (_mode == DAYS && time_posted < _days_cutoff) {
_server_to_minitasks[nntp->_server].clear();
return;
diff --git a/pan/usenet-utils/gpg.cc b/pan/usenet-utils/gpg.cc
index 0c3ae14..b02b501 100644
--- a/pan/usenet-utils/gpg.cc
+++ b/pan/usenet-utils/gpg.cc
@@ -71,7 +71,6 @@ namespace pan
signer.key_id = sig->cert->keyid ? sig->cert->keyid : "(null)";
signer.fpr = sig->cert->fingerprint ? sig->cert->fingerprint : "(null)";
-#ifdef HAVE_GMIME_30
switch (sig->cert->trust) {
case GMIME_TRUST_UNKNOWN:
signer.trust = "None";
@@ -109,40 +108,6 @@ namespace pan
signer.expires = sig->expires;
if (sig->expires == (time_t) 0)
signer.never_expires = true;
-#else
- switch (sig->cert->trust) {
- case GMIME_CERTIFICATE_TRUST_NONE:
- signer.trust = "None";
- break;
- case GMIME_CERTIFICATE_TRUST_NEVER:
- signer.trust = "Never";
- break;
- case GMIME_CERTIFICATE_TRUST_UNDEFINED:
- signer.trust = "Undefined";
- break;
- case GMIME_CERTIFICATE_TRUST_MARGINAL:
- signer.trust = "Marginal";
- break;
- case GMIME_CERTIFICATE_TRUST_FULLY:
- signer.trust = "Fully";
- break;
- case GMIME_CERTIFICATE_TRUST_ULTIMATE:
- signer.trust = "Ultimate";
- break;
- }
-
- switch (sig->status) {
- case GMIME_SIGNATURE_STATUS_GOOD:
- signer.status = "GOOD";
- break;
- case GMIME_SIGNATURE_STATUS_BAD:
- signer.status = "BAD";
- break;
- case GMIME_SIGNATURE_STATUS_ERROR:
- signer.status = "ERROR";
- break;
- }
-#endif
signer.created = sig->created;
signer.expires = sig->expires;
diff --git a/pan/usenet-utils/message-check.cc b/pan/usenet-utils/message-check.cc
index e383bb5..2fe017a 100644
--- a/pan/usenet-utils/message-check.cc
+++ b/pan/usenet-utils/message-check.cc
@@ -478,11 +478,7 @@ MessageCheck :: message_check (const GMimeMessage * message_const,
}
// one last error check
-#ifdef HAVE_GMIME_30
InternetAddressList * list (g_mime_message_get_addresses (message, GMIME_ADDRESS_TYPE_TO));
-#else
- InternetAddressList * list (g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO));
-#endif
const int n_to (internet_address_list_length (list));
if (!group_qty && !n_to) {
errors.insert (_("Error: No Recipients."));
diff --git a/pan/usenet-utils/mime-utils.cc b/pan/usenet-utils/mime-utils.cc
index f5d7620..3b4323d 100644
--- a/pan/usenet-utils/mime-utils.cc
+++ b/pan/usenet-utils/mime-utils.cc
@@ -815,11 +815,7 @@ namespace
return;
// get this part's content
-#ifdef HAVE_GMIME_30
GMimeDataWrapper * content = g_mime_part_get_content (GMIME_PART (part));
-#else
- GMimeDataWrapper * content = g_mime_part_get_content_object (GMIME_PART (part));
-#endif
if (!content)
return;
@@ -873,11 +869,7 @@ namespace
subpart_stream = tmp_part->stream;
content = g_mime_data_wrapper_new_with_stream (subpart_stream, GMIME_CONTENT_ENCODING_DEFAULT);
-#ifdef HAVE_GMIME_30
g_mime_part_set_content (subpart, content);
-#else
- g_mime_part_set_content_object (subpart, content);
-#endif
g_mime_multipart_add (GMIME_MULTIPART (multipart), GMIME_OBJECT (subpart));
g_object_unref (content);
@@ -1047,19 +1039,11 @@ mime :: construct_message (GMimeStream ** istreams,
for (int i=0; i<qty; ++i) {
GMimeParser* parser = g_mime_parser_new_with_stream (istreams[i]);
-#ifdef HAVE_GMIME_30
messages[i] = g_mime_parser_construct_message(parser, NULL);
-#else
- messages[i] = g_mime_parser_construct_message(parser);
-#endif
g_object_unref(parser);
g_mime_stream_reset(istreams[i]);
parser = g_mime_parser_new_with_stream (istreams[i]);
-#ifdef HAVE_GMIME_30
GMimeObject* part = g_mime_parser_construct_part(parser, NULL);
-#else
- GMimeObject* part = g_mime_parser_construct_part(parser);
-#endif
g_object_unref (parser);
parser = NULL;
GMimeContentType * type = g_mime_object_get_content_type (part);
@@ -1402,11 +1386,7 @@ namespace
return NULL;
}
-#ifdef HAVE_GMIME_30
GMimeDataWrapper *wrapper = g_mime_part_get_content(mime_part);
-#else
- GMimeDataWrapper *wrapper = g_mime_part_get_content_object(mime_part);
-#endif
GMimeStream *stream = g_mime_stream_mem_new();
g_mime_data_wrapper_write_to_stream (wrapper, stream);
GByteArray *bytes = g_mime_stream_mem_get_byte_array((GMimeStreamMem*)stream);
@@ -1456,7 +1436,6 @@ char *pan::pan_g_mime_message_get_body (GMimeMessage *message, gboolean *is_html
return body;
}
-#ifdef HAVE_GMIME_30
void pan::pan_g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeAddressType type, const
char *string)
{
InternetAddressList *addrlist;
@@ -1468,26 +1447,11 @@ void pan::pan_g_mime_message_add_recipients_from_string (GMimeMessage *message,
}
}
}
-#else
-
-void pan::pan_g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeRecipientType type,
const char *string)
-{
- InternetAddressList *addrlist;
- if ((addrlist = internet_address_list_parse_string (string))) {
- for (int i = 0; i < internet_address_list_length (addrlist); ++i) {
- InternetAddress *ia = internet_address_list_get_address (addrlist, i);
- if (INTERNET_ADDRESS_IS_MAILBOX(ia))
- g_mime_message_add_recipient (message, type, internet_address_get_name(ia),
internet_address_mailbox_get_addr(INTERNET_ADDRESS_MAILBOX(ia)));
- }
- }
-}
-#endif
/**
* Works around a GMime bug that uses `Message-Id' rather than `Message-ID'
*/
-#ifdef HAVE_GMIME_30
std::string pan::pan_g_mime_message_set_message_id (GMimeMessage *msg, const char *mid)
{
const char * charset = NULL; // "ISO-8859-1"; // FIXME
@@ -1498,17 +1462,6 @@ std::string pan::pan_g_mime_message_set_message_id (GMimeMessage *msg, const cha
g_free (bracketed);
return ret;
}
-#else
-std::string pan::pan_g_mime_message_set_message_id (GMimeMessage *msg, const char *mid)
-{
- g_mime_object_append_header ((GMimeObject *) msg, "Message-ID", mid);
- char * bracketed = g_strdup_printf ("<%s>", mid);
- g_mime_header_list_set (GMIME_OBJECT(msg)->headers, "Message-ID", bracketed);
- std::string ret (bracketed);
- g_free (bracketed);
- return ret;
-}
-#endif
namespace pan
{
@@ -1523,31 +1476,19 @@ namespace pan
content = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
g_object_unref (stream);
-#ifdef HAVE_GMIME_30
g_mime_part_set_content (part, content);
-#else
- g_mime_part_set_content_object (part, content);
-#endif
g_object_unref (content);
}
#ifdef HAVE_GMIME_CRYPTO
GMimeSignatureStatus
get_sig_status (GMimeSignatureList *signatures)
{
-#ifdef HAVE_GMIME_30
GMimeSignatureStatus status = GMIME_SIGNATURE_STATUS_VALID;
-#else
- GMimeSignatureStatus status = GMIME_SIGNATURE_STATUS_GOOD;
-#endif
GMimeSignature *sig;
int i;
if (!signatures || signatures->array->len == 0)
-#ifdef HAVE_GMIME_30
return GMIME_SIGNATURE_STATUS_SYS_ERROR;
-#else
- return GMIME_SIGNATURE_STATUS_ERROR;
-#endif
for (i = 0; i < g_mime_signature_list_length (signatures); i++) {
sig = g_mime_signature_list_get_signature (signatures, i);
@@ -1581,30 +1522,18 @@ namespace pan
if (info.type == GPG_VERIFY)
{
-#ifdef HAVE_GMIME_30
GMimeSignatureList * sigs = g_mime_multipart_signed_verify (mps, GMIME_VERIFY_NONE, &info.err);
-#else
- GMimeSignatureList * sigs = g_mime_multipart_signed_verify (mps, gpg_ctx, &info.err);
-#endif
if (info.err || !sigs) return false;
if (sigs) info.no_sigs = false;
fill_signer_info(info.signers, sigs);
-#ifdef HAVE_GMIME_30
bool status = get_sig_status(sigs) == GMIME_SIGNATURE_STATUS_VALID;
-#else
- bool status = get_sig_status(sigs) == GMIME_SIGNATURE_STATUS_GOOD;
-#endif
g_object_unref(sigs);
return status;
}
if (info.type == GPG_DECODE)
{
-#ifdef HAVE_GMIME_30
info.decrypted = g_mime_multipart_encrypted_decrypt (mpe, GMIME_DECRYPT_NONE, NULL, &info.result,
&info.err);
-#else
- info.decrypted = g_mime_multipart_encrypted_decrypt (mpe, gpg_ctx, &info.result, &info.err);
-#endif
if (!info.decrypted)
if (info.err) return false;
@@ -1613,11 +1542,7 @@ namespace pan
{
info.no_sigs = false;
fill_signer_info(info.signers, sigs);
-#ifdef HAVE_GMIME_30
bool status = get_sig_status(info.result->signatures) == GMIME_SIGNATURE_STATUS_VALID;
-#else
- bool status = get_sig_status(info.result->signatures) == GMIME_SIGNATURE_STATUS_GOOD;
-#endif
g_object_unref(sigs);
return status;
}
@@ -1646,18 +1571,12 @@ namespace pan
mps = g_mime_multipart_signed_new ();
/* sign the part */
-#ifdef HAVE_GMIME_30
GMimeObject *gmo;
gmo = g_mime_message_get_mime_part (body);
mps = g_mime_multipart_signed_sign (gpg_ctx, gmo, uid.c_str(), &err);
if (mps == NULL)
-#else
- if (g_mime_multipart_signed_sign (mps, GMIME_OBJECT (part), gpg_ctx, uid.c_str(),
GMIME_DIGEST_ALGO_SHA1, &err) <0)
-#endif
{
-#ifdef HAVE_GMIME_30
g_object_unref(gmo);
-#endif
g_object_unref(mps);
g_object_unref(G_OBJECT(part));
return 0;
@@ -1671,9 +1590,7 @@ namespace pan
g_mime_message_set_mime_part(body,GMIME_OBJECT(mps));
g_object_unref(G_OBJECT(part));
g_object_unref(mps);
-#ifdef HAVE_GMIME_30
g_object_unref(gmo);
-#endif
return body;
}
@@ -1688,30 +1605,21 @@ namespace pan
GMimeMultipartEncrypted * mpe = g_mime_multipart_encrypted_new();
-#ifdef HAVE_GMIME_30
GMimeMultipartEncrypted *gmme;
gmme = g_mime_multipart_encrypted_encrypt(gpg_ctx, GMIME_OBJECT (part), sign, uid.c_str(),
GMIME_ENCRYPT_NONE, rcp, &err);
if (gmme == NULL)
-#else
- if (g_mime_multipart_encrypted_encrypt(mpe, GMIME_OBJECT (part), gpg_ctx, sign,
- uid.c_str(), GMIME_DIGEST_ALGO_SHA1, rcp, &err) < 0)
-#endif
{
g_object_unref(mpe);
g_object_unref(G_OBJECT(part));
-#ifdef HAVE_GMIME_30
g_object_unref(gmme);
-#endif
return false;
}
g_mime_message_set_mime_part(body,GMIME_OBJECT(mpe));
g_object_unref(G_OBJECT(part));
g_object_unref(mpe);
-#ifdef HAVE_GMIME_30
g_object_unref(gmme);
-#endif
return true;
}
diff --git a/pan/usenet-utils/mime-utils.h b/pan/usenet-utils/mime-utils.h
index ef5d713..4046219 100644
--- a/pan/usenet-utils/mime-utils.h
+++ b/pan/usenet-utils/mime-utils.h
@@ -107,11 +107,7 @@ namespace pan
};
char *pan_g_mime_message_get_body (GMimeMessage *message, gboolean *is_html);
-#ifdef HAVE_GMIME_30
void pan_g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeAddressType type, const
char *string);
-#else
- void pan_g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeRecipientType type, const
char *string);
-#endif
std::string pan_g_mime_message_set_message_id (GMimeMessage *msg, const char *mid);
extern iconv_t conv;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]