mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Fix readline/libedit (Thanks to @remicollet)
This commit is contained in:
parent
858b45d4ad
commit
219beac36b
@ -21,7 +21,7 @@ if test "$PHP_PHPDBG" != "no"; then
|
||||
PHP_PHPDBG_CFLAGS="-D_GNU_SOURCE"
|
||||
PHP_PHPDBG_FILES="phpdbg.c phpdbg_parser.c phpdbg_lexer.c phpdbg_prompt.c phpdbg_help.c phpdbg_break.c phpdbg_print.c phpdbg_bp.c phpdbg_opcode.c phpdbg_list.c phpdbg_utils.c phpdbg_info.c phpdbg_cmd.c phpdbg_set.c phpdbg_frame.c phpdbg_watch.c phpdbg_btree.c"
|
||||
|
||||
if test "$PHP_READLINE" != "no"; then
|
||||
if test "$PHP_READLINE" != "no" -o "$PHP_LIBEDIT" != "no"; then
|
||||
PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
|
||||
fi
|
||||
|
||||
|
3
phpdbg.h
3
phpdbg.h
@ -68,6 +68,9 @@
|
||||
# include <readline/readline.h>
|
||||
# include <readline/history.h>
|
||||
#endif
|
||||
#ifdef HAVE_LIBEDIT
|
||||
# include <editline/readline.h>
|
||||
#endif
|
||||
|
||||
#include "phpdbg_lexer.h"
|
||||
#include "phpdbg_cmd.h"
|
||||
|
@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2013 The PHP Group |
|
||||
| Copyright (c) 1997-2014 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2013 The PHP Group |
|
||||
| Copyright (c) 1997-2014 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
@ -792,7 +792,7 @@ PHPDBG_API int phpdbg_stack_execute(phpdbg_param_t *stack, char **why TSRMLS_DC)
|
||||
PHPDBG_API char* phpdbg_read_input(char *buffered TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
char *cmd = NULL;
|
||||
#ifndef HAVE_LIBREADLINE
|
||||
#if !defined(HAVE_LIBREADLINE) && !defined(HAVE_LIBEDIT)
|
||||
char buf[PHPDBG_MAX_CMD];
|
||||
#endif
|
||||
char *buffer = NULL;
|
||||
@ -811,7 +811,7 @@ disconnect:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifndef HAVE_LIBREADLINE
|
||||
#if !defined(HAVE_LIBREADLINE) && !defined(HAVE_LIBEDIT)
|
||||
if (!(PHPDBG_G(flags) & PHPDBG_IS_REMOTE)) {
|
||||
if (!phpdbg_write("%s", phpdbg_get_prompt(TSRMLS_C))) {
|
||||
goto disconnect;
|
||||
@ -850,7 +850,7 @@ readline:
|
||||
|
||||
buffer = estrdup(cmd);
|
||||
|
||||
#ifdef HAVE_LIBREADLINE
|
||||
#if defined(HAVE_LIBREADLINE) || defined(HAVE_LIBEDIT)
|
||||
if (!buffered && cmd &&
|
||||
!(PHPDBG_G(flags) & PHPDBG_IS_REMOTE)) {
|
||||
free(cmd);
|
||||
|
@ -732,6 +732,11 @@ PHPDBG_COMMAND(print) /* {{{ */
|
||||
#else
|
||||
phpdbg_writeln("Readline\tno");
|
||||
#endif
|
||||
#ifdef HAVE_LIBEDIT
|
||||
phpdbg_writeln("Libedit\t\tyes");
|
||||
#else
|
||||
phpdbg_writeln("Libedit\t\tno");
|
||||
#endif
|
||||
|
||||
phpdbg_writeln("Exec\t\t%s", PHPDBG_G(exec) ? PHPDBG_G(exec) : "none");
|
||||
phpdbg_writeln("Compiled\t%s", PHPDBG_G(ops) ? "yes" : "no");
|
||||
|
@ -400,12 +400,16 @@ PHPDBG_API const char *phpdbg_get_prompt(TSRMLS_D) /* {{{ */
|
||||
}
|
||||
|
||||
/* create cached prompt */
|
||||
#ifndef HAVE_LIBEDIT
|
||||
/* TODO: libedit doesn't seems to support coloured prompt */
|
||||
if ((PHPDBG_G(flags) & PHPDBG_IS_COLOURED)) {
|
||||
asprintf(
|
||||
&PHPDBG_G(prompt)[1], "\033[%sm%s\033[0m ",
|
||||
PHPDBG_G(colors)[PHPDBG_COLOR_PROMPT]->code,
|
||||
PHPDBG_G(prompt)[0]);
|
||||
} else {
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
asprintf(
|
||||
&PHPDBG_G(prompt)[1], "%s ",
|
||||
PHPDBG_G(prompt)[0]);
|
||||
|
Loading…
Reference in New Issue
Block a user