PyAPI_FUNC(PyObject *) PyModule_New(const char *);
PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *);
-PyAPI_FUNC(char *) PyModule_GetName(PyObject *);
-PyAPI_FUNC(char *) PyModule_GetFilename(PyObject *);
+PyAPI_FUNC(const char *) PyModule_GetName(PyObject *);
+PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *);
PyAPI_FUNC(void) _PyModule_Clear(PyObject *);
#ifdef __cplusplus
return d;
}
-char *
+const char *
PyModule_GetName(PyObject *m)
{
PyObject *d;
return PyString_AsString(nameobj);
}
-char *
+const char *
PyModule_GetFilename(PyObject *m)
{
PyObject *d;
/* First, clear only names starting with a single underscore */
pos = 0;
while (PyDict_Next(d, &pos, &key, &value)) {
- if (value != Py_None && PyString_Check(key)) {
- char *s = PyString_AsString(key);
+ if (value != Py_None && PyUnicode_Check(key)) {
+ const char *s = PyUnicode_AsString(key);
if (s[0] == '_' && s[1] != '_') {
if (Py_VerboseFlag > 1)
PySys_WriteStderr("# clear[1] %s\n", s);
/* Next, clear all names except for __builtins__ */
pos = 0;
while (PyDict_Next(d, &pos, &key, &value)) {
- if (value != Py_None && PyString_Check(key)) {
- char *s = PyString_AsString(key);
+ if (value != Py_None && PyUnicode_Check(key)) {
+ const char *s = PyUnicode_AsString(key);
if (s[0] != '_' || strcmp(s, "__builtins__") != 0) {
if (Py_VerboseFlag > 1)
PySys_WriteStderr("# clear[2] %s\n", s);
static PyObject *
module_repr(PyModuleObject *m)
{
- char *name;
- char *filename;
+ const char *name;
+ const char *filename;
name = PyModule_GetName((PyObject *)m);
if (name == NULL) {