diff --git a/Include/compile.h b/Include/compile.h index a4b2f55f80d..a462d77f79e 100644 --- a/Include/compile.h +++ b/Include/compile.h @@ -52,7 +52,7 @@ PyAPI_DATA(PyTypeObject) PyCode_Type; /* Public interface */ struct _node; /* Declare the existence of this type */ -PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, char *); +PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, const char *); PyAPI_FUNC(PyCodeObject *) PyCode_New( int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *); @@ -67,8 +67,8 @@ typedef struct { int ff_features; } PyFutureFeatures; -PyAPI_FUNC(PyFutureFeatures *) PyNode_Future(struct _node *, char *); -PyAPI_FUNC(PyCodeObject *) PyNode_CompileFlags(struct _node *, char *, +PyAPI_FUNC(PyFutureFeatures *) PyNode_Future(struct _node *, const char *); +PyAPI_FUNC(PyCodeObject *) PyNode_CompileFlags(struct _node *, const char *, PyCompilerFlags *); #define FUTURE_NESTED_SCOPES "nested_scopes" diff --git a/Include/parsetok.h b/Include/parsetok.h index 9bcc1f75fa8..58ef76ab69d 100644 --- a/Include/parsetok.h +++ b/Include/parsetok.h @@ -9,7 +9,7 @@ extern "C" { typedef struct { int error; - char *filename; + const char *filename; int lineno; int offset; char *text; @@ -21,19 +21,19 @@ typedef struct { #define PyPARSE_YIELD_IS_KEYWORD 0x0001 #endif -PyAPI_FUNC(node *) PyParser_ParseString(char *, grammar *, int, +PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int, perrdetail *); -PyAPI_FUNC(node *) PyParser_ParseFile (FILE *, char *, grammar *, int, +PyAPI_FUNC(node *) PyParser_ParseFile (FILE *, const char *, grammar *, int, char *, char *, perrdetail *); -PyAPI_FUNC(node *) PyParser_ParseStringFlags(char *, grammar *, int, +PyAPI_FUNC(node *) PyParser_ParseStringFlags(const char *, grammar *, int, perrdetail *, int); -PyAPI_FUNC(node *) PyParser_ParseFileFlags(FILE *, char *, grammar *, +PyAPI_FUNC(node *) PyParser_ParseFileFlags(FILE *, const char *, grammar *, int, char *, char *, perrdetail *, int); -PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename(char *, - char *, +PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename(const char *, + const char *, grammar *, int, perrdetail *, int); #ifdef __cplusplus diff --git a/Include/pyerrors.h b/Include/pyerrors.h index 1adc6eca6c5..a4ab62ab7c7 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -130,16 +130,17 @@ PyAPI_FUNC(void) PyErr_WriteUnraisable(PyObject *); /* Issue a warning or exception */ PyAPI_FUNC(int) PyErr_Warn(PyObject *, char *); -PyAPI_FUNC(int) PyErr_WarnExplicit(PyObject *, char *, - char *, int, char *, PyObject *); +PyAPI_FUNC(int) PyErr_WarnExplicit(PyObject *, const char *, + const char *, int, + const char *, PyObject *); /* In sigcheck.c or signalmodule.c */ PyAPI_FUNC(int) PyErr_CheckSignals(void); PyAPI_FUNC(void) PyErr_SetInterrupt(void); /* Support for adding program text to SyntaxErrors */ -PyAPI_FUNC(void) PyErr_SyntaxLocation(char *, int); -PyAPI_FUNC(PyObject *) PyErr_ProgramText(char *, int); +PyAPI_FUNC(void) PyErr_SyntaxLocation(const char *, int); +PyAPI_FUNC(PyObject *) PyErr_ProgramText(const char *, int); #ifdef Py_USING_UNICODE /* The following functions are used to create and modify unicode diff --git a/Include/pythonrun.h b/Include/pythonrun.h index 7bc011b1d23..01e0e32e9e2 100644 --- a/Include/pythonrun.h +++ b/Include/pythonrun.h @@ -26,47 +26,47 @@ PyAPI_FUNC(int) Py_IsInitialized(void); PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void); PyAPI_FUNC(void) Py_EndInterpreter(PyThreadState *); -PyAPI_FUNC(int) PyRun_AnyFile(FILE *, char *); -PyAPI_FUNC(int) PyRun_AnyFileEx(FILE *, char *, int); +PyAPI_FUNC(int) PyRun_AnyFile(FILE *, const char *); +PyAPI_FUNC(int) PyRun_AnyFileEx(FILE *, const char *, int); -PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, char *, PyCompilerFlags *); -PyAPI_FUNC(int) PyRun_AnyFileExFlags(FILE *, char *, int, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_AnyFileExFlags(FILE *, const char *, int, PyCompilerFlags *); -PyAPI_FUNC(int) PyRun_SimpleString(char *); -PyAPI_FUNC(int) PyRun_SimpleStringFlags(char *, PyCompilerFlags *); -PyAPI_FUNC(int) PyRun_SimpleFile(FILE *, char *); -PyAPI_FUNC(int) PyRun_SimpleFileEx(FILE *, char *, int); -PyAPI_FUNC(int) PyRun_SimpleFileExFlags(FILE *, char *, int, PyCompilerFlags *); -PyAPI_FUNC(int) PyRun_InteractiveOne(FILE *, char *); -PyAPI_FUNC(int) PyRun_InteractiveOneFlags(FILE *, char *, PyCompilerFlags *); -PyAPI_FUNC(int) PyRun_InteractiveLoop(FILE *, char *); -PyAPI_FUNC(int) PyRun_InteractiveLoopFlags(FILE *, char *, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_SimpleString(const char *); +PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_SimpleFile(FILE *, const char *); +PyAPI_FUNC(int) PyRun_SimpleFileEx(FILE *, const char *, int); +PyAPI_FUNC(int) PyRun_SimpleFileExFlags(FILE *, const char *, int, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_InteractiveOne(FILE *, const char *); +PyAPI_FUNC(int) PyRun_InteractiveOneFlags(FILE *, const char *, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_InteractiveLoop(FILE *, const char *); +PyAPI_FUNC(int) PyRun_InteractiveLoopFlags(FILE *, const char *, PyCompilerFlags *); -PyAPI_FUNC(struct _node *) PyParser_SimpleParseString(char *, int); -PyAPI_FUNC(struct _node *) PyParser_SimpleParseFile(FILE *, char *, int); -PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(char *, int, int); -PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(char *, - char *, +PyAPI_FUNC(struct _node *) PyParser_SimpleParseString(const char *, int); +PyAPI_FUNC(struct _node *) PyParser_SimpleParseFile(FILE *, const char *, int); +PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int, int); +PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *, + const char *, int, int); -PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, char *, +PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *, int, int); -PyAPI_FUNC(PyObject *) PyRun_String(char *, int, PyObject *, PyObject *); -PyAPI_FUNC(PyObject *) PyRun_File(FILE *, char *, int, PyObject *, PyObject *); -PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *, char *, int, +PyAPI_FUNC(PyObject *) PyRun_String(const char *, int, PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyRun_File(FILE *, const char *, int, PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *, const char *, int, PyObject *, PyObject *, int); -PyAPI_FUNC(PyObject *) PyRun_StringFlags(char *, int, PyObject *, PyObject *, +PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *, PyObject *, PyCompilerFlags *); -PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *, char *, int, PyObject *, +PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *, const char *, int, PyObject *, PyObject *, PyCompilerFlags *); -PyAPI_FUNC(PyObject *) PyRun_FileExFlags(FILE *, char *, int, PyObject *, +PyAPI_FUNC(PyObject *) PyRun_FileExFlags(FILE *, const char *, int, PyObject *, PyObject *, int, PyCompilerFlags *); -PyAPI_FUNC(PyObject *) Py_CompileString(char *, char *, int); -PyAPI_FUNC(PyObject *) Py_CompileStringFlags(char *, char *, int, +PyAPI_FUNC(PyObject *) Py_CompileString(const char *, const char *, int); +PyAPI_FUNC(PyObject *) Py_CompileStringFlags(const char *, const char *, int, PyCompilerFlags *); -PyAPI_FUNC(struct symtable *) Py_SymtableString(char *, char *, int); +PyAPI_FUNC(struct symtable *) Py_SymtableString(const char *, const char *, int); PyAPI_FUNC(void) PyErr_Print(void); PyAPI_FUNC(void) PyErr_PrintEx(int); @@ -76,7 +76,7 @@ PyAPI_FUNC(int) Py_AtExit(void (*func)(void)); PyAPI_FUNC(void) Py_Exit(int); -PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, char *); +PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *); /* Bootstrap */ PyAPI_FUNC(int) Py_Main(int argc, char **argv); diff --git a/Include/symtable.h b/Include/symtable.h index 9bf2a2a3f11..301bd3075fb 100644 --- a/Include/symtable.h +++ b/Include/symtable.h @@ -20,7 +20,7 @@ struct _symtable_entry; struct symtable { int st_pass; /* pass == 1 or 2 */ - char *st_filename; /* name of file being compiled */ + const char *st_filename; /* name of file being compiled */ struct _symtable_entry *st_cur; /* current symbol table entry */ PyObject *st_symbols; /* dictionary of symbol table entries */ PyObject *st_stack; /* stack of namespace info */ @@ -57,7 +57,7 @@ PyAPI_DATA(PyTypeObject) PySymtableEntry_Type; PyAPI_FUNC(PyObject *) PySymtableEntry_New(struct symtable *, char *, int, int); -PyAPI_FUNC(struct symtable *) PyNode_CompileSymtable(struct _node *, char *); +PyAPI_FUNC(struct symtable *) PyNode_CompileSymtable(struct _node *, const char *); PyAPI_FUNC(void) PySymtable_Free(struct symtable *); diff --git a/Parser/parsetok.c b/Parser/parsetok.c index d70e2d64f83..82a5450d8f7 100644 --- a/Parser/parsetok.c +++ b/Parser/parsetok.c @@ -15,17 +15,17 @@ int Py_TabcheckFlag; /* Forward */ static node *parsetok(struct tok_state *, grammar *, int, perrdetail *, int); -static void initerr(perrdetail *err_ret, char* filename); +static void initerr(perrdetail *err_ret, const char* filename); /* Parse input coming from a string. Return error code, print some errors. */ node * -PyParser_ParseString(char *s, grammar *g, int start, perrdetail *err_ret) +PyParser_ParseString(const char *s, grammar *g, int start, perrdetail *err_ret) { return PyParser_ParseStringFlags(s, g, start, err_ret, 0); } node * -PyParser_ParseStringFlags(char *s, grammar *g, int start, +PyParser_ParseStringFlags(const char *s, grammar *g, int start, perrdetail *err_ret, int flags) { return PyParser_ParseStringFlagsFilename(s, NULL, @@ -33,7 +33,7 @@ PyParser_ParseStringFlags(char *s, grammar *g, int start, } node * -PyParser_ParseStringFlagsFilename(char *s, char *filename, +PyParser_ParseStringFlagsFilename(const char *s, const char *filename, grammar *g, int start, perrdetail *err_ret, int flags) { @@ -60,7 +60,7 @@ PyParser_ParseStringFlagsFilename(char *s, char *filename, /* Parse input coming from a file. Return error code, print some errors. */ node * -PyParser_ParseFile(FILE *fp, char *filename, grammar *g, int start, +PyParser_ParseFile(FILE *fp, const char *filename, grammar *g, int start, char *ps1, char *ps2, perrdetail *err_ret) { return PyParser_ParseFileFlags(fp, filename, g, start, ps1, ps2, @@ -68,7 +68,7 @@ PyParser_ParseFile(FILE *fp, char *filename, grammar *g, int start, } node * -PyParser_ParseFileFlags(FILE *fp, char *filename, grammar *g, int start, +PyParser_ParseFileFlags(FILE *fp, const char *filename, grammar *g, int start, char *ps1, char *ps2, perrdetail *err_ret, int flags) { struct tok_state *tok; @@ -201,7 +201,7 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret, } static void -initerr(perrdetail *err_ret, char* filename) +initerr(perrdetail *err_ret, const char* filename) { err_ret->error = E_OK; err_ret->filename = filename; diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 800a1666e7c..d7a223ae0f8 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -386,7 +386,8 @@ fp_setreadl(struct tok_state *tok, const char* enc) { PyObject *reader, *stream, *readline; - stream = PyFile_FromFile(tok->fp, tok->filename, "rb", NULL); + /* XXX: constify filename argument. */ + stream = PyFile_FromFile(tok->fp, (char*)tok->filename, "rb", NULL); if (stream == NULL) return 0; @@ -591,7 +592,7 @@ decode_str(const char *str, struct tok_state *tok) /* Set up tokenizer for string */ struct tok_state * -PyTokenizer_FromString(char *str) +PyTokenizer_FromString(const char *str) { struct tok_state *tok = tok_new(); if (tok == NULL) @@ -599,7 +600,8 @@ PyTokenizer_FromString(char *str) str = (char *)decode_str(str, tok); if (str == NULL) return NULL; - tok->buf = tok->cur = tok->end = tok->inp = str; + /* XXX: constify members. */ + tok->buf = tok->cur = tok->end = tok->inp = (char*)str; return tok; } diff --git a/Parser/tokenizer.h b/Parser/tokenizer.h index b3d456a27d8..e9423333e24 100644 --- a/Parser/tokenizer.h +++ b/Parser/tokenizer.h @@ -34,7 +34,7 @@ struct tok_state { int level; /* () [] {} Parentheses nesting level */ /* Used to allow free continuations inside them */ /* Stuff for checking on different tab sizes */ - char *filename; /* For error messages */ + const char *filename; /* For error messages */ int altwarning; /* Issue warning if alternate tabs don't match */ int alterror; /* Issue error if alternate tabs don't match */ int alttabsize; /* Alternate tab spacing */ @@ -54,7 +54,7 @@ struct tok_state { const char* str; }; -extern struct tok_state *PyTokenizer_FromString(char *); +extern struct tok_state *PyTokenizer_FromString(const char *); extern struct tok_state *PyTokenizer_FromFile(FILE *, char *, char *); extern void PyTokenizer_Free(struct tok_state *); extern int PyTokenizer_Get(struct tok_state *, char **, char **); diff --git a/Python/compile.c b/Python/compile.c index d612e5b4486..b438ce44f98 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -472,7 +472,7 @@ struct compiling { int c_begin; /* begin of current loop, for 'continue' */ int c_block[CO_MAXBLOCKS]; /* stack of block types */ int c_nblocks; /* current block stack level */ - char *c_filename; /* filename of current node */ + const char *c_filename; /* filename of current node */ char *c_name; /* name of object (e.g. function) */ int c_lineno; /* Current line number */ int c_stacklevel; /* Current stack level */ @@ -574,8 +574,8 @@ block_pop(struct compiling *c, int type) /* Prototype forward declarations */ -static int issue_warning(char *, char *, int); -static int com_init(struct compiling *, char *); +static int issue_warning(const char *, const char *, int); +static int com_init(struct compiling *, const char *); static void com_free(struct compiling *); static void com_push(struct compiling *, int); static void com_pop(struct compiling *, int); @@ -597,7 +597,7 @@ static int com_argdefs(struct compiling *, node *); static void com_assign(struct compiling *, node *, int, node *); static void com_assign_name(struct compiling *, node *, int); static PyCodeObject *icompile(node *, struct compiling *); -static PyCodeObject *jcompile(node *, char *, struct compiling *, +static PyCodeObject *jcompile(node *, const char *, struct compiling *, PyCompilerFlags *); static PyObject *parsestrplus(struct compiling*, node *); static PyObject *parsestr(struct compiling *, char *); @@ -654,7 +654,7 @@ dump(node *n, int pad, int depth) #define DUMP(N) dump(N, 0, -1) static int -com_init(struct compiling *c, char *filename) +com_init(struct compiling *c, const char *filename) { memset((void *)c, '\0', sizeof(struct compiling)); if ((c->c_code = PyString_FromStringAndSize((char *)NULL, @@ -1182,7 +1182,9 @@ parsenumber(struct compiling *c, char *s) "hex/oct constants > sys.maxint " "will return positive values " "in Python 2.4 and up", - c->c_filename, + /* XXX: Give WarnExplicit + a const char* argument. */ + (char*)c->c_filename, c->c_lineno, NULL, NULL) < 0) @@ -4142,19 +4144,19 @@ dict_keys_inorder(PyObject *dict, int offset) } PyCodeObject * -PyNode_Compile(node *n, char *filename) +PyNode_Compile(node *n, const char *filename) { return PyNode_CompileFlags(n, filename, NULL); } PyCodeObject * -PyNode_CompileFlags(node *n, char *filename, PyCompilerFlags *flags) +PyNode_CompileFlags(node *n, const char *filename, PyCompilerFlags *flags) { return jcompile(n, filename, NULL, flags); } struct symtable * -PyNode_CompileSymtable(node *n, char *filename) +PyNode_CompileSymtable(node *n, const char *filename) { struct symtable *st; PyFutureFeatures *ff; @@ -4191,7 +4193,7 @@ icompile(node *n, struct compiling *base) } static PyCodeObject * -jcompile(node *n, char *filename, struct compiling *base, +jcompile(node *n, const char *filename, struct compiling *base, PyCompilerFlags *flags) { struct compiling sc; @@ -4351,7 +4353,7 @@ get_ref_type(struct compiling *c, char *name) /* Helper functions to issue warnings */ static int -issue_warning(char *msg, char *filename, int lineno) +issue_warning(const char *msg, const char *filename, int lineno) { if (PyErr_WarnExplicit(PyExc_SyntaxWarning, msg, filename, lineno, NULL, NULL) < 0) { diff --git a/Python/errors.c b/Python/errors.c index 95c24a685ea..e50960661e7 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -637,9 +637,9 @@ PyErr_Warn(PyObject *category, char *message) /* Warning with explicit origin */ int -PyErr_WarnExplicit(PyObject *category, char *message, - char *filename, int lineno, - char *module, PyObject *registry) +PyErr_WarnExplicit(PyObject *category, const char *message, + const char *filename, int lineno, + const char *module, PyObject *registry) { PyObject *mod, *dict, *func = NULL; @@ -679,7 +679,7 @@ PyErr_WarnExplicit(PyObject *category, char *message, to make printing of exceptions believe it is a syntax error. */ void -PyErr_SyntaxLocation(char *filename, int lineno) +PyErr_SyntaxLocation(const char *filename, int lineno) { PyObject *exc, *v, *tb, *tmp; @@ -743,7 +743,7 @@ PyErr_SyntaxLocation(char *filename, int lineno) */ PyObject * -PyErr_ProgramText(char *filename, int lineno) +PyErr_ProgramText(const char *filename, int lineno) { FILE *fp; int i; diff --git a/Python/future.c b/Python/future.c index beec9fcd196..377ad9abde5 100644 --- a/Python/future.c +++ b/Python/future.c @@ -14,7 +14,7 @@ #define FUTURE_POSSIBLE(FF) ((FF)->ff_last_lineno == -1) static int -future_check_features(PyFutureFeatures *ff, node *n, char *filename) +future_check_features(PyFutureFeatures *ff, node *n, const char *filename) { int i; char *feature; @@ -54,7 +54,7 @@ future_check_features(PyFutureFeatures *ff, node *n, char *filename) } static void -future_error(node *n, char *filename) +future_error(node *n, const char *filename) { PyErr_SetString(PyExc_SyntaxError, "from __future__ imports must occur at the " @@ -89,7 +89,7 @@ dotted_name: NAME ('.' NAME)* */ static int -future_parse(PyFutureFeatures *ff, node *n, char *filename) +future_parse(PyFutureFeatures *ff, node *n, const char *filename) { int i, r; loop: @@ -240,7 +240,7 @@ future_parse(PyFutureFeatures *ff, node *n, char *filename) } PyFutureFeatures * -PyNode_Future(node *n, char *filename) +PyNode_Future(node *n, const char *filename) { PyFutureFeatures *ff; diff --git a/Python/pythonrun.c b/Python/pythonrun.c index c2508fa579d..e41d618a32e 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -32,11 +32,11 @@ extern grammar _PyParser_Grammar; /* From graminit.c */ /* Forward */ static void initmain(void); static void initsite(void); -static PyObject *run_err_node(node *, char *, PyObject *, PyObject *, +static PyObject *run_err_node(node *, const char *, PyObject *, PyObject *, PyCompilerFlags *); -static PyObject *run_node(node *, char *, PyObject *, PyObject *, +static PyObject *run_node(node *, const char *, PyObject *, PyObject *, PyCompilerFlags *); -static PyObject *run_pyc_file(FILE *, char *, PyObject *, PyObject *, +static PyObject *run_pyc_file(FILE *, const char *, PyObject *, PyObject *, PyCompilerFlags *); static void err_input(perrdetail *); static void initsigs(void); @@ -458,25 +458,25 @@ initsite(void) /* Parse input from a file and execute it */ int -PyRun_AnyFile(FILE *fp, char *filename) +PyRun_AnyFile(FILE *fp, const char *filename) { return PyRun_AnyFileExFlags(fp, filename, 0, NULL); } int -PyRun_AnyFileFlags(FILE *fp, char *filename, PyCompilerFlags *flags) +PyRun_AnyFileFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) { return PyRun_AnyFileExFlags(fp, filename, 0, flags); } int -PyRun_AnyFileEx(FILE *fp, char *filename, int closeit) +PyRun_AnyFileEx(FILE *fp, const char *filename, int closeit) { return PyRun_AnyFileExFlags(fp, filename, closeit, NULL); } int -PyRun_AnyFileExFlags(FILE *fp, char *filename, int closeit, +PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit, PyCompilerFlags *flags) { if (filename == NULL) @@ -492,13 +492,13 @@ PyRun_AnyFileExFlags(FILE *fp, char *filename, int closeit, } int -PyRun_InteractiveLoop(FILE *fp, char *filename) +PyRun_InteractiveLoop(FILE *fp, const char *filename) { return PyRun_InteractiveLoopFlags(fp, filename, NULL); } int -PyRun_InteractiveLoopFlags(FILE *fp, char *filename, PyCompilerFlags *flags) +PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) { PyObject *v; int ret; @@ -533,7 +533,7 @@ PyRun_InteractiveLoopFlags(FILE *fp, char *filename, PyCompilerFlags *flags) } int -PyRun_InteractiveOne(FILE *fp, char *filename) +PyRun_InteractiveOne(FILE *fp, const char *filename) { return PyRun_InteractiveOneFlags(fp, filename, NULL); } @@ -548,7 +548,7 @@ PyRun_InteractiveOne(FILE *fp, char *filename) #endif int -PyRun_InteractiveOneFlags(FILE *fp, char *filename, PyCompilerFlags *flags) +PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) { PyObject *m, *d, *v, *w; node *n; @@ -602,7 +602,7 @@ PyRun_InteractiveOneFlags(FILE *fp, char *filename, PyCompilerFlags *flags) } int -PyRun_SimpleFile(FILE *fp, char *filename) +PyRun_SimpleFile(FILE *fp, const char *filename) { return PyRun_SimpleFileEx(fp, filename, 0); } @@ -611,7 +611,7 @@ PyRun_SimpleFile(FILE *fp, char *filename) the file type, and, if we may close it, at the first few bytes. */ static int -maybe_pyc_file(FILE *fp, char* filename, char* ext, int closeit) +maybe_pyc_file(FILE *fp, const char* filename, const char* ext, int closeit) { if (strcmp(ext, ".pyc") == 0 || strcmp(ext, ".pyo") == 0) return 1; @@ -655,17 +655,17 @@ maybe_pyc_file(FILE *fp, char* filename, char* ext, int closeit) } int -PyRun_SimpleFileEx(FILE *fp, char *filename, int closeit) +PyRun_SimpleFileEx(FILE *fp, const char *filename, int closeit) { return PyRun_SimpleFileExFlags(fp, filename, closeit, NULL); } int -PyRun_SimpleFileExFlags(FILE *fp, char *filename, int closeit, +PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, PyCompilerFlags *flags) { PyObject *m, *d, *v; - char *ext; + const char *ext; m = PyImport_AddModule("__main__"); if (m == NULL) @@ -709,13 +709,13 @@ PyRun_SimpleFileExFlags(FILE *fp, char *filename, int closeit, } int -PyRun_SimpleString(char *command) +PyRun_SimpleString(const char *command) { return PyRun_SimpleStringFlags(command, NULL); } int -PyRun_SimpleStringFlags(char *command, PyCompilerFlags *flags) +PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags) { PyObject *m, *d, *v; m = PyImport_AddModule("__main__"); @@ -734,8 +734,8 @@ PyRun_SimpleStringFlags(char *command, PyCompilerFlags *flags) } static int -parse_syntax_error(PyObject *err, PyObject **message, char **filename, - int *lineno, int *offset, char **text) +parse_syntax_error(PyObject *err, PyObject **message, const char **filename, + int *lineno, int *offset, const char **text) { long hold; PyObject *v; @@ -804,7 +804,7 @@ PyErr_Print(void) } static void -print_error_text(PyObject *f, int offset, char *text) +print_error_text(PyObject *f, int offset, const char *text) { char *nl; if (offset >= 0) { @@ -936,7 +936,7 @@ void PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb) PyObject_HasAttrString(v, "print_file_and_line")) { PyObject *message; - char *filename, *text; + const char *filename, *text; int lineno, offset; if (!parse_syntax_error(v, &message, &filename, &lineno, &offset, &text)) @@ -1016,21 +1016,21 @@ void PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb) } PyObject * -PyRun_String(char *str, int start, PyObject *globals, PyObject *locals) +PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals) { return run_err_node(PyParser_SimpleParseString(str, start), "", globals, locals, NULL); } PyObject * -PyRun_File(FILE *fp, char *filename, int start, PyObject *globals, +PyRun_File(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals) { return PyRun_FileEx(fp, filename, start, globals, locals, 0); } PyObject * -PyRun_FileEx(FILE *fp, char *filename, int start, PyObject *globals, +PyRun_FileEx(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, int closeit) { node *n = PyParser_SimpleParseFile(fp, filename, start); @@ -1040,7 +1040,7 @@ PyRun_FileEx(FILE *fp, char *filename, int start, PyObject *globals, } PyObject * -PyRun_StringFlags(char *str, int start, PyObject *globals, PyObject *locals, +PyRun_StringFlags(const char *str, int start, PyObject *globals, PyObject *locals, PyCompilerFlags *flags) { return run_err_node(PyParser_SimpleParseStringFlags( @@ -1049,7 +1049,7 @@ PyRun_StringFlags(char *str, int start, PyObject *globals, PyObject *locals, } PyObject * -PyRun_FileFlags(FILE *fp, char *filename, int start, PyObject *globals, +PyRun_FileFlags(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, PyCompilerFlags *flags) { return PyRun_FileExFlags(fp, filename, start, globals, locals, 0, @@ -1057,7 +1057,7 @@ PyRun_FileFlags(FILE *fp, char *filename, int start, PyObject *globals, } PyObject * -PyRun_FileExFlags(FILE *fp, char *filename, int start, PyObject *globals, +PyRun_FileExFlags(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, int closeit, PyCompilerFlags *flags) { node *n = PyParser_SimpleParseFileFlags(fp, filename, start, @@ -1068,7 +1068,7 @@ PyRun_FileExFlags(FILE *fp, char *filename, int start, PyObject *globals, } static PyObject * -run_err_node(node *n, char *filename, PyObject *globals, PyObject *locals, +run_err_node(node *n, const char *filename, PyObject *globals, PyObject *locals, PyCompilerFlags *flags) { if (n == NULL) @@ -1077,7 +1077,7 @@ run_err_node(node *n, char *filename, PyObject *globals, PyObject *locals, } static PyObject * -run_node(node *n, char *filename, PyObject *globals, PyObject *locals, +run_node(node *n, const char *filename, PyObject *globals, PyObject *locals, PyCompilerFlags *flags) { PyCodeObject *co; @@ -1092,7 +1092,7 @@ run_node(node *n, char *filename, PyObject *globals, PyObject *locals, } static PyObject * -run_pyc_file(FILE *fp, char *filename, PyObject *globals, PyObject *locals, +run_pyc_file(FILE *fp, const char *filename, PyObject *globals, PyObject *locals, PyCompilerFlags *flags) { PyCodeObject *co; @@ -1124,13 +1124,13 @@ run_pyc_file(FILE *fp, char *filename, PyObject *globals, PyObject *locals, } PyObject * -Py_CompileString(char *str, char *filename, int start) +Py_CompileString(const char *str, const char *filename, int start) { return Py_CompileStringFlags(str, filename, start, NULL); } PyObject * -Py_CompileStringFlags(char *str, char *filename, int start, +Py_CompileStringFlags(const char *str, const char *filename, int start, PyCompilerFlags *flags) { node *n; @@ -1146,7 +1146,7 @@ Py_CompileStringFlags(char *str, char *filename, int start, } struct symtable * -Py_SymtableString(char *str, char *filename, int start) +Py_SymtableString(const char *str, const char *filename, int start) { node *n; struct symtable *st; @@ -1162,7 +1162,7 @@ Py_SymtableString(char *str, char *filename, int start) /* Simplified interface to parsefile -- return node or set exception */ node * -PyParser_SimpleParseFileFlags(FILE *fp, char *filename, int start, int flags) +PyParser_SimpleParseFileFlags(FILE *fp, const char *filename, int start, int flags) { node *n; perrdetail err; @@ -1174,7 +1174,7 @@ PyParser_SimpleParseFileFlags(FILE *fp, char *filename, int start, int flags) } node * -PyParser_SimpleParseFile(FILE *fp, char *filename, int start) +PyParser_SimpleParseFile(FILE *fp, const char *filename, int start) { return PyParser_SimpleParseFileFlags(fp, filename, start, 0); } @@ -1182,7 +1182,7 @@ PyParser_SimpleParseFile(FILE *fp, char *filename, int start) /* Simplified interface to parsestring -- return node or set exception */ node * -PyParser_SimpleParseStringFlags(char *str, int start, int flags) +PyParser_SimpleParseStringFlags(const char *str, int start, int flags) { node *n; perrdetail err; @@ -1194,13 +1194,13 @@ PyParser_SimpleParseStringFlags(char *str, int start, int flags) } node * -PyParser_SimpleParseString(char *str, int start) +PyParser_SimpleParseString(const char *str, int start) { return PyParser_SimpleParseStringFlags(str, start, 0); } node * -PyParser_SimpleParseStringFlagsFilename(char *str, char *filename, +PyParser_SimpleParseStringFlagsFilename(const char *str, const char *filename, int start, int flags) { node *n; @@ -1215,7 +1215,7 @@ PyParser_SimpleParseStringFlagsFilename(char *str, char *filename, } node * -PyParser_SimpleParseStringFilename(char *str, char *filename, int start) +PyParser_SimpleParseStringFilename(const char *str, const char *filename, int start) { return PyParser_SimpleParseStringFlagsFilename(str, filename, start, 0); @@ -1429,7 +1429,7 @@ isatty(int fd) * the descriptor is NULL or "" or "???". */ int -Py_FdIsInteractive(FILE *fp, char *filename) +Py_FdIsInteractive(FILE *fp, const char *filename) { if (isatty((int)fileno(fp))) return 1;