summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Skyttä <ville.skytta@iki.fi>2011-11-05 00:53:39 +0200
committerVille Skyttä <ville.skytta@iki.fi>2011-11-05 00:53:39 +0200
commit333a5a50bebcbea3f0655351b2f7c57ea195c04a (patch)
tree618f467d1f8f952ebd9d4ccdc251e9a12790a886
parentb54d3f022f73553bdec64e1da29736d41835a029 (diff)
downloadbash-completion-333a5a50bebcbea3f0655351b2f7c57ea195c04a.tar.gz
_known_hosts_real: Handle more than two hostnames per known hosts line (Debian: #647352).
-rw-r--r--bash_completion2
-rw-r--r--test/fixtures/_known_hosts_real/known_hosts22
-rw-r--r--test/unit/_known_hosts_real.exp8
3 files changed, 6 insertions, 6 deletions
diff --git a/bash_completion b/bash_completion
index 8c8fab59..3bfbf724 100644
--- a/bash_completion
+++ b/bash_completion
@@ -1417,7 +1417,7 @@ _known_hosts_real()
/^\s*[^|\#]/ {
sub("^@[^ ]+ +", ""); \
sub(" .*$", ""); \
- for (i=1; i<=2; ++i) { \
+ for (i=1; i<=NF; ++i) { \
sub("^\\[", "", $i); sub("\\](:[0-9]+)?$", "", $i); \
if ($i ~ /'"$awkcur"'/) {print $i} \
}}' "${kh[@]}" 2>/dev/null ) )
diff --git a/test/fixtures/_known_hosts_real/known_hosts2 b/test/fixtures/_known_hosts_real/known_hosts2
index f719efd4..b0926a40 100644
--- a/test/fixtures/_known_hosts_real/known_hosts2
+++ b/test/fixtures/_known_hosts_real/known_hosts2
@@ -1 +1 @@
-two
+two,two2,two3,two4
diff --git a/test/unit/_known_hosts_real.exp b/test/unit/_known_hosts_real.exp
index 0e381fa7..d4ba804e 100644
--- a/test/unit/_known_hosts_real.exp
+++ b/test/unit/_known_hosts_real.exp
@@ -52,8 +52,8 @@ set test "Files containing consecutive spaces should work"
set hosts [get_hosts -unsorted]
set hosts_orig $hosts
# Hosts `gee' and `hus' are defined in `./fixtures/_known_hosts_real/spaced conf'
- # Host `two' is defined in ./fixtures/_known_hosts_real/known_hosts2
-lappend hosts gee hus two
+ # Hosts `two*' are defined in ./fixtures/_known_hosts_real/known_hosts2
+lappend hosts gee hus two two2 two3 two4
set hosts_config $hosts
# Hosts `doo' and `ike' are defined in `./fixtures/_known_hosts_/spaced known_hosts'
lappend hosts doo ike
@@ -78,9 +78,9 @@ sync_after_int
set test "Files starting with tilde (~) should work"
set hosts [get_hosts -unsorted]
- # Host `two' is defined in ./fixtures/_known_hosts_real/known_hosts2
+ # Hosts `two*' are defined in ./fixtures/_known_hosts_real/known_hosts2
# Host `three' is defined in ./fixtures/_known_hosts_real/known_hosts3
-lappend hosts two three
+lappend hosts two two2 two3 two4 three
set hosts [join [bash_sort $hosts] "\\s+"]
# Setup environment
set cmd {OLDHOME=$HOME; HOME=$SRCDIRABS}