From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13731 invoked by alias); 12 Dec 2013 23:55:14 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 32103 Received: (qmail 15309 invoked from network); 12 Dec 2013 23:55:09 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.3.2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=wVPpjE+tTIthkSOAQnNK18n93sNVWV3U/ssEWditzd8=; b=0f6r6LCV4d5YQWMLFxhRy6/EBl53zZYK40+bxHlD5cVhAGlmK9iMYKDt5S/ufOpP1d s0CJwIn8ZBuqkHuYylrAnijzab7XJu1QHiCrGsNq2Cvz9RHBdsNnhZ6f2hOvWpfo25nK 3cVL23KdRF914jtXwmngM59hDpAM0HS9XZNBnLqAO28PuouCPXdr+/1mFF1sSa2YD4yW PAVotx+cRz3iTm5M/tS2U3nw01f7ifZ3Nl1dqa3XVwQzZRNGle+y1CnybzKAoiDqTL1n i3XpO6co054IWGmqcv4dfgFjitULAGXXMRslur3yLCe9JBlwZYWXliJ/os6qMpS3+WlK G5lw== MIME-Version: 1.0 X-Received: by 10.220.192.198 with SMTP id dr6mr5015606vcb.19.1386892507566; Thu, 12 Dec 2013 15:55:07 -0800 (PST) In-Reply-To: References: Date: Thu, 12 Dec 2013 15:55:07 -0800 Message-ID: Subject: Re: [PATCH] Parse Additional SSH known_hosts Syntax From: Aaron Peschel To: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary=001a11c2cde4416ab804ed5f13a9 --001a11c2cde4416ab804ed5f13a9 Content-Type: text/plain; charset=ISO-8859-1 Hello, The patch got corrupted in the email. I have attached the patch here instead. --Aaron On Thu, Dec 12, 2013 at 3:52 PM, Aaron Peschel wrote: > Hello, > > I have created a patch for ZSH to support additional known_hosts > syntax. Feedback would be appreciated. > > Thank you! > > Aaron Peschel > > ----- > > From 3d05d6f46ac89f1d91f6e7ab4981c2dc410c956a Mon Sep 17 00:00:00 2001 > From: Aaron Peschel > Date: Thu, 12 Dec 2013 15:43:55 -0800 > Subject: [PATCH 1/1] Parse Additional SSH known_hosts Syntax > > ZSH does not currently support the full known_hosts syntax. The > known_hosts file supports lines starting with "[hostname]:post". ZSH > currently discards these lines, which breaks SSH auto-completion on > hosts using a non-standard SSH port. This patch adds support for this > syntax and allows auto-completion to work in this case. > --- > Completion/Unix/Type/_hosts | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/Completion/Unix/Type/_hosts b/Completion/Unix/Type/_hosts > index 499caed..c3133dc 100644 > --- a/Completion/Unix/Type/_hosts > +++ b/Completion/Unix/Type/_hosts > @@ -41,9 +41,20 @@ if ! zstyle -a ":completion:${curcontext}:hosts" > hosts _hosts; then > > for khostfile in $khostfiles; do > if [[ -r $khostfile ]]; then > - khosts=(${${(s:,:)${(j:,:)${(u)${(f)"$(<$khostfile)"}%%[ > |#]*}}}:#*[\[\]]*}) > + khosts=(${(s/,/j/,/u)${(f)"$(<$khostfile)"}%%[ |#]*}) > + > + # known_hosts syntax supports the host being in the form > [hostname]:port > + # The filter below extracts the hostname from lines using this format. > + khosts=($(for host ($khosts); do > + if [[ $host =~ "\[(.*)\]:\d*" ]]; then > + echo $match > + else > + echo $host > + fi > + done)) > + > if [[ -z $useip ]]; then > - khosts=(${${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)}:#*[\[\]]*}) > + khosts=(${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)}) > fi > _cache_hosts+=($khosts) > fi > -- > 1.8.3.4 (Apple Git-47) --001a11c2cde4416ab804ed5f13a9 Content-Type: application/octet-stream; name="0001-Parse-Additional-SSH-known_hosts-Syntax.patch" Content-Disposition: attachment; filename="0001-Parse-Additional-SSH-known_hosts-Syntax.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hp4nz7xk0 RnJvbSAzZDA1ZDZmNDZhYzg5ZjFkOTFmNmU3YWI0OTgxYzJkYzQxMGM5NTZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBYXJvbiBQZXNjaGVsIDxhcGVzY2hlbEB6ZW5kZXNrLmNvbT4K RGF0ZTogVGh1LCAxMiBEZWMgMjAxMyAxNTo0Mzo1NSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS8x XSBQYXJzZSBBZGRpdGlvbmFsIFNTSCBrbm93bl9ob3N0cyBTeW50YXgKClpTSCBkb2VzIG5vdCBj dXJyZW50bHkgc3VwcG9ydCB0aGUgZnVsbCBrbm93bl9ob3N0cyBzeW50YXguIFRoZQprbm93bl9o b3N0cyBmaWxlIHN1cHBvcnRzIGxpbmVzIHN0YXJ0aW5nIHdpdGggIltob3N0bmFtZV06cG9zdCIu IFpTSApjdXJyZW50bHkgZGlzY2FyZHMgdGhlc2UgbGluZXMsIHdoaWNoIGJyZWFrcyBTU0ggYXV0 by1jb21wbGV0aW9uIG9uCmhvc3RzIHVzaW5nIGEgbm9uLXN0YW5kYXJkIFNTSCBwb3J0LiBUaGlz IHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhpcwpzeW50YXggYW5kIGFsbG93cyBhdXRvLWNvbXBs ZXRpb24gdG8gd29yayBpbiB0aGlzIGNhc2UuCi0tLQogQ29tcGxldGlvbi9Vbml4L1R5cGUvX2hv c3RzIHwgMTUgKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Db21wbGV0aW9uL1VuaXgvVHlwZS9faG9z dHMgYi9Db21wbGV0aW9uL1VuaXgvVHlwZS9faG9zdHMKaW5kZXggNDk5Y2FlZC4uYzMxMzNkYyAx MDA2NDQKLS0tIGEvQ29tcGxldGlvbi9Vbml4L1R5cGUvX2hvc3RzCisrKyBiL0NvbXBsZXRpb24v VW5peC9UeXBlL19ob3N0cwpAQCAtNDEsOSArNDEsMjAgQEAgaWYgISB6c3R5bGUgLWEgIjpjb21w bGV0aW9uOiR7Y3VyY29udGV4dH06aG9zdHMiIGhvc3RzIF9ob3N0czsgdGhlbgogCiAgICAgZm9y IGtob3N0ZmlsZSBpbiAka2hvc3RmaWxlczsgZG8KICAgICAgIGlmIFtbIC1yICRraG9zdGZpbGUg XV07IHRoZW4KLSAgICAgICAga2hvc3RzPSgkeyR7KHM6LDopJHsoajosOikkeyh1KSR7KGYpIiQo PCRraG9zdGZpbGUpIn0lJVsgfCNdKn19fTojKltcW1xdXSp9KQorICAgICAgICBraG9zdHM9KCR7 KHMvLC9qLywvdSkkeyhmKSIkKDwka2hvc3RmaWxlKSJ9JSVbIHwjXSp9KQorCisgICAgICAgICMg a25vd25faG9zdHMgc3ludGF4IHN1cHBvcnRzIHRoZSBob3N0IGJlaW5nIGluIHRoZSBmb3JtIFto b3N0bmFtZV06cG9ydAorICAgICAgICAjIFRoZSBmaWx0ZXIgYmVsb3cgZXh0cmFjdHMgdGhlIGhv c3RuYW1lIGZyb20gbGluZXMgdXNpbmcgdGhpcyBmb3JtYXQuCisgICAgICAgIGtob3N0cz0oJChm b3IgaG9zdCAoJGtob3N0cyk7IGRvCisgICAgICAgICAgaWYgW1sgJGhvc3QgPX4gIlxbKC4qKVxd OlxkKiIgXV07IHRoZW4KKyAgICAgICAgICAgIGVjaG8gJG1hdGNoCisgICAgICAgICAgZWxzZQor ICAgICAgICAgICAgZWNobyAkaG9zdAorICAgICAgICAgIGZpCisgICAgICAgIGRvbmUpKQorCiAg ICAgICAgIGlmIFtbIC16ICR1c2VpcCBdXTsgdGhlbgotCSAga2hvc3RzPSgkeyR7JHtraG9zdHM6 IygjcylbMC05XSMjLlswLTldIyMuWzAtOV0jIy5bMC05XSMjKCNlKX06IygjcylbMC05YS1mOl0j IygjZSl9OiMqW1xbXF1dKn0pCisgICAgICAgICAga2hvc3RzPSgkeyR7a2hvc3RzOiMoI3MpWzAt OV0jIy5bMC05XSMjLlswLTldIyMuWzAtOV0jIygjZSl9OiMoI3MpWzAtOWEtZjpdIyMoI2UpfSkK ICAgICAgICAgZmkKICAgICAgICAgX2NhY2hlX2hvc3RzKz0oJGtob3N0cykKICAgICAgIGZpCi0t IAoxLjguMy40IChBcHBsZSBHaXQtNDcpCgo= --001a11c2cde4416ab804ed5f13a9--