From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Reuben Thomas Newsgroups: gmane.emacs.bugs Subject: bug#25082: [PATCH] Add support to emacsclient for command-lline options in ALTERNATE_EDITOR/--alternate-editor Date: Mon, 28 Aug 2017 11:15:55 +0100 Message-ID: References: <83val93vrk.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a1134fc7e968bd00557cd9440" X-Trace: blaine.gmane.org 1503915444 23173 195.159.176.226 (28 Aug 2017 10:17:24 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 28 Aug 2017 10:17:24 +0000 (UTC) Cc: 25082@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 28 12:17:16 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dmH6R-0005Ji-OC for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Aug 2017 12:17:08 +0200 Original-Received: from localhost ([::1]:37837 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dmH6Y-0001J9-B9 for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Aug 2017 06:17:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57027) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dmH6Q-0001J1-EG for bug-gnu-emacs@gnu.org; Mon, 28 Aug 2017 06:17:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dmH6M-0004Qn-AU for bug-gnu-emacs@gnu.org; Mon, 28 Aug 2017 06:17:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:49993) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dmH6M-0004Qh-5b for bug-gnu-emacs@gnu.org; Mon, 28 Aug 2017 06:17:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dmH6M-0006aQ-0E for bug-gnu-emacs@gnu.org; Mon, 28 Aug 2017 06:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Reuben Thomas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Aug 2017 10:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25082 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 25082-submit@debbugs.gnu.org id=B25082.150391536425239 (code B ref 25082); Mon, 28 Aug 2017 10:17:01 +0000 Original-Received: (at 25082) by debbugs.gnu.org; 28 Aug 2017 10:16:04 +0000 Original-Received: from localhost ([127.0.0.1]:58671 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dmH5Q-0006Z1-5n for submit@debbugs.gnu.org; Mon, 28 Aug 2017 06:16:04 -0400 Original-Received: from mail-oi0-f52.google.com ([209.85.218.52]:35311) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dmH5O-0006YJ-Av for 25082@debbugs.gnu.org; Mon, 28 Aug 2017 06:16:03 -0400 Original-Received: by mail-oi0-f52.google.com with SMTP id k77so529933oib.2 for <25082@debbugs.gnu.org>; Mon, 28 Aug 2017 03:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=1+DK/veDK1Gu/mkw8LYv1UiIwwtXhVsg+BDQ5lQ9HNA=; b=MsVgHmWKCuc4QI/zbj6SQLRnnLPHTjt1T2Jb7ba77MJTnvXAnM41geXkRuaaA2S7fa QU3yvEFBjtOI5G3wbT83U5T8DQudv2CAZgzhSq/Im7MYYQyYpKaiuviGkR47CNDQP6Ur c+iGt/ggYv+8EF2dttJ0+/Dd+SXF1b0qVOuDM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=1+DK/veDK1Gu/mkw8LYv1UiIwwtXhVsg+BDQ5lQ9HNA=; b=sryTtUKW9FWVMsJ/lWy4zq1oQh4FVUWMirymvTOPBRKPVyw5ff4LC/UZFHk/Dl76d0 K5Mpu15PBQcPVweNZKYB+w8wHd6yN6t6jZP6GUDvMBXyZZY2sGxkSCSkEsjdf/iIiixB ImVL4iZTZiPqI0g1OpGam79yWF7HdgxgBU2ySMkTavqPNpbwMKptsL1WNLJyKQQGtxuP lEO/y9+CuiXoRXdNgBnZ9/oDSorLuWSWjWYOuQnfMgwbq1aqBEM+4zq8fN4CMt5Fdlat gdqEUaKOufxTbLprmgZgjwdFJLj9Df9v8zETdqEWc7h0Bq9VFtN/ulmuTPv8kEbkDwoG gT9Q== X-Gm-Message-State: AHYfb5iOp0CVfgN93kSTBSQ3yYqDMx2sA/P4xNBkc6ZpAmPFqM8/Qhgm Eg+Eo2kTqyTb8GHGoh1Crfzr+U7sOd1L X-Received: by 10.202.198.203 with SMTP id w194mr125341oif.26.1503915356339; Mon, 28 Aug 2017 03:15:56 -0700 (PDT) Original-Received: by 10.157.53.86 with HTTP; Mon, 28 Aug 2017 03:15:55 -0700 (PDT) In-Reply-To: <83val93vrk.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:136291 Archived-At: --001a1134fc7e968bd00557cd9440 Content-Type: text/plain; charset="UTF-8" On 27 August 2017 at 15:55, Eli Zaretskii wrote: >> From: Reuben Thomas >> Date: Wed, 23 Aug 2017 23:59:01 +0100 >> Cc: 25082@debbugs.gnu.org >> >> I've modified my patch to cope with this case. Rather than write a >> general escaping parser, or even one that just copes with escaping >> quotes (likely to be complex and buggy in C; and I couldn't find code I >> could easily lift from elsewhere), I simply allow " as a delimiter as >> well as space for quotes. Escaping quotes is not supported. >> >> This suffices to cope with the common case on Windows of needing to >> quote a path containing spaces. It also copes with other simple cases. >> >> Is this sufficient? > > It could be, but I'm not sure I understand clearly what is supported > and what isn't. Could you please add this information to the NEWS > entry and in more detail to the user manual? I think having these > details in the manual is important regardless. I've added detail to NEWS. I am wary of adding more detail to the manual, because it could prevent future improvements (for example, implementation of quote escaping): we don't want users to rely on the lack of quote escaping. The manual currently says: @table @samp @item -a @var{command} @itemx --alternate-editor=@var{command} Specify a command to run if @code{emacsclient} fails to contact Emacs. This is useful when running @code{emacsclient} in a script. Note that this does not document the current situation precisely (a user could be forgiven for thinking that "emacs -Q -nw" would already work. The man page emacsclient(1) is similarly imprecise, though it is a little different: .B \-a, \-\-alternate-editor=EDITOR if the Emacs server is not running, run the specified editor instead. Here, the use of the word "editor" rather than "command" is more suggestive of the current behavior. I have changed it to be in line with the manual. I have also fixed a small error in the man page: it said If the value of EDITOR is the empty string, run "emacs \-\-daemon" to start Emacs in daemon mode, and try to connect to it. where it should say If the value of ALTERNATE_EDITOR is the empty string, run "emacs \-\-daemon" to start Emacs in daemon mode, and try to connect to it. Updated patch attached. -- https://rrt.sc3d.org --001a1134fc7e968bd00557cd9440 Content-Type: text/x-patch; charset="UTF-8"; name="0001-Add-support-for-arguments-in-ALTERNATE_EDITOR-to-ema.patch" Content-Disposition: attachment; filename="0001-Add-support-for-arguments-in-ALTERNATE_EDITOR-to-ema.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j6w0d9r30 RnJvbSA4OGJiMjRmZGY1NzMwNTk0M2YwYjlmYjgxNzI2NDNmZmU0NTJjNjc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZXViZW4gVGhvbWFzIDxycnRAc2MzZC5vcmc+CkRhdGU6IFRo dSwgMSBEZWMgMjAxNiAxNToyMTo1NyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBzdXBwb3J0 IGZvciBhcmd1bWVudHMgaW4gQUxURVJOQVRFX0VESVRPUiB0byBlbWFjc2NsaWVudApNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKKiBsaWItc3JjL2VtYWNzY2xpZW50LmMgKGZhaWwp OiBQYXJzZSBBTFRFUk5BVEVfRURJVE9SLCBvcgpjb3JyZXNwb25kaW5nIGNvbW1hbmQtbGluZSBh cmd1bWVudCwgaW50byBxdW90ZS0gb3Igc3BhY2Utc2VwYXJhdGVkCnRva2Vucy4gIElmIGEgdG9r ZW4gc3RhcnRzIHdpdGggYSBxdW90ZSwgdGhlbiBpdCBuYXR1cmFsbHkgaXMgZXhwZWN0ZWQKdG8g ZW5kIHdpdGggYSBxdW90ZTsgZXNjYXBpbmcgaXMgbm90IHN1cHBvcnRlZC4gVGhpcyBpcyBlbm91 Z2ggdG8gY29wZQp3aXRoIHRoZSB0eXBpY2FsIGNhc2Ugb2YgcmVxdWlyaW5nIHRoZSBpbml0aWFs IHBhdGggdG8gYmUgcXVvdGVkLApjb21tb24gb24gV2luZG93cyB3aGVyZSBpdCBtYXkgY29udGFp biBzcGFjZXMuCiogZXRjL05FV1M6IERvY3VtZW50LgoqIGRvYy9tYW4vZW1hY3NjbGllbnQuMTog VHdlYWsgdG8gcmVtb3ZlIHRoZSBpbXBsaWNhdGlvbiB0aGF0IG9ubHkgYW4KZWRpdG9yIGNhbiBi ZSBzcGVjaWZpZWQgKHRoZSBtYW51YWwgYWxyZWFkeSBtZW50aW9ucyBhIOKAnGNvbW1hbmTigJ0p LgpGaXggYSBzbWFsbCBlcnJvciB3aGVyZSDigJxFRElUT1LigJ0gaXMgcmVmZXJyZWQgdG8gcmF0 aGVyIHRoYW4K4oCcQUxURVJOQVRFX0VESVRPUuKAnS4KKiB0ZXN0L2xpYi1zcmMvZW1hY3NjbGll bnQtdGVzdHMuZWw6IEFkZCB0ZXN0cy4KLS0tCiBkb2MvbWFuL2VtYWNzY2xpZW50LjEgICAgICAg ICAgICAgfCAgNiArLS0KIGV0Yy9ORVdTICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsr KwogbGliLXNyYy9lbWFjc2NsaWVudC5jICAgICAgICAgICAgIHwgODQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tCiB0ZXN0L2xpYi1zcmMvZW1hY3NjbGllbnQtdGVzdHMu ZWwgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5z ZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saWIt c3JjL2VtYWNzY2xpZW50LXRlc3RzLmVsCgpkaWZmIC0tZ2l0IGEvZG9jL21hbi9lbWFjc2NsaWVu dC4xIGIvZG9jL21hbi9lbWFjc2NsaWVudC4xCmluZGV4IDAxMGVlYmEuLjA0Njc5OTUgMTAwNjQ0 Ci0tLSBhL2RvYy9tYW4vZW1hY3NjbGllbnQuMQorKysgYi9kb2MvbWFuL2VtYWNzY2xpZW50LjEK QEAgLTYyLDEwICs2MiwxMCBAQCBBIG1pc3NpbmcKIGlzIHRyZWF0ZWQgYXMgY29sdW1uIDEuCiBU aGlzIG9wdGlvbiBhcHBsaWVzIG9ubHkgdG8gdGhlIG5leHQgZmlsZSBzcGVjaWZpZWQuCiAuVFAK LS5CIFwtYSwgXC1cLWFsdGVybmF0ZS1lZGl0b3I9RURJVE9SCi1pZiB0aGUgRW1hY3Mgc2VydmVy IGlzIG5vdCBydW5uaW5nLCBydW4gdGhlIHNwZWNpZmllZCBlZGl0b3IgaW5zdGVhZC4KKy5CIFwt YSwgXC1cLWFsdGVybmF0ZS1lZGl0b3I9Q09NTUFORAoraWYgdGhlIEVtYWNzIHNlcnZlciBpcyBu b3QgcnVubmluZywgcnVuIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBpbnN0ZWFkLgogVGhpcyBjYW4g YWxzbyBiZSBzcGVjaWZpZWQgdmlhIHRoZSBBTFRFUk5BVEVfRURJVE9SIGVudmlyb25tZW50IHZh cmlhYmxlLgotSWYgdGhlIHZhbHVlIG9mIEVESVRPUiBpcyB0aGUgZW1wdHkgc3RyaW5nLCBydW4g ImVtYWNzIFwtXC1kYWVtb24iIHRvCitJZiB0aGUgdmFsdWUgb2YgQUxURVJOQVRFX0VESVRPUiBp cyB0aGUgZW1wdHkgc3RyaW5nLCBydW4gImVtYWNzIFwtXC1kYWVtb24iIHRvCiBzdGFydCBFbWFj cyBpbiBkYWVtb24gbW9kZSwgYW5kIHRyeSB0byBjb25uZWN0IHRvIGl0LgogLlRQCiAuQiAtYywg XC1cLWNyZWF0ZS1mcmFtZQpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCBl OGQ2ZWE5Li5mMjljOTQyIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAt NTE4LDYgKzUxOCwxMiBAQCBMaW51bSBtb2RlIGFuZCBhbGwgc2ltaWxhciBwYWNrYWdlcyBhcmUg aGVuY2Vmb3J0aCBiZWNvbWluZyBvYnNvbGV0ZS4KIFVzZXJzIGFuZCBkZXZlbG9wZXJzIGFyZSBl bmNvdXJhZ2VkIHRvIHN3aXRjaCB0byB0aGlzIG5ldyBmZWF0dXJlCiBpbnN0ZWFkLgogCisrKysK KyoqIGVtYWNzY2xpZW50IG5vdyBhY2NlcHRzIGNvbW1hbmQtbGluZSBvcHRpb25zIGluIEFMVEVS TkFURV9FRElUT1IKK2FuZCAtLWFsdGVybmF0ZS1lZGl0b3IuIEZvciBleGFtcGxlLCBBTFRFUk5B VEVfRURJVE9SPSJlbWFjcyAtUSAtbnciLgorQXJndW1lbnRzIG1heSBiZSBxdW90ZWQsIHNvIHRo YXQgZm9yIGV4YW1wbGUgYW4gYWJzb2x1dGUgcGF0aAorY29udGFpbmluZyBhIHNwYWNlIG1heSBi ZSBzcGVjaWZpZWQ7IHF1b3RlIGVzY2FwaW5nIGlzIG5vdCBzdXBwb3J0ZWQuCisKIAwKICogRWRp dGluZyBDaGFuZ2VzIGluIEVtYWNzIDI2LjEKIApkaWZmIC0tZ2l0IGEvbGliLXNyYy9lbWFjc2Ns aWVudC5jIGIvbGliLXNyYy9lbWFjc2NsaWVudC5jCmluZGV4IGYxZDRlODkuLjVlMTgxY2MgMTAw NjQ0Ci0tLSBhL2xpYi1zcmMvZW1hY3NjbGllbnQuYworKysgYi9saWItc3JjL2VtYWNzY2xpZW50 LmMKQEAgLTExMCw2ICsxMTAsOSBAQCBjaGFyICp3MzJfZ2V0ZW52IChjb25zdCBjaGFyICopOwog LyogTmFtZSB1c2VkIHRvIGludm9rZSB0aGlzIHByb2dyYW0uICAqLwogY29uc3QgY2hhciAqcHJv Z25hbWU7CiAKKy8qIFRoZSBmaXJzdCBhcmd1bWVudCB0byBtYWluLiAgKi8KK2ludCBtYWluX2Fy Z2M7CisKIC8qIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gbWFpbi4gICovCiBjaGFyICoqbWFpbl9h cmd2OwogCkBAIC0yMDEsNiArMjA0LDM1IEBAIHhtYWxsb2MgKHNpemVfdCBzaXplKQogICByZXR1 cm4gcmVzdWx0OwogfQogCisvKiBMaWtlIHJlYWxsb2MgYnV0IGdldCBmYXRhbCBlcnJvciBpZiBt ZW1vcnkgaXMgZXhoYXVzdGVkLiAgKi8KKworc3RhdGljIHZvaWQgKgoreHJlYWxsb2MgKHZvaWQg KnB0ciwgc2l6ZV90IHNpemUpCit7CisgIHZvaWQgKnJlc3VsdCA9IHJlYWxsb2MgKHB0ciwgc2l6 ZSk7CisgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICB7CisgICAgICBwZXJyb3IgKCJyZWFsbG9j Iik7CisgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOworICAgIH0KKyAgcmV0dXJuIHJlc3VsdDsK K30KKworLyogTGlrZSBzdHJkdXAgYnV0IGdldCBhIGZhdGFsIGVycm9yIGlmIG1lbW9yeSBpcyBl eGhhdXN0ZWQuICovCitjaGFyICp4c3RyZHVwIChjb25zdCBjaGFyICopOworCitjaGFyICoKK3hz dHJkdXAgKGNvbnN0IGNoYXIgKnMpCit7CisgIGNoYXIgKnJlc3VsdCA9IHN0cmR1cCAocyk7Cisg IGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICB7CisgICAgICBwZXJyb3IgKCJzdHJkdXAiKTsKKyAg ICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7CisgICAgfQorICByZXR1cm4gcmVzdWx0OworfQorCiAv KiBGcm9tIHN5c2RlcC5jICovCiAjaWYgIWRlZmluZWQgKEhBVkVfR0VUX0NVUlJFTlRfRElSX05B TUUpIHx8IGRlZmluZWQgKEJST0tFTl9HRVRfQ1VSUkVOVF9ESVJfTkFNRSkKIApAQCAtMjY0LDIx ICsyOTYsNiBAQCBnZXRfY3VycmVudF9kaXJfbmFtZSAodm9pZCkKIAogI2lmZGVmIFdJTkRPV1NO VAogCi0vKiBMaWtlIHN0cmR1cCBidXQgZ2V0IGEgZmF0YWwgZXJyb3IgaWYgbWVtb3J5IGlzIGV4 aGF1c3RlZC4gKi8KLWNoYXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIgKik7Ci0KLWNoYXIgKgoteHN0 cmR1cCAoY29uc3QgY2hhciAqcykKLXsKLSAgY2hhciAqcmVzdWx0ID0gc3RyZHVwIChzKTsKLSAg aWYgKHJlc3VsdCA9PSBOVUxMKQotICAgIHsKLSAgICAgIHBlcnJvciAoInN0cmR1cCIpOwotICAg ICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKLSAgICB9Ci0gIHJldHVybiByZXN1bHQ7Ci19Ci0KICNk ZWZpbmUgUkVHX1JPT1QgIlNPRlRXQVJFXFxHTlVcXEVtYWNzIgogCiBjaGFyICp3MzJfZ2V0X3Jl c291cmNlIChIS0VZLCBjb25zdCBjaGFyICosIExQRFdPUkQpOwpAQCAtNjczLDcgKzY5MCw3IEBA IFJlcG9ydCBidWdzIHdpdGggTS14IHJlcG9ydC1lbWFjcy1idWcuXG4iKTsKIH0KIAogLyogVHJ5 IHRvIHJ1biBhIGRpZmZlcmVudCBjb21tYW5kLCBvciAtLWlmIG5vIGFsdGVybmF0ZSBlZGl0b3Ig aXMKLSAgIGRlZmluZWQtLSBleGl0IHdpdGggYW4gZXJyb3Jjb2RlLgorICAgZGVmaW5lZC0tIGV4 aXQgd2l0aCBhbiBlcnJvciBjb2RlLgogICAgVXNlcyBhcmd2LCBidXQgZ2V0cyBpdCBmcm9tIHRo ZSBnbG9iYWwgdmFyaWFibGUgbWFpbl9hcmd2LiAgKi8KIAogc3RhdGljIF9Ob3JldHVybiB2b2lk CkBAIC02ODEsOSArNjk4LDM4IEBAIGZhaWwgKHZvaWQpCiB7CiAgIGlmIChhbHRlcm5hdGVfZWRp dG9yKQogICAgIHsKLSAgICAgIGludCBpID0gb3B0aW5kIC0gMTsKKyAgICAgIHNpemVfdCBleHRy YV9hcmdzX3NpemUgPSAobWFpbl9hcmdjIC0gb3B0aW5kICsgMSkgKiBzaXplb2YgKGNoYXIgKik7 CisgICAgICBzaXplX3QgbmV3X2FyZ3Zfc2l6ZSA9IGV4dHJhX2FyZ3Nfc2l6ZTsKKyAgICAgIGNo YXIgKipuZXdfYXJndiA9IE5VTEw7CisgICAgICBjaGFyICpzID0geHN0cmR1cCAoYWx0ZXJuYXRl X2VkaXRvcik7CisgICAgICB1bnNpZ25lZCB0b2tzID0gMDsKKworICAgICAgLyogVW5wYWNrIGFs dGVybmF0ZV9lZGl0b3IncyBzcGFjZS1zZXBhcmF0ZWQgdG9rZW5zIGludG8gbmV3X2FyZ3YuICAq LworICAgICAgZm9yIChjaGFyICp0b2sgPSBzOyB0b2sgIT0gTlVMTCAmJiAqdG9rICE9ICdcMCc7 KQorICAgICAgICB7CisgICAgICAgICAgLyogQWxsb2NhdGUgbmV3IHRva2VuLiAgKi8KKyAgICAg ICAgICArK3Rva3M7CisgICAgICAgICAgbmV3X2FyZ3YgPSB4cmVhbGxvYyAobmV3X2FyZ3YsIG5l d19hcmd2X3NpemUgKyB0b2tzICogc2l6ZW9mIChjaGFyICopKTsKKworICAgICAgICAgIC8qIFNr aXAgbGVhZGluZyBkZWxpbWl0ZXJzLCBhbmQgc2V0IHNlcGFyYXRvciwgc2tpcHBpbmcgYW55Cisg ICAgICAgICAgICAgb3BlbmluZyBxdW90ZS4gICovCisgICAgICAgICAgc2l6ZV90IHNraXAgPSBz dHJzcG4gKHRvaywgIiBcIiIpOworICAgICAgICAgIHRvayArPSBza2lwOworICAgICAgICAgIGNo YXIgc2VwID0gKHNraXAgPiAwICYmIHRva1stMV0gPT0gJyInKSA/ICciJyA6ICcgJzsKKworICAg ICAgICAgIC8qIFJlY29yZCBzdGFydCBvZiB0b2tlbi4gICovCisgICAgICAgICAgbmV3X2FyZ3Zb dG9rcyAtIDFdID0gdG9rOworCisgICAgICAgICAgLyogRmluZCBlbmQgb2YgdG9rZW4gYW5kIG92 ZXJ3cml0ZSBpdCB3aXRoIE5VTC4gICovCisgICAgICAgICAgdG9rID0gc3RyY2hyICh0b2ssIHNl cCk7CisgICAgICAgICAgaWYgKHRvayAhPSBOVUxMKQorICAgICAgICAgICAgKnRvaysrID0gJ1ww JzsKKyAgICAgICAgfQorCisgICAgICAvKiBBcHBlbmQgbWFpbl9hcmd2IGFyZ3VtZW50cyB0byBu ZXdfYXJndi4gICovCisgICAgICBtZW1jcHkgKCZuZXdfYXJndlt0b2tzXSwgbWFpbl9hcmd2ICsg b3B0aW5kLCBleHRyYV9hcmdzX3NpemUpOwogCi0gICAgICBleGVjdnAgKGFsdGVybmF0ZV9lZGl0 b3IsIG1haW5fYXJndiArIGkpOworICAgICAgZXhlY3ZwICgqbmV3X2FyZ3YsIG5ld19hcmd2KTsK ICAgICAgIG1lc3NhZ2UgKHRydWUsICIlczogZXJyb3IgZXhlY3V0aW5nIGFsdGVybmF0ZSBlZGl0 b3IgXCIlc1wiXG4iLAogCSAgICAgICBwcm9nbmFtZSwgYWx0ZXJuYXRlX2VkaXRvcik7CiAgICAg fQpAQCAtNjk2LDYgKzc0Miw3IEBAIGZhaWwgKHZvaWQpCiBpbnQKIG1haW4gKGludCBhcmdjLCBj aGFyICoqYXJndikKIHsKKyAgbWFpbl9hcmdjID0gYXJnYzsKICAgbWFpbl9hcmd2ID0gYXJndjsK ICAgcHJvZ25hbWUgPSBhcmd2WzBdOwogICBtZXNzYWdlICh0cnVlLCAiJXM6IFNvcnJ5LCB0aGUg RW1hY3Mgc2VydmVyIGlzIHN1cHBvcnRlZCBvbmx5XG4iCkBAIC0xNjI5LDYgKzE2NzYsNyBAQCBt YWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgIGludCBzdGFydF9kYWVtb25faWZfbmVlZGVk OwogICBpbnQgZXhpdF9zdGF0dXMgPSBFWElUX1NVQ0NFU1M7CiAKKyAgbWFpbl9hcmdjID0gYXJn YzsKICAgbWFpbl9hcmd2ID0gYXJndjsKICAgcHJvZ25hbWUgPSBhcmd2WzBdOwogCmRpZmYgLS1n aXQgYS90ZXN0L2xpYi1zcmMvZW1hY3NjbGllbnQtdGVzdHMuZWwgYi90ZXN0L2xpYi1zcmMvZW1h Y3NjbGllbnQtdGVzdHMuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE3 NTdmNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGliLXNyYy9lbWFjc2NsaWVudC10ZXN0cy5l bApAQCAtMCwwICsxLDUwIEBACis7OzsgZW1hY3NjbGllbnQtdGVzdHMuZWwgLS0tIFRlc3QgZW1h Y3NjbGllbnQKKworOzsgQ29weXJpZ2h0IChDKSAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCis7OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7 OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5Ogor Cis7OworCis7OzsgQ29kZToKKworKHJlcXVpcmUgJ2VydCkKKworKGRlZmNvbnN0IGVtYWNzY2xp ZW50LXRlc3QtZW1hY3MKKyAgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzY2xpZW50IiAoY29uY2F0 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtZGlyZWN0b3J5 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlyZWN0b3J5LWZpbGUtbmFt ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtZGlyZWN0 b3J5IGludm9jYXRpb24tZGlyZWN0b3J5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJsaWItc3JjIikpCisgICJQYXRoIHRvIGVtYWNzY2xpZW50IGJpbmFyeSBpbiBidWls ZCB0cmVlLiIpCisKKyhlcnQtZGVmdGVzdCBlbWFjc2NsaWVudC10ZXN0LWFsdGVybmF0ZS1lZGl0 b3ItYWxsb3dzLWFyZ3VtZW50cyAoKQorICAobGV0IChwcm9jZXNzLWVudmlyb25tZW50IHByb2Nl c3MtZW52aXJvbm1lbnQpCisgICAgKHNldGVudiAiQUxURVJOQVRFX0VESVRPUiIgKGNvbmNhdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZSBpbnZvY2F0 aW9uLW5hbWUgaW52b2NhdGlvbi1kaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIgLS1iYXRjaCIpKQorICAgIChzaG91bGQgKD0gMCAoY2FsbC1wcm9jZXNzIGVtYWNz Y2xpZW50LXRlc3QtZW1hY3MgbmlsIG5pbCBuaWwgImZvbyIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW1hY3NjbGllbnQtdGVzdC1hbHRlcm5hdGUtZWRpdG9yLWFsbG93cy1xdW90ZXMgKCkKKyAgKGxl dCAocHJvY2Vzcy1lbnZpcm9ubWVudCBwcm9jZXNzLWVudmlyb25tZW50KQorICAgIChzZXRlbnYg IkFMVEVSTkFURV9FRElUT1IiIChjb25jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlwiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwYW5kLWZpbGUtbmFt ZSBpbnZvY2F0aW9uLW5hbWUgaW52b2NhdGlvbi1kaXJlY3RvcnkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJcIiIgIiAtLWJhdGNoIikpCisgICAgKHNob3VsZCAoPSAwIChjYWxs LXByb2Nlc3MgZW1hY3NjbGllbnQtdGVzdC1lbWFjcyBuaWwgbmlsIG5pbCAiZm9vIikpKSkpCisK Kyhwcm92aWRlICdlbWFjc2NsaWVudC10ZXN0cykKKzs7OyBlbWFjc2NsaWVudC10ZXN0cy5lbCBl bmRzIGhlcmUKLS0gCjIuNy40Cgo= --001a1134fc7e968bd00557cd9440--