readline: Completion Functions
2.6.2 Completion Functions
--------------------------
Here is the complete list of callable completion functions present in
Readline.
-- Function: int rl_complete_internal (int what_to_do)
Complete the word at or before point. WHAT_TO_DO says what to do
with the completion. A value of '?' means list the possible
completions. 'TAB' means do standard completion. '*' means insert
all of the possible completions. '!' means to display all of the
possible completions, if there is more than one, as well as
performing partial completion. '@' is similar to '!', but possible
completions are not listed if the possible completions share a
common prefix.
-- Function: int rl_complete (int ignore, int invoking_key)
Complete the word at or before point. You have supplied the
function that does the initial simple matching selection algorithm
(see 'rl_completion_matches()' and 'rl_completion_entry_function').
The default is to do filename completion. This calls
'rl_complete_internal()' with an argument depending on
INVOKING_KEY.
-- Function: int rl_possible_completions (int count, int invoking_key)
List the possible completions. See description of 'rl_complete
()'. This calls 'rl_complete_internal()' with an argument of '?'.
-- Function: int rl_insert_completions (int count, int invoking_key)
Insert the list of possible completions into the line, deleting the
partially-completed word. See description of 'rl_complete()'.
This calls 'rl_complete_internal()' with an argument of '*'.
-- Function: int rl_completion_mode (rl_command_func_t *cfunc)
Returns the appropriate value to pass to 'rl_complete_internal()'
depending on whether CFUNC was called twice in succession and the
values of the 'show-all-if-ambiguous' and 'show-all-if-unmodified'
variables. Application-specific completion functions may use this
function to present the same interface as 'rl_complete()'.
-- Function: char ** rl_completion_matches (const char *text,
rl_compentry_func_t *entry_func)
Returns an array of strings which is a list of completions for
TEXT. If there are no completions, returns 'NULL'. The first
entry in the returned array is the substitution for TEXT. The
remaining entries are the possible completions. The array is
terminated with a 'NULL' pointer.
ENTRY_FUNC is a function of two args, and returns a 'char *'. The
first argument is TEXT. The second is a state argument; it is zero
on the first call, and non-zero on subsequent calls. ENTRY_FUNC
returns a 'NULL' pointer to the caller when there are no more
matches.
-- Function: char * rl_filename_completion_function (const char *text,
int state)
A generator function for filename completion in the general case.
TEXT is a partial filename. The Bash source is a useful reference
for writing application-specific completion functions (the Bash
completion functions call this and other Readline functions).
-- Function: char * rl_username_completion_function (const char *text,
int state)
A completion generator for usernames. TEXT contains a partial
username preceded by a random character (usually '~'). As with all
completion generators, STATE is zero on the first call and non-zero
for subsequent calls.