commit-mailutils
[Top][All Lists]
Advanced

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

[SCM] GNU Mailutils branch, master, updated. release-2.2-442-gb26b212


From: Sergey Poznyakoff
Subject: [SCM] GNU Mailutils branch, master, updated. release-2.2-442-gb26b212
Date: Tue, 15 Nov 2011 22:07:04 +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=b26b2120ce815173819cf5bea197d4f5264aecdb

The branch, master has been updated
       via  b26b2120ce815173819cf5bea197d4f5264aecdb (commit)
      from  1814cf1d9b07f3e6d47c5d23daa03288d8426040 (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 b26b2120ce815173819cf5bea197d4f5264aecdb
Author: Sergey Poznyakoff <address@hidden>
Date:   Tue Nov 15 23:59:24 2011 +0200

    Import error codes directly from libmailutils to Python.
    
    * python/libmu_py/Makefile.am (libmu_py_la_SOURCES): Add errno.c
    * python/libmu_py/errno.c: New file.
    * python/libmu_py/libmu_py.c (_mu_py_module_name): New function.
    (_mu_py_attach_module): Use _mu_py_module_name to allocate FQ
    module name instead of taking the risk of using fixed size buffer.
    Don't call Py_InitModule if methods is NULL.
    (mu_py_attach_modules): Call _mu_py_attach_errno.
    * python/libmu_py/libmu_py.h (_mu_py_attach_errno): New proto.
    * python/mailutils/error.py: Re-export everything from c_api.errno.
    Remove hardcoded definitions of error codes.

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

Summary of changes:
 python/libmu_py/Makefile.am                       |    1 +
 include/mailutils/io.h => python/libmu_py/errno.c |   33 ++++-----
 python/libmu_py/libmu_py.c                        |   25 +++++--
 python/libmu_py/libmu_py.h                        |    1 +
 python/mailutils/error.py                         |   79 +--------------------
 5 files changed, 37 insertions(+), 102 deletions(-)
 copy include/mailutils/io.h => python/libmu_py/errno.c (70%)

diff --git a/python/libmu_py/Makefile.am b/python/libmu_py/Makefile.am
index 596931c..d3d198d 100644
--- a/python/libmu_py/Makefile.am
+++ b/python/libmu_py/Makefile.am
@@ -19,6 +19,7 @@ INCLUDES = @MU_LIB_COMMON_INCLUDES@ $(PYTHON_INCLUDES)
 lib_LTLIBRARIES=libmu_py.la
 libmu_py_la_SOURCES = \
  error.c \
+ errno.c \
  address.c \
  attribute.c \
  auth.c \
diff --git a/include/mailutils/io.h b/python/libmu_py/errno.c
similarity index 70%
copy from include/mailutils/io.h
copy to python/libmu_py/errno.c
index 8485851..2616bbc 100644
--- a/include/mailutils/io.h
+++ b/python/libmu_py/errno.c
@@ -15,21 +15,20 @@
    Public License along with this library.  If not, see 
    <http://www.gnu.org/licenses/>. */
 
-#ifndef _MAILUTILS_IO_H
-#define _MAILUTILS_IO_H
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int mu_asprintf (char **pbuf, const char *fmt, ...);
-int mu_asnprintf (char **pbuf, size_t *psize, const char *fmt, ...);
-int mu_vasnprintf (char **pbuf, size_t *psize, const char *fmt, va_list ap);
-
-#ifdef __cplusplus
+#include "libmu_py.h"
+#include <mailutils/errno.h>
+
+#define PY_MODULE "errno"
+
+void
+_mu_py_attach_errno (void)
+{
+  int i;
+  PyObject *module = _mu_py_attach_module (PY_MODULE, NULL);
+
+  for (i = MU_ERR_BASE; i < MU_ERR_LAST; i++)
+    {
+      const char *en = mu_errname (i);
+      PyModule_AddIntConstant (module, en, i);
+    }
 }
-#endif
-
-#endif
diff --git a/python/libmu_py/libmu_py.c b/python/libmu_py/libmu_py.c
index d9da2b1..16c9dad 100644
--- a/python/libmu_py/libmu_py.c
+++ b/python/libmu_py/libmu_py.c
@@ -42,14 +42,23 @@ status_object (int status, PyObject *py_obj)
 static PyObject *package;
 static PyObject *all;
 
+#define MU_MODULE_ROOT PY_PACKAGE_NAME "." PY_ROOT_NAME "."
+
+static char *
+_mu_py_module_name (const char *nm)
+{
+  char *buf = malloc (sizeof (MU_MODULE_ROOT) + strlen (nm));
+  if (!buf)
+    abort ();
+  return strcat (strcpy (buf, MU_MODULE_ROOT), nm);
+}
+  
 PyObject *
 _mu_py_attach_module (const char *name, PyMethodDef *methods)
 {
-  PyObject *module, *m;
-
-  char ns[64] = PY_PACKAGE_NAME "." PY_ROOT_NAME ".";
-  strcat (ns, name);
-
+  PyObject *module;
+  char *ns = _mu_py_module_name (name);
+  
   if (!(module = PyImport_AddModule (ns)))
     return NULL;
 
@@ -58,11 +67,12 @@ _mu_py_attach_module (const char *name, PyMethodDef 
*methods)
 
   Py_INCREF (module);
 
-  if (!(m = Py_InitModule (ns, methods)))
+  if (methods && !Py_InitModule (ns, methods))
     return NULL;
 
   PyList_Append (all, PyString_FromString (name));
-  return m;
+  free (ns);
+  return module;
 }
 
 void
@@ -111,6 +121,7 @@ mu_py_attach_modules (void)
   _mu_py_attach_auth ();
   _mu_py_attach_body ();
   _mu_py_attach_envelope ();
+  _mu_py_attach_errno ();
   _mu_py_attach_header ();
   _mu_py_attach_filter ();
   _mu_py_attach_folder ();
diff --git a/python/libmu_py/libmu_py.h b/python/libmu_py/libmu_py.h
index 77f5f64..1a5128e 100644
--- a/python/libmu_py/libmu_py.h
+++ b/python/libmu_py/libmu_py.h
@@ -65,6 +65,7 @@ extern void _mu_py_attach_attribute (void);
 extern void _mu_py_attach_auth (void);
 extern void _mu_py_attach_body (void);
 extern void _mu_py_attach_envelope (void);
+extern void _mu_py_attach_errno (void);
 extern void _mu_py_attach_header  (void);
 extern void _mu_py_attach_filter (void);
 extern void _mu_py_attach_folder (void);
diff --git a/python/mailutils/error.py b/python/mailutils/error.py
index 0e79fa8..503ffef 100644
--- a/python/mailutils/error.py
+++ b/python/mailutils/error.py
@@ -16,6 +16,7 @@
 #  <http://www.gnu.org/licenses/>.
 
 from mailutils.c_api import error
+from mailutils.c_api.errno import *
 
 def strerror (status):
     return error.strerror (status)
@@ -44,81 +45,3 @@ class SieveMachineError (Error): pass
 class StreamError (Error): pass
 class UrlError (Error): pass
 
-MU_ERR_BASE = 0x1000
-
-MU_ERR_FAILURE = (MU_ERR_BASE+0)
-MU_ERR_CANCELED = (MU_ERR_BASE+1)
-MU_ERR_EMPTY_VFN = (MU_ERR_BASE+2)
-MU_ERR_OUT_PTR_NULL = (MU_ERR_BASE+3)
-MU_ERR_MBX_REMOVED = (MU_ERR_BASE+4)
-MU_ERR_NOT_OPEN = (MU_ERR_BASE+5)
-MU_ERR_OPEN = (MU_ERR_BASE+6)
-MU_ERR_INVALID_EMAIL = (MU_ERR_BASE+7)
-MU_ERR_EMPTY_ADDRESS = (MU_ERR_BASE+8)
-MU_ERR_LOCKER_NULL = (MU_ERR_BASE+9)
-MU_ERR_LOCK_CONFLICT = (MU_ERR_BASE+10)
-MU_ERR_LOCK_BAD_LOCK = (MU_ERR_BASE+11)
-MU_ERR_LOCK_BAD_FILE = (MU_ERR_BASE+12)
-MU_ERR_LOCK_NOT_HELD = (MU_ERR_BASE+13)
-MU_ERR_LOCK_EXT_FAIL = (MU_ERR_BASE+14)
-MU_ERR_LOCK_EXT_ERR = (MU_ERR_BASE+15)
-MU_ERR_LOCK_EXT_KILLED = (MU_ERR_BASE+16)
-MU_ERR_NO_SUCH_USER = (MU_ERR_BASE+17)
-MU_ERR_GETHOSTBYNAME = (MU_ERR_BASE+18)
-MU_ERR_MAILER_BAD_FROM = (MU_ERR_BASE+19)
-MU_ERR_MAILER_BAD_TO = (MU_ERR_BASE+20)
-MU_ERR_MAILER_NO_RCPT_TO = (MU_ERR_BASE+21)
-MU_ERR_MAILER_BAD_URL = (MU_ERR_BASE+22)
-MU_ERR_SMTP_RCPT_FAILED = (MU_ERR_BASE+23)
-MU_ERR_TCP_NO_HOST = (MU_ERR_BASE+24)
-MU_ERR_TCP_NO_PORT = (MU_ERR_BASE+25)
-MU_ERR_BAD_2047_INPUT = (MU_ERR_BASE+26)
-MU_ERR_BAD_2047_ENCODING = (MU_ERR_BASE+27)
-MU_ERR_NOUSERNAME = (MU_ERR_BASE+28)
-MU_ERR_NOPASSWORD = (MU_ERR_BASE+29)
-MU_ERR_BADREPLY = (MU_ERR_BASE+30)
-MU_ERR_SEQ = (MU_ERR_BASE+31)
-MU_ERR_REPLY = (MU_ERR_BASE+32)
-MU_ERR_BAD_AUTH_SCHEME = (MU_ERR_BASE+33)
-MU_ERR_AUTH_FAILURE = (MU_ERR_BASE+34)
-MU_ERR_PROCESS_NOEXEC = (MU_ERR_BASE+35)
-MU_ERR_PROCESS_EXITED = (MU_ERR_BASE+36)
-MU_ERR_PROCESS_SIGNALED = (MU_ERR_BASE+37)
-MU_ERR_PROCESS_UNKNOWN_FAILURE = (MU_ERR_BASE+38)
-MU_ERR_CONN_CLOSED = (MU_ERR_BASE+39)
-MU_ERR_PARSE = (MU_ERR_BASE+40)
-MU_ERR_NOENT = (MU_ERR_BASE+41)
-MU_ERR_EXISTS = (MU_ERR_BASE+42)
-MU_ERR_BUFSPACE = (MU_ERR_BASE+43)
-MU_ERR_SQL = (MU_ERR_BASE+44)
-MU_ERR_DB_ALREADY_CONNECTED = (MU_ERR_BASE+45)
-MU_ERR_DB_NOT_CONNECTED = (MU_ERR_BASE+46)
-MU_ERR_RESULT_NOT_RELEASED = (MU_ERR_BASE+47)
-MU_ERR_NO_QUERY = (MU_ERR_BASE+48)
-MU_ERR_BAD_COLUMN = (MU_ERR_BASE+49)
-MU_ERR_NO_RESULT = (MU_ERR_BASE+50)
-MU_ERR_NO_INTERFACE = (MU_ERR_BASE+51)
-MU_ERR_BADOP = (MU_ERR_BASE+52)
-MU_ERR_BAD_FILENAME = (MU_ERR_BASE+53)
-MU_ERR_READ = (MU_ERR_BASE+54)
-MU_ERR_NO_TRANSPORT = (MU_ERR_BASE+55)
-MU_ERR_AUTH_NO_CRED = (MU_ERR_BASE+56)
-MU_ERR_URL_MISS_PARTS = (MU_ERR_BASE+57)
-MU_ERR_URL_EXTRA_PARTS = (MU_ERR_BASE+58)
-MU_ERR_URL_INVALID_PARAMETER = (MU_ERR_BASE+59)
-MU_ERR_INFO_UNAVAILABLE = (MU_ERR_BASE+60)
-MU_ERR_NONAME = (MU_ERR_BASE+61)
-MU_ERR_BADFLAGS = (MU_ERR_BASE+62)
-MU_ERR_SOCKTYPE = (MU_ERR_BASE+63)
-MU_ERR_FAMILY = (MU_ERR_BASE+64)
-MU_ERR_SERVICE = (MU_ERR_BASE+65)
-MU_ERR_PERM_OWNER_MISMATCH = (MU_ERR_BASE+66)
-MU_ERR_PERM_GROUP_WRITABLE = (MU_ERR_BASE+67)
-MU_ERR_PERM_WORLD_WRITABLE = (MU_ERR_BASE+68)
-MU_ERR_PERM_GROUP_READABLE = (MU_ERR_BASE+69)
-MU_ERR_PERM_WORLD_READABLE = (MU_ERR_BASE+70)
-MU_ERR_PERM_LINKED_WRDIR = (MU_ERR_BASE+71)
-MU_ERR_PERM_DIR_IWGRP = (MU_ERR_BASE+72)
-MU_ERR_PERM_DIR_IWOTH = (MU_ERR_BASE+73)
-MU_ERR_DISABLED = (MU_ERR_BASE+74)
-MU_ERR_LAST = (MU_ERR_BASE+75)


hooks/post-receive
-- 
GNU Mailutils



reply via email to

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