mirror of
https://github.com/php/php-src.git
synced 2025-08-18 23:18:56 +02:00
parent
333264fdb7
commit
9add0e9f5c
2 changed files with 18 additions and 27 deletions
8
phpdbg.c
8
phpdbg.c
|
@ -1257,8 +1257,10 @@ phpdbg_interact:
|
|||
/* this must be forced */
|
||||
CG(unclean_shutdown) = 0;
|
||||
} else {
|
||||
/* local consoles cannot disconnect, ignore EOF */
|
||||
PHPDBG_G(flags) &= ~PHPDBG_IS_DISCONNECTED;
|
||||
/* local client quit console */
|
||||
CG(unclean_shutdown) = 0;
|
||||
|
||||
goto phpdbg_out;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -1273,7 +1275,7 @@ phpdbg_interact:
|
|||
|
||||
phpdbg_out:
|
||||
#ifndef _WIN32
|
||||
if ((PHPDBG_G(flags) & PHPDBG_IS_DISCONNECTED)) {
|
||||
if (PHPDBG_G(flags) & PHPDBG_IS_DISCONNECTED) {
|
||||
PHPDBG_G(flags) &= ~PHPDBG_IS_DISCONNECTED;
|
||||
goto phpdbg_interact;
|
||||
}
|
||||
|
|
35
phpdbg_cmd.c
35
phpdbg_cmd.c
|
@ -467,43 +467,32 @@ PHPDBG_API phpdbg_input_t *phpdbg_read_input(char *buffered TSRMLS_DC) /* {{{ */
|
|||
}
|
||||
|
||||
if (buffered == NULL) {
|
||||
disconnect:
|
||||
if (0) {
|
||||
#ifndef HAVE_LIBREADLINE
|
||||
char buf[PHPDBG_MAX_CMD];
|
||||
if ((!(PHPDBG_G(flags) & PHPDBG_IS_REMOTE) && !phpdbg_write(phpdbg_get_prompt(TSRMLS_C))) ||
|
||||
!fgets(buf, PHPDBG_MAX_CMD, PHPDBG_G(io)[PHPDBG_STDIN])) {
|
||||
/* the user has gone away */
|
||||
phpdbg_error("Failed to read console!");
|
||||
PHPDBG_G(flags) |= (PHPDBG_IS_QUITTING|PHPDBG_IS_DISCONNECTED);
|
||||
zend_bailout();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifndef HAVE_LIBREADLINE
|
||||
char buf[PHPDBG_MAX_CMD];
|
||||
if (!(PHPDBG_G(flags) & PHPDBG_IS_REMOTE)) {
|
||||
if (!phpdbg_write(phpdbg_get_prompt(TSRMLS_CC))) {
|
||||
goto disconnect;
|
||||
}
|
||||
}
|
||||
|
||||
/* note: EOF is ignored */
|
||||
readline:
|
||||
if (!fgets(buf, PHPDBG_MAX_CMD, PHPDBG_G(io)[PHPDBG_STDIN])) {
|
||||
/* the user has gone away */
|
||||
if ((PHPDBG_G(flags) & PHPDBG_IS_REMOTE)) {
|
||||
goto disconnect;
|
||||
} else goto readline;
|
||||
}
|
||||
|
||||
cmd = buf;
|
||||
#else
|
||||
/* note: EOF makes readline write prompt again in local console mode */
|
||||
readline:
|
||||
if ((PHPDBG_G(flags) & PHPDBG_IS_REMOTE)) {
|
||||
char buf[PHPDBG_MAX_CMD];
|
||||
if (fgets(buf, PHPDBG_MAX_CMD, PHPDBG_G(io)[PHPDBG_STDIN])) {
|
||||
cmd = buf;
|
||||
} else goto disconnect;
|
||||
} else cmd = NULL;
|
||||
} else cmd = readline(phpdbg_get_prompt(TSRMLS_C));
|
||||
|
||||
if (!cmd) {
|
||||
goto readline;
|
||||
/* the user has gone away */
|
||||
phpdbg_error("Failed to read console!");
|
||||
PHPDBG_G(flags) |= (PHPDBG_IS_QUITTING|PHPDBG_IS_DISCONNECTED);
|
||||
zend_bailout();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(PHPDBG_G(flags) & PHPDBG_IS_REMOTE)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue