find_module(): use FS encoding to display the missing __init__ warning

This commit is contained in:
Victor Stinner 2010-10-17 02:07:09 +00:00
parent e3874ed7dd
commit ed7916dd00
1 changed files with 9 additions and 7 deletions

View File

@ -1736,14 +1736,16 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf,
return &fd_package;
}
else {
char warnstr[MAXPATHLEN+80];
sprintf(warnstr, "Not importing directory "
"'%.*s': missing __init__.py",
MAXPATHLEN, buf);
if (PyErr_WarnEx(PyExc_ImportWarning,
warnstr, 1)) {
int err;
PyObject *unicode = PyUnicode_DecodeFSDefault(buf);
if (unicode == NULL)
return NULL;
err = PyErr_WarnFormat(PyExc_ImportWarning, 1,
"Not importing directory '%U': missing __init__.py",
unicode);
Py_DECREF(unicode);
if (err)
return NULL;
}
}
}
#endif