mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00

Currently, it's possible to override `php -a`s completion functionality to provide an alternative to the C implementation, with `readline_completion_function()`. However, that surprisingly gets overridden when called from `auto_prepend_file`, because those scripts get run before the interactive shell is started. I believe that not overriding it would be more consistent with what happens when you override the completion function **after** the interactive shell. CLI is the only built-in API that uses this (See discussion in GH-5872). I believe MINIT and RINIT will only run once when invoked with `php -a`. Add documentation about the architecture of how php uses readline/libedit Closes GH-5872
39 lines
1.6 KiB
C
39 lines
1.6 KiB
C
/*
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 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> |
|
|
+----------------------------------------------------------------------+
|
|
*/
|
|
|
|
#include "php.h"
|
|
#include "zend_smart_str_public.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
|
|
|
|
extern PHP_MINIT_FUNCTION(cli_readline);
|
|
extern PHP_MSHUTDOWN_FUNCTION(cli_readline);
|
|
extern PHP_MINFO_FUNCTION(cli_readline);
|
|
|
|
char **php_readline_completion_cb(const char *text, int start, int end);
|
|
|
|
ZEND_EXTERN_MODULE_GLOBALS(cli_readline)
|