Comment 10 for bug 769866

Revision history for this message
Silas S. Brown (ssb22) wrote : Re: tab completion no longer escapes filenames

I believe there is a bug on line 1587 of /etc/bash_completion, the "-o default" on that line should be changed to "-o filenames".

I haven't checked if 10.10 had "-o default". If it did, then I expect the changed behaviour was due to a change in the readline library. "-o default" means "tell readline to do what it thinks is default", and that may have worked in 10.10 but not in 11.04, due to a readline library change. So I think it's better to say "-o filenames" which tells readline what we want.

The reason why it works OK for root but not for the normal user is, the /etc/bash-completion script is called by $HOME/.bashrc, and this call is present in the user's .bashrc but commented out in root's .bashrc (at least on the system that I recently upgraded from 10.10 to 11.04).

I'm getting bash completion problems and I never had acroread installed on this system, so it can't be acroread in my case.

With "-o default", if I type: less /t <tab>
it expands to: less /tmp (space)
instead of less /tmp/
(but "cd /t <tab>" is OK)

"complete" is documented in "man bash" under the heading SHELL BUILTIN COMMANDS. For "-o default", it says "Use readline's default filename completion if the compspec generates no matches." For "-o filenames", it says "Tell readline that the compspec generates filenames, so it can perform any filename-specific processing (like adding a slash to directory names, quoting special characters, or suppressing trailing spaces)."

I tried changing the "-o default" to "-o filenames" and everything worked as expected.

I have not experienced a problem with "cd", only with "less" etc.