From 7753d104577dfec6a2b253365f539fbfda314e0f Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Sun, 20 Nov 2016 05:24:14 +0000 Subject: [PATCH] make it possible to show specific help pages without interactive session --- sapi/phpdbg/phpdbg.c | 2 +- sapi/phpdbg/phpdbg_help.c | 20 ++++++++++++++++++++ sapi/phpdbg/phpdbg_help.h | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c index d2de0c2e30..2c43a9c853 100644 --- a/sapi/phpdbg/phpdbg.c +++ b/sapi/phpdbg/phpdbg.c @@ -1658,7 +1658,7 @@ phpdbg_main: PHPDBG_G(io)[PHPDBG_STDOUT].ptr = stdout; PHPDBG_G(io)[PHPDBG_STDOUT].fd = fileno(stdout); if (show_help) { - phpdbg_do_help(NULL); + phpdbg_do_help_cmd(exec); } else if (show_version) { phpdbg_out( "phpdbg %s (built: %s %s)\nPHP %s, Copyright (c) 1997-2016 The PHP Group\n%s", diff --git a/sapi/phpdbg/phpdbg_help.c b/sapi/phpdbg/phpdbg_help.c index ce1d8d9e90..2207e6a645 100644 --- a/sapi/phpdbg/phpdbg_help.c +++ b/sapi/phpdbg/phpdbg_help.c @@ -209,6 +209,26 @@ static int get_command( } /* }}} */ +void phpdbg_do_help_cmd(char *type) { /* {{{ */ + char *help; + + if (!type) { + pretty_print(get_help("overview!")); + return; + } + + help = get_help(type); + + if (!help || memcmp(help, "", sizeof("")) == SUCCESS) { + pretty_print(get_help("overview!")); + pretty_print( + "\nrequested help page could not be found"); + return; + } + + pretty_print(help); +} /* }}} */ + PHPDBG_COMMAND(help) /* {{{ */ { phpdbg_command_t const *cmd; diff --git a/sapi/phpdbg/phpdbg_help.h b/sapi/phpdbg/phpdbg_help.h index 7473684d3f..d44eca15ee 100644 --- a/sapi/phpdbg/phpdbg_help.h +++ b/sapi/phpdbg/phpdbg_help.h @@ -45,4 +45,6 @@ typedef struct _phpdbg_help_text_t { } phpdbg_help_text_t; extern phpdbg_help_text_t phpdbg_help_text[]; + +extern void phpdbg_do_help_cmd(char *type); #endif /* PHPDBG_HELP_H */ -- 2.50.0