mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-02 09:50:50 +02:00
Bash-5.2 patch 37: fix issue where comparing quoted and unquoted words to be completed results in readline not displaying possible matches
This commit is contained in:
+17
-1
@@ -2031,9 +2031,25 @@ rl_complete_internal (int what_to_do)
|
||||
|
||||
text = rl_copy_text (start, end);
|
||||
matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
|
||||
/* If TEXT contains quote characters, it will be dequoted as part of
|
||||
generating the matches, and the matches will not contain any quote
|
||||
characters. We need to dequote TEXT before performing the comparison.
|
||||
Since compare_match performs the dequoting, and we only want to do it
|
||||
once, we don't call compare_matches after dequoting TEXT; we call
|
||||
strcmp directly. */
|
||||
/* nontrivial_lcd is set if the common prefix adds something to the word
|
||||
being completed. */
|
||||
nontrivial_lcd = matches && compare_match (text, matches[0]) != 0;
|
||||
if (rl_filename_completion_desired && rl_filename_quoting_desired &&
|
||||
rl_completion_found_quote && rl_filename_dequoting_function)
|
||||
{
|
||||
char *t;
|
||||
t = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
|
||||
xfree (text);
|
||||
text = t;
|
||||
nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
|
||||
}
|
||||
else
|
||||
nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
|
||||
if (what_to_do == '!' || what_to_do == '@')
|
||||
tlen = strlen (text);
|
||||
xfree (text);
|
||||
|
||||
+1
-1
@@ -25,6 +25,6 @@
|
||||
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
#define PATCHLEVEL 36
|
||||
#define PATCHLEVEL 37
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
|
||||
Reference in New Issue
Block a user