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 <g...@gnu.org.ua> 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 _______________________________________________ Commit-mailutils mailing list Commit-mailutils@gnu.org https://lists.gnu.org/mailman/listinfo/commit-mailutils