/** * @brief Read a line, optionally setting the completer * * @param string $prompt The prompt to display * @param ReadlineAutoCompleter $completer The completer instance * @param boolean $autohistory Add command to history automatically (default is false) */ static function read($prompt = null, ReadlineAutoCompleter $completer = null, $autohistory = false) { $oldcompleter = null; // If we got an autocompleter, assign it if ($completer) { // Save a copy of the old completer if any if (self::$completer && $completer !== self::$completer) { $oldcompleter = self::$completer; } // Assign and set up the proxy call self::$completer = $completer; readline_completion_function(array('Readline', '_rlAutoCompleteProxy')); } // Read the line $ret = readline($prompt); // Restore old completer (if any) and add the command to the history // if autohistory is enabled. if ($oldcompleter) { self::$completer = $oldcompleter; } if ($autohistory) { self::addHistory($ret); } return $ret; }