Package: bash-completion Version: 1:2.1-4.3 Severity: normal Tags: patch Hi,
I'm using automatic gateway with ssh (and ProxyCommand) so that ssh gw1+gw2+host will correctly setup a connection first to gw1, then to gw2 (via gw1 and ProxyCommand) and eventually with host (via gw2 and ProxyCommand) whatever gw1, gw2 and host are. To do that, I need the '+' character in ssh hostname. It works perfectly with ssh, scp, rsync, ... but not with bash-completion. The reason is that the '+' is not escaped when a regexp for awk is built in _known_hosts_real. The patch is really simple: ======= diff --git a/bash_completion b/bash_completion index 6d3ba76..c640278 100644 --- a/bash_completion +++ b/bash_completion @@ -1484,6 +1496,7 @@ _known_hosts_real() # Escape slashes and dots in paths for awk awkcur=${cur//\//\\\/} awkcur=${awkcur//\./\\\.} + awkcur=${awkcur//\+/\\\+} curd=$awkcur if [[ "$awkcur" == [0-9]*[.:]* ]]; then ======= Note that the line number to apply this patch can be a bit changed (all Debian quilt patch are currently applied in my source tree, so git show lots of other unrelated changes) I also tried to apply my one-liner patch directly to /usr/share/bash-completion/bash-completion on my system. I can now autocomplete hostnames with '+' in them. Regards, Vincent -- System Information: Debian Release: stretch/sid APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'unstable'), (500, 'testing'), (200, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386, armel, mipsel Kernel: Linux 4.8.0-2-amd64 (SMP w/8 CPU cores) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages bash-completion depends on: ii bash 4.4-2 ii dpkg 1.18.15 bash-completion recommends no packages. bash-completion suggests no packages. -- no debconf information