summaryrefslogtreecommitdiff
path: root/sapi/cli/php_cli_readline.h
diff options
context:
space:
mode:
authorJohannes Schlüter <johannes@php.net>2010-05-20 20:55:33 +0000
committerJohannes Schlüter <johannes@php.net>2010-05-20 20:55:33 +0000
commit61db5cf98a91916c23ae4adf3754b2ef94a4fbb2 (patch)
tree1e0527691b9773d5edf32340d653810dd1d276a4 /sapi/cli/php_cli_readline.h
parent31f62dbc72f5d2c2670a1e3646a4bf2e62f0321d (diff)
downloadphp-git-61db5cf98a91916c23ae4adf3754b2ef94a4fbb2.tar.gz
- Improved CLI Interactive readline shell (Johannes)
. Added cli.pager ini setting to set a pager for output. . Added cli.prompt ini settingto configure the shell prompt. . Added shortcut #inisetting=value to change ini settings at run-time. . Don't terminate shell on fatal errors. A pager can be a an shell command which will receive the command output on its STDIN channel php > #cli.pager=less php > phpinfo(); (output will appear in the pager) php > #cli.pager=grep -i readline php > phpcredits(); Readline => Thies C. Arntzen php > #cli.pager= (output appears again direct on the terminal) A prompt can contain a few escape sequences like php > #cli.prompt=\e[032m\v \e[031m\b \e[34m\> \e[0m 5.3.99-dev php > //Colorful prompt with version number A prompt can also contaian PHP code in backticks php > #cli.prompt=`echo gethostname();` \b \> guybrush php >
Diffstat (limited to 'sapi/cli/php_cli_readline.h')
-rw-r--r--sapi/cli/php_cli_readline.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sapi/cli/php_cli_readline.h b/sapi/cli/php_cli_readline.h
index 4e4a6233bf..1b9321a15b 100644
--- a/sapi/cli/php_cli_readline.h
+++ b/sapi/cli/php_cli_readline.h
@@ -13,13 +13,32 @@
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Marcus Boerger <helly@php.net> |
+ | Johannes Schlueter <johannes@php.net> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include "php.h"
+#include "ext/standard/php_smart_str.h"
+ZEND_BEGIN_MODULE_GLOBALS(cli_readline)
+ char *pager;
+ char *prompt;
+ smart_str *prompt_str;
+ZEND_END_MODULE_GLOBALS(cli_readline)
+
+#ifdef ZTS
+# define CLIR_G(v) TSRMG(cli_readline_globals_id, zend_cli_readline_globals *, v)
+#else
+# define CLIR_G(v) (cli_readline_globals.v)
+#endif
+
+ZEND_EXTERN_MODULE_GLOBALS(cli_readline)
+
+extern zend_module_entry cli_readline_module_entry;
+
+char *cli_get_prompt(char *block, char prompt TSRMLS_DC);
int cli_is_valid_code(char *code, int len, char **prompt TSRMLS_DC);
char **cli_code_completion(const char *text, int start, int end);