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: Mon, 01 Feb 2016 21:58:43 -0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Mon_Feb__1_21:58:42_2016-1" X-Trace: ger.gmane.org 1454392767 20378 80.91.229.3 (2 Feb 2016 05:59:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 2 Feb 2016 05:59:27 +0000 (UTC) Cc: 22404@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Feb 02 06:59:15 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 1aQTzb-0008F5-Hd for geb-bug-gnu-emacs@m.gmane.org; Tue, 02 Feb 2016 06:59:11 +0100 Original-Received: from localhost ([::1]:55325 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQTza-0007KD-RU for geb-bug-gnu-emacs@m.gmane.org; Tue, 02 Feb 2016 00:59:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQTzV-0007Jv-Qm for bug-gnu-emacs@gnu.org; Tue, 02 Feb 2016 00:59:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQTzS-0005D5-Jt for bug-gnu-emacs@gnu.org; Tue, 02 Feb 2016 00:59:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:47030) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQTzS-0005D1-GD for bug-gnu-emacs@gnu.org; Tue, 02 Feb 2016 00:59:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aQTzS-0007gE-Ao for bug-gnu-emacs@gnu.org; Tue, 02 Feb 2016 00:59:02 -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: Tue, 02 Feb 2016 05:59:02 +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.145439273329507 (code B ref 22404); Tue, 02 Feb 2016 05:59:02 +0000 Original-Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 05:58:53 +0000 Original-Received: from localhost ([127.0.0.1]:55619 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aQTzI-0007fr-PQ for submit@debbugs.gnu.org; Tue, 02 Feb 2016 00:58:52 -0500 Original-Received: from cobb.liquidweb.com ([50.28.13.150]:35255) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aQTzH-0007ff-Dq for 22404@debbugs.gnu.org; Tue, 02 Feb 2016 00:58:51 -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=D+MhVwjmX5J5HSuldZ3s4/wUbP4SEtticTTEyhrW75o=; b=243fbAM18zxasCq783nSixg4PF1u5u4vN4RCKVb4pcEhFlUYYAEyjsNEn4fbFNmnCu1C//x39dz/w8HqWqkffQet6wvNWtZJQuiup5zmCLILDcpUGMkEQVvsytntyjwz; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:56064 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from ) id 1aQTz8-0006ae-Dw; Tue, 02 Feb 2016 00:58:42 -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:112262 Archived-At: --Multipart_Mon_Feb__1_21:58:42_2016-1 Content-Type: text/plain; charset=US-ASCII I completely understand and respect your decision to go in a different direction than my draft implementation of this new feature, but I thought it might be helpful for you to compare my ideas to your own proposed implementation as you go forward. Because my proposed implementation mirrors the current implementation of the `window-scroll-functions` hook, `xdisp.c` performs all of the necessary checking to see whether the user's function attached to the `window-start-end-hook` changes the buffer in such a way that requires further work on the part of redisplay. Attached is the revised edition of my new animal, whose proposed buffer-local usage is as follows: (setq scroll-conservatively 101) (setq window-start-end-var t) (defun window-start-end-fn (win start end pbol-start peol-end) (message "win: %s | start: %s | end: %s | peol-start: %s | peol-end: %s" win start end pbol-start peol-end)) (add-hook 'window-start-end-hook 'window-start-end-fn nil t) --Multipart_Mon_Feb__1_21:58:42_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggNjRkN2Ix My4uNGNiZmRjZSAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzksNiArMTIzOSw3IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQogICBFTUFDU19J TlQgcHJldl9tb2RpZmYgPSAwOwogICBzdHJ1Y3QgYnVmZmVyICpwcmV2X2J1ZmZlciA9IE5VTEw7 CiAgIGJvb2wgYWxyZWFkeV9hZGp1c3RlZCA9IDA7CisgIExpc3BfT2JqZWN0IHdpbmRvdzsKIAog ICBrc2V0X3ByZWZpeF9hcmcgKGN1cnJlbnRfa2JvYXJkLCBRbmlsKTsKICAga3NldF9sYXN0X3By ZWZpeF9hcmcgKGN1cnJlbnRfa2JvYXJkLCBRbmlsKTsKQEAgLTEyNTgsNiArMTI1OSwxMiBAQCBj b21tYW5kX2xvb3BfMSAodm9pZCkKICAgICAgIGlmICghTklMUCAoVnBvc3RfY29tbWFuZF9ob29r KSAmJiAhTklMUCAoVnJ1bl9ob29rcykpCiAJc2FmZV9ydW5faG9va3MgKFFwb3N0X2NvbW1hbmRf aG9vayk7CiAKKyAgLyogVHJpZ2dlciB0aGUgYHdpbmRvdy1zdGFydC1lbmQtaG9va2AuCisgIFJl ZGlzcGxheSByZXNldHMgYHctPndpbmRvd19zdGFydF9lbmRfdG9nZ2xlYCB0byBgZmFsc2VgLiAg Ki8KKyAgd2luZG93ID0gKHNlbGVjdGVkX3dpbmRvdyk7CisgIHJlZ2lzdGVyIHN0cnVjdCB3aW5k b3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdpbmRvdyk7CisgIHctPndpbmRvd19zdGFydF9l bmRfdG9nZ2xlID0gdHJ1ZTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1lc3NhZ2UsIHJl c2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdlJ3Mgc2l6ZSBl eGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclswXSkpCkBAIC0x NDc0LDYgKzE0ODEsMTIgQEAgY29tbWFuZF9sb29wXzEgKHZvaWQpCiAKICAgICAgIHNhZmVfcnVu X2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisgICAgICAvKiBUcmlnZ2VyIHRoZSBgd2lu ZG93LXN0YXJ0LWVuZC1ob29rYC4KKyAgICAgIFJlZGlzcGxheSByZXNldHMgYHctPndpbmRvd19z dGFydF9lbmRfdG9nZ2xlYCB0byBgZmFsc2VgLiAgKi8KKyAgICAgIHdpbmRvdyA9IChzZWxlY3Rl ZF93aW5kb3cpOworICAgICAgcmVnaXN0ZXIgc3RydWN0IHdpbmRvdyAqdyA9IGRlY29kZV9saXZl X3dpbmRvdyAod2luZG93KTsKKyAgICAgIHctPndpbmRvd19zdGFydF9lbmRfdG9nZ2xlID0gdHJ1 ZTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1lc3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBh cmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdlJ3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAg ICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclswXSkpCmRpZmYgLS1naXQgYS9zcmMvd2lu ZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggYzI5MjA3ZC4uZGNjMzMzOSAxMDA2NDQKLS0tIGEv c3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApAQCAtMzQ4LDYgKzM0OCw5IEBAIHN0cnVj dCB3aW5kb3cKICAgICAgICBWd2luZG93X3Njcm9sbF9mdW5jdGlvbnM7IGFsc28gYnkgRnJlY2Vu dGVyIHdpdGggYXJndW1lbnQuICAqLwogICAgIGJvb2xfYmYgb3B0aW9uYWxfbmV3X3N0YXJ0IDog MTsKIAorICAgIC8qIFRydWUgbWVhbnMgZm9yY2UgYSBjYWxsIHRvIFZ3aW5kb3dfc3RhcnRfZW5k X2hvb2suICAqLworICAgIGJvb2xfYmYgd2luZG93X3N0YXJ0X2VuZF90b2dnbGUgOiAxOworCiAg ICAgLyogVHJ1ZSBtZWFucyB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQuICBUaGlz IGNhbiBiZQogICAgICAgIHNldCB0byB6ZXJvIGJ5IGZ1bmN0aW9ucyBvdmVycGFpbnRpbmcgdGhl IGN1cnNvciBpbWFnZS4gICovCiAgICAgYm9vbF9iZiBwaHlzX2N1cnNvcl9vbl9wIDogMTsKZGlm ZiAtLWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggNzhmZGRkNi4uYjRmYmIz OCAxMDA2NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTEzNzA0LDYg KzEzNzA0LDcgQEAgcmVkaXNwbGF5X2ludGVybmFsICh2b2lkKQogICAgICAgJiYgbWF0Y2hfcAog ICAgICAgJiYgIXctPmZvcmNlX3N0YXJ0CiAgICAgICAmJiAhdy0+b3B0aW9uYWxfbmV3X3N0YXJ0 CisgICAgICAmJiAhdy0+d2luZG93X3N0YXJ0X2VuZF90b2dnbGUKICAgICAgIC8qIFBvaW50IG11 c3QgYmUgb24gdGhlIGxpbmUgdGhhdCB3ZSBoYXZlIGluZm8gcmVjb3JkZWQgYWJvdXQuICAqLwog ICAgICAgJiYgUFQgPj0gQ0hBUlBPUyAodGxidWZwb3MpCiAgICAgICAmJiBQVCA8PSBaIC0gQ0hB UlBPUyAodGxlbmRwb3MpCkBAIC0xNTA2Miw2ICsxNTA2MywyMyBAQCBydW5fd2luZG93X3Njcm9s bF9mdW5jdGlvbnMgKExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IHRleHRfcG9zIHN0YXJ0cCkK ICAgcmV0dXJuIHN0YXJ0cDsKIH0KIAorc3RhdGljIHN0cnVjdCB0ZXh0X3BvcworcnVuX3dpbmRv d19zdGFydF9lbmRfaG9vayAoTGlzcF9PYmplY3Qgd2luZG93LCBzdHJ1Y3QgdGV4dF9wb3Mgc3Rh cnRwLCBpbnQgZW5kcCwKKyAgICAgICAgIGludCBwYm9sX3N0YXJ0cCwgaW50IHBlb2xfZW5kcCkK K3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRvdyk7CisgIFNFVF9NQVJLRVJf RlJPTV9URVhUX1BPUyAody0+c3RhcnQsIHN0YXJ0cCk7CisgIGVhc3NlcnQgKGN1cnJlbnRfYnVm ZmVyID09IFhCVUZGRVIgKHctPmNvbnRlbnRzKSk7CisgIENBTExOIChGcnVuX2hvb2tfd2l0aF9h cmdzLCBRd2luZG93X3N0YXJ0X2VuZF9ob29rLCB3aW5kb3csCisgICAgbWFrZV9udW1iZXIgKENI QVJQT1MgKHN0YXJ0cCkpLAorICAgIG1ha2VfbnVtYmVyIChlbmRwKSwKKyAgICBtYWtlX251bWJl ciAocGJvbF9zdGFydHApLAorICAgIG1ha2VfbnVtYmVyIChwZW9sX2VuZHApKTsKKyAgU0VUX1RF WFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgLyogSW4gY2FzZSB0aGUg aG9vayBmdW5jdGlvbnMgc3dpdGNoIGJ1ZmZlcnMuICAqLworICBzZXRfYnVmZmVyX2ludGVybmFs IChYQlVGRkVSICh3LT5jb250ZW50cykpOworICByZXR1cm4gc3RhcnRwOworfQogCiAvKiBNYWtl IHN1cmUgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgY3Vyc29yIGlzIGZ1bGx5IHZpc2libGUuCiAg ICBBIHZhbHVlIG9mIHRydWUgbWVhbnMgdGhlcmUgaXMgbm90aGluZyB0byBiZSBkb25lLgpAQCAt MTUxNTQsNyArMTUxNzIsNyBAQCB0cnlfc2Nyb2xsaW5nIChMaXNwX09iamVjdCB3aW5kb3csIGJv b2wganVzdF90aGlzX29uZV9wLAogICBzdHJ1Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKHctPmZyYW1l KTsKICAgc3RydWN0IHRleHRfcG9zIHBvcywgc3RhcnRwOwogICBzdHJ1Y3QgaXQgaXQ7Ci0gIGlu dCB0aGlzX3Njcm9sbF9tYXJnaW4sIHNjcm9sbF9tYXgsIHJjLCBoZWlnaHQ7CisgIGludCB0aGlz X3Njcm9sbF9tYXJnaW4sIHNjcm9sbF9tYXgsIHJjLCBoZWlnaHQsIGVuZHAsIHBib2xfc3RhcnRw LCBwZW9sX2VuZHA7CiAgIGludCBkeSA9IDAsIGFtb3VudF90b19zY3JvbGwgPSAwOwogICBib29s IHNjcm9sbF9kb3duX3AgPSBmYWxzZTsKICAgaW50IGV4dHJhX3Njcm9sbF9tYXJnaW5fbGluZXMg PSBsYXN0X2xpbmVfbWlzZml0OwpAQCAtMTU0MDMsNiArMTU0MjEsNDMgQEAgdHJ5X3Njcm9sbGlu ZyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCwKICAgLyogUnVuIHdp bmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8KICAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxf ZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CiAKKyAgaWYgKCFOSUxQIChWd2luZG93X3N0YXJ0 X2VuZF9ob29rKQorICAgICAgJiYgKEZsb2NhbF92YXJpYWJsZV9wIChRd2luZG93X3N0YXJ0X2Vu ZF92YXIsIEZ3aW5kb3dfYnVmZmVyICh3aW5kb3cpKSkpCisgICAgeworICAgIHN0cnVjdCBidWZm ZXIgKmI7CisgICAgTGlzcF9PYmplY3QgYnVmOworICAgIGJ1ZiA9IHctPmNvbnRlbnRzOworICAg IENIRUNLX0JVRkZFUiAoYnVmKTsKKyAgICBiID0gWEJVRkZFUiAoYnVmKTsKKyAgICBzdHJ1Y3Qg YnVmZmVyICpvbGRfYnVmZmVyID0gTlVMTDsKKyAgICB2b2lkICppdGRhdGEgPSBOVUxMOworICAg IGlmIChiICE9IGN1cnJlbnRfYnVmZmVyKQorICAgICAgeworICAgICAgb2xkX2J1ZmZlciA9IGN1 cnJlbnRfYnVmZmVyOworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoYik7CisgICAgICB9Cisg ICAgQ0xJUF9URVhUX1BPU19GUk9NX01BUktFUiAoc3RhcnRwLCB3LT5zdGFydCk7CisgICAgaXRk YXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7CisgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBz dGFydHApOworICAgIG1vdmVfaXRfdmVydGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAo dykpOworICAgIGlmIChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgIG1v dmVfaXRfcGFzdF9lb2wgKCZpdCk7CisgICAgZW5kcCA9IChJVF9DSEFSUE9TIChpdCkpOworICAg IGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworICAgIGlmIChvbGRfYnVmZmVy KQorICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAob2xkX2J1ZmZlcik7CisgICAgcHRyZGlmZl90 IG9yaWdpbmFsX3BvcyA9IFBUOworICAgIFNFVF9QVCAoQ0hBUlBPUyAoc3RhcnRwKSk7CisgICAg cGJvbF9zdGFydHAgPSBYSU5UIChGbGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAg ICBTRVRfUFQgKGVuZHApOworICAgIHBlb2xfZW5kcCA9IFhJTlQgKEZsaW5lX2VuZF9wb3NpdGlv biAoUW5pbCkpOworICAgIFNFVF9QVCAob3JpZ2luYWxfcG9zKTsKKyAgICBzdGFydHAgPSBydW5f d2luZG93X3N0YXJ0X2VuZF9ob29rICh3aW5kb3csIHN0YXJ0cCwgZW5kcCwgcGJvbF9zdGFydHAs IHBlb2xfZW5kcCk7CisjaWZkZWYgR0xZUEhfREVCVUcKKyAgZGVidWdfbWV0aG9kX2FkZCAodywg InJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgWzEgb2YgM10iKTsKKyNlbmRpZgorICAgIH0KKwog ICAvKiBEaXNwbGF5IHRoZSB3aW5kb3cuICBHaXZlIHVwIGlmIG5ldyBmb250cyBhcmUgbG9hZGVk LCBvciBpZiBwb2ludAogICAgICBkb2Vzbid0IGFwcGVhci4gICovCiAgIGlmICghdHJ5X3dpbmRv dyAod2luZG93LCBzdGFydHAsIDApKQpAQCAtMTYwNTIsNyArMTYxMDcsNyBAQCByZWRpc3BsYXlf d2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICBzdHJ1 Y3QgYnVmZmVyICpvbGQgPSBjdXJyZW50X2J1ZmZlcjsKICAgc3RydWN0IHRleHRfcG9zIGxwb2lu dCwgb3BvaW50LCBzdGFydHA7CiAgIGJvb2wgdXBkYXRlX21vZGVfbGluZTsKLSAgaW50IHRlbTsK KyAgaW50IHRlbSwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcDsKICAgc3RydWN0IGl0IGl0 OwogICAvKiBSZWNvcmQgaXQgbm93IGJlY2F1c2UgaXQncyBvdmVyd3JpdHRlbi4gICovCiAgIGJv b2wgY3VycmVudF9tYXRyaXhfdXBfdG9fZGF0ZV9wID0gZmFsc2U7CkBAIC0xNjI1NywxMyArMTYz MTIsMTIgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3Rf dGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmllZCBhIG5ldyBzdGFydGluZyBw b2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdoZXRoZXIgaXQgY2FuIGJlIHVz ZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3aW5kb3dfZnJvemVuX3Ag KHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3LT53aW5kb3dfc3RhcnRfZW5k X3RvZ2dsZSB8fCB3aW5kb3dfZnJvemVuX3AgKHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRw KSA+PSBCRUdWCiAgICAgICAmJiBDSEFSUE9TIChzdGFydHApIDw9IFpWKQogICAgIHsKICAgICAg IHB0cmRpZmZfdCBpdF9jaGFycG9zOwogCi0gICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBm YWxzZTsKICAgICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVf aXRfdG8gKCZpdCwgUFQsIDAsIGl0Lmxhc3RfdmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BP UyB8IE1PVkVfVE9fWCB8IE1PVkVfVE9fWSk7CkBAIC0xNjI4NCwxNCArMTYzMzgsMjggQEAgcmVk aXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkK IAkgICAgdy0+Zm9yY2Vfc3RhcnQgPSB0cnVlOwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAo dy0+Zm9yY2Vfc3RhcnQpCi0JICAgIHsKLQkgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkK LQkJZGVidWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5k b3cgc3RhcnQiKTsKLQkgICAgICBlbHNlCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9y Y2Vfc3RhcnQgZnJvbSBvcHRpb25hbF9uZXdfc3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAg IGlmICh3aW5kb3dfZnJvemVuX3AgKHcpKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhv ZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7Cisg ICAgICB9CisgICAgICBlbHNlIGlmICh3LT5vcHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsK KyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlv bmFsX25ld19zdGFydCIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+d2luZG93X3N0YXJ0 X2VuZF90b2dnbGUpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgInNl dCBmb3JjZV9zdGFydCBmcm9tIHdpbmRvd19zdGFydF9lbmRfdG9nZ2xlIik7CisgICAgICB9Cisg ICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIlRoaXMg c2l0dWF0aW9uIGlzIG5vdCB5ZXQgY29udGVtcGxhdGVkLiIpOworICAgICAgfQorICAgIH0KICNl bmRpZgogCX0KKyAgICAgIHctPm9wdGlvbmFsX25ld19zdGFydCA9IGZhbHNlOworICAgICAgdy0+ d2luZG93X3N0YXJ0X2VuZF90b2dnbGUgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9zdGFydDoK QEAgLTE2MzE5LDExICsxNjM4Nyw1NCBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3 aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFuIGluZmlu aXRlIGxvb3AgY2FsbGluZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0aGVtIGdl dCBtb3JlIGVycm9ycy4gICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkgIHx8ICEg TklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndpbmRvd19z Y3JvbGxfZnVuY3Rpb25zKQorCSAgfHwgISBOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29rKSkK IAl7CiAJICB1cGRhdGVfbW9kZV9saW5lID0gdHJ1ZTsKIAkgIHctPnVwZGF0ZV9tb2RlX2xpbmUg PSB0cnVlOworCisgIC8qIFJ1biB3aW5kb3cgc2Nyb2xsIGZ1bmN0aW9ucy4gIEZJWE1FOiAgc2V0 IHVwIGNvbmRpdGlvbnMgc28gdGhhdAorYHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uc2AgZG9l cyBub3QgYWx3YXlzIHJ1biB3aGVuZXZlcgorYHctPndpbmRvd19zdGFydF9lbmRfdG9nZ2xlYCBp cyBgdHJ1ZWAuICAqLwogCSAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3 aW5kb3csIHN0YXJ0cCk7CisKKyAgaWYgKCFOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29rKQor ICAgICAgJiYgKEZsb2NhbF92YXJpYWJsZV9wIChRd2luZG93X3N0YXJ0X2VuZF92YXIsIEZ3aW5k b3dfYnVmZmVyICh3aW5kb3cpKSkpCisgICAgeworICAgIHN0cnVjdCBidWZmZXIgKmI7CisgICAg TGlzcF9PYmplY3QgYnVmOworICAgIGJ1ZiA9IHctPmNvbnRlbnRzOworICAgIENIRUNLX0JVRkZF UiAoYnVmKTsKKyAgICBiID0gWEJVRkZFUiAoYnVmKTsKKyAgICBzdHJ1Y3QgYnVmZmVyICpvbGRf YnVmZmVyID0gTlVMTDsKKyAgICB2b2lkICppdGRhdGEgPSBOVUxMOworICAgIGlmIChiICE9IGN1 cnJlbnRfYnVmZmVyKQorICAgICAgeworICAgICAgb2xkX2J1ZmZlciA9IGN1cnJlbnRfYnVmZmVy OworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoYik7CisgICAgICB9CisgICAgQ0xJUF9URVhU X1BPU19GUk9NX01BUktFUiAoc3RhcnRwLCB3LT5zdGFydCk7CisgICAgaXRkYXRhID0gYmlkaV9z aGVsdmVfY2FjaGUgKCk7CisgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOworICAg IG1vdmVfaXRfdmVydGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAodykpOworICAgIGlm IChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgIG1vdmVfaXRfcGFzdF9l b2wgKCZpdCk7CisgICAgZW5kcCA9IChJVF9DSEFSUE9TIChpdCkpOworICAgIGJpZGlfdW5zaGVs dmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworICAgIGlmIChvbGRfYnVmZmVyKQorICAgICAgc2V0 X2J1ZmZlcl9pbnRlcm5hbCAob2xkX2J1ZmZlcik7CisgICAgcHRyZGlmZl90IG9yaWdpbmFsX3Bv cyA9IFBUOworICAgIFNFVF9QVCAoQ0hBUlBPUyAoc3RhcnRwKSk7CisgICAgcGJvbF9zdGFydHAg PSBYSU5UIChGbGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAgICBTRVRfUFQgKGVu ZHApOworICAgIHBlb2xfZW5kcCA9IFhJTlQgKEZsaW5lX2VuZF9wb3NpdGlvbiAoUW5pbCkpOwor ICAgIFNFVF9QVCAob3JpZ2luYWxfcG9zKTsKKyAgICBzdGFydHAgPSBydW5fd2luZG93X3N0YXJ0 X2VuZF9ob29rICh3aW5kb3csIHN0YXJ0cCwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcCk7 CisjaWZkZWYgR0xZUEhfREVCVUcKKyAgZGVidWdfbWV0aG9kX2FkZCAodywgInJ1bl93aW5kb3df c3RhcnRfZW5kX2hvb2sgWzIgb2YgM10iKTsKKyNlbmRpZgorICAgIH0KKwogCX0KIAogICAgICAg aWYgKENIQVJQT1MgKHN0YXJ0cCkgPCBCRUdWKQpAQCAtMTY1OTEsNiArMTY3MDIsNyBAQCByZWRp c3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQog CSAgICAgYmVjYXVzZSBhIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb24gY2FuIGhhdmUgY2hhbmdlZCB0 aGUKIAkgICAgIGJ1ZmZlci4gICovCiAJICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rp b25zKQorCSAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2spCiAJICB8fCBNSU5JX1dJ TkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKIAkgICAgICAgPSB0cnlf d2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcpKSkKQEAgLTE2Nzg4LDYgKzE2OTAwLDQz IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNf b25lX3ApCiAgIC8qIFJ1biBzY3JvbGwgaG9va3MuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93 X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgaXQuY3VycmVudC5wb3MpOwogCisgIGlmICghTklM UCAoVndpbmRvd19zdGFydF9lbmRfaG9vaykKKyAgICAgICYmIChGbG9jYWxfdmFyaWFibGVfcCAo UXdpbmRvd19zdGFydF9lbmRfdmFyLCBGd2luZG93X2J1ZmZlciAod2luZG93KSkpKQorICAgIHsK KyAgICBzdHJ1Y3QgYnVmZmVyICpiOworICAgIExpc3BfT2JqZWN0IGJ1ZjsKKyAgICBidWYgPSB3 LT5jb250ZW50czsKKyAgICBDSEVDS19CVUZGRVIgKGJ1Zik7CisgICAgYiA9IFhCVUZGRVIgKGJ1 Zik7CisgICAgc3RydWN0IGJ1ZmZlciAqb2xkX2J1ZmZlciA9IE5VTEw7CisgICAgdm9pZCAqaXRk YXRhID0gTlVMTDsKKyAgICBpZiAoYiAhPSBjdXJyZW50X2J1ZmZlcikKKyAgICAgIHsKKyAgICAg IG9sZF9idWZmZXIgPSBjdXJyZW50X2J1ZmZlcjsKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwg KGIpOworICAgICAgfQorICAgIENMSVBfVEVYVF9QT1NfRlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+ c3RhcnQpOworICAgIGl0ZGF0YSA9IGJpZGlfc2hlbHZlX2NhY2hlICgpOworICAgIHN0YXJ0X2Rp c3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKKyAgICBtb3ZlX2l0X3ZlcnRpY2FsbHkgKCZpdCwgd2lu ZG93X2JveF9oZWlnaHQgKHcpKTsKKyAgICBpZiAoaXQuY3VycmVudF95IDwgaXQubGFzdF92aXNp YmxlX3kpCisgICAgICBtb3ZlX2l0X3Bhc3RfZW9sICgmaXQpOworICAgIGVuZHAgPSAoSVRfQ0hB UlBPUyAoaXQpKTsKKyAgICBiaWRpX3Vuc2hlbHZlX2NhY2hlIChpdGRhdGEsIGZhbHNlKTsKKyAg ICBpZiAob2xkX2J1ZmZlcikKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwgKG9sZF9idWZmZXIp OworICAgIHB0cmRpZmZfdCBvcmlnaW5hbF9wb3MgPSBQVDsKKyAgICBTRVRfUFQgKENIQVJQT1Mg KHN0YXJ0cCkpOworICAgIHBib2xfc3RhcnRwID0gWElOVCAoRmxpbmVfYmVnaW5uaW5nX3Bvc2l0 aW9uIChRbmlsKSk7CisgICAgU0VUX1BUIChlbmRwKTsKKyAgICBwZW9sX2VuZHAgPSBYSU5UIChG bGluZV9lbmRfcG9zaXRpb24gKFFuaWwpKTsKKyAgICBTRVRfUFQgKG9yaWdpbmFsX3Bvcyk7Cisg ICAgc3RhcnRwID0gcnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAod2luZG93LCBzdGFydHAsIGVu ZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHApOworI2lmZGVmIEdMWVBIX0RFQlVHCisgIGRlYnVn X21ldGhvZF9hZGQgKHcsICJydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIFszIG9mIDNdIik7Cisj ZW5kaWYKKyAgICB9CisKICAgLyogUmVkaXNwbGF5IHRoZSB3aW5kb3cuICAqLwogICBib29sIHVz ZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwogICBpZiAoIWN1cnJlbnRfbWF0cml4X3VwX3RvX2Rh dGVfcApAQCAtMTY3OTYsNiArMTY5NDUsNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVj dCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICAgICAgLyogRG9uJ3QgdXNlIHRyeV93 aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVzZSBpdCBj YW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIuICAqLwogICAgICAgfHwgIU5JTFAgKFZ3aW5kb3df c2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8ICFOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29r KQogICAgICAgfHwgIWp1c3RfdGhpc19vbmVfcAogICAgICAgfHwgTUlOSV9XSU5ET1dfUCAodykK ICAgICAgIHx8ICEodXNlZF9jdXJyZW50X21hdHJpeF9wCkBAIC0yMzY3MSw2ICsyMzgyMSwyMCBA QCBkZWNvZGVfbW9kZV9zcGVjIChzdHJ1Y3Qgd2luZG93ICp3LCByZWdpc3RlciBpbnQgYywgaW50 IGZpZWxkX3dpZHRoLAogCSAgcmV0dXJuICJAIjsKICAgICAgIH0KIAorICAgIGNhc2UgJ3cnOgor ICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X3N0YXJ0ID0gbWFya2VyX3Bvc2l0aW9uICh3LT5z dGFydCk7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgsIHdpbmRvd19z dGFydCk7CisgIHJldHVybiBkZWNvZGVfbW9kZV9zcGVjX2J1ZjsKKyAgICAgIH0KKworICAgIGNh c2UgJ1cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X2VuZCA9IEJVRl9aIChiKSAtIHct PndpbmRvd19lbmRfcG9zOworICBwaW50MnN0ciAoZGVjb2RlX21vZGVfc3BlY19idWYsIHdpZHRo LCB3aW5kb3dfZW5kKTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAgICAgfQor CiAgICAgY2FzZSAneic6CiAgICAgICAvKiBjb2Rpbmctc3lzdGVtIChub3QgaW5jbHVkaW5nIGVu ZC1vZi1saW5lIGZvcm1hdCkgKi8KICAgICBjYXNlICdaJzoKQEAgLTMxMTM2LDYgKzMxMzAwLDgg QEAgVGhleSBhcmUgc3RpbGwgbG9nZ2VkIHRvIHRoZSAqTWVzc2FnZXMqIGJ1ZmZlci4gICovKTsK ICAgREVGU1lNIChRb3ZlcnJpZGluZ190ZXJtaW5hbF9sb2NhbF9tYXAsICJvdmVycmlkaW5nLXRl cm1pbmFsLWxvY2FsLW1hcCIpOwogICBERUZTWU0gKFFvdmVycmlkaW5nX2xvY2FsX21hcCwgIm92 ZXJyaWRpbmctbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUXdpbmRvd19zY3JvbGxfZnVuY3Rpb25z LCAid2luZG93LXNjcm9sbC1mdW5jdGlvbnMiKTsKKyAgREVGU1lNIChRd2luZG93X3N0YXJ0X2Vu ZF9ob29rLCAid2luZG93LXN0YXJ0LWVuZC1ob29rIik7CisgIERFRlNZTSAoUXdpbmRvd19zdGFy dF9lbmRfdmFyLCAid2luZG93LXN0YXJ0LWVuZC12YXIiKTsKICAgREVGU1lNIChRd2luZG93X3Rl eHRfY2hhbmdlX2Z1bmN0aW9ucywgIndpbmRvdy10ZXh0LWNoYW5nZS1mdW5jdGlvbnMiKTsKICAg REVGU1lNIChRcmVkaXNwbGF5X2VuZF90cmlnZ2VyX2Z1bmN0aW9ucywgInJlZGlzcGxheS1lbmQt dHJpZ2dlci1mdW5jdGlvbnMiKTsKICAgREVGU1lNIChRaW5oaWJpdF9wb2ludF9tb3Rpb25faG9v a3MsICJpbmhpYml0LXBvaW50LW1vdGlvbi1ob29rcyIpOwpAQCAtMzE0NTcsNiArMzE2MjMsMTUg QEAgaXMgc2Nyb2xsZWQuICBJdCBpcyBub3QgZGVzaWduZWQgZm9yIHRoYXQsIGFuZCBzdWNoIHVz ZSBwcm9iYWJseSB3b24ndAogd29yay4gICovKTsKICAgVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z ID0gUW5pbDsKIAorICBERUZWQVJfTElTUCAoIndpbmRvdy1zdGFydC1lbmQtaG9vayIsIFZ3aW5k b3dfc3RhcnRfZW5kX2hvb2ssCisgICAgZG9jOiAvKiBVc2VkIHRvIG9idGFpbiB0aGUgbmV3IGB3 aW5kb3ctc3RhcnQnIGR1cmluZyByZWRpc3BsYXkuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5k X2hvb2sgPSBRbmlsOworCisgIERFRlZBUl9MSVNQICgid2luZG93LXN0YXJ0LWVuZC12YXIiLCBW d2luZG93X3N0YXJ0X2VuZF92YXIsCisgICAgZG9jOiAvKiBgd2luZG93LXN0YXJ0LWVuZC1ob29r YCBjaGVja3MgdG8gc2VlIGlmIGB3aW5kb3ctc3RhcnQtZW5kLXZhcmAgaXMgc2V0IGxvY2FsbHku ICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX3ZhciA9IFFuaWw7CisgIEZtYWtlX3ZhcmlhYmxl X2J1ZmZlcl9sb2NhbCAoUXdpbmRvd19zdGFydF9lbmRfdmFyKTsKKwogICBERUZWQVJfTElTUCAo IndpbmRvdy10ZXh0LWNoYW5nZS1mdW5jdGlvbnMiLAogCSAgICAgICBWd2luZG93X3RleHRfY2hh bmdlX2Z1bmN0aW9ucywKICAgICBkb2M6IC8qIEZ1bmN0aW9ucyB0byBjYWxsIGluIHJlZGlzcGxh eSB3aGVuIHRleHQgaW4gdGhlIHdpbmRvdyBtaWdodCBjaGFuZ2UuICAqLyk7Cg== --Multipart_Mon_Feb__1_21:58:42_2016-1--