Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 38431:4c0823f0a0a1 legacy-trunk
Conversion of exceptions over from faked-up classes to new-style C types.
| author | Richard Jones <richard@commonground.com.au> |
|---|---|
| date | Sat, 27 May 2006 12:29:24 +0000 |
| parents | 35f27bbd9ad8 |
| children | 1a23706139ca |
line wrap: on
line diff
--- a/Python/pythonrun.c Sat May 27 12:11:36 2006 +0000 +++ b/Python/pythonrun.c Sat May 27 12:29:24 2006 +0000 @@ -1084,7 +1084,8 @@ Py_XDECREF(tb); } -void PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb) +void +PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb) { int err = 0; PyObject *f = PySys_GetObject("stderr"); @@ -1132,19 +1133,22 @@ } else if (PyExceptionClass_Check(exception)) { char* className = PyExceptionClass_Name(exception); - PyObject* moduleName = - PyObject_GetAttrString(exception, "__module__"); + char *dot = strrchr(className, '.'); + PyObject* moduleName; + if (dot != NULL) + className = dot+1; + moduleName = PyObject_GetAttrString(exception, "__module__"); if (moduleName == NULL) err = PyFile_WriteString("<unknown>", f); else { char* modstr = PyString_AsString(moduleName); - Py_DECREF(moduleName); if (modstr && strcmp(modstr, "exceptions")) { err = PyFile_WriteString(modstr, f); err += PyFile_WriteString(".", f); } + Py_DECREF(moduleName); } if (err == 0) { if (className == NULL)
