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: Tue, 09 Feb 2016 08:00:33 -0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Tue_Feb__9_08:00:31_2016-1" X-Trace: ger.gmane.org 1455033833 22013 80.91.229.3 (9 Feb 2016 16:03:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 9 Feb 2016 16:03:53 +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 09 17:03:41 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 1aTAlR-0005M0-8F for geb-bug-gnu-emacs@m.gmane.org; Tue, 09 Feb 2016 17:03:41 +0100 Original-Received: from localhost ([::1]:57495 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTAlQ-0000oH-L1 for geb-bug-gnu-emacs@m.gmane.org; Tue, 09 Feb 2016 11:03:40 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46041) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTAiy-0005LQ-Kg for bug-gnu-emacs@gnu.org; Tue, 09 Feb 2016 11:01:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTAis-00023A-VF for bug-gnu-emacs@gnu.org; Tue, 09 Feb 2016 11:01:08 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:52860) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTAis-00022y-SQ for bug-gnu-emacs@gnu.org; Tue, 09 Feb 2016 11:01:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aTAis-0007Ip-GU for bug-gnu-emacs@gnu.org; Tue, 09 Feb 2016 11:01: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, 09 Feb 2016 16:01: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.145503364328039 (code B ref 22404); Tue, 09 Feb 2016 16:01:02 +0000 Original-Received: (at 22404) by debbugs.gnu.org; 9 Feb 2016 16:00:43 +0000 Original-Received: from localhost ([127.0.0.1]:33768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTAiY-0007IB-Sd for submit@debbugs.gnu.org; Tue, 09 Feb 2016 11:00:43 -0500 Original-Received: from cobb.liquidweb.com ([50.28.13.150]:54333) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTAiX-0007Hy-Ik for 22404@debbugs.gnu.org; Tue, 09 Feb 2016 11:00:42 -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=QuXIafi5GKxfFEf98Bq7JOtyzi0fIZxYSqHIO51nbhg=; b=HDVJZ3nDdkEimtLjNyFwGTUXEvjCK7uSbis6CrBGVy2JFNst2rQqn6Op2POwSQsRd8sTJJxK472GgHIk7U4j6I7Q3sh5c0PlIhzT+ZI7l6bnQxTyeOWW7kvNHnIBt1qn; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:49518 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from ) id 1aTAiM-0000kC-5j; Tue, 09 Feb 2016 11:00:30 -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:112807 Archived-At: --Multipart_Tue_Feb__9_08:00:31_2016-1 Content-Type: text/plain; charset=US-ASCII Thank you, Eli, for the helpful suggestions mentioned in your last e-mail. I've incorporated them into the latest draft that is attached, and I've simplified some of the code, and I've added a test to avoid unnecessarily triggering of the `window-scroll-functions` hook. The issue mentioned in my last email was caused by `font-lock-mode` -- when I turn off `font-lock-mode`, there are a few situations where point remains partially visible at the bottom of the window and redisplay does not catch it -- e.g., when the line that point is on is about 90 percent visible at the bottom of the window. The test in the `run_window_start_end_hook` realizes that point is partially visible, so the function attached to the `window-start-end-hook` does not fire because point was never fully visible during redisplay. I'll do some more testing over the next few days to find out exactly where in redisplay the test for partially visible is failing such that redisplay never moves the display up one line to bring it into full view. And, I'll submit a separate ticket once I've tracked it down or once I've come up with a reproducible test. The proposed usage of this new hook has been simplified to the following: (defun window-start-end-hook-fn (win start end pbol-start peol-end fully-p) (message "win: %s | start: %s | end: %s | pbol-start: %s | peol-end: %s | fully-p: %s" win start end pbol-start peol-end fully-p)) (setq scroll-conservatively 101) (add-hook 'window-start-end-hook 'window-start-end-hook-fn nil t) --Multipart_Tue_Feb__9_08:00:31_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggYmFjYTRi NS4uZjM2ZmM2MiAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzMsNiArMTIzMywxNSBAQCBzdGF0aWMgaW50IHJlYWRfa2V5X3NlcXVlbmNlIChM aXNwX09iamVjdCAqLCBpbnQsIExpc3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBhZGp1c3RfcG9pbnRf Zm9yX3Byb3BlcnR5IChwdHJkaWZmX3QsIGJvb2wpOwogCitzdGF0aWMgdm9pZAorc2V0X3dpbmRv d19zdGFydF9lbmRfaG9vayAodm9pZCkKK3sKKyAgTGlzcF9PYmplY3Qgd2luZG93ID0gKHNlbGVj dGVkX3dpbmRvdyk7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdp bmRvdyk7CisgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSA9IHRydWU7CisgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gdHJ1ZTsKK30KKwogTGlzcF9PYmplY3QKIGNv bW1hbmRfbG9vcF8xICh2b2lkKQogewpAQCAtMTI1OCw2ICsxMjY3LDggQEAgY29tbWFuZF9sb29w XzEgKHZvaWQpCiAgICAgICBpZiAoIU5JTFAgKFZwb3N0X2NvbW1hbmRfaG9vaykgJiYgIU5JTFAg KFZydW5faG9va3MpKQogCXNhZmVfcnVuX2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisg ICAgICBzZXRfd2luZG93X3N0YXJ0X2VuZF9ob29rICgpOworCiAgICAgICAvKiBJZiBkaXNwbGF5 aW5nIGEgbWVzc2FnZSwgcmVzaXplIHRoZSBlY2hvIGFyZWEgd2luZG93IHRvIGZpdAogCSB0aGF0 IG1lc3NhZ2UncyBzaXplIGV4YWN0bHkuICAqLwogICAgICAgaWYgKCFOSUxQIChlY2hvX2FyZWFf YnVmZmVyWzBdKSkKQEAgLTE0NzQsNiArMTQ4NSw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQog CiAgICAgICBzYWZlX3J1bl9ob29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0 X3dpbmRvd19zdGFydF9lbmRfaG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1l c3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdl J3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclsw XSkpCmRpZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCAyMTMwMTcwLi4x NzkxNWRiIDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTM5MzMs NiArMzkzMyw3IEBAIGV4dGVybiB2b2lkIGluaXRfZXZhbF9vbmNlICh2b2lkKTsKIGV4dGVybiBM aXNwX09iamVjdCBzYWZlX2NhbGwgKHB0cmRpZmZfdCwgTGlzcF9PYmplY3QsIC4uLik7CiBleHRl cm4gTGlzcF9PYmplY3Qgc2FmZV9jYWxsMSAoTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KTsKIGV4 dGVybiBMaXNwX09iamVjdCBzYWZlX2NhbGwyIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExp c3BfT2JqZWN0KTsKK2V4dGVybiBMaXNwX09iamVjdCBzYWZlX2NhbGw3IChMaXNwX09iamVjdCwg TGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3Bf T2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOwogZXh0ZXJuIHZvaWQgaW5pdF9ldmFs ICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bXNfb2ZfZXZhbCAodm9pZCk7CiBleHRlcm4gdm9pZCB1 bndpbmRfYm9keSAoTGlzcF9PYmplY3QpOwpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3Jj L3dpbmRvdy5oCmluZGV4IGMyOTIwN2QuLjMxNTY5MjcgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cu aAorKysgYi9zcmMvd2luZG93LmgKQEAgLTM0OCw2ICszNDgsMTIgQEAgc3RydWN0IHdpbmRvdwog ICAgICAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uczsgYWxzbyBieSBGcmVjZW50ZXIgd2l0aCBh cmd1bWVudC4gICovCiAgICAgYm9vbF9iZiBvcHRpb25hbF9uZXdfc3RhcnQgOiAxOwogCisgICAg LyogVHJ1ZSBtZWFucyBmb3JjZSBhIGNhbGwgdG8gVndpbmRvd19zdGFydF9lbmRfaG9vay4gICov CisgICAgYm9vbF9iZiB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgOiAxOworCisgICAgLyog VHJ1ZSBtZWFucyB0aGUgaG9vayBoYXMgbm90IHlldCBydW4gd2l0aCBwb2ludCBmdWxseSB2aXNp YmxlLiAgKi8KKyAgICBib29sX2JmIHdpbmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nIDogMTsK KwogICAgIC8qIFRydWUgbWVhbnMgdGhlIGN1cnNvciBpcyBjdXJyZW50bHkgZGlzcGxheWVkLiAg VGhpcyBjYW4gYmUKICAgICAgICBzZXQgdG8gemVybyBieSBmdW5jdGlvbnMgb3ZlcnBhaW50aW5n IHRoZSBjdXJzb3IgaW1hZ2UuICAqLwogICAgIGJvb2xfYmYgcGh5c19jdXJzb3Jfb25fcCA6IDE7 CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5jCmluZGV4IDhmMWU5OGQuLmJk ZTNiMjMgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC0yNjE3 LDYgKzI2MTcsMTMgQEAgc2FmZV9jYWxsMiAoTGlzcF9PYmplY3QgZm4sIExpc3BfT2JqZWN0IGFy ZzEsIExpc3BfT2JqZWN0IGFyZzIpCiAgIHJldHVybiBzYWZlX2NhbGwgKDMsIGZuLCBhcmcxLCBh cmcyKTsKIH0KIAorLyogIFRoaXMgaXMgZm9yIHRoZSBgd2luZG93X3N0YXJ0X2VuZF9ob29rJy4g IENhbGwgZnVuY3Rpb24gRk4gd2l0aCBzZXZlbiBhcmd1bWVudHMuCisgICAgUmV0dXJuIHRoZSBy ZXN1bHQgb3IgbmlsIGlmIHNvbWV0aGluZyB3ZW50IHdyb25nLiAgKi8KK0xpc3BfT2JqZWN0Citz YWZlX2NhbGw3IChMaXNwX09iamVjdCBmbiwgTGlzcF9PYmplY3QgYXJnMSwgTGlzcF9PYmplY3Qg YXJnMiwgTGlzcF9PYmplY3QgYXJnMywgTGlzcF9PYmplY3QgYXJnNCwgTGlzcF9PYmplY3QgYXJn NSwgTGlzcF9PYmplY3QgYXJnNiwgTGlzcF9PYmplY3QgYXJnNykKK3sKKyAgcmV0dXJuIHNhZmVf Y2FsbCAoOCwgZm4sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYsIGFyZzcpOwor fQogCiAMCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzNDE2LDYgKzEzNDIzLDY4IEBAIGRvIHsgaWYg KCEgcG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0b3BfcG9sbGluZyAoKTsJXAogZG8geyBpZiAocG9s bGluZ19zdG9wcGVkX2hlcmUpIHN0YXJ0X3BvbGxpbmcgKCk7CVwKICAgICAgICBwb2xsaW5nX3N0 b3BwZWRfaGVyZSA9IGZhbHNlOyB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIHZvaWQKK3J1bl93 aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0cnVjdCB0ZXh0X3BvcyBzdGFydHAsIHN0cnVjdCB3aW5k b3cgKncsIExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IGl0IGl0LCBjaGFyICpzdHJpbmcpCit7 CisgIHZvaWQgKml0ZGF0YSA9IE5VTEw7CisgIGJvb2wgZnVsbHlfcCA9IGZhbHNlOworICBFTUFD U19JTlQgcG9zaW50ID0gUFQ7CisgIGludCB4LCB5LCBydG9wLCByYm90LCByb3doLCB2cG9zLCBz dGFydHBfaW50ZWdlciwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcDsKKyAgc3RhcnRwX2lu dGVnZXIgPSBDSEFSUE9TIChzdGFydHApOworICBzdHJ1Y3QgYnVmZmVyICpidWY7CisgIGJ1ZiA9 IFhCVUZGRVIgKHctPmNvbnRlbnRzKTsKKyAgaWYgKCFOSUxQIChGbG9jYWxfdmFyaWFibGVfcCAo UXdpbmRvd19zdGFydF9lbmRfaG9vaywgRndpbmRvd19idWZmZXIgKHdpbmRvdykpKQorICAgICAg JiYgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcpCisgICAgeworICAgIGlmICgocG9z aW50ID49IENIQVJQT1MgKHN0YXJ0cCkgJiYgcG9zaW50IDw9IEJVRl9aViAoYnVmKSkKKyAgICAg ICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+PSBCVUZfQkVHViAoYnVmKQorICAgICAgICAmJiBDSEFS UE9TIChzdGFydHApIDw9IEJVRl9aViAoYnVmKQorICAgICAgICAmJiBwb3NfdmlzaWJsZV9wICh3 LCBwb3NpbnQsICZ4LCAmeSwgJnJ0b3AsICZyYm90LCAmcm93aCwgJnZwb3MpKQorICAgICAgZnVs bHlfcCA9ICFydG9wICYmICFyYm90OworICAgIGlmIChmdWxseV9wKQorICAgICAgeworI2lmZGVm IEdMWVBIX0RFQlVHCisgICAgICAvKiBTZWUgdGhlIGRvYy1zdHJpbmcgZm9yIGBwb3MtdmlzaWJs ZS1pbi13aW5kb3ctcCcuICAqLworICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIiVzIC0tIHg6 ICVkIHwgeTogJWQgfCBzdGFydHA6ICVkIHwgZW5kcDogJWQgfCBwYm9sX3N0YXJ0cDogJWQgfCBw ZW9sX2VuZHA6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywgeCwgeSwg c3RhcnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHApOworI2VuZGlmCisg ICAgICBDTElQX1RFWFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgICAg IGl0ZGF0YSA9IGJpZGlfc2hlbHZlX2NhY2hlICgpOworICAgICAgc3RhcnRfZGlzcGxheSAoJml0 LCB3LCBzdGFydHApOworICAgICAgbW92ZV9pdF92ZXJ0aWNhbGx5ICgmaXQsIHdpbmRvd19ib3hf aGVpZ2h0ICh3KSk7CisgICAgICBpZiAoaXQuY3VycmVudF95IDwgaXQubGFzdF92aXNpYmxlX3kp CisgICAgICAgIG1vdmVfaXRfcGFzdF9lb2wgKCZpdCk7CisgICAgICBlbmRwID0gKElUX0NIQVJQ T1MgKGl0KSk7CisgICAgICBiaWRpX3Vuc2hlbHZlX2NhY2hlIChpdGRhdGEsIGZhbHNlKTsKKyAg ICAgIFNFVF9QVCAoc3RhcnRwX2ludGVnZXIpOworICAgICAgcGJvbF9zdGFydHAgPSBYSU5UIChG bGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAgIFNFVF9QVCAoZW5kcCk7Cisg ICAgICBwZW9sX2VuZHAgPSBYSU5UIChGbGluZV9lbmRfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAg IFNFVF9QVCAocG9zaW50KTsKKyAgICAgIC8qICBSZXNldCB0aGUgZmxhZyBfYmVmb3JlXyBjYWxs aW5nIExpc3AsIG5vdCBhZnRlciwgc28gdGhhdAorICAgICAgICAgIGlmIExpc3AgZG9lcyBzaWdu YWwgYW4gZXJyb3IsIHRoZSBmbGFnIHdpbGwgYmUgcmVzZXQsIGFuZAorICAgICAgICAgIHdvbid0 IGNhdXNlIHRoZSBob29rIHRvIGJlIGNhbGxlZCBhZCBuYXVzZWFtLiAgKi8KKyAgICAgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gZmFsc2U7CisgICAgICAvKiAgV2hlbiBjYWxs aW5nIExpc3AgZnJvbSByZWRpc3BsYXksIGFsd2F5cyB1c2Ugc2FmZV9jYWxsLCB0byBiZQorICAg ICAgICAgIHByb3RlY3RlZCBhZ2FpbnN0IGVycm9ycyBzaWduYWxlZCBieSB0aGF0IExpc3AuICAq LworICAgICAgc2FmZV9jYWxsNyAoUXJ1bl9ob29rX3dpdGhfYXJncywgUXdpbmRvd19zdGFydF9l bmRfaG9vaywKKyAgICAgICAgICB3aW5kb3csCisgICAgICAgICAgbWFrZV9udW1iZXIgKHN0YXJ0 cF9pbnRlZ2VyKSwKKyAgICAgICAgICBtYWtlX251bWJlciAoZW5kcCksCisgICAgICAgICAgbWFr ZV9udW1iZXIgKHBib2xfc3RhcnRwKSwKKyAgICAgICAgICBtYWtlX251bWJlciAocGVvbF9lbmRw KSwKKyAgICAgICAgICBmdWxseV9wID8gUXQgOiBRbmlsKTsKKyAgICAgIH0KKyAgICAgIGVsc2UK KyAgICAgICAgeworI2lmZGVmIEdMWVBIX0RFQlVHCisgICAgICAgIC8qIFNlZSB0aGUgZG9jLXN0 cmluZyBmb3IgYHBvcy12aXNpYmxlLWluLXdpbmRvdy1wJy4gICovCisgICAgICAgIGRlYnVnX21l dGhvZF9hZGQgKHcsICIlcyAtLSB4OiAlZCB8IHk6ICVkIHwgcnRvcDogJWQgfCByYm90ICVkIHwg cm93aDogJWQgfCB2cG9zOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJp bmcsIHgsIHksIHJ0b3AsIHJib3QsIHJvd2gsIHZwb3MpOworI2VuZGlmCisgICAgICAgIH0KKyAg ICB9Cit9CiAKIC8qIFBlcmhhcHMgaW4gdGhlIGZ1dHVyZSBhdm9pZCByZWNlbnRlcmluZyB3aW5k b3dzIGlmIGl0CiAgICBpcyBub3QgbmVjZXNzYXJ5OyBjdXJyZW50bHkgdGhhdCBjYXVzZXMgc29t ZSBwcm9ibGVtcy4gICovCkBAIC0xMzcxMyw2ICsxMzc4Miw3IEBAIHJlZGlzcGxheV9pbnRlcm5h bCAodm9pZCkKICAgICAgICYmIG1hdGNoX3AKICAgICAgICYmICF3LT5mb3JjZV9zdGFydAogICAg ICAgJiYgIXctPm9wdGlvbmFsX25ld19zdGFydAorICAgICAgJiYgIXctPndpbmRvd19zdGFydF9l bmRfaG9va19mb3JjZQogICAgICAgLyogUG9pbnQgbXVzdCBiZSBvbiB0aGUgbGluZSB0aGF0IHdl IGhhdmUgaW5mbyByZWNvcmRlZCBhYm91dC4gICovCiAgICAgICAmJiBQVCA+PSBDSEFSUE9TICh0 bGJ1ZnBvcykKICAgICAgICYmIFBUIDw9IFogLSBDSEFSUE9TICh0bGVuZHBvcykKQEAgLTE1NDEy LDYgKzE1NDgyLDggQEAgdHJ5X3Njcm9sbGluZyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1 c3RfdGhpc19vbmVfcCwKICAgLyogUnVuIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8KICAg c3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CiAK KyAgcnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAoc3RhcnRwLCB3LCB3aW5kb3csIGl0LCAidHJ5 X3Njcm9sbGluZyIpOworCiAgIC8qIERpc3BsYXkgdGhlIHdpbmRvdy4gIEdpdmUgdXAgaWYgbmV3 IGZvbnRzIGFyZSBsb2FkZWQsIG9yIGlmIHBvaW50CiAgICAgIGRvZXNuJ3QgYXBwZWFyLiAgKi8K ICAgaWYgKCF0cnlfd2luZG93ICh3aW5kb3csIHN0YXJ0cCwgMCkpCkBAIC0xNjA3Niw2ICsxNjE0 OCw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3Ro aXNfb25lX3ApCiAgIGJvb2wgbGFzdF9saW5lX21pc2ZpdCA9IGZhbHNlOwogICBwdHJkaWZmX3Qg YmVnX3VuY2hhbmdlZCwgZW5kX3VuY2hhbmdlZDsKICAgaW50IGZyYW1lX2xpbmVfaGVpZ2h0Owor ICBib29sIHdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2YgPSBmYWxzZTsKIAogICBT RVRfVEVYVF9QT1MgKGxwb2ludCwgUFQsIFBUX0JZVEUpOwogICBvcG9pbnQgPSBscG9pbnQ7CkBA IC0xNjI2NiwxMyArMTYzMzksMTYgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2lu ZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmllZCBh IG5ldyBzdGFydGluZyBwb2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdoZXRo ZXIgaXQgY2FuIGJlIHVzZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3 aW5kb3dfZnJvemVuX3AgKHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3LT53 aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgfHwgd2luZG93X2Zyb3plbl9wICh3KSkKICAgICAg ICYmIENIQVJQT1MgKHN0YXJ0cCkgPj0gQkVHVgogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA8 PSBaVikKICAgICB7CisKKyAgICAgIGlmICh3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2Ug JiYgIXctPm9wdGlvbmFsX25ld19zdGFydCAmJiAhd2luZG93X2Zyb3plbl9wICh3KSAmJiAhdy0+ Zm9yY2Vfc3RhcnQpCisgICAgICAgIHdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2Yg PSB0cnVlOworCiAgICAgICBwdHJkaWZmX3QgaXRfY2hhcnBvczsKIAotICAgICAgdy0+b3B0aW9u YWxfbmV3X3N0YXJ0ID0gZmFsc2U7CiAgICAgICBzdGFydF9kaXNwbGF5ICgmaXQsIHcsIHN0YXJ0 cCk7CiAgICAgICBtb3ZlX2l0X3RvICgmaXQsIFBULCAwLCBpdC5sYXN0X3Zpc2libGVfeSwgLTEs CiAJCSAgTU9WRV9UT19QT1MgfCBNT1ZFX1RPX1ggfCBNT1ZFX1RPX1kpOwpAQCAtMTYyOTMsMTQg KzE2MzY5LDI4IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBq dXN0X3RoaXNfb25lX3ApCiAJICAgIHctPmZvcmNlX3N0YXJ0ID0gdHJ1ZTsKICNpZmRlZiBHTFlQ SF9ERUJVRwogCSAgaWYgKHctPmZvcmNlX3N0YXJ0KQotCSAgICB7Ci0JICAgICAgaWYgKHdpbmRv d19mcm96ZW5fcCAodykpCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQg ZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7Ci0JICAgICAgZWxzZQotCQlkZWJ1Z19tZXRob2Rf YWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gb3B0aW9uYWxfbmV3X3N0YXJ0Iik7Ci0JICAg IH0KKyAgICB7CisgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKKyAgICAgICAgeworICAg ICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gZnJvemVuIHdp bmRvdyBzdGFydCIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+b3B0aW9uYWxfbmV3X3N0 YXJ0KQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vf c3RhcnQgZnJvbSBvcHRpb25hbF9uZXdfc3RhcnQiKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYg KHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSkKKyAgICAgICAgeworICAgICAgICBkZWJ1 Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gd2luZG93X3N0YXJ0X2VuZF9o b29rX2ZvcmNlIik7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgZGVi dWdfbWV0aG9kX2FkZCAodywgIlRoaXMgc2l0dWF0aW9uIGlzIG5vdCB5ZXQgY29udGVtcGxhdGVk LiIpOworICAgICAgfQorICAgIH0KICNlbmRpZgogCX0KKyAgICAgIHctPm9wdGlvbmFsX25ld19z dGFydCA9IGZhbHNlOworICAgICAgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlID0gZmFs c2U7CiAgICAgfQogCiAgZm9yY2Vfc3RhcnQ6CkBAIC0xNjMyOCwxMSArMTY0MTgsMTggQEAgcmVk aXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkK IAkgdGhhbiB0byBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIGNhbGxpbmcgdGhlIGhvb2sgZnVu Y3Rpb25zCiAJIGFuZCBoYXZpbmcgdGhlbSBnZXQgbW9yZSBlcnJvcnMuICAqLwogICAgICAgaWYg KCF1cGRhdGVfbW9kZV9saW5lCi0JICB8fCAhIE5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9u cykpCisJICB8fCAhIE5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKwkgIHx8ICEgTklM UCAoVndpbmRvd19zdGFydF9lbmRfaG9vaykpCiAJewogCSAgdXBkYXRlX21vZGVfbGluZSA9IHRy dWU7CiAJICB3LT51cGRhdGVfbW9kZV9saW5lID0gdHJ1ZTsKLQkgIHN0YXJ0cCA9IHJ1bl93aW5k b3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHApOworCisgIC8qIFJ1biB3aW5kb3cg c2Nyb2xsIGZ1bmN0aW9ucy4gICovCisgIGlmICghd2luZG93X3N0YXJ0X2VuZF9ob29rX3N1cHBy ZXNzX3dzZikKKyAgICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRv dywgc3RhcnRwKTsKKworICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIChzdGFydHAsIHcsIHdp bmRvdywgaXQsICJyZWRpc3BsYXlfd2luZG93IChmb3JjZV9zdGFydCkiKTsKKwogCX0KIAogICAg ICAgaWYgKENIQVJQT1MgKHN0YXJ0cCkgPCBCRUdWKQpAQCAtMTY2MDAsNiArMTY2OTcsNyBAQCBy ZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9w KQogCSAgICAgYmVjYXVzZSBhIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb24gY2FuIGhhdmUgY2hhbmdl ZCB0aGUKIAkgICAgIGJ1ZmZlci4gICovCiAJICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVu Y3Rpb25zKQorCSAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2spCiAJICB8fCBNSU5J X1dJTkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKIAkgICAgICAgPSB0 cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcpKSkKQEAgLTE2Nzk3LDYgKzE2ODk1 LDggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhp c19vbmVfcCkKICAgLyogUnVuIHNjcm9sbCBob29rcy4gICovCiAgIHN0YXJ0cCA9IHJ1bl93aW5k b3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBpdC5jdXJyZW50LnBvcyk7CiAKKyAgcnVuX3dp bmRvd19zdGFydF9lbmRfaG9vayAoc3RhcnRwLCB3LCB3aW5kb3csIGl0LCAicmVkaXNwbGF5X3dp bmRvdyAocmVjZW50ZXIpIik7CisKICAgLyogUmVkaXNwbGF5IHRoZSB3aW5kb3cuICAqLwogICBi b29sIHVzZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwogICBpZiAoIWN1cnJlbnRfbWF0cml4X3Vw X3RvX2RhdGVfcApAQCAtMTY4MDUsNiArMTY5MDUsNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNw X09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICAgICAgLyogRG9uJ3QgdXNl IHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVz ZSBpdCBjYW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIuICAqLwogICAgICAgfHwgIU5JTFAgKFZ3 aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8ICFOSUxQIChWd2luZG93X3N0YXJ0X2Vu ZF9ob29rKQogICAgICAgfHwgIWp1c3RfdGhpc19vbmVfcAogICAgICAgfHwgTUlOSV9XSU5ET1df UCAodykKICAgICAgIHx8ICEodXNlZF9jdXJyZW50X21hdHJpeF9wCkBAIC0yMzY4MCw2ICsyMzc4 MSwyMCBAQCBkZWNvZGVfbW9kZV9zcGVjIChzdHJ1Y3Qgd2luZG93ICp3LCByZWdpc3RlciBpbnQg YywgaW50IGZpZWxkX3dpZHRoLAogCSAgcmV0dXJuICJAIjsKICAgICAgIH0KIAorICAgIGNhc2Ug J3cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X3N0YXJ0ID0gbWFya2VyX3Bvc2l0aW9u ICh3LT5zdGFydCk7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgsIHdp bmRvd19zdGFydCk7CisgIHJldHVybiBkZWNvZGVfbW9kZV9zcGVjX2J1ZjsKKyAgICAgIH0KKwor ICAgIGNhc2UgJ1cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X2VuZCA9IEJVRl9aIChi KSAtIHctPndpbmRvd19lbmRfcG9zOworICBwaW50MnN0ciAoZGVjb2RlX21vZGVfc3BlY19idWYs IHdpZHRoLCB3aW5kb3dfZW5kKTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAg ICAgfQorCiAgICAgY2FzZSAneic6CiAgICAgICAvKiBjb2Rpbmctc3lzdGVtIChub3QgaW5jbHVk aW5nIGVuZC1vZi1saW5lIGZvcm1hdCkgKi8KICAgICBjYXNlICdaJzoKQEAgLTMxMTQ1LDYgKzMx MjYwLDcgQEAgVGhleSBhcmUgc3RpbGwgbG9nZ2VkIHRvIHRoZSAqTWVzc2FnZXMqIGJ1ZmZlci4g ICovKTsKICAgREVGU1lNIChRb3ZlcnJpZGluZ190ZXJtaW5hbF9sb2NhbF9tYXAsICJvdmVycmlk aW5nLXRlcm1pbmFsLWxvY2FsLW1hcCIpOwogICBERUZTWU0gKFFvdmVycmlkaW5nX2xvY2FsX21h cCwgIm92ZXJyaWRpbmctbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUXdpbmRvd19zY3JvbGxfZnVu Y3Rpb25zLCAid2luZG93LXNjcm9sbC1mdW5jdGlvbnMiKTsKKyAgREVGU1lNIChRd2luZG93X3N0 YXJ0X2VuZF9ob29rLCAid2luZG93LXN0YXJ0LWVuZC1ob29rIik7CiAgIERFRlNZTSAoUXdpbmRv d190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsICJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIik7 CiAgIERFRlNZTSAoUXJlZGlzcGxheV9lbmRfdHJpZ2dlcl9mdW5jdGlvbnMsICJyZWRpc3BsYXkt ZW5kLXRyaWdnZXItZnVuY3Rpb25zIik7CiAgIERFRlNZTSAoUWluaGliaXRfcG9pbnRfbW90aW9u X2hvb2tzLCAiaW5oaWJpdC1wb2ludC1tb3Rpb24taG9va3MiKTsKQEAgLTMxNDY2LDYgKzMxNTgy LDEzIEBAIGlzIHNjcm9sbGVkLiAgSXQgaXMgbm90IGRlc2lnbmVkIGZvciB0aGF0LCBhbmQgc3Vj aCB1c2UgcHJvYmFibHkgd29uJ3QKIHdvcmsuICAqLyk7CiAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0 aW9ucyA9IFFuaWw7CiAKKyAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siLCBW d2luZG93X3N0YXJ0X2VuZF9ob29rLAorICAgIGRvYzogLyogQSBidWZlci1sb2NhbCBob29rIHVz ZWQgdG8gb2J0YWluIG5ldyBgd2luZG93LXN0YXJ0YCBhbmQgYHdpbmRvdy1lbmRgCitkdXJpbmcg cmVkaXNwbGF5LiAgVGhlIGZ1bmN0aW9uIGF0dGFjaGVkIHRvIHRoaXMgaG9vayBoYXMgdGhlIGZv bGxvd2luZyBhcmd1bWVudHM6CitXSU5ET1csIFdJTkRPVy1TVEFSVCwgV0lORE9XLUVORCwgUEJP TC1TVEFSVCwgUEVPTC1FTkQsIEZVTExZLVAuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX2hv b2sgPSBRbmlsOworICBGbWFrZV92YXJpYWJsZV9idWZmZXJfbG9jYWwgKFF3aW5kb3dfc3RhcnRf ZW5kX2hvb2spOworCiAgIERFRlZBUl9MSVNQICgid2luZG93LXRleHQtY2hhbmdlLWZ1bmN0aW9u cyIsCiAJICAgICAgIFZ3aW5kb3dfdGV4dF9jaGFuZ2VfZnVuY3Rpb25zLAogICAgIGRvYzogLyog RnVuY3Rpb25zIHRvIGNhbGwgaW4gcmVkaXNwbGF5IHdoZW4gdGV4dCBpbiB0aGUgd2luZG93IG1p Z2h0IGNoYW5nZS4gICovKTsK --Multipart_Tue_Feb__9_08:00:31_2016-1--