summaryrefslogtreecommitdiff
path: root/sapi/phpdbg/phpdbg_io.c
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2015-10-20 21:56:00 +0200
committerBob Weinand <bobwei9@hotmail.com>2015-10-20 21:56:00 +0200
commit2ef327caed5e7cb2683c040904a57d0cc6be1e5d (patch)
treec9547fa4f86c57794f3233814cd54cf1e0d87c5b /sapi/phpdbg/phpdbg_io.c
parent1149833a58a478b35bd95f4c4b9f23fe52c719d6 (diff)
downloadphp-git-2ef327caed5e7cb2683c040904a57d0cc6be1e5d.tar.gz
Exempt paging from -qrr mode
Diffstat (limited to 'sapi/phpdbg/phpdbg_io.c')
-rw-r--r--sapi/phpdbg/phpdbg_io.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sapi/phpdbg/phpdbg_io.c b/sapi/phpdbg/phpdbg_io.c
index cf4fdb88b4..98628b77f9 100644
--- a/sapi/phpdbg/phpdbg_io.c
+++ b/sapi/phpdbg/phpdbg_io.c
@@ -202,13 +202,13 @@ static int phpdbg_output_pager(int sock, const char *ptr, int len) {
bytes += write(sock, ptr + bytes, (p - ptr) - bytes);
if (memchr(p, '\n', endp - p)) {
- int chr;
- printf("\r---Type <return> to continue or q <return> to quit---");
- chr = getchar();
- if (chr == 'q') {
+ char buf[PHPDBG_MAX_CMD];
+ write(sock, ZEND_STRL("\r---Type <return> to continue or q <return> to quit---"));
+ phpdbg_consume_stdin_line(buf);
+ if (*buf == 'q') {
break;
}
- printf("\r");
+ write(sock, "\r", 1);
} else break;
}
}
@@ -225,9 +225,10 @@ PHPDBG_API int phpdbg_mixed_write(int sock, const char *ptr, int len) {
return phpdbg_send_bytes(sock, ptr, len);
}
- if (PHPDBG_G(flags) & PHPDBG_HAS_PAGINATION
- && PHPDBG_G(io)[PHPDBG_STDOUT].fd == sock
- && PHPDBG_G(lines) > 0) {
+ if ((PHPDBG_G(flags) & PHPDBG_HAS_PAGINATION)
+ && !(PHPDBG_G(flags) & PHPDBG_WRITE_XML)
+ && PHPDBG_G(io)[PHPDBG_STDOUT].fd == sock
+ && PHPDBG_G(lines) > 0) {
return phpdbg_output_pager(sock, ptr, len);
}