commit-mailutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Mailutils branch, master, updated. rel-2_1-64-g1a374c8


From: Wojciech Polak
Subject: [SCM] GNU Mailutils branch, master, updated. rel-2_1-64-g1a374c8
Date: Thu, 08 Apr 2010 15:40:19 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".

http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=1a374c8cbea21dabe2f7db123a559576531238db

The branch, master has been updated
       via  1a374c8cbea21dabe2f7db123a559576531238db (commit)
      from  d8ab03b03566831cb5dfe8caf4a1e1b77106a342 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1a374c8cbea21dabe2f7db123a559576531238db
Author: Wojciech Polak <address@hidden>
Date:   Thu Apr 8 17:34:49 2010 +0200

    Reflect recent RFC compatibility changes in Python/C++.
    
    * examples/python/mimetest.py: Update.
    * include/mailutils/cpp/message.h (get_attachment_name): Overload.
    * libmu_cpp/message.cc (Message::get_attachment_name): Overload.
    * python/libmu_py/message.c (api_message_get_attachment_name): Update.
    * python/mailutils/message.py (Message.get_attachment_name):
    Add optional charset parameter. Return (name, lang) tuple.

-----------------------------------------------------------------------

Summary of changes:
 examples/python/mimetest.py     |    2 +-
 include/mailutils/cpp/message.h |    2 ++
 libmu_cpp/message.cc            |   21 +++++++++++++++++++--
 python/libmu_py/message.c       |   20 +++++++++++++-------
 python/mailutils/message.py     |    6 +++---
 5 files changed, 38 insertions(+), 13 deletions(-)

diff --git a/examples/python/mimetest.py b/examples/python/mimetest.py
index c14d727..471a052 100644
--- a/examples/python/mimetest.py
+++ b/examples/python/mimetest.py
@@ -90,7 +90,7 @@ def message_display_parts (msg, indent):
       else:
           # Save the attachements.
           try:
-              fname = part.get_attachment_name ()
+              fname, lang = part.get_attachment_name ()
          except:
               fname = util.tempname ()
 
diff --git a/include/mailutils/cpp/message.h b/include/mailutils/cpp/message.h
index 19f076d..bdd50af 100644
--- a/include/mailutils/cpp/message.h
+++ b/include/mailutils/cpp/message.h
@@ -68,6 +68,8 @@ class Message
   void save_attachment (const std::string& filename);
   Message& unencapsulate ();
   std::string get_attachment_name ();
+  std::string get_attachment_name (const std::string& charset,
+                                  char* lang=NULL);
 };
 
 }
diff --git a/libmu_cpp/message.cc b/libmu_cpp/message.cc
index 21f3ec6..a023600 100644
--- a/libmu_cpp/message.cc
+++ b/libmu_cpp/message.cc
@@ -224,8 +224,25 @@ Message :: get_attachment_name ()
   char *c_name;
   std::string name;
 
-  /* FIXME: CS/Lang info is ignored */
-  int status = mu_message_aget_attachment_name (msg, &c_name, NULL);
+  int status = mu_message_aget_decoded_attachment_name (msg, NULL, &c_name,
+                                                       NULL);
+  if (status)
+    throw Exception ("Message::get_attachment_name", status);
+  if (c_name) {
+    name = c_name;
+    free (c_name);
+  }
+  return name;
+}
+
+std::string
+Message :: get_attachment_name (const std::string& charset, char *lang)
+{
+  char *c_name;
+  std::string name;
+
+  int status = mu_message_aget_decoded_attachment_name (msg, charset.c_str (),
+                                                       &c_name, &lang);
   if (status)
     throw Exception ("Message::get_attachment_name", status);
   if (c_name) {
diff --git a/python/libmu_py/message.c b/python/libmu_py/message.c
index fc71cbf..58f9c5b 100644
--- a/python/libmu_py/message.c
+++ b/python/libmu_py/message.c
@@ -282,14 +282,22 @@ api_message_get_attachment_name (PyObject *self, PyObject 
*args)
 {
   int status;
   char *name = NULL;
+  char *charset = NULL;
+  char *lang = NULL;
+  PyObject *py_ret;
   PyMessage *py_msg;
 
-  if (!PyArg_ParseTuple (args, "O!", &PyMessageType, &py_msg))
+  if (!PyArg_ParseTuple (args, "O!|z", &PyMessageType, &py_msg, &charset))
     return NULL;
 
-  /* FIXME: CS/Lang info is ignored */
-  status = mu_message_aget_attachment_name (py_msg->msg, &name, NULL);
-  return status_object (status, PyString_FromString (name ? name : ""));
+  status = mu_message_aget_decoded_attachment_name (py_msg->msg, charset,
+                                                   &name, &lang);
+
+  py_ret = PyTuple_New (3);
+  PyTuple_SetItem (py_ret, 0, PyInt_FromLong (status));
+  PyTuple_SetItem (py_ret, 1, PyString_FromString (name ? name : ""));
+  PyTuple_SetItem (py_ret, 2, lang ? PyString_FromString (lang) : Py_None);
+  return _ro (py_ret);
 }
 
 static PyObject *
@@ -314,12 +322,10 @@ static PyObject *
 api_message_unencapsulate (PyObject *self, PyObject *args)
 {
   int status;
-  char *filename = NULL;
   PyMessage *py_msg;
   PyMessage *py_unen = PyMessage_NEW ();
 
-  if (!PyArg_ParseTuple (args, "O!|s", &PyMessageType, &py_msg,
-                        &filename))
+  if (!PyArg_ParseTuple (args, "O!", &PyMessageType, &py_msg))
     return NULL;
 
   Py_INCREF (py_unen);
diff --git a/python/mailutils/message.py b/python/mailutils/message.py
index 0f4744a..89aa984 100644
--- a/python/mailutils/message.py
+++ b/python/mailutils/message.py
@@ -138,11 +138,11 @@ class Message:
             raise MessageError (status)
         return uidl
 
-    def get_attachment_name (self):
-        status, name = message.get_attachment_name (self.msg)
+    def get_attachment_name (self, charset=None):
+        status, name, lang = message.get_attachment_name (self.msg, charset)
         if status:
             raise MessageError (status)
-        return name
+        return name, lang
 
     def save_attachment (self, filename = ''):
         status = message.save_attachment (self.msg, filename)


hooks/post-receive
-- 
GNU Mailutils




reply via email to

[Prev in Thread] Current Thread [Next in Thread]