@@ -60,6 +60,15 @@ _PyRun_File(FILE *fp, PyObject *filename, int start, PyObject *globals,
6060 PyObject * locals , int closeit , PyCompilerFlags * flags );
6161
6262
63+ // See also pymain_error()
64+ static void
65+ pyrun_error (const char * msg )
66+ {
67+ assert (strchr (msg , '\n' ) == NULL );
68+ fprintf (stderr , "python: %s\n" , msg );
69+ }
70+
71+
6372PyObject *
6473_PyRun_AnyFile (FILE * fp , PyObject * filename , int closeit ,
6574 PyCompilerFlags * flags )
@@ -496,7 +505,7 @@ _PyRun_SimpleFile(FILE *fp, PyObject *filename, int closeit,
496505 }
497506 if (!has_file ) {
498507 if (PyDict_SetItemString (dict , "__file__" , filename ) < 0 ) {
499- fprintf ( stderr , "python: failed to set __main__.__file__\n " );
508+ pyrun_error ( " failed to set __main__.__file__" );
500509 goto done ;
501510 }
502511 set_file_name = 1 ;
@@ -516,12 +525,12 @@ _PyRun_SimpleFile(FILE *fp, PyObject *filename, int closeit,
516525
517526 pyc_fp = Py_fopen (filename , "rb" );
518527 if (pyc_fp == NULL ) {
519- fprintf ( stderr , "python: Can't reopen .pyc file\n " );
528+ pyrun_error ( " Can't reopen .pyc file" );
520529 goto done ;
521530 }
522531
523532 if (set_main_loader (dict , filename , "SourcelessFileLoader" ) < 0 ) {
524- fprintf ( stderr , "python: failed to set __main__.__loader__\n " );
533+ pyrun_error ( " failed to set __main__.__loader__" );
525534 fclose (pyc_fp );
526535 goto done ;
527536 }
@@ -530,7 +539,7 @@ _PyRun_SimpleFile(FILE *fp, PyObject *filename, int closeit,
530539 /* When running from stdin, leave __main__.__loader__ alone */
531540 if ((!PyUnicode_Check (filename ) || !PyUnicode_EqualToUTF8 (filename , "<stdin>" )) &&
532541 set_main_loader (dict , filename , "SourceFileLoader" ) < 0 ) {
533- fprintf ( stderr , "python: failed to set __main__.__loader__\n " );
542+ pyrun_error ( " failed to set __main__.__loader__" );
534543 goto done ;
535544 }
536545 res = _PyRun_File (fp , filename , Py_file_input , dict , dict ,
@@ -541,7 +550,7 @@ _PyRun_SimpleFile(FILE *fp, PyObject *filename, int closeit,
541550 done :
542551 if (set_file_name ) {
543552 if (PyDict_PopString (dict , "__file__" , NULL ) < 0 ) {
544- fprintf ( stderr , "python: failed to delete __main__.__file__\n " );
553+ pyrun_error ( " failed to delete __main__.__file__" );
545554 Py_CLEAR (res );
546555 }
547556 }
0 commit comments