From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22822 invoked by alias); 9 Jan 2015 18:35:55 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 22807 invoked by uid 89); 9 Jan 2015 18:35:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 X-HELO: mail-pa0-f52.google.com Received: from mail-pa0-f52.google.com (HELO mail-pa0-f52.google.com) (209.85.220.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 09 Jan 2015 18:35:53 +0000 Received: by mail-pa0-f52.google.com with SMTP id eu11so19919600pac.11 for ; Fri, 09 Jan 2015 10:35:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=ngMIV43fXCpW86pJc+etGtSIJu0RxQHeB3SJys2JiEA=; b=QTr4GszHk/AWKc82GiGZK6610VDXRblnPtS9ROp6aFojAEIQp03NIXZKWl/XSAZKqL J+7S6QbOl4j5ltWLvFrfBsCPSiwN6499r5jurfkTwcsXM55jRehaFSdTYbMWyVIJLZxa hthsBZgBXskr9h8K7rMDPRaGN5CqD69c0oKUzoVrNt40keXuA8gao8wnTd9DmMsSoBja 7pgaG/h+4B6ufsS5LFXt3DfJO///8Qn/gQdWwlH97FhAI1uPtjA7HXj6bgiog2czfT/W 2q3kAyRbSpUp4Ps+iYi8C/KtTAGTJ2WgvJeZqbJqElldxpA+xqvMJKI7bBb5V5gtqrNt Jt8g== X-Gm-Message-State: ALoCoQlSYvjoYzNKE/SyNNE8j3Mdy+Ek16vbQFYQ5Q0jtRnyPYSAfjKa2WOdOr16vTQvpWQ+qBVJ X-Received: by 10.68.196.99 with SMTP id il3mr25978142pbc.158.1420828551916; Fri, 09 Jan 2015 10:35:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.70.22.145 with HTTP; Fri, 9 Jan 2015 10:35:30 -0800 (PST) In-Reply-To: <54AFF34A.6070109@redhat.com> References: <1420808488-30044-1-git-send-email-patrick@parcs.ath.cx> <54AFF34A.6070109@redhat.com> From: Patrick Palka Date: Fri, 09 Jan 2015 18:35:00 -0000 Message-ID: Subject: Re: [PATCH] Consolidate the custom TUI query hook with the default query hook To: Pedro Alves Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=047d7bd6bda41fdd11050c3c6d2f X-SW-Source: 2015-01/txt/msg00228.txt.bz2 --047d7bd6bda41fdd11050c3c6d2f Content-Type: text/plain; charset=UTF-8 Content-length: 790 On Fri, Jan 9, 2015 at 10:27 AM, Pedro Alves wrote: > On 01/09/2015 01:01 PM, Patrick Palka wrote: >> Hi Pedro, >> >> I noticed some latent "rendering" issues when invoking GDB's quit prompt >> within TUI, e.g. the quit prompt would repeat itself every time you >> pressed a key. Here's an updated version of the patch that fixes the >> two redisplay issues I found. TUI is a mess... > > Thanks a lot for cleaning up the mess. :-) > > It's great that a lot of the little annoying issues that > plague the TUI are getting fixed. > > This is OK. > > Another nice side effect is that now all the readline keys, > like ctrl-w works in queries (even in the CLI). And tab completion now "works" in queries too :) Attached is what I committed. > > Thanks, > Pedro Alves --047d7bd6bda41fdd11050c3c6d2f Content-Type: application/octet-stream; name="0001-Consolidate-the-custom-TUI-query-hook-with-the-defau.patch" Content-Disposition: attachment; filename="0001-Consolidate-the-custom-TUI-query-hook-with-the-defau.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i4pwm1n60 Content-length: 12729 RnJvbSA1ODhkY2MzZWRiZGUxOWY5MGU3NmRlOTY5ZGJmYTdhYjNlMTc5NTFh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXRyaWNrIFBhbGth IDxwYXRyaWNrQHBhcmNzLmF0aC5jeD4KRGF0ZTogRnJpLCA5IEphbiAyMDE1 IDEzOjI3OjU2IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gQ29uc29saWRhdGUg dGhlIGN1c3RvbSBUVUkgcXVlcnkgaG9vayB3aXRoIHRoZSBkZWZhdWx0IHF1 ZXJ5CiBob29rCgpUaGlzIHBhdGNoIHByaW1hcmlseSByZXdyaXRlcyBkZWZh dWx0ZWRfcXVlcnkoKSB0byB1c2UKZ2RiX3JlYWRsaW5lX3dyYXBwZXIoKSB0 byBwcm9tcHQgdGhlIHVzZXIgZm9yIGlucHV0LCBsaWtlCnByb21wdF9mb3Jf Y29udGludWUoKSBkb2VzLiAgVGhlIG1vdGl2YXRpb24gZm9yIHRoaXMgcmV3 cml0ZSBpcyB0byBiZQphYmxlIHRvIHJldXNlIHRoZSBkZWZhdWx0IHF1ZXJ5 IGhvb2sgaW4gVFVJLCBvYnZpYXRpbmcgdGhlIG5lZWQgZm9yIGEKY3VzdG9t IFRVSSBxdWVyeSBob29rLgoKSG93ZXZlciwgaGF2aW5nIFRVSSB1c2UgdGhl IGRlZmF1bHQgcXVlcnkgbWVjaGFuaXNtIGV4cG9zZWQgYSBjb3VwbGUgb2YK bGF0ZW50IGJ1Z3MgaW4gdHVpX3JlZGlzcGxheV9yZWFkbGluZSgpIHJlbGF0 ZWQgdG8gdGhlIGhhbmRsaW5nIG9mCm11bHRpLWxpbmUgcHJvbXB0cywgaW4g cGFydGljdWxhciBHREIncyBtdWx0aS1saW5lIHF1aXQgcHJvbXB0LgoKVGhl IGZpcnN0IGlzc3VlIGlzIGFuIG9mZi1ieS1vbmUgZXJyb3IgaW4gdGhlIGNh bGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQKb2YgdGhlIHByb21wdC4gIFRoZSBj aGVjayBpbiBxdWVzdGlvbiBzaG91bGQgYmUgY29sIDw9IHByZXZfY29sLCBu b3QgYyA8CnByZXZfY29sLCB0byBwcm9wZXJseSBhY2NvdW50IGZvciB0aGUg Y2FzZSB3aGVuIGEgcHJvbXB0IGNvbnRhaW5zCm11bHRpcGxlIGNvbnNlY3V0 aXZlIG5ld2xpbmVzLiAgRmFpbGluZyB0byBkbyBzbyBtYWtlcyBUVUkgaGF2 ZSB0aGUKd3JvbmcgaWRlYSBvZiB0aGUgdmVydGljYWwgaGVpZ2h0IG9mIHRo ZSBwcm9tcHQuICBUaGlzIHBhdGNoIGZpeGVzIHRoZQpjb2x1bW4gY2hlY2su CgpUaGUgc2Vjb25kIGlzc3VlIGlzIHRoYXQgY3VyX2xpbmUgZG9lcyBub3Qg Z2V0IHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUKY3Vyc29yIHBvc2l0aW9uIGlm IHRoZSB1c2VyJ3MgcHJvbXB0IGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRo ZSBwcm9tcHQKKGkuZS4gaWYgcmxfcG9pbnQgPT0gcmxfZW5kKS4gIGN1cl9s aW5lIG9ubHkgZ2V0cyB1cGRhdGVkIGlmIHJsX3BvaW50CmxpZXMgYmV0d2Vl biAwLi5ybF9lbmQtMSBiZWNhdXNlIHRoYXQgaXMgdGhlIGJvdW5kcyBvZiB0 aGUgZm9yIGxvb3AKcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIGN1cl9saW5l LiAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBsb29wJ3MgYm91bmRzCnRvIDAu LnJsX2VuZCBzbyB0aGF0IGN1cl9saW5lIGFsd2F5cyBnZXRzIHVwZGF0ZWQu CgpXaXRoIHRoZXNlIHR3byBidWcgZml4ZXMgb3V0IG9mIHRoZSB3YXksIHRo ZSBkZWZhdWx0IHF1ZXJ5IG1lY2hhbmlzbQp3b3JrcyB3ZWxsIGluIFRVSSBl dmVuIHdpdGggbXVsdGktbGluZSBwcm9tcHRzIGxpa2UgR0RCJ3MgcXVpdCBw cm9tcHQuCgpnZGIvQ2hhbmdlTG9nOgoKCSogdXRpbHMuYyAoZGVmYXVsdGVk X3F1ZXJ5KTogUmV3cml0ZSB0byB1c2UgZ2RiX3JlYWRsaW5lX3dyYXBwZXIK CXRvIHByb21wdCBmb3IgaW5wdXQuCgkqIHR1aS90dWktaG9va3MuYyAodHVp X3F1ZXJ5X2hvb2spOiBSZW1vdmUuCgkodHVpX2luc3RhbGxfaG9va3MpOiBE b24ndCBzZXQgZGVwcmVjYXRlZF9xdWVyeV9ob29rLgoJKiB0dWkvdHVpLWlv LmMgKHR1aV9yZWRpc3BsYXlfcmVhZGxpbmUpOiBGaXggb2ZmLWJ5LW9uZSBl cnJvciBpbgoJaGVpZ2h0IGNhbGN1bGF0aW9uLiAgQWx3YXlzIHVwZGF0ZSB0 aGUgY29tbWFuZCB3aW5kb3cncyBjdXJfbGluZS4KLS0tCiBnZGIvQ2hhbmdl TG9nICAgICAgIHwgIDkgKysrKysrKysKIGdkYi90dWkvdHVpLWhvb2tzLmMg fCA2NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogZ2RiL3R1aS90dWktaW8uYyAgICB8ICA5ICsrKysr LS0tCiBnZGIvdXRpbHMuYyAgICAgICAgIHwgNjEgKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMg Y2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTE0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9nCmlu ZGV4IGY2YjQ0YzMuLjJlOTgxNmEgMTAwNjQ0Ci0tLSBhL2dkYi9DaGFuZ2VM b2cKKysrIGIvZ2RiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1 LTAxLTA5ICBQYXRyaWNrIFBhbGthICA8cGF0cmlja0BwYXJjcy5hdGguY3g+ CisKKwkqIHV0aWxzLmMgKGRlZmF1bHRlZF9xdWVyeSk6IFJld3JpdGUgdG8g dXNlIGdkYl9yZWFkbGluZV93cmFwcGVyCisJdG8gcHJvbXB0IGZvciBpbnB1 dC4KKwkqIHR1aS90dWktaG9va3MuYyAodHVpX3F1ZXJ5X2hvb2spOiBSZW1v dmUuCisJKHR1aV9pbnN0YWxsX2hvb2tzKTogRG9uJ3Qgc2V0IGRlcHJlY2F0 ZWRfcXVlcnlfaG9vay4KKwkqIHR1aS90dWktaW8uYyAodHVpX3JlZGlzcGxh eV9yZWFkbGluZSk6IEZpeCBvZmYtYnktb25lIGVycm9yIGluCisJaGVpZ2h0 IGNhbGN1bGF0aW9uLiAgQWx3YXlzIHVwZGF0ZSB0aGUgY29tbWFuZCB3aW5k b3cncyBjdXJfbGluZS4KKwogMjAxNS0wMS0wOSAgUGVkcm8gQWx2ZXMgIDxw YWx2ZXNAcmVkaGF0LmNvbT4KIAogCSogYnJlYWtwb2ludC5jIChoYXJkd2Fy ZV9icmVha3BvaW50X2luc2VydGVkX2hlcmVfcCk6IE5ldwpkaWZmIC0tZ2l0 IGEvZ2RiL3R1aS90dWktaG9va3MuYyBiL2dkYi90dWkvdHVpLWhvb2tzLmMK aW5kZXggNmJhNjI4NS4uZTUzZjUyNiAxMDA2NDQKLS0tIGEvZ2RiL3R1aS90 dWktaG9va3MuYworKysgYi9nZGIvdHVpL3R1aS1ob29rcy5jCkBAIC02Myw2 OCArNjMsNiBAQCB0dWlfbmV3X29iamZpbGVfaG9vayAoc3RydWN0IG9iamZp bGUqIG9iamZpbGUpCiAgICAgdHVpX2Rpc3BsYXlfbWFpbiAoKTsKIH0KIAot c3RhdGljIGludCBBVFRSSUJVVEVfUFJJTlRGICgxLCAwKQotdHVpX3F1ZXJ5 X2hvb2sgKGNvbnN0IGNoYXIgKm1zZywgdmFfbGlzdCBhcmdwKQotewotICBp bnQgcmV0dmFsOwotICBpbnQgYW5zMjsKLSAgaW50IGFuc3dlcjsKLSAgY2hh ciAqcXVlc3Rpb247Ci0gIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47Ci0K LSAgLyogRm9ybWF0IHRoZSBxdWVzdGlvbiBvdXRzaWRlIG9mIHRoZSBsb29w LCB0byBhdm9pZCByZXVzaW5nCi0gICAgIEFSR1AuICAqLwotICBxdWVzdGlv biA9IHhzdHJ2cHJpbnRmIChtc2csIGFyZ3ApOwotICBvbGRfY2hhaW4gPSBt YWtlX2NsZWFudXAgKHhmcmVlLCBxdWVzdGlvbik7Ci0KLSAgZWNobyAoKTsK LSAgd2hpbGUgKDEpCi0gICAgewotICAgICAgd3JhcF9oZXJlICgiIik7CQkv KiBGbHVzaCBhbnkgYnVmZmVyZWQgb3V0cHV0LiAgKi8KLSAgICAgIGdkYl9m bHVzaCAoZ2RiX3N0ZG91dCk7Ci0KLSAgICAgIGZwdXRzX2ZpbHRlcmVkIChx dWVzdGlvbiwgZ2RiX3N0ZG91dCk7Ci0gICAgICBwcmludGZfZmlsdGVyZWQg KF8oIih5IG9yIG4pICIpKTsKLQotICAgICAgd3JhcF9oZXJlICgiIik7Ci0g ICAgICBnZGJfZmx1c2ggKGdkYl9zdGRvdXQpOwotCi0gICAgICBhbnN3ZXIg PSB0dWlfZ2V0YyAoc3RkaW4pOwotICAgICAgY2xlYXJlcnIgKHN0ZGluKTsJ CS8qIGluIGNhc2Ugb2YgQy1kICovCi0gICAgICBpZiAoYW5zd2VyID09IEVP RikJLyogQy1kICovCi0JewotCSAgcmV0dmFsID0gMTsKLQkgIGJyZWFrOwot CX0KLSAgICAgIC8qIEVhdCByZXN0IG9mIGlucHV0IGxpbmUsIHRvIEVPRiBv ciBuZXdsaW5lLiAgKi8KLSAgICAgIGlmIChhbnN3ZXIgIT0gJ1xuJykKLQlk bwotCSAgewotICAgICAgICAgICAgYW5zMiA9IHR1aV9nZXRjIChzdGRpbik7 Ci0JICAgIGNsZWFyZXJyIChzdGRpbik7Ci0JICB9Ci0Jd2hpbGUgKGFuczIg IT0gRU9GICYmIGFuczIgIT0gJ1xuJyAmJiBhbnMyICE9ICdccicpOwotCi0g ICAgICBpZiAoYW5zd2VyID49ICdhJykKLQlhbnN3ZXIgLT0gMDQwOwotICAg ICAgaWYgKGFuc3dlciA9PSAnWScpCi0JewotCSAgcmV0dmFsID0gMTsKLQkg IGJyZWFrOwotCX0KLSAgICAgIGlmIChhbnN3ZXIgPT0gJ04nKQotCXsKLQkg IHJldHZhbCA9IDA7Ci0JICBicmVhazsKLQl9Ci0gICAgICBwcmludGZfZmls dGVyZWQgKF8oIlBsZWFzZSBhbnN3ZXIgeSBvciBuLlxuIikpOwotICAgIH0K LSAgbm9lY2hvICgpOwotCi0gIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOwot ICByZXR1cm4gcmV0dmFsOwotfQotCiAvKiBQcmV2ZW50IHJlY3Vyc2lvbiBv ZiBkZXByZWNhdGVkX3JlZ2lzdGVyX2NoYW5nZWRfaG9vaygpLiAgKi8KIHN0 YXRpYyBpbnQgdHVpX3JlZnJlc2hpbmdfcmVnaXN0ZXJzID0gMDsKIApAQCAt MjYzLDggKzIwMSw2IEBAIHR1aV9pbnN0YWxsX2hvb2tzICh2b2lkKQogICBk ZXByZWNhdGVkX3ByaW50X2ZyYW1lX2luZm9fbGlzdGluZ19ob29rCiAgICAg PSB0dWlfcHJpbnRfZnJhbWVfaW5mb19saXN0aW5nX2hvb2s7CiAKLSAgZGVw cmVjYXRlZF9xdWVyeV9ob29rID0gdHVpX3F1ZXJ5X2hvb2s7Ci0KICAgLyog SW5zdGFsbCB0aGUgZXZlbnQgaG9va3MuICAqLwogICB0dWlfYnBfY3JlYXRl ZF9vYnNlcnZlcgogICAgID0gb2JzZXJ2ZXJfYXR0YWNoX2JyZWFrcG9pbnRf Y3JlYXRlZCAodHVpX2V2ZW50X2NyZWF0ZV9icmVha3BvaW50KTsKZGlmZiAt LWdpdCBhL2dkYi90dWkvdHVpLWlvLmMgYi9nZGIvdHVpL3R1aS1pby5jCmlu ZGV4IDIzM2U3YTYuLjdlOGEzYmMgMTAwNjQ0Ci0tLSBhL2dkYi90dWkvdHVp LWlvLmMKKysrIGIvZ2RiL3R1aS90dWktaW8uYwpAQCAtMjM0LDIwICsyMzQs MjMgQEAgdHVpX3JlZGlzcGxheV9yZWFkbGluZSAodm9pZCkKICAgICB7CiAg ICAgICB3YWRkY2ggKHcsIHByb21wdFtpbl0pOwogICAgICAgZ2V0eXggKHcs IGxpbmUsIGNvbCk7Ci0gICAgICBpZiAoY29sIDwgcHJldl9jb2wpCisgICAg ICBpZiAoY29sIDw9IHByZXZfY29sKQogICAgICAgICBoZWlnaHQrKzsKICAg ICAgIHByZXZfY29sID0gY29sOwogICAgIH0KLSAgZm9yIChpbiA9IDA7IGlu IDwgcmxfZW5kOyBpbisrKQorICBmb3IgKGluID0gMDsgaW4gPD0gcmxfZW5k OyBpbisrKQogICAgIHsKICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKICAgICAg IAotICAgICAgYyA9ICh1bnNpZ25lZCBjaGFyKSBybF9saW5lX2J1ZmZlcltp bl07CiAgICAgICBpZiAoaW4gPT0gcmxfcG9pbnQpCiAJewogICAgICAgICAg IGdldHl4ICh3LCBjX2xpbmUsIGNfcG9zKTsKIAl9CiAKKyAgICAgIGlmIChp biA9PSBybF9lbmQpCisgICAgICAgIGJyZWFrOworCisgICAgICBjID0gKHVu c2lnbmVkIGNoYXIpIHJsX2xpbmVfYnVmZmVyW2luXTsKICAgICAgIGlmIChD VFJMX0NIQVIgKGMpIHx8IGMgPT0gUlVCT1VUKQogCXsKICAgICAgICAgICB3 YWRkY2ggKHcsICdeJyk7CmRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dk Yi91dGlscy5jCmluZGV4IDcyYjFlMmEuLmE5YTMwODIgMTAwNjQ0Ci0tLSBh L2dkYi91dGlscy5jCisrKyBiL2dkYi91dGlscy5jCkBAIC0xMTk4LDEyICsx MTk4LDExIEBAIGNvbXBpbGVfcnhfb3JfZXJyb3IgKHJlZ2V4X3QgKnBhdHRl cm4sIGNvbnN0IGNoYXIgKnJ4LCBjb25zdCBjaGFyICptZXNzYWdlKQogc3Rh dGljIGludCBBVFRSSUJVVEVfUFJJTlRGICgxLCAwKQogZGVmYXVsdGVkX3F1 ZXJ5IChjb25zdCBjaGFyICpjdGxzdHIsIGNvbnN0IGNoYXIgZGVmY2hhciwg dmFfbGlzdCBhcmdzKQogewotICBpbnQgYW5zd2VyOwogICBpbnQgYW5zMjsK ICAgaW50IHJldHZhbDsKICAgaW50IGRlZl92YWx1ZTsKICAgY2hhciBkZWZf YW5zd2VyLCBub3RfZGVmX2Fuc3dlcjsKLSAgY2hhciAqeV9zdHJpbmcsICpu X3N0cmluZywgKnF1ZXN0aW9uOworICBjaGFyICp5X3N0cmluZywgKm5fc3Ry aW5nLCAqcXVlc3Rpb24sICpwcm9tcHQ7CiAgIC8qIFVzZWQgdG8gYWRkIGR1 cmF0aW9uIHdlIHdhaXRlZCBmb3IgdXNlciB0byByZXNwb25kIHRvCiAgICAg IHByb21wdF9mb3JfY29udGludWVfd2FpdF90aW1lLiAgKi8KICAgc3RydWN0 IHRpbWV2YWwgcHJvbXB0X3N0YXJ0ZWQsIHByb21wdF9lbmRlZCwgcHJvbXB0 X2RlbHRhOwpAQCAtMTI2Myw2MiArMTI2MiwzMSBAQCBkZWZhdWx0ZWRfcXVl cnkgKGNvbnN0IGNoYXIgKmN0bHN0ciwgY29uc3QgY2hhciBkZWZjaGFyLCB2 YV9saXN0IGFyZ3MpCiAKICAgLyogRm9ybWF0IHRoZSBxdWVzdGlvbiBvdXRz aWRlIG9mIHRoZSBsb29wLCB0byBhdm9pZCByZXVzaW5nIGFyZ3MuICAqLwog ICBxdWVzdGlvbiA9IHhzdHJ2cHJpbnRmIChjdGxzdHIsIGFyZ3MpOworICBw cm9tcHQgPSB4c3RycHJpbnRmIChfKCIlcyVzKCVzIG9yICVzKSAlcyIpLAor CQkgICAgICBhbm5vdGF0aW9uX2xldmVsID4gMSA/ICJcblwwMzJcMDMycHJl LXF1ZXJ5XG4iIDogIiIsCisJCSAgICAgIHF1ZXN0aW9uLCB5X3N0cmluZywg bl9zdHJpbmcsCisJCSAgICAgIGFubm90YXRpb25fbGV2ZWwgPiAxID8gIlxu XDAzMlwwMzJxdWVyeVxuIiA6ICIiKTsKKyAgeGZyZWUgKHF1ZXN0aW9uKTsK IAogICAvKiBVc2VkIGZvciBjYWxjdWxhdGluZyB0aW1lIHNwZW5kIHdhaXRp bmcgZm9yIHVzZXIuICAqLwogICBnZXR0aW1lb2ZkYXkgKCZwcm9tcHRfc3Rh cnRlZCwgTlVMTCk7CiAKICAgd2hpbGUgKDEpCiAgICAgewotICAgICAgd3Jh cF9oZXJlICgiIik7CQkvKiBGbHVzaCBhbnkgYnVmZmVyZWQgb3V0cHV0LiAg Ki8KLSAgICAgIGdkYl9mbHVzaCAoZ2RiX3N0ZG91dCk7Ci0KLSAgICAgIGlm IChhbm5vdGF0aW9uX2xldmVsID4gMSkKLQlwcmludGZfZmlsdGVyZWQgKCgi XG5cMDMyXDAzMnByZS1xdWVyeVxuIikpOwotCi0gICAgICBmcHV0c19maWx0 ZXJlZCAocXVlc3Rpb24sIGdkYl9zdGRvdXQpOwotICAgICAgcHJpbnRmX2Zp bHRlcmVkIChfKCIoJXMgb3IgJXMpICIpLCB5X3N0cmluZywgbl9zdHJpbmcp OwotCi0gICAgICBpZiAoYW5ub3RhdGlvbl9sZXZlbCA+IDEpCi0JcHJpbnRm X2ZpbHRlcmVkICgoIlxuXDAzMlwwMzJxdWVyeVxuIikpOworICAgICAgY2hh ciAqcmVzcG9uc2UsIGFuc3dlcjsKIAotICAgICAgd3JhcF9oZXJlICgiIik7 CiAgICAgICBnZGJfZmx1c2ggKGdkYl9zdGRvdXQpOworICAgICAgcmVzcG9u c2UgPSBnZGJfcmVhZGxpbmVfd3JhcHBlciAocHJvbXB0KTsKIAotICAgICAg YW5zd2VyID0gZmdldGMgKHN0ZGluKTsKLQotICAgICAgLyogV2UgZXhwZWN0 IGZnZXRjIHRvIGJsb2NrIHVudGlsIGEgY2hhcmFjdGVyIGlzIHJlYWQuICBC dXQKLSAgICAgICAgIHRoaXMgbWF5IG5vdCBiZSB0aGUgY2FzZSBpZiB0aGUg dGVybWluYWwgd2FzIG9wZW5lZCB3aXRoCi0gICAgICAgICB0aGUgTk9OQkxP Q0sgZmxhZy4gIEluIHRoYXQgY2FzZSwgaWYgdGhlcmUgaXMgbm90aGluZyB0 bwotICAgICAgICAgcmVhZCBvbiBzdGRpbiwgZmdldGMgcmV0dXJucyBFT0Ys IGJ1dCBhbHNvIHNldHMgdGhlIGVycm9yCi0gICAgICAgICBjb25kaXRpb24g ZmxhZyBvbiBzdGRpbiBhbmQgZXJybm8gdG8gRUFHQUlOLiAgV2l0aCBhIHRy dWUKLSAgICAgICAgIEVPRiwgc3RkaW4ncyBlcnJvciBjb25kaXRpb24gZmxh ZyBpcyBub3Qgc2V0LgotCi0gICAgICAgICBBIHNpdHVhdGlvbiB3aGVyZSB0 aGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBpcyBhIHBzZXVkbwotICAgICAg ICAgdGVybWluYWwgb24gQUlYLiAgKi8KLSAgICAgIHdoaWxlIChhbnN3ZXIg PT0gRU9GICYmIGZlcnJvciAoc3RkaW4pICYmIGVycm5vID09IEVBR0FJTikK LSAgICAgICAgewotICAgICAgICAgIC8qIE5vdCBhIHJlYWwgRU9GLiAgV2Fp dCBhIGxpdHRsZSB3aGlsZSBhbmQgdHJ5IGFnYWluIHVudGlsCi0gICAgICAg ICAgICAgd2UgcmVhZCBzb21ldGhpbmcuICAqLwotICAgICAgICAgIGNsZWFy ZXJyIChzdGRpbik7Ci0gICAgICAgICAgZ2RiX3VzbGVlcCAoMTAwMDApOwot ICAgICAgICAgIGFuc3dlciA9IGZnZXRjIChzdGRpbik7Ci0gICAgICAgIH0K LQotICAgICAgY2xlYXJlcnIgKHN0ZGluKTsJCS8qIGluIGNhc2Ugb2YgQy1k ICovCi0gICAgICBpZiAoYW5zd2VyID09IEVPRikJLyogQy1kICovCisgICAg ICBpZiAocmVzcG9uc2UgPT0gTlVMTCkJLyogQy1kICAqLwogCXsKIAkgIHBy aW50Zl9maWx0ZXJlZCAoIkVPRiBbYXNzdW1lZCAlY11cbiIsIGRlZl9hbnN3 ZXIpOwogCSAgcmV0dmFsID0gZGVmX3ZhbHVlOwogCSAgYnJlYWs7CiAJfQot ICAgICAgLyogRWF0IHJlc3Qgb2YgaW5wdXQgbGluZSwgdG8gRU9GIG9yIG5l d2xpbmUuICAqLwotICAgICAgaWYgKGFuc3dlciAhPSAnXG4nKQotCWRvCi0J ICB7Ci0JICAgIGFuczIgPSBmZ2V0YyAoc3RkaW4pOwotCSAgICBjbGVhcmVy ciAoc3RkaW4pOwotCSAgfQotCXdoaWxlIChhbnMyICE9IEVPRiAmJiBhbnMy ICE9ICdcbicgJiYgYW5zMiAhPSAnXHInKTsKKworICAgICAgYW5zd2VyID0g cmVzcG9uc2VbMF07CisgICAgICB4ZnJlZSAocmVzcG9uc2UpOwogCiAgICAg ICBpZiAoYW5zd2VyID49ICdhJykKIAlhbnN3ZXIgLT0gMDQwOwpAQCAtMTMz Myw4ICsxMzAxLDcgQEAgZGVmYXVsdGVkX3F1ZXJ5IChjb25zdCBjaGFyICpj dGxzdHIsIGNvbnN0IGNoYXIgZGVmY2hhciwgdmFfbGlzdCBhcmdzKQogICAg ICAgICAgc3BlY2lmeSB0aGUgcmVxdWlyZWQgaW5wdXQgb3IgaGF2ZSBpdCBk ZWZhdWx0IGJ5IGVudGVyaW5nCiAgICAgICAgICBub3RoaW5nLiAgKi8KICAg ICAgIGlmIChhbnN3ZXIgPT0gZGVmX2Fuc3dlcgotCSAgfHwgKGRlZmNoYXIg IT0gJ1wwJyAmJgotCSAgICAgIChhbnN3ZXIgPT0gJ1xuJyB8fCBhbnN3ZXIg PT0gJ1xyJyB8fCBhbnN3ZXIgPT0gRU9GKSkpCisJICB8fCAoZGVmY2hhciAh PSAnXDAnICYmIGFuc3dlciA9PSAnXDAnKSkKIAl7CiAJICByZXR2YWwgPSBk ZWZfdmFsdWU7CiAJICBicmVhazsKQEAgLTEzNTAsNyArMTMxNyw3IEBAIGRl ZmF1bHRlZF9xdWVyeSAoY29uc3QgY2hhciAqY3Rsc3RyLCBjb25zdCBjaGFy IGRlZmNoYXIsIHZhX2xpc3QgYXJncykKICAgdGltZXZhbF9hZGQgKCZwcm9t cHRfZm9yX2NvbnRpbnVlX3dhaXRfdGltZSwKICAgICAgICAgICAgICAgICZw cm9tcHRfZm9yX2NvbnRpbnVlX3dhaXRfdGltZSwgJnByb21wdF9kZWx0YSk7 CiAKLSAgeGZyZWUgKHF1ZXN0aW9uKTsKKyAgeGZyZWUgKHByb21wdCk7CiAg IGlmIChhbm5vdGF0aW9uX2xldmVsID4gMSkKICAgICBwcmludGZfZmlsdGVy ZWQgKCgiXG5cMDMyXDAzMnBvc3QtcXVlcnlcbiIpKTsKICAgcmV0dXJuIHJl dHZhbDsKLS0gCjIuMi4xLjIxMi5nYzViOTI1NgoK --047d7bd6bda41fdd11050c3c6d2f--