After looking at bash-completion in detail, I believe this belongs to
bash package.

Let me explain the reasons behind this.

bash calls bash-completion, and bash-completion returns all the
filenames as a list of strings. bash takes care of displaying these
strings on the command line.

1) now, if bash-completion returns ~ (tilde) with a double quote like in "~", 
the bash will go and change it to \"~\" (backslash, double-quote, tilde, 
backslash, double-quote). So, when it interprets it, it will look for a file 
with "~" (double-quote tilde double-quote).
2) if bash-completion returns ~ (tilde) with back-slash like in \" (backslash, 
tilde), the bash will go and change it to \\~ (backslash, backslash, tilde). so 
when it interprets it, it will look for a file with \" (backslash, tilde)

So, there is no way bash-completion can return a string for bash to
understand it correctly. Hence, something has to be done in bash.

>>> Some more hints about doing it in bash
bash has a file called pcomplete.c which has following line.
 v = find_variable ("COMPREPLY");
this line calls the bash-completion and gets the reply in COMPREPLY (which is 
an array of strings).
>>> End of hints

** Changed in: bash (Ubuntu)
Sourcepackagename: bash-completion => bash

-- 
"rm ~" tries to delete home directory, not the existing subdir "~"
https://bugs.launchpad.net/bugs/254762
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to