mirror of
https://github.com/php/php-src.git
synced 2025-08-18 23:18:56 +02:00

. 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 >
44 lines
1.8 KiB
C
44 lines
1.8 KiB
C
/*
|
|
+----------------------------------------------------------------------+
|
|
| PHP Version 5 |
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 1997-2010 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 |
|
|
| available through the world-wide-web at the following url: |
|
|
| http://www.php.net/license/3_01.txt |
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
| 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);
|