Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 5108:a9a6d416b945 legacy-trunk
Added new global flag variable Py_InteractiveFlag and new function
Py_FdIsInteractive(). The flag is supposed to be set by the -i
command line option. The function is supposed to be called instead of
isatty(). This is used for Lee Busby's wish #1, to have an option
that pretends stdin is interactive even when it really isn't.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 14 Feb 1997 19:45:36 +0000 |
| parents | 4fa19659591e |
| children | f5d707ce4223 |
line wrap: on
line diff
--- a/Python/pythonrun.c Fri Feb 14 17:11:33 1997 +0000 +++ b/Python/pythonrun.c Fri Feb 14 19:45:36 1997 +0000 @@ -79,6 +79,7 @@ int debugging; /* Needed by parser.c */ int verbose; /* Needed by import.c */ int suppress_print; /* Needed by ceval.c */ +int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */ /* Initialize all */ @@ -133,7 +134,7 @@ { if (filename == NULL) filename = "???"; - if (isatty((int)fileno(fp))) + if (Py_FdIsInteractive(fp, filename)) return run_tty_loop(fp, filename); else return run_script(fp, filename); @@ -753,3 +754,23 @@ } #endif + +/* + * The file descriptor fd is considered ``interactive'' if either + * a) isatty(fd) is TRUE, or + * b) the -i flag was given, and the filename associated with + * the descriptor is NULL or "<stdin>" or "???". + */ +int +Py_FdIsInteractive(fp, filename) + FILE *fp; + char *filename; +{ + if (isatty((int)fileno(fp))) + return 1; + if (!Py_InteractiveFlag) + return 0; + return (filename == NULL) || + (strcmp(filename, "<stdin>") == 0) || + (strcmp(filename, "???") == 0); +}
