mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
fish: Don't eat words when completing case-insensitive paths (RHBZ#582993).
This commit is contained in:
@@ -230,7 +230,20 @@ complete_dest_paths_generator (const char *text, int state)
|
||||
word = &words[index];
|
||||
index++;
|
||||
|
||||
if (STRCASEEQLEN (word->name, text, len)) {
|
||||
/* Whether we should match case insensitively here or not is
|
||||
* determined by the value of the completion-ignore-case readline
|
||||
* variable. Default to case insensitive. (See: RHBZ#582993).
|
||||
*/
|
||||
char *cic_var = rl_variable_value ("completion-ignore-case");
|
||||
int cic = 1;
|
||||
if (cic_var && STREQ (cic_var, "off"))
|
||||
cic = 0;
|
||||
|
||||
int matches =
|
||||
cic ? STRCASEEQLEN (word->name, text, len)
|
||||
: STREQLEN (word->name, text, len);
|
||||
|
||||
if (matches) {
|
||||
if (word->is_dir)
|
||||
rl_completion_append_character = '/';
|
||||
|
||||
|
||||
@@ -1417,6 +1417,13 @@ initialize_readline (void)
|
||||
|
||||
rl_readline_name = "guestfish";
|
||||
rl_attempted_completion_function = do_completion;
|
||||
|
||||
/* Note that .inputrc (or /etc/inputrc) is not read until the first
|
||||
* call the readline(), which happens later. Therefore, these
|
||||
* provide default values which can be overridden by the user if
|
||||
* they wish.
|
||||
*/
|
||||
(void) rl_variable_bind ("completion-ignore-case", "on");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -904,6 +904,22 @@ To write rules which only apply to guestfish, use:
|
||||
...
|
||||
$endif
|
||||
|
||||
Variables that you can set in inputrc that change the behaviour
|
||||
of guestfish in useful ways include:
|
||||
|
||||
=over 4
|
||||
|
||||
=item completion-ignore-case (default: on)
|
||||
|
||||
By default, guestfish will ignore case when tab-completing
|
||||
paths on the disk. Use:
|
||||
|
||||
set completion-ignore-case off
|
||||
|
||||
to make guestfish case sensitive.
|
||||
|
||||
=back
|
||||
|
||||
=item test1.img
|
||||
|
||||
=item test2.img (etc)
|
||||
|
||||
Reference in New Issue
Block a user