mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Rework automatic interactive cli activation
There are still systems delivering buggy console info. If a file was passed, obviously no interaction is meant.
This commit is contained in:
parent
39f0e810c9
commit
93c2c56a1b
@ -674,11 +674,7 @@ static int do_cli(int argc, char **argv) /* {{{ */
|
||||
char *exec_direct=NULL, *exec_run=NULL, *exec_begin=NULL, *exec_end=NULL;
|
||||
char *arg_free=NULL, **arg_excp=&arg_free;
|
||||
char *script_file=NULL, *translated_path = NULL;
|
||||
#if defined(PHP_WIN32) && !defined(PHP_CLI_WIN32_NO_CONSOLE) && (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE)
|
||||
int interactive = php_win32_console_is_own();
|
||||
#else
|
||||
int interactive=0;
|
||||
#endif
|
||||
int lineno = 0;
|
||||
const char *param_error=NULL;
|
||||
int hide_argv = 0;
|
||||
@ -918,6 +914,20 @@ static int do_cli(int argc, char **argv) /* {{{ */
|
||||
goto err;
|
||||
}
|
||||
|
||||
#if defined(PHP_WIN32) && !defined(PHP_CLI_WIN32_NO_CONSOLE) && (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE)
|
||||
if (!interactive) {
|
||||
/* The -a option was not passed. If there is no file, it could
|
||||
still make sense to run interactively. The presense of a file
|
||||
is essential to mitigate buggy console info. */
|
||||
interactive = php_win32_console_is_own() &&
|
||||
!(script_file ||
|
||||
argc > php_optind && behavior!=PHP_MODE_CLI_DIRECT &&
|
||||
behavior!=PHP_MODE_PROCESS_STDIN &&
|
||||
strcmp(argv[php_optind-1],"--")
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (interactive) {
|
||||
#if (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE)
|
||||
printf("Interactive shell\n\n");
|
||||
|
Loading…
Reference in New Issue
Block a user