aboutsummaryrefslogtreecommitdiffstats
path: root/bashline.c
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2014-05-16 14:18:15 -0400
committerChet Ramey <chet.ramey@case.edu>2014-05-16 14:18:15 -0400
commitc6dcdf4d7a53d07ecac4973b5fe6f8074bc10819 (patch)
treeb9c6f7408aa36f53f5abf861390bc721b8461583 /bashline.c
parent3b34f6e68ce94b15608a49feb62702a71bc18665 (diff)
downloadandroid_external_bash-c6dcdf4d7a53d07ecac4973b5fe6f8074bc10819.tar.gz
android_external_bash-c6dcdf4d7a53d07ecac4973b5fe6f8074bc10819.tar.bz2
android_external_bash-c6dcdf4d7a53d07ecac4973b5fe6f8074bc10819.zip
Bash-4.3 patch 15
Diffstat (limited to 'bashline.c')
-rw-r--r--bashline.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/bashline.c b/bashline.c
index 1f12764..77ca033 100644
--- a/bashline.c
+++ b/bashline.c
@@ -4167,9 +4167,16 @@ bash_directory_completion_matches (text)
int qc;
qc = rl_dispatching ? rl_completion_quote_character : 0;
- dfn = bash_dequote_filename ((char *)text, qc);
+ /* If rl_completion_found_quote != 0, rl_completion_matches will call the
+ filename dequoting function, causing the directory name to be dequoted
+ twice. */
+ if (rl_dispatching && rl_completion_found_quote == 0)
+ dfn = bash_dequote_filename ((char *)text, qc);
+ else
+ dfn = (char *)text;
m1 = rl_completion_matches (dfn, rl_filename_completion_function);
- free (dfn);
+ if (dfn != text)
+ free (dfn);
if (m1 == 0 || m1[0] == 0)
return m1;