Skip to content

Commit

Permalink
Got rid of the errorstr dictionary, which is redundant now that
Browse files Browse the repository at this point in the history
there's os.strerror() -- also, it would form a locale liability.
  • Loading branch information
gvanrossum committed Nov 4, 1997
1 parent 4a1f39a commit 851e7d5
Showing 1 changed file with 9 additions and 21 deletions.
30 changes: 9 additions & 21 deletions Modules/errnomodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,57 +54,45 @@ static PyMethodDef errno_methods[] = {
/* Helper function doing the dictionary inserting */

static void
inscode(d, e, c, name, code, comment)
PyObject * d;
PyObject * e;
PyObject * c;
_inscode(d, de, name, code)
PyObject *d;
PyObject *de;
char *name;
int code;
char * comment;
{
PyObject *u;
PyObject *v;
PyObject *w;

#ifdef HAVE_STRERROR
if (strerror(code) != NULL)
comment = strerror(code);
#endif

u = PyString_FromString(name);
v = PyInt_FromLong((long) code);
w = PyString_FromString(comment);

if (!u || !v || !w) {
if (!u || !v) {
/* Don't bother reporting this error */
PyErr_Clear();
}
else {
/* insert in modules dict */
PyDict_SetItem(d, u, v);
/* insert in errorstr dict */
PyDict_SetItem(e, v, w);
/* insert in errorcode dict */
PyDict_SetItem(c, v, u);
PyDict_SetItem(de, v, u);
}
Py_XDECREF(u);
Py_XDECREF(v);
Py_XDECREF(w);
}

void
initerrno()
{
PyObject *m, *d, *ds, *de;
PyObject *m, *d, *de;
m = Py_InitModule("errno", errno_methods);
d = PyModule_GetDict(m);
ds = PyDict_New();
if (ds == NULL || PyDict_SetItemString(d,"errorstr",ds))
Py_FatalError("can't initialize errno module");
de = PyDict_New();
if (de == NULL || PyDict_SetItemString(d,"errorcode",de))
Py_FatalError("can't initialize errno module");

/* Macro so I don't have to edit each and every line below... */
#define inscode(d, ds, de, name, code, comment) _inscode(d, de, name, code)

/*
* The names and comments are borrowed from linux/include/errno.h,
* which should be pretty all-inclusive
Expand Down

0 comments on commit 851e7d5

Please sign in to comment.