From 3d7a486566e304e64975a78ee59de3b8429f5349 Mon Sep 17 00:00:00 2001 From: Dave Barr Date: Wed, 25 Aug 2004 04:38:38 +0000 Subject: [PATCH] - Document Wez's new readline callback functions. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@167219 c90b9560-bf6c-de11-be94-00142212c4b1 --- .../readline-callback-handler-install.xml | 107 ++++++++++++++++++ .../readline-callback-handler-remove.xml | 61 ++++++++++ .../functions/readline-callback-read-char.xml | 56 +++++++++ 3 files changed, 224 insertions(+) create mode 100644 reference/readline/functions/readline-callback-handler-install.xml create mode 100644 reference/readline/functions/readline-callback-handler-remove.xml create mode 100644 reference/readline/functions/readline-callback-read-char.xml diff --git a/reference/readline/functions/readline-callback-handler-install.xml b/reference/readline/functions/readline-callback-handler-install.xml new file mode 100644 index 0000000000..ca9e15f205 --- /dev/null +++ b/reference/readline/functions/readline-callback-handler-install.xml @@ -0,0 +1,107 @@ + + + + + readline_callback_handler_install + Initializes the readline callback interface and terminal, prints the prompt and returns immediately + + + &reftitle.description; + + boolreadline_callback_handler_install + stringprompt + callbackcallback + + + Sets up a readline callback interface then prints + prompt and immediately returns. The + callback function takes one parameter; the user + input returned. Calling this function twice without removing the previous + callback interface will automatically and conveniently overwrite the old + interface. + + + The callback feature is useful when combined with + stream_select as it allows interleaving of IO and + user input, unlike readline. + + + + &reftitle.returnvalues; + + &return.success; + + + + &reftitle.examples; + + + Readline Callback Interface Example + + 10) { + $prompting = false; + readline_callback_handler_remove(); + } else { + readline_callback_handler_install("[$c] Enter something: ", 'rl_callback'); + } +} + +$c = 1; +$prompting = true; + +readline_callback_handler_install("[$c] Enter something: ", 'rl_callback'); + +while ($prompting) { + $n = stream_select($r = array(STDIN), $w = null, $e = null, null); + if ($n && in_array(STDIN, $r)) { + // read a character, will call the callback when a newline is entered + readline_callback_read_char(); + } +} + +echo "Prompting disabled. All done.\n"; +?> +]]> + + + + + + &reftitle.seealso; + + readline_callback_handler_remove, + readline_callback_read_char&listendand; + stream_select. + + + + + diff --git a/reference/readline/functions/readline-callback-handler-remove.xml b/reference/readline/functions/readline-callback-handler-remove.xml new file mode 100644 index 0000000000..3cbc887dbe --- /dev/null +++ b/reference/readline/functions/readline-callback-handler-remove.xml @@ -0,0 +1,61 @@ + + + + + readline_callback_handler_remove + Removes a previously installed callback handler and restores terminal settings + + + &reftitle.description; + + boolreadline_callback_handler_remove + + + + Removes a previously installed callback handler and restores terminal + settings. + + + + &reftitle.examples; + + See readline_callback_handler_install for an example + of how to use the readline callback interface. + + + + &reftitle.returnvalues; + + Returns &true; if a previously installed callback handler was removed, or + &false; if one could not be found. + + + + &reftitle.seealso; + + readline_callback_handler_install, and + readline_callback_read_char. + + + + + diff --git a/reference/readline/functions/readline-callback-read-char.xml b/reference/readline/functions/readline-callback-read-char.xml new file mode 100644 index 0000000000..97d896c182 --- /dev/null +++ b/reference/readline/functions/readline-callback-read-char.xml @@ -0,0 +1,56 @@ + + + + + readline_callback_read_char + Reads a character and informs the readline callback interface when a line is received + + + &reftitle.description; + + voidreadline_callback_read_char + + + + Reads a character of user input. When a line is received, this function + informs the readline callback interface installed using + readline_callback_handler_install that a line + is ready for input. + + + + &reftitle.examples; + + See readline_callback_handler_install for an example + of how to use the readline callback interface. + + + + &reftitle.seealso; + + readline_callback_handler_install, and + readline_callback_handler_remove. + + + + +