Index: Modules/_localemodule.c =================================================================== --- Modules/_localemodule.c (révision 65132) +++ Modules/_localemodule.c (copie de travail) @@ -586,7 +586,7 @@ PyIntl_gettext(PyObject* self, PyObject *args) { char *in; - if (!PyArg_ParseTuple(args, "z", &in)) + if (!PyArg_ParseTuple(args, "s", &in)) return 0; return PyString_FromString(gettext(in)); } @@ -599,7 +599,7 @@ PyIntl_dgettext(PyObject* self, PyObject *args) { char *domain, *in; - if (!PyArg_ParseTuple(args, "zz", &domain, &in)) + if (!PyArg_ParseTuple(args, "zs", &domain, &in)) return 0; return PyString_FromString(dgettext(domain, in)); } @@ -613,7 +613,7 @@ { char *domain, *msgid; int category; - if (!PyArg_ParseTuple(args, "zzi", &domain, &msgid, &category)) + if (!PyArg_ParseTuple(args, "zsi", &domain, &msgid, &category)) return 0; return PyString_FromString(dcgettext(domain,msgid,category)); } @@ -644,8 +644,12 @@ PyIntl_bindtextdomain(PyObject* self,PyObject*args) { char *domain,*dirname; - if (!PyArg_ParseTuple(args, "zz", &domain, &dirname)) + if (!PyArg_ParseTuple(args, "sz", &domain, &dirname)) return 0; + if (!strlen(domain)) { + PyErr_SetString(Error, "domain have to be a non empty string"); + return 0; + } dirname = bindtextdomain(domain, dirname); if (!dirname) { PyErr_SetFromErrno(PyExc_OSError);