From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Keith David Bershatsky Newsgroups: gmane.emacs.bugs Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Date: Fri, 29 Jan 2016 07:54:08 -0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Fri_Jan_29_07:54:07_2016-1" X-Trace: ger.gmane.org 1454082937 12645 80.91.229.3 (29 Jan 2016 15:55:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 29 Jan 2016 15:55:37 +0000 (UTC) Cc: 22404@debbugs.gnu.org To: Eli Zaretskii ,Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jan 29 16:55:23 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aPBOF-0004qW-9x for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Jan 2016 16:55:15 +0100 Original-Received: from localhost ([::1]:34980 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPBOB-0001OP-89 for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Jan 2016 10:55:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPBO7-0001OG-Bc for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2016 10:55:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aPBO2-0003zC-BZ for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2016 10:55:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:52516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPBO2-0003z5-7w for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2016 10:55:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aPBO1-0001oI-KD for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2016 10:55:01 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Keith David Bershatsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 29 Jan 2016 15:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 22404-submit@debbugs.gnu.org id=B22404.14540828586904 (code B ref 22404); Fri, 29 Jan 2016 15:55:01 +0000 Original-Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 15:54:18 +0000 Original-Received: from localhost ([127.0.0.1]:40736 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aPBNK-0001nI-2L for submit@debbugs.gnu.org; Fri, 29 Jan 2016 10:54:18 -0500 Original-Received: from cobb.liquidweb.com ([50.28.13.150]:45649) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aPBNI-0001n6-H8 for 22404@debbugs.gnu.org; Fri, 29 Jan 2016 10:54:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=ehfdvhWq4g/1Vpood9NQyItt5pXUBRX/U+YUSUHQizs=; b=hlx394nZM8vr/DRuSVQ1CU5YkVTTEmAwYlxKsAW7TpCL9EokqFbIRESor8IhBlgCRHCIg/siivK3Y9KO1lz4MsdO4tD8vBAW5xWVNfR6jSlgnFc3pVD40f13tMw2ad87; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:49569 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from ) id 1aPBN8-0000SQ-2d; Fri, 29 Jan 2016 10:54:06 -0500 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com 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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:112081 Archived-At: --Multipart_Fri_Jan_29_07:54:07_2016-1 Content-Type: text/plain; charset=US-ASCII In reading the comments in `xdisp.c`, there is a lot of mention about checking to see if the function that ran changed `window-start` and whether the cursor is still visible. In my own tests over the past few days, I created something just like `post-redisplay-hook` that runs towards the end of redisplay. I felt that my own feeble attempt to create the equivalent of the `post-redisplay-hook` had no checking built-in (due to lack knowledge / experience on my part). So, I love the idea of a `post-redisplay-hook`, but think there probably needs to be some type of check to see whether the function that ran from it did some things that require certain recalculations -- e.g., maybe cursor was moved and is no longer partially or fully visible (there is even a setting I discovered where a user can decide that a partially visible cursor is just fine), maybe some text was inserted prior to window-start (which means the prior value is outdated), etc. Sorry that I didn't understand your previous comments about the `pre-command-hook` potentially being a substitute for the contemplated `post-redisplay-hook`. Michael is correct -- the goal is generally to have the screen looking perfectly once redisplay concludes and the `pre-command-hook` (after the fact) can't accomplish that goal. When switching windows, the `pre-command-hook` will also have the wrong window in mind -- the correct window/buffer needs to be determined after the main command finishes. Attached is an example of what I have been using for the past few days while I continue my ongoing tinkering -- it creates a new animal just like `window-scroll-functions` but with a different name. Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Fri, 29 Jan 2016 16:37:16 +0200, Eli Zaretskii wrote: > > > From: Michael Heerdegen > > Cc: Keith David Bershatsky , 22404@debbugs.gnu.org > > Date: Fri, 29 Jan 2016 13:00:42 +0100 > > > > Anyway, using pre-command-hook is too late for us: it's not executed > > unless the next input arrives, so you have to hit a key until > > decorations or whatever get updated. > > Then maybe we need a post-redisplay-hook. --Multipart_Fri_Jan_29_07:54:07_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="wsf.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCA0YWViOGIzLi44 ZmRjOWY5IDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC0z MjI4LDYgKzMyMjgsMTYgQEAgSWYgV0lORE9XIGlzIG9taXR0ZWQgb3IgbmlsLCBpdCBkZWZhdWx0 cyB0byB0aGUgc2VsZWN0ZWQgd2luZG93LiAgKi8pCiAgIHJldHVybiBRbmlsOwogfQogCitERUZV TiAoImZvcmNlLXdzZiIsIEZmb3JjZV93c2YsIFNmb3JjZV93c2YsIDAsIDEsIDAsCisgICAgICAg ZG9jOiAvKiBTZXQgd3NmX3RvZ2dsZSBzbyB0aGF0IHJlZGlzcGxheV93aW5kb3cgd2lsbCBydW4g YHdzZi1ob29rJworKGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lKSBldmVuIGlmIG5vIHdpbmRvdyBz Y3JvbGxpbmcgb2NjdXJzLiAgKi8pCisgIChMaXNwX09iamVjdCB3aW5kb3cpCit7CisgIHJlZ2lz dGVyIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdpbmRvdyk7CisgICAg dy0+d3NmX3RvZ2dsZSA9IHRydWU7CisgICAgcmV0dXJuIHdpbmRvdzsKK30KKwogLyogTWFrZSBX SU5ET1cgZGlzcGxheSBCVUZGRVIuICBSVU5fSE9PS1NfUCBtZWFucyBpdCdzIGFsbG93ZWQKICAg IHRvIHJ1biBob29rcy4gIFNlZSBtYWtlX2ZyYW1lIGZvciBhIGNhc2Ugd2hlcmUgaXQncyBub3Qg YWxsb3dlZC4KICAgIEtFRVBfTUFSR0lOU19QIG1lYW5zIHRoYXQgdGhlIGN1cnJlbnQgbWFyZ2lu cywgZnJpbmdlcywgYW5kCkBAIC03NDIxLDYgKzc0MzEsNyBAQCBkaXNwbGF5ZWQgYWZ0ZXIgYSBz Y3JvbGxpbmcgb3BlcmF0aW9uIHRvIGJlIHNvbWV3aGF0IGluYWNjdXJhdGUuICAqLyk7CiAgIGRl ZnN1YnIgKCZTc2V0X3dpbmRvd19idWZmZXIpOwogICBkZWZzdWJyICgmU3J1bl93aW5kb3dfY29u ZmlndXJhdGlvbl9jaGFuZ2VfaG9vayk7CiAgIGRlZnN1YnIgKCZTcnVuX3dpbmRvd19zY3JvbGxf ZnVuY3Rpb25zKTsKKyAgZGVmc3ViciAoJlNmb3JjZV93c2YpOwogICBkZWZzdWJyICgmU3NlbGVj dF93aW5kb3cpOwogICBkZWZzdWJyICgmU2ZvcmNlX3dpbmRvd191cGRhdGUpOwogICBkZWZzdWJy ICgmU3NwbGl0X3dpbmRvd19pbnRlcm5hbCk7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmggYi9z cmMvd2luZG93LmgKaW5kZXggYzI5MjA3ZC4uMTFhZWExMyAxMDA2NDQKLS0tIGEvc3JjL3dpbmRv dy5oCisrKyBiL3NyYy93aW5kb3cuaApAQCAtMzQ4LDYgKzM0OCw5IEBAIHN0cnVjdCB3aW5kb3cK ICAgICAgICBWd2luZG93X3Njcm9sbF9mdW5jdGlvbnM7IGFsc28gYnkgRnJlY2VudGVyIHdpdGgg YXJndW1lbnQuICAqLwogICAgIGJvb2xfYmYgb3B0aW9uYWxfbmV3X3N0YXJ0IDogMTsKIAorICAg IC8qIFRydWUgbWVhbnMgZm9yY2UgYSBjYWxsIHRvIFZ3c2ZfaG9vay4gICovCisgICAgYm9vbF9i ZiB3c2ZfdG9nZ2xlIDogMTsKKwogICAgIC8qIFRydWUgbWVhbnMgdGhlIGN1cnNvciBpcyBjdXJy ZW50bHkgZGlzcGxheWVkLiAgVGhpcyBjYW4gYmUKICAgICAgICBzZXQgdG8gemVybyBieSBmdW5j dGlvbnMgb3ZlcnBhaW50aW5nIHRoZSBjdXJzb3IgaW1hZ2UuICAqLwogICAgIGJvb2xfYmYgcGh5 c19jdXJzb3Jfb25fcCA6IDE7CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5j CmluZGV4IGQ3MzBhMGIuLjQxNmY2MzIgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3Ny Yy94ZGlzcC5jCkBAIC0xMzY3Miw2ICsxMzY3Miw3IEBAIHJlZGlzcGxheV9pbnRlcm5hbCAodm9p ZCkKICAgICAgICYmIG1hdGNoX3AKICAgICAgICYmICF3LT5mb3JjZV9zdGFydAogICAgICAgJiYg IXctPm9wdGlvbmFsX25ld19zdGFydAorICAgICAgJiYgIXctPndzZl90b2dnbGUKICAgICAgIC8q IFBvaW50IG11c3QgYmUgb24gdGhlIGxpbmUgdGhhdCB3ZSBoYXZlIGluZm8gcmVjb3JkZWQgYWJv dXQuICAqLwogICAgICAgJiYgUFQgPj0gQ0hBUlBPUyAodGxidWZwb3MpCiAgICAgICAmJiBQVCA8 PSBaIC0gQ0hBUlBPUyAodGxlbmRwb3MpCkBAIC0xNTAzMCw2ICsxNTAzMSwyMiBAQCBydW5fd2lu ZG93X3Njcm9sbF9mdW5jdGlvbnMgKExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IHRleHRfcG9z IHN0YXJ0cCkKICAgcmV0dXJuIHN0YXJ0cDsKIH0KIAorc3RhdGljIHN0cnVjdCB0ZXh0X3Bvcwor cnVuX3dzZiAoTGlzcF9PYmplY3Qgd2luZG93LCBzdHJ1Y3QgdGV4dF9wb3Mgc3RhcnRwLCBzdHJ1 Y3QgdGV4dF9wb3MgZW5kcCkKK3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRv dyk7CisgIFNFVF9NQVJLRVJfRlJPTV9URVhUX1BPUyAody0+c3RhcnQsIHN0YXJ0cCk7CisgIGVh c3NlcnQgKGN1cnJlbnRfYnVmZmVyID09IFhCVUZGRVIgKHctPmNvbnRlbnRzKSk7CisgIGlmICgh TklMUCAoVndzZl9ob29rKQorICAgICAgJiYgKEZsb2NhbF92YXJpYWJsZV9wIChRd3NmX3Zhciwg RndpbmRvd19idWZmZXIgKHdpbmRvdykpKSkKKyAgICB7CisgICAgICBDQUxMTiAoRnJ1bl9ob29r X3dpdGhfYXJncywgUXdzZl9ob29rLCB3aW5kb3csIG1ha2VfbnVtYmVyIChDSEFSUE9TIChzdGFy dHApKSwgbWFrZV9udW1iZXIgKENIQVJQT1MgKGVuZHApKSk7CisgICAgICBTRVRfVEVYVF9QT1Nf RlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+c3RhcnQpOworICAgICAgLyogSW4gY2FzZSB0aGUgaG9v ayBmdW5jdGlvbnMgc3dpdGNoIGJ1ZmZlcnMuICAqLworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5h bCAoWEJVRkZFUiAody0+Y29udGVudHMpKTsKKyAgICB9CisgIHJldHVybiBzdGFydHA7Cit9CiAK IC8qIE1ha2Ugc3VyZSB0aGUgbGluZSBjb250YWluaW5nIHRoZSBjdXJzb3IgaXMgZnVsbHkgdmlz aWJsZS4KICAgIEEgdmFsdWUgb2YgdHJ1ZSBtZWFucyB0aGVyZSBpcyBub3RoaW5nIHRvIGJlIGRv bmUuCkBAIC0xNTM3MSw2ICsxNTM4OCwxMSBAQCB0cnlfc2Nyb2xsaW5nIChMaXNwX09iamVjdCB3 aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICAvKiBSdW4gd2luZG93IHNjcm9sbCBmdW5j dGlvbnMuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRv dywgc3RhcnRwKTsKIAorICBzdGFydHAgPSBydW5fd3NmICh3aW5kb3csIHN0YXJ0cCwgc3RhcnRw KTsKKyNpZmRlZiBHTFlQSF9ERUJVRworICBkZWJ1Z19tZXRob2RfYWRkICh3LCAicnVuX3dzZiBb MSBvZiAzXSB3YXMgZXhlY3V0ZWQiKTsKKyNlbmRpZgorCiAgIC8qIERpc3BsYXkgdGhlIHdpbmRv dy4gIEdpdmUgdXAgaWYgbmV3IGZvbnRzIGFyZSBsb2FkZWQsIG9yIGlmIHBvaW50CiAgICAgIGRv ZXNuJ3QgYXBwZWFyLiAgKi8KICAgaWYgKCF0cnlfd2luZG93ICh3aW5kb3csIHN0YXJ0cCwgMCkp CkBAIC0xNjIyNSwxMyArMTYyNDcsMTIgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qg d2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmll ZCBhIG5ldyBzdGFydGluZyBwb2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdo ZXRoZXIgaXQgY2FuIGJlIHVzZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8 fCB3aW5kb3dfZnJvemVuX3AgKHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3 LT53c2ZfdG9nZ2xlIHx8IHdpbmRvd19mcm96ZW5fcCAodykpCiAgICAgICAmJiBDSEFSUE9TIChz dGFydHApID49IEJFR1YKICAgICAgICYmIENIQVJQT1MgKHN0YXJ0cCkgPD0gWlYpCiAgICAgewog ICAgICAgcHRyZGlmZl90IGl0X2NoYXJwb3M7CiAKLSAgICAgIHctPm9wdGlvbmFsX25ld19zdGFy dCA9IGZhbHNlOwogICAgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOwogICAgICAg bW92ZV9pdF90byAoJml0LCBQVCwgMCwgaXQubGFzdF92aXNpYmxlX3ksIC0xLAogCQkgIE1PVkVf VE9fUE9TIHwgTU9WRV9UT19YIHwgTU9WRV9UT19ZKTsKQEAgLTE2MjUyLDE0ICsxNjI3MywyOCBA QCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29u ZV9wKQogCSAgICB3LT5mb3JjZV9zdGFydCA9IHRydWU7CiAjaWZkZWYgR0xZUEhfREVCVUcKIAkg IGlmICh3LT5mb3JjZV9zdGFydCkKLQkgICAgewotCSAgICAgIGlmICh3aW5kb3dfZnJvemVuX3Ag KHcpKQotCQlkZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gZnJvemVu IHdpbmRvdyBzdGFydCIpOwotCSAgICAgIGVsc2UKLQkJZGVidWdfbWV0aG9kX2FkZCAodywgInNl dCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25ld19zdGFydCIpOwotCSAgICB9CisgICAgewor ICAgICAgaWYgKHdpbmRvd19mcm96ZW5fcCAodykpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdf bWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3RhcnQi KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKHctPm9wdGlvbmFsX25ld19zdGFydCkKKyAgICAg ICAgeworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20g b3B0aW9uYWxfbmV3X3N0YXJ0Iik7CisgICAgICB9CisgICAgICBlbHNlIGlmICh3LT53c2ZfdG9n Z2xlKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vf c3RhcnQgZnJvbSB3c2ZfdG9nZ2xlIik7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsK KyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIlRoaXMgc2l0dWF0aW9uIGlzIG5vdCB5ZXQg Y29udGVtcGxhdGVkLiIpOworICAgICAgfQorICAgIH0KICNlbmRpZgogCX0KKyAgICAgIHctPm9w dGlvbmFsX25ld19zdGFydCA9IGZhbHNlOworICAgICAgdy0+d3NmX3RvZ2dsZSA9IGZhbHNlOwog ICAgIH0KIAogIGZvcmNlX3N0YXJ0OgpAQCAtMTYyODcsMTEgKzE2MzIyLDE5IEBAIHJlZGlzcGxh eV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJIHRo YW4gdG8gZ2V0IGludG8gYW4gaW5maW5pdGUgbG9vcCBjYWxsaW5nIHRoZSBob29rIGZ1bmN0aW9u cwogCSBhbmQgaGF2aW5nIHRoZW0gZ2V0IG1vcmUgZXJyb3JzLiAgKi8KICAgICAgIGlmICghdXBk YXRlX21vZGVfbGluZQotCSAgfHwgISBOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpKQor CSAgfHwgISBOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpCisJICB8fCAhIE5JTFAgKFZ3 c2ZfaG9vaykpCiAJewogCSAgdXBkYXRlX21vZGVfbGluZSA9IHRydWU7CiAJICB3LT51cGRhdGVf bW9kZV9saW5lID0gdHJ1ZTsKKyAgLyogUnVuIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8K IAkgIHN0YXJ0cCA9IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHAp OworCisgIHN0YXJ0cCA9IHJ1bl93c2YgKHdpbmRvdywgc3RhcnRwLCBzdGFydHApOworI2lmZGVm IEdMWVBIX0RFQlVHCisgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJydW5fd3NmIFsyIG9mIDNdIHdh cyBleGVjdXRlZCIpOworI2VuZGlmCisKIAl9CiAKICAgICAgIGlmIChDSEFSUE9TIChzdGFydHAp IDwgQkVHVikKQEAgLTE2NTU5LDYgKzE2NjAyLDcgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9P YmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAgIGJlY2F1c2UgYSB3aW5k b3cgc2Nyb2xsIGZ1bmN0aW9uIGNhbiBoYXZlIGNoYW5nZWQgdGhlCiAJICAgICBidWZmZXIuICAq LwogCSAgfHwgIU5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKwkgIHx8ICFOSUxQIChW d3NmX2hvb2spCiAJICB8fCBNSU5JX1dJTkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRf bWF0cml4X3AKIAkgICAgICAgPSB0cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcp KSkKQEAgLTE2NzU2LDYgKzE2ODAwLDExIEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0 IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAgIC8qIFJ1biBzY3JvbGwgaG9va3MuICAq LwogICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgaXQuY3Vy cmVudC5wb3MpOwogCisgIHN0YXJ0cCA9IHJ1bl93c2YgKHdpbmRvdywgaXQuY3VycmVudC5wb3Ms IGl0LmN1cnJlbnQucG9zKTsKKyNpZmRlZiBHTFlQSF9ERUJVRworICBkZWJ1Z19tZXRob2RfYWRk ICh3LCAicnVuX3dzZiBbMyBvZiAzXSBleGVjdXRlZCIpOworI2VuZGlmCisKICAgLyogUmVkaXNw bGF5IHRoZSB3aW5kb3cuICAqLwogICBib29sIHVzZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwog ICBpZiAoIWN1cnJlbnRfbWF0cml4X3VwX3RvX2RhdGVfcApAQCAtMTY3NjQsNiArMTY4MTMsNyBA QCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29u ZV9wKQogICAgICAgLyogRG9uJ3QgdXNlIHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJp eCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVzZSBpdCBjYW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIu ICAqLwogICAgICAgfHwgIU5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8 ICFOSUxQIChWd3NmX2hvb2spCiAgICAgICB8fCAhanVzdF90aGlzX29uZV9wCiAgICAgICB8fCBN SU5JX1dJTkRPV19QICh3KQogICAgICAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKQEAgLTIz NjE2LDYgKzIzNjY2LDIwIEBAIGRlY29kZV9tb2RlX3NwZWMgKHN0cnVjdCB3aW5kb3cgKncsIHJl Z2lzdGVyIGludCBjLCBpbnQgZmllbGRfd2lkdGgsCiAJICByZXR1cm4gIkAiOwogICAgICAgfQog CisgICAgY2FzZSAndyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfc3RhcnQgPSBtYXJr ZXJfcG9zaXRpb24gKHctPnN0YXJ0KTsKKyAgcGludDJzdHIgKGRlY29kZV9tb2RlX3NwZWNfYnVm LCB3aWR0aCwgd2luZG93X3N0YXJ0KTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOwor ICAgICAgfQorCisgICAgY2FzZSAnVyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfZW5k ID0gQlVGX1ogKGIpIC0gdy0+d2luZG93X2VuZF9wb3M7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9k ZV9zcGVjX2J1Ziwgd2lkdGgsIHdpbmRvd19lbmQpOworICByZXR1cm4gZGVjb2RlX21vZGVfc3Bl Y19idWY7CisgICAgICB9CisKICAgICBjYXNlICd6JzoKICAgICAgIC8qIGNvZGluZy1zeXN0ZW0g KG5vdCBpbmNsdWRpbmcgZW5kLW9mLWxpbmUgZm9ybWF0KSAqLwogICAgIGNhc2UgJ1onOgpAQCAt MzA5MjgsNiArMzA5OTIsNyBAQCBUaGV5IGFyZSBzdGlsbCBsb2dnZWQgdG8gdGhlICpNZXNzYWdl cyogYnVmZmVyLiAgKi8pOwogICBERUZTWU0gKFFvdmVycmlkaW5nX3Rlcm1pbmFsX2xvY2FsX21h cCwgIm92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUW92ZXJyaWRp bmdfbG9jYWxfbWFwLCAib3ZlcnJpZGluZy1sb2NhbC1tYXAiKTsKICAgREVGU1lNIChRd2luZG93 X3Njcm9sbF9mdW5jdGlvbnMsICJ3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucyIpOworICBERUZTWU0g KFF3c2ZfaG9vaywgIndzZi1ob29rIik7CiAgIERFRlNZTSAoUXdpbmRvd190ZXh0X2NoYW5nZV9m dW5jdGlvbnMsICJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIik7CiAgIERFRlNZTSAoUXJl ZGlzcGxheV9lbmRfdHJpZ2dlcl9mdW5jdGlvbnMsICJyZWRpc3BsYXktZW5kLXRyaWdnZXItZnVu Y3Rpb25zIik7CiAgIERFRlNZTSAoUWluaGliaXRfcG9pbnRfbW90aW9uX2hvb2tzLCAiaW5oaWJp dC1wb2ludC1tb3Rpb24taG9va3MiKTsKQEAgLTMxMjQ5LDYgKzMxMzE0LDE2IEBAIGlzIHNjcm9s bGVkLiAgSXQgaXMgbm90IGRlc2lnbmVkIGZvciB0aGF0LCBhbmQgc3VjaCB1c2UgcHJvYmFibHkg d29uJ3QKIHdvcmsuICAqLyk7CiAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyA9IFFuaWw7CiAK KyAgREVGVkFSX0xJU1AgKCJ3c2YtaG9vayIsIFZ3c2ZfaG9vaywKKyAgICBkb2M6IC8qIFVzZWQg dG8gb2J0YWluIHRoZSBuZXcgYHdpbmRvdy1zdGFydCcgZHVyaW5nIHJlZGlzcGxheS4gICovKTsK KyAgVndzZl9ob29rID0gUW5pbDsKKworICBERUZWQVJfTElTUCAoIndzZi12YXIiLCBWd3NmX3Zh ciwKKyAgICBkb2M6IC8qIGB3c2YtaG9va2AgY2hlY2tzIHRvIHNlZSBpZiBgd3NmLXZhcmAgaXMg c2V0IGxvY2FsbHkuICAqLyk7CisgIFZ3c2ZfdmFyID0gUW5pbDsKKyAgRm1ha2VfdmFyaWFibGVf YnVmZmVyX2xvY2FsIChRd3NmX3Zhcik7CisgIERFRlNZTSAoUXdzZl92YXIsICJ3c2YtdmFyIik7 CisKICAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIiwKIAkgICAg ICAgVndpbmRvd190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsCiAgICAgZG9jOiAvKiBGdW5jdGlvbnMg dG8gY2FsbCBpbiByZWRpc3BsYXkgd2hlbiB0ZXh0IGluIHRoZSB3aW5kb3cgbWlnaHQgY2hhbmdl LiAgKi8pOwo= --Multipart_Fri_Jan_29_07:54:07_2016-1--