Mercurial > cpython-lru_cache-weakref
comparison Python/pythonrun.c @ 26601:cc05c2c8660e legacy-trunk
Constify filenames and scripts. Fixes #651362.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Wed, 11 Dec 2002 14:04:59 +0000 |
| parents | 244e8fbe4e20 |
| children | 02ba4663cad2 |
comparison
equal
deleted
inserted
replaced
| 26600:75bfc24fd748 | 26601:cc05c2c8660e |
|---|---|
| 30 extern grammar _PyParser_Grammar; /* From graminit.c */ | 30 extern grammar _PyParser_Grammar; /* From graminit.c */ |
| 31 | 31 |
| 32 /* Forward */ | 32 /* Forward */ |
| 33 static void initmain(void); | 33 static void initmain(void); |
| 34 static void initsite(void); | 34 static void initsite(void); |
| 35 static PyObject *run_err_node(node *, char *, PyObject *, PyObject *, | 35 static PyObject *run_err_node(node *, const char *, PyObject *, PyObject *, |
| 36 PyCompilerFlags *); | 36 PyCompilerFlags *); |
| 37 static PyObject *run_node(node *, char *, PyObject *, PyObject *, | 37 static PyObject *run_node(node *, const char *, PyObject *, PyObject *, |
| 38 PyCompilerFlags *); | 38 PyCompilerFlags *); |
| 39 static PyObject *run_pyc_file(FILE *, char *, PyObject *, PyObject *, | 39 static PyObject *run_pyc_file(FILE *, const char *, PyObject *, PyObject *, |
| 40 PyCompilerFlags *); | 40 PyCompilerFlags *); |
| 41 static void err_input(perrdetail *); | 41 static void err_input(perrdetail *); |
| 42 static void initsigs(void); | 42 static void initsigs(void); |
| 43 static void call_sys_exitfunc(void); | 43 static void call_sys_exitfunc(void); |
| 44 static void call_ll_exitfuncs(void); | 44 static void call_ll_exitfuncs(void); |
| 456 } | 456 } |
| 457 | 457 |
| 458 /* Parse input from a file and execute it */ | 458 /* Parse input from a file and execute it */ |
| 459 | 459 |
| 460 int | 460 int |
| 461 PyRun_AnyFile(FILE *fp, char *filename) | 461 PyRun_AnyFile(FILE *fp, const char *filename) |
| 462 { | 462 { |
| 463 return PyRun_AnyFileExFlags(fp, filename, 0, NULL); | 463 return PyRun_AnyFileExFlags(fp, filename, 0, NULL); |
| 464 } | 464 } |
| 465 | 465 |
| 466 int | 466 int |
| 467 PyRun_AnyFileFlags(FILE *fp, char *filename, PyCompilerFlags *flags) | 467 PyRun_AnyFileFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) |
| 468 { | 468 { |
| 469 return PyRun_AnyFileExFlags(fp, filename, 0, flags); | 469 return PyRun_AnyFileExFlags(fp, filename, 0, flags); |
| 470 } | 470 } |
| 471 | 471 |
| 472 int | 472 int |
| 473 PyRun_AnyFileEx(FILE *fp, char *filename, int closeit) | 473 PyRun_AnyFileEx(FILE *fp, const char *filename, int closeit) |
| 474 { | 474 { |
| 475 return PyRun_AnyFileExFlags(fp, filename, closeit, NULL); | 475 return PyRun_AnyFileExFlags(fp, filename, closeit, NULL); |
| 476 } | 476 } |
| 477 | 477 |
| 478 int | 478 int |
| 479 PyRun_AnyFileExFlags(FILE *fp, char *filename, int closeit, | 479 PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit, |
| 480 PyCompilerFlags *flags) | 480 PyCompilerFlags *flags) |
| 481 { | 481 { |
| 482 if (filename == NULL) | 482 if (filename == NULL) |
| 483 filename = "???"; | 483 filename = "???"; |
| 484 if (Py_FdIsInteractive(fp, filename)) { | 484 if (Py_FdIsInteractive(fp, filename)) { |
| 490 else | 490 else |
| 491 return PyRun_SimpleFileExFlags(fp, filename, closeit, flags); | 491 return PyRun_SimpleFileExFlags(fp, filename, closeit, flags); |
| 492 } | 492 } |
| 493 | 493 |
| 494 int | 494 int |
| 495 PyRun_InteractiveLoop(FILE *fp, char *filename) | 495 PyRun_InteractiveLoop(FILE *fp, const char *filename) |
| 496 { | 496 { |
| 497 return PyRun_InteractiveLoopFlags(fp, filename, NULL); | 497 return PyRun_InteractiveLoopFlags(fp, filename, NULL); |
| 498 } | 498 } |
| 499 | 499 |
| 500 int | 500 int |
| 501 PyRun_InteractiveLoopFlags(FILE *fp, char *filename, PyCompilerFlags *flags) | 501 PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) |
| 502 { | 502 { |
| 503 PyObject *v; | 503 PyObject *v; |
| 504 int ret; | 504 int ret; |
| 505 PyCompilerFlags local_flags; | 505 PyCompilerFlags local_flags; |
| 506 | 506 |
| 531 */ | 531 */ |
| 532 } | 532 } |
| 533 } | 533 } |
| 534 | 534 |
| 535 int | 535 int |
| 536 PyRun_InteractiveOne(FILE *fp, char *filename) | 536 PyRun_InteractiveOne(FILE *fp, const char *filename) |
| 537 { | 537 { |
| 538 return PyRun_InteractiveOneFlags(fp, filename, NULL); | 538 return PyRun_InteractiveOneFlags(fp, filename, NULL); |
| 539 } | 539 } |
| 540 | 540 |
| 541 /* compute parser flags based on compiler flags */ | 541 /* compute parser flags based on compiler flags */ |
| 546 #else | 546 #else |
| 547 #define PARSER_FLAGS(flags) 0 | 547 #define PARSER_FLAGS(flags) 0 |
| 548 #endif | 548 #endif |
| 549 | 549 |
| 550 int | 550 int |
| 551 PyRun_InteractiveOneFlags(FILE *fp, char *filename, PyCompilerFlags *flags) | 551 PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) |
| 552 { | 552 { |
| 553 PyObject *m, *d, *v, *w; | 553 PyObject *m, *d, *v, *w; |
| 554 node *n; | 554 node *n; |
| 555 perrdetail err; | 555 perrdetail err; |
| 556 char *ps1 = "", *ps2 = ""; | 556 char *ps1 = "", *ps2 = ""; |
| 600 PyErr_Clear(); | 600 PyErr_Clear(); |
| 601 return 0; | 601 return 0; |
| 602 } | 602 } |
| 603 | 603 |
| 604 int | 604 int |
| 605 PyRun_SimpleFile(FILE *fp, char *filename) | 605 PyRun_SimpleFile(FILE *fp, const char *filename) |
| 606 { | 606 { |
| 607 return PyRun_SimpleFileEx(fp, filename, 0); | 607 return PyRun_SimpleFileEx(fp, filename, 0); |
| 608 } | 608 } |
| 609 | 609 |
| 610 /* Check whether a file maybe a pyc file: Look at the extension, | 610 /* Check whether a file maybe a pyc file: Look at the extension, |
| 611 the file type, and, if we may close it, at the first few bytes. */ | 611 the file type, and, if we may close it, at the first few bytes. */ |
| 612 | 612 |
| 613 static int | 613 static int |
| 614 maybe_pyc_file(FILE *fp, char* filename, char* ext, int closeit) | 614 maybe_pyc_file(FILE *fp, const char* filename, const char* ext, int closeit) |
| 615 { | 615 { |
| 616 if (strcmp(ext, ".pyc") == 0 || strcmp(ext, ".pyo") == 0) | 616 if (strcmp(ext, ".pyc") == 0 || strcmp(ext, ".pyo") == 0) |
| 617 return 1; | 617 return 1; |
| 618 | 618 |
| 619 #ifdef macintosh | 619 #ifdef macintosh |
| 653 } | 653 } |
| 654 return 0; | 654 return 0; |
| 655 } | 655 } |
| 656 | 656 |
| 657 int | 657 int |
| 658 PyRun_SimpleFileEx(FILE *fp, char *filename, int closeit) | 658 PyRun_SimpleFileEx(FILE *fp, const char *filename, int closeit) |
| 659 { | 659 { |
| 660 return PyRun_SimpleFileExFlags(fp, filename, closeit, NULL); | 660 return PyRun_SimpleFileExFlags(fp, filename, closeit, NULL); |
| 661 } | 661 } |
| 662 | 662 |
| 663 int | 663 int |
| 664 PyRun_SimpleFileExFlags(FILE *fp, char *filename, int closeit, | 664 PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, |
| 665 PyCompilerFlags *flags) | 665 PyCompilerFlags *flags) |
| 666 { | 666 { |
| 667 PyObject *m, *d, *v; | 667 PyObject *m, *d, *v; |
| 668 char *ext; | 668 const char *ext; |
| 669 | 669 |
| 670 m = PyImport_AddModule("__main__"); | 670 m = PyImport_AddModule("__main__"); |
| 671 if (m == NULL) | 671 if (m == NULL) |
| 672 return -1; | 672 return -1; |
| 673 d = PyModule_GetDict(m); | 673 d = PyModule_GetDict(m); |
| 707 PyErr_Clear(); | 707 PyErr_Clear(); |
| 708 return 0; | 708 return 0; |
| 709 } | 709 } |
| 710 | 710 |
| 711 int | 711 int |
| 712 PyRun_SimpleString(char *command) | 712 PyRun_SimpleString(const char *command) |
| 713 { | 713 { |
| 714 return PyRun_SimpleStringFlags(command, NULL); | 714 return PyRun_SimpleStringFlags(command, NULL); |
| 715 } | 715 } |
| 716 | 716 |
| 717 int | 717 int |
| 718 PyRun_SimpleStringFlags(char *command, PyCompilerFlags *flags) | 718 PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags) |
| 719 { | 719 { |
| 720 PyObject *m, *d, *v; | 720 PyObject *m, *d, *v; |
| 721 m = PyImport_AddModule("__main__"); | 721 m = PyImport_AddModule("__main__"); |
| 722 if (m == NULL) | 722 if (m == NULL) |
| 723 return -1; | 723 return -1; |
| 732 PyErr_Clear(); | 732 PyErr_Clear(); |
| 733 return 0; | 733 return 0; |
| 734 } | 734 } |
| 735 | 735 |
| 736 static int | 736 static int |
| 737 parse_syntax_error(PyObject *err, PyObject **message, char **filename, | 737 parse_syntax_error(PyObject *err, PyObject **message, const char **filename, |
| 738 int *lineno, int *offset, char **text) | 738 int *lineno, int *offset, const char **text) |
| 739 { | 739 { |
| 740 long hold; | 740 long hold; |
| 741 PyObject *v; | 741 PyObject *v; |
| 742 | 742 |
| 743 /* old style errors */ | 743 /* old style errors */ |
| 802 { | 802 { |
| 803 PyErr_PrintEx(1); | 803 PyErr_PrintEx(1); |
| 804 } | 804 } |
| 805 | 805 |
| 806 static void | 806 static void |
| 807 print_error_text(PyObject *f, int offset, char *text) | 807 print_error_text(PyObject *f, int offset, const char *text) |
| 808 { | 808 { |
| 809 char *nl; | 809 char *nl; |
| 810 if (offset >= 0) { | 810 if (offset >= 0) { |
| 811 if (offset > 0 && offset == (int)strlen(text)) | 811 if (offset > 0 && offset == (int)strlen(text)) |
| 812 offset--; | 812 offset--; |
| 934 err = PyTraceBack_Print(tb, f); | 934 err = PyTraceBack_Print(tb, f); |
| 935 if (err == 0 && | 935 if (err == 0 && |
| 936 PyObject_HasAttrString(v, "print_file_and_line")) | 936 PyObject_HasAttrString(v, "print_file_and_line")) |
| 937 { | 937 { |
| 938 PyObject *message; | 938 PyObject *message; |
| 939 char *filename, *text; | 939 const char *filename, *text; |
| 940 int lineno, offset; | 940 int lineno, offset; |
| 941 if (!parse_syntax_error(v, &message, &filename, | 941 if (!parse_syntax_error(v, &message, &filename, |
| 942 &lineno, &offset, &text)) | 942 &lineno, &offset, &text)) |
| 943 PyErr_Clear(); | 943 PyErr_Clear(); |
| 944 else { | 944 else { |
| 1014 if (err != 0) | 1014 if (err != 0) |
| 1015 PyErr_Clear(); | 1015 PyErr_Clear(); |
| 1016 } | 1016 } |
| 1017 | 1017 |
| 1018 PyObject * | 1018 PyObject * |
| 1019 PyRun_String(char *str, int start, PyObject *globals, PyObject *locals) | 1019 PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals) |
| 1020 { | 1020 { |
| 1021 return run_err_node(PyParser_SimpleParseString(str, start), | 1021 return run_err_node(PyParser_SimpleParseString(str, start), |
| 1022 "<string>", globals, locals, NULL); | 1022 "<string>", globals, locals, NULL); |
| 1023 } | 1023 } |
| 1024 | 1024 |
| 1025 PyObject * | 1025 PyObject * |
| 1026 PyRun_File(FILE *fp, char *filename, int start, PyObject *globals, | 1026 PyRun_File(FILE *fp, const char *filename, int start, PyObject *globals, |
| 1027 PyObject *locals) | 1027 PyObject *locals) |
| 1028 { | 1028 { |
| 1029 return PyRun_FileEx(fp, filename, start, globals, locals, 0); | 1029 return PyRun_FileEx(fp, filename, start, globals, locals, 0); |
| 1030 } | 1030 } |
| 1031 | 1031 |
| 1032 PyObject * | 1032 PyObject * |
| 1033 PyRun_FileEx(FILE *fp, char *filename, int start, PyObject *globals, | 1033 PyRun_FileEx(FILE *fp, const char *filename, int start, PyObject *globals, |
| 1034 PyObject *locals, int closeit) | 1034 PyObject *locals, int closeit) |
| 1035 { | 1035 { |
| 1036 node *n = PyParser_SimpleParseFile(fp, filename, start); | 1036 node *n = PyParser_SimpleParseFile(fp, filename, start); |
| 1037 if (closeit) | 1037 if (closeit) |
| 1038 fclose(fp); | 1038 fclose(fp); |
| 1039 return run_err_node(n, filename, globals, locals, NULL); | 1039 return run_err_node(n, filename, globals, locals, NULL); |
| 1040 } | 1040 } |
| 1041 | 1041 |
| 1042 PyObject * | 1042 PyObject * |
| 1043 PyRun_StringFlags(char *str, int start, PyObject *globals, PyObject *locals, | 1043 PyRun_StringFlags(const char *str, int start, PyObject *globals, PyObject *locals, |
| 1044 PyCompilerFlags *flags) | 1044 PyCompilerFlags *flags) |
| 1045 { | 1045 { |
| 1046 return run_err_node(PyParser_SimpleParseStringFlags( | 1046 return run_err_node(PyParser_SimpleParseStringFlags( |
| 1047 str, start, PARSER_FLAGS(flags)), | 1047 str, start, PARSER_FLAGS(flags)), |
| 1048 "<string>", globals, locals, flags); | 1048 "<string>", globals, locals, flags); |
| 1049 } | 1049 } |
| 1050 | 1050 |
| 1051 PyObject * | 1051 PyObject * |
| 1052 PyRun_FileFlags(FILE *fp, char *filename, int start, PyObject *globals, | 1052 PyRun_FileFlags(FILE *fp, const char *filename, int start, PyObject *globals, |
| 1053 PyObject *locals, PyCompilerFlags *flags) | 1053 PyObject *locals, PyCompilerFlags *flags) |
| 1054 { | 1054 { |
| 1055 return PyRun_FileExFlags(fp, filename, start, globals, locals, 0, | 1055 return PyRun_FileExFlags(fp, filename, start, globals, locals, 0, |
| 1056 flags); | 1056 flags); |
| 1057 } | 1057 } |
| 1058 | 1058 |
| 1059 PyObject * | 1059 PyObject * |
| 1060 PyRun_FileExFlags(FILE *fp, char *filename, int start, PyObject *globals, | 1060 PyRun_FileExFlags(FILE *fp, const char *filename, int start, PyObject *globals, |
| 1061 PyObject *locals, int closeit, PyCompilerFlags *flags) | 1061 PyObject *locals, int closeit, PyCompilerFlags *flags) |
| 1062 { | 1062 { |
| 1063 node *n = PyParser_SimpleParseFileFlags(fp, filename, start, | 1063 node *n = PyParser_SimpleParseFileFlags(fp, filename, start, |
| 1064 PARSER_FLAGS(flags)); | 1064 PARSER_FLAGS(flags)); |
| 1065 if (closeit) | 1065 if (closeit) |
| 1066 fclose(fp); | 1066 fclose(fp); |
| 1067 return run_err_node(n, filename, globals, locals, flags); | 1067 return run_err_node(n, filename, globals, locals, flags); |
| 1068 } | 1068 } |
| 1069 | 1069 |
| 1070 static PyObject * | 1070 static PyObject * |
| 1071 run_err_node(node *n, char *filename, PyObject *globals, PyObject *locals, | 1071 run_err_node(node *n, const char *filename, PyObject *globals, PyObject *locals, |
| 1072 PyCompilerFlags *flags) | 1072 PyCompilerFlags *flags) |
| 1073 { | 1073 { |
| 1074 if (n == NULL) | 1074 if (n == NULL) |
| 1075 return NULL; | 1075 return NULL; |
| 1076 return run_node(n, filename, globals, locals, flags); | 1076 return run_node(n, filename, globals, locals, flags); |
| 1077 } | 1077 } |
| 1078 | 1078 |
| 1079 static PyObject * | 1079 static PyObject * |
| 1080 run_node(node *n, char *filename, PyObject *globals, PyObject *locals, | 1080 run_node(node *n, const char *filename, PyObject *globals, PyObject *locals, |
| 1081 PyCompilerFlags *flags) | 1081 PyCompilerFlags *flags) |
| 1082 { | 1082 { |
| 1083 PyCodeObject *co; | 1083 PyCodeObject *co; |
| 1084 PyObject *v; | 1084 PyObject *v; |
| 1085 co = PyNode_CompileFlags(n, filename, flags); | 1085 co = PyNode_CompileFlags(n, filename, flags); |
| 1090 Py_DECREF(co); | 1090 Py_DECREF(co); |
| 1091 return v; | 1091 return v; |
| 1092 } | 1092 } |
| 1093 | 1093 |
| 1094 static PyObject * | 1094 static PyObject * |
| 1095 run_pyc_file(FILE *fp, char *filename, PyObject *globals, PyObject *locals, | 1095 run_pyc_file(FILE *fp, const char *filename, PyObject *globals, PyObject *locals, |
| 1096 PyCompilerFlags *flags) | 1096 PyCompilerFlags *flags) |
| 1097 { | 1097 { |
| 1098 PyCodeObject *co; | 1098 PyCodeObject *co; |
| 1099 PyObject *v; | 1099 PyObject *v; |
| 1100 long magic; | 1100 long magic; |
| 1122 Py_DECREF(co); | 1122 Py_DECREF(co); |
| 1123 return v; | 1123 return v; |
| 1124 } | 1124 } |
| 1125 | 1125 |
| 1126 PyObject * | 1126 PyObject * |
| 1127 Py_CompileString(char *str, char *filename, int start) | 1127 Py_CompileString(const char *str, const char *filename, int start) |
| 1128 { | 1128 { |
| 1129 return Py_CompileStringFlags(str, filename, start, NULL); | 1129 return Py_CompileStringFlags(str, filename, start, NULL); |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 PyObject * | 1132 PyObject * |
| 1133 Py_CompileStringFlags(char *str, char *filename, int start, | 1133 Py_CompileStringFlags(const char *str, const char *filename, int start, |
| 1134 PyCompilerFlags *flags) | 1134 PyCompilerFlags *flags) |
| 1135 { | 1135 { |
| 1136 node *n; | 1136 node *n; |
| 1137 PyCodeObject *co; | 1137 PyCodeObject *co; |
| 1138 | 1138 |
| 1144 PyNode_Free(n); | 1144 PyNode_Free(n); |
| 1145 return (PyObject *)co; | 1145 return (PyObject *)co; |
| 1146 } | 1146 } |
| 1147 | 1147 |
| 1148 struct symtable * | 1148 struct symtable * |
| 1149 Py_SymtableString(char *str, char *filename, int start) | 1149 Py_SymtableString(const char *str, const char *filename, int start) |
| 1150 { | 1150 { |
| 1151 node *n; | 1151 node *n; |
| 1152 struct symtable *st; | 1152 struct symtable *st; |
| 1153 n = PyParser_SimpleParseStringFlagsFilename(str, filename, | 1153 n = PyParser_SimpleParseStringFlagsFilename(str, filename, |
| 1154 start, 0); | 1154 start, 0); |
| 1160 } | 1160 } |
| 1161 | 1161 |
| 1162 /* Simplified interface to parsefile -- return node or set exception */ | 1162 /* Simplified interface to parsefile -- return node or set exception */ |
| 1163 | 1163 |
| 1164 node * | 1164 node * |
| 1165 PyParser_SimpleParseFileFlags(FILE *fp, char *filename, int start, int flags) | 1165 PyParser_SimpleParseFileFlags(FILE *fp, const char *filename, int start, int flags) |
| 1166 { | 1166 { |
| 1167 node *n; | 1167 node *n; |
| 1168 perrdetail err; | 1168 perrdetail err; |
| 1169 n = PyParser_ParseFileFlags(fp, filename, &_PyParser_Grammar, start, | 1169 n = PyParser_ParseFileFlags(fp, filename, &_PyParser_Grammar, start, |
| 1170 (char *)0, (char *)0, &err, flags); | 1170 (char *)0, (char *)0, &err, flags); |
| 1172 err_input(&err); | 1172 err_input(&err); |
| 1173 return n; | 1173 return n; |
| 1174 } | 1174 } |
| 1175 | 1175 |
| 1176 node * | 1176 node * |
| 1177 PyParser_SimpleParseFile(FILE *fp, char *filename, int start) | 1177 PyParser_SimpleParseFile(FILE *fp, const char *filename, int start) |
| 1178 { | 1178 { |
| 1179 return PyParser_SimpleParseFileFlags(fp, filename, start, 0); | 1179 return PyParser_SimpleParseFileFlags(fp, filename, start, 0); |
| 1180 } | 1180 } |
| 1181 | 1181 |
| 1182 /* Simplified interface to parsestring -- return node or set exception */ | 1182 /* Simplified interface to parsestring -- return node or set exception */ |
| 1183 | 1183 |
| 1184 node * | 1184 node * |
| 1185 PyParser_SimpleParseStringFlags(char *str, int start, int flags) | 1185 PyParser_SimpleParseStringFlags(const char *str, int start, int flags) |
| 1186 { | 1186 { |
| 1187 node *n; | 1187 node *n; |
| 1188 perrdetail err; | 1188 perrdetail err; |
| 1189 n = PyParser_ParseStringFlags(str, &_PyParser_Grammar, start, &err, | 1189 n = PyParser_ParseStringFlags(str, &_PyParser_Grammar, start, &err, |
| 1190 flags); | 1190 flags); |
| 1192 err_input(&err); | 1192 err_input(&err); |
| 1193 return n; | 1193 return n; |
| 1194 } | 1194 } |
| 1195 | 1195 |
| 1196 node * | 1196 node * |
| 1197 PyParser_SimpleParseString(char *str, int start) | 1197 PyParser_SimpleParseString(const char *str, int start) |
| 1198 { | 1198 { |
| 1199 return PyParser_SimpleParseStringFlags(str, start, 0); | 1199 return PyParser_SimpleParseStringFlags(str, start, 0); |
| 1200 } | 1200 } |
| 1201 | 1201 |
| 1202 node * | 1202 node * |
| 1203 PyParser_SimpleParseStringFlagsFilename(char *str, char *filename, | 1203 PyParser_SimpleParseStringFlagsFilename(const char *str, const char *filename, |
| 1204 int start, int flags) | 1204 int start, int flags) |
| 1205 { | 1205 { |
| 1206 node *n; | 1206 node *n; |
| 1207 perrdetail err; | 1207 perrdetail err; |
| 1208 | 1208 |
| 1213 err_input(&err); | 1213 err_input(&err); |
| 1214 return n; | 1214 return n; |
| 1215 } | 1215 } |
| 1216 | 1216 |
| 1217 node * | 1217 node * |
| 1218 PyParser_SimpleParseStringFilename(char *str, char *filename, int start) | 1218 PyParser_SimpleParseStringFilename(const char *str, const char *filename, int start) |
| 1219 { | 1219 { |
| 1220 return PyParser_SimpleParseStringFlagsFilename(str, filename, | 1220 return PyParser_SimpleParseStringFlagsFilename(str, filename, |
| 1221 start, 0); | 1221 start, 0); |
| 1222 } | 1222 } |
| 1223 | 1223 |
| 1427 * a) isatty(fd) is TRUE, or | 1427 * a) isatty(fd) is TRUE, or |
| 1428 * b) the -i flag was given, and the filename associated with | 1428 * b) the -i flag was given, and the filename associated with |
| 1429 * the descriptor is NULL or "<stdin>" or "???". | 1429 * the descriptor is NULL or "<stdin>" or "???". |
| 1430 */ | 1430 */ |
| 1431 int | 1431 int |
| 1432 Py_FdIsInteractive(FILE *fp, char *filename) | 1432 Py_FdIsInteractive(FILE *fp, const char *filename) |
| 1433 { | 1433 { |
| 1434 if (isatty((int)fileno(fp))) | 1434 if (isatty((int)fileno(fp))) |
| 1435 return 1; | 1435 return 1; |
| 1436 if (!Py_InteractiveFlag) | 1436 if (!Py_InteractiveFlag) |
| 1437 return 0; | 1437 return 0; |
