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#22637: 25.1.50; `mode-line` face `:height` incompatible with `scroll-conservatively 101`. Date: Mon, 15 Feb 2016 18:00:06 -0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Mon_Feb_15_18:00:05_2016-1" X-Trace: ger.gmane.org 1455588089 5946 80.91.229.3 (16 Feb 2016 02:01:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 16 Feb 2016 02:01:29 +0000 (UTC) Cc: 22637@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Feb 16 03:01:17 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 1aVUx1-0004Bx-MG for geb-bug-gnu-emacs@m.gmane.org; Tue, 16 Feb 2016 03:01:16 +0100 Original-Received: from localhost ([::1]:38176 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVUx1-0008L6-4C for geb-bug-gnu-emacs@m.gmane.org; Mon, 15 Feb 2016 21:01:15 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35785) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVUws-0008Bj-7Y for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 21:01:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVUwo-0006Ju-67 for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 21:01:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:49847) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVUwo-0006JY-3c for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 21:01:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aVUwn-0003o7-P4 for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 21:01: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: Tue, 16 Feb 2016 02:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22637 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 22637-submit@debbugs.gnu.org id=B22637.145558801714577 (code B ref 22637); Tue, 16 Feb 2016 02:01:01 +0000 Original-Received: (at 22637) by debbugs.gnu.org; 16 Feb 2016 02:00:17 +0000 Original-Received: from localhost ([127.0.0.1]:40622 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVUw5-0003n3-Fr for submit@debbugs.gnu.org; Mon, 15 Feb 2016 21:00:17 -0500 Original-Received: from cobb.liquidweb.com ([50.28.13.150]:47875) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVUw4-0003mr-2N for 22637@debbugs.gnu.org; Mon, 15 Feb 2016 21:00:16 -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=1JqjQzizDdhNi4cgwr4125P6ommXUw1HJgO/4fPX+Xc=; b=frxN+rMIeCg8Xs0hCS9S4Hs2vxdsAS/xLIb60I/sGYX8w+vtrHk4c8oDy6OCGJpzja/tfkkPJq6tZXXUcdBPl8dFmRL4ig26YKwjatJg9Usanu/sejSvy1evE7SzU4wn; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:53890 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from ) id 1aVUvu-0002RE-DV; Mon, 15 Feb 2016 21:00: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:113107 Archived-At: --Multipart_Mon_Feb_15_18:00:05_2016-1 Content-Type: text/plain; charset=US-ASCII Thank you, Eli, for the most recent fix implemented in relation to #22637. Both of the fixes that you have already implemented do indeed resolve the two test cases. You might be interested to know that the `window-scroll-functions` hook never runs after `window-start` is corrected in the following example, so anyone seeking to use that hook with a correct `window-start` is out of luck. In addition to the test example below, this type of fact pattern occurs when using things such as isearch and ispell (e.g., when programmatically moving to a point that is not yet visible). Attached is an updated `window_start_end_hook.diff` that depicts an example of how I have tentatively dealt with it for the new hook (but I did not attempt to fix the WSF). (face-spec-set 'mode-line '((((class color) (min-colors 88)) :box (:line-width -1 :style released-button) :background "grey75" :foreground "black" :height 120) (t :inverse-video t))) (setq scroll-conservatively 101) (global-eldoc-mode -1) (global-font-lock-mode -1) (blink-cursor-mode -1) (defun wsf-test-fn (win start) (let* ( (end (window-end nil t)) (pos-visible (pos-visible-in-window-p nil win nil)) ) (message "window-start: %s | window-end: %s | pos-visible: %s" start end pos-visible))) (defun test () (interactive) (switch-to-buffer (get-buffer-create "*foo*")) (add-hook 'window-scroll-functions 'wsf-test-fn nil 'local) (buffer-disable-undo) (setq undo-auto-current-boundary-timer t timer-list (delq 'undo-auto--boundary-timer timer-list)) (dotimes (i 200) (insert (format "I will not obey absurd orders %d.\n" i))) (goto-char (point-min)) (goto-char (- (point-max) 1000))) (global-set-key [f1] 'test) --Multipart_Mon_Feb_15_18:00:05_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggMzQzMWNk OC4uM2Q4ZDU0ZiAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzMsNiArMTIzMywxNSBAQCBzdGF0aWMgaW50IHJlYWRfa2V5X3NlcXVlbmNlIChM aXNwX09iamVjdCAqLCBpbnQsIExpc3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBhZGp1c3RfcG9pbnRf Zm9yX3Byb3BlcnR5IChwdHJkaWZmX3QsIGJvb2wpOwogCitzdGF0aWMgdm9pZAorc2V0X3dpbmRv d19zdGFydF9lbmRfaG9vayAodm9pZCkKK3sKKyAgTGlzcF9PYmplY3Qgd2luZG93ID0gKHNlbGVj dGVkX3dpbmRvdyk7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdp bmRvdyk7CisgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSA9IHRydWU7CisgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gdHJ1ZTsKK30KKwogTGlzcF9PYmplY3QKIGNv bW1hbmRfbG9vcF8xICh2b2lkKQogewpAQCAtMTI1OCw2ICsxMjY3LDggQEAgY29tbWFuZF9sb29w XzEgKHZvaWQpCiAgICAgICBpZiAoIU5JTFAgKFZwb3N0X2NvbW1hbmRfaG9vaykgJiYgIU5JTFAg KFZydW5faG9va3MpKQogCXNhZmVfcnVuX2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisg ICAgICBzZXRfd2luZG93X3N0YXJ0X2VuZF9ob29rICgpOworCiAgICAgICAvKiBJZiBkaXNwbGF5 aW5nIGEgbWVzc2FnZSwgcmVzaXplIHRoZSBlY2hvIGFyZWEgd2luZG93IHRvIGZpdAogCSB0aGF0 IG1lc3NhZ2UncyBzaXplIGV4YWN0bHkuICAqLwogICAgICAgaWYgKCFOSUxQIChlY2hvX2FyZWFf YnVmZmVyWzBdKSkKQEAgLTE0NzQsNiArMTQ4NSw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQog CiAgICAgICBzYWZlX3J1bl9ob29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0 X3dpbmRvd19zdGFydF9lbmRfaG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1l c3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdl J3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclsw XSkpCmRpZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCA4YWEyODYxLi4w OTYyMzA2IDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTM5MTMs NiArMzkxMyw3IEBAIGV4dGVybiB2b2lkIGluaXRfZXZhbF9vbmNlICh2b2lkKTsKIGV4dGVybiBM aXNwX09iamVjdCBzYWZlX2NhbGwgKHB0cmRpZmZfdCwgTGlzcF9PYmplY3QsIC4uLik7CiBleHRl cm4gTGlzcF9PYmplY3Qgc2FmZV9jYWxsMSAoTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KTsKIGV4 dGVybiBMaXNwX09iamVjdCBzYWZlX2NhbGwyIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExp c3BfT2JqZWN0KTsKK2V4dGVybiBMaXNwX09iamVjdCBzYWZlX2NhbGw3IChMaXNwX09iamVjdCwg TGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3Bf T2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOwogZXh0ZXJuIHZvaWQgaW5pdF9ldmFs ICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bXNfb2ZfZXZhbCAodm9pZCk7CiBleHRlcm4gdm9pZCB1 bndpbmRfYm9keSAoTGlzcF9PYmplY3QpOwpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3Jj L3dpbmRvdy5oCmluZGV4IGMyOTIwN2QuLjMxNTY5MjcgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cu aAorKysgYi9zcmMvd2luZG93LmgKQEAgLTM0OCw2ICszNDgsMTIgQEAgc3RydWN0IHdpbmRvdwog ICAgICAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uczsgYWxzbyBieSBGcmVjZW50ZXIgd2l0aCBh cmd1bWVudC4gICovCiAgICAgYm9vbF9iZiBvcHRpb25hbF9uZXdfc3RhcnQgOiAxOwogCisgICAg LyogVHJ1ZSBtZWFucyBmb3JjZSBhIGNhbGwgdG8gVndpbmRvd19zdGFydF9lbmRfaG9vay4gICov CisgICAgYm9vbF9iZiB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgOiAxOworCisgICAgLyog VHJ1ZSBtZWFucyB0aGUgaG9vayBoYXMgbm90IHlldCBydW4gd2l0aCBwb2ludCBmdWxseSB2aXNp YmxlLiAgKi8KKyAgICBib29sX2JmIHdpbmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nIDogMTsK KwogICAgIC8qIFRydWUgbWVhbnMgdGhlIGN1cnNvciBpcyBjdXJyZW50bHkgZGlzcGxheWVkLiAg VGhpcyBjYW4gYmUKICAgICAgICBzZXQgdG8gemVybyBieSBmdW5jdGlvbnMgb3ZlcnBhaW50aW5n IHRoZSBjdXJzb3IgaW1hZ2UuICAqLwogICAgIGJvb2xfYmYgcGh5c19jdXJzb3Jfb25fcCA6IDE7 CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5jCmluZGV4IGZlZDU4NzkuLmQz ZTEwMmQgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC0yNjE4 LDYgKzI2MTgsMTMgQEAgc2FmZV9jYWxsMiAoTGlzcF9PYmplY3QgZm4sIExpc3BfT2JqZWN0IGFy ZzEsIExpc3BfT2JqZWN0IGFyZzIpCiAgIHJldHVybiBzYWZlX2NhbGwgKDMsIGZuLCBhcmcxLCBh cmcyKTsKIH0KIAorLyogIFRoaXMgaXMgZm9yIHRoZSBgd2luZG93X3N0YXJ0X2VuZF9ob29rJy4g IENhbGwgZnVuY3Rpb24gRk4gd2l0aCBzZXZlbiBhcmd1bWVudHMuCisgICAgUmV0dXJuIHRoZSBy ZXN1bHQgb3IgbmlsIGlmIHNvbWV0aGluZyB3ZW50IHdyb25nLiAgKi8KK0xpc3BfT2JqZWN0Citz YWZlX2NhbGw3IChMaXNwX09iamVjdCBmbiwgTGlzcF9PYmplY3QgYXJnMSwgTGlzcF9PYmplY3Qg YXJnMiwgTGlzcF9PYmplY3QgYXJnMywgTGlzcF9PYmplY3QgYXJnNCwgTGlzcF9PYmplY3QgYXJn NSwgTGlzcF9PYmplY3QgYXJnNiwgTGlzcF9PYmplY3QgYXJnNykKK3sKKyAgcmV0dXJuIHNhZmVf Y2FsbCAoOCwgZm4sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYsIGFyZzcpOwor fQogCiAMCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzNDE3LDYgKzEzNDI0LDY4IEBAIGRvIHsgaWYg KCEgcG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0b3BfcG9sbGluZyAoKTsJXAogZG8geyBpZiAocG9s bGluZ19zdG9wcGVkX2hlcmUpIHN0YXJ0X3BvbGxpbmcgKCk7CVwKICAgICAgICBwb2xsaW5nX3N0 b3BwZWRfaGVyZSA9IGZhbHNlOyB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIHZvaWQKK3J1bl93 aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0cnVjdCB0ZXh0X3BvcyBzdGFydHAsIHN0cnVjdCB3aW5k b3cgKncsIExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IGl0IGl0LCBjaGFyICpzdHJpbmcpCit7 CisgIHZvaWQgKml0ZGF0YSA9IE5VTEw7CisgIGJvb2wgZnVsbHlfcCA9IGZhbHNlOworICBFTUFD U19JTlQgcG9zaW50ID0gUFQ7CisgIGludCB4LCB5LCBydG9wLCByYm90LCByb3doLCB2cG9zLCBz dGFydHBfaW50ZWdlciwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcDsKKyAgc3RhcnRwX2lu dGVnZXIgPSBDSEFSUE9TIChzdGFydHApOworICBzdHJ1Y3QgYnVmZmVyICpidWY7CisgIGJ1ZiA9 IFhCVUZGRVIgKHctPmNvbnRlbnRzKTsKKyAgaWYgKCFOSUxQIChGbG9jYWxfdmFyaWFibGVfcCAo UXdpbmRvd19zdGFydF9lbmRfaG9vaywgRndpbmRvd19idWZmZXIgKHdpbmRvdykpKQorICAgICAg JiYgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcpCisgICAgeworICAgICAgaWYgKChw b3NpbnQgPj0gQ0hBUlBPUyAoc3RhcnRwKSAmJiBwb3NpbnQgPD0gQlVGX1pWIChidWYpKQorICAg ICAgICAgICYmIENIQVJQT1MgKHN0YXJ0cCkgPj0gQlVGX0JFR1YgKGJ1ZikKKyAgICAgICAgICAm JiBDSEFSUE9TIChzdGFydHApIDw9IEJVRl9aViAoYnVmKQorICAgICAgICAgICYmIHBvc192aXNp YmxlX3AgKHcsIHBvc2ludCwgJngsICZ5LCAmcnRvcCwgJnJib3QsICZyb3doLCAmdnBvcykpCisg ICAgICAgIGZ1bGx5X3AgPSAhcnRvcCAmJiAhcmJvdDsKKyAgICAgIGlmIChmdWxseV9wKQorICAg ICAgICB7CisgICAgICAgICAgQ0xJUF9URVhUX1BPU19GUk9NX01BUktFUiAoc3RhcnRwLCB3LT5z dGFydCk7CisgICAgICAgICAgaXRkYXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7CisgICAgICAg ICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOworICAgICAgICAgIG1vdmVfaXRfdmVy dGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAodykpOworICAgICAgICAgIGlmIChpdC5j dXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgICAgICAgIG1vdmVfaXRfcGFzdF9l b2wgKCZpdCk7CisgICAgICAgICAgZW5kcCA9IChJVF9DSEFSUE9TIChpdCkpOworICAgICAgICAg IGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworICAgICAgICAgIFNFVF9QVCAo c3RhcnRwX2ludGVnZXIpOworICAgICAgICAgIHBib2xfc3RhcnRwID0gWElOVCAoRmxpbmVfYmVn aW5uaW5nX3Bvc2l0aW9uIChRbmlsKSk7CisgICAgICAgICAgU0VUX1BUIChlbmRwKTsKKyAgICAg ICAgICBwZW9sX2VuZHAgPSBYSU5UIChGbGluZV9lbmRfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAg ICAgICBTRVRfUFQgKHBvc2ludCk7CisjaWZkZWYgR0xZUEhfREVCVUcKKyAgICAgICAgICAvKiBT ZWUgdGhlIGRvYy1zdHJpbmcgZm9yIGBwb3MtdmlzaWJsZS1pbi13aW5kb3ctcCcuICAqLworICAg ICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICIlcyAtLSB4OiAlZCB8IHk6ICVkIHwgc3RhcnRw OiAlZCB8IGVuZHA6ICVkIHwgcGJvbF9zdGFydHA6ICVkIHwgcGVvbF9lbmRwOiAlZCIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLCB4LCB5LCBzdGFydHBfaW50ZWdlciwg ZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcCk7CisjZW5kaWYKKyAgICAgICAgICAvKiAgUmVz ZXQgdGhlIGZsYWcgX2JlZm9yZV8gY2FsbGluZyBMaXNwLCBub3QgYWZ0ZXIsIHNvIHRoYXQKKyAg ICAgICAgICAgICAgaWYgTGlzcCBkb2VzIHNpZ25hbCBhbiBlcnJvciwgdGhlIGZsYWcgd2lsbCBi ZSByZXNldCwgYW5kCisgICAgICAgICAgICAgIHdvbid0IGNhdXNlIHRoZSBob29rIHRvIGJlIGNh bGxlZCBhZCBuYXVzZWFtLiAgKi8KKyAgICAgICAgICB3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tf cGVuZGluZyA9IGZhbHNlOworICAgICAgICAgIC8qICBXaGVuIGNhbGxpbmcgTGlzcCBmcm9tIHJl ZGlzcGxheSwgYWx3YXlzIHVzZSBzYWZlX2NhbGwsIHRvIGJlCisgICAgICAgICAgICAgIHByb3Rl Y3RlZCBhZ2FpbnN0IGVycm9ycyBzaWduYWxlZCBieSB0aGF0IExpc3AuICAqLworICAgICAgICAg IHNhZmVfY2FsbDcgKFFydW5faG9va193aXRoX2FyZ3MsIFF3aW5kb3dfc3RhcnRfZW5kX2hvb2ss CisgICAgICAgICAgICAgIHdpbmRvdywKKyAgICAgICAgICAgICAgbWFrZV9udW1iZXIgKHN0YXJ0 cF9pbnRlZ2VyKSwKKyAgICAgICAgICAgICAgbWFrZV9udW1iZXIgKGVuZHApLAorICAgICAgICAg ICAgICBtYWtlX251bWJlciAocGJvbF9zdGFydHApLAorICAgICAgICAgICAgICBtYWtlX251bWJl ciAocGVvbF9lbmRwKSwKKyAgICAgICAgICAgICAgZnVsbHlfcCA/IFF0IDogUW5pbCk7CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgIHsKKyNpZmRlZiBHTFlQSF9ERUJVRworICAg ICAgICAgICAgLyogU2VlIHRoZSBkb2Mtc3RyaW5nIGZvciBgcG9zLXZpc2libGUtaW4td2luZG93 LXAnLiAgKi8KKyAgICAgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICIlcyAtLSB4OiAlZCB8 IHk6ICVkIHwgcnRvcDogJWQgfCByYm90ICVkIHwgcm93aDogJWQgfCB2cG9zOiAlZCIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcsIHgsIHksIHJ0b3AsIHJib3QsIHJv d2gsIHZwb3MpOworI2VuZGlmCisgICAgICAgICAgfQorICAgIH0KK30KIAogLyogUGVyaGFwcyBp biB0aGUgZnV0dXJlIGF2b2lkIHJlY2VudGVyaW5nIHdpbmRvd3MgaWYgaXQKICAgIGlzIG5vdCBu ZWNlc3Nhcnk7IGN1cnJlbnRseSB0aGF0IGNhdXNlcyBzb21lIHByb2JsZW1zLiAgKi8KQEAgLTEz NzE0LDYgKzEzNzgzLDcgQEAgcmVkaXNwbGF5X2ludGVybmFsICh2b2lkKQogICAgICAgJiYgbWF0 Y2hfcAogICAgICAgJiYgIXctPmZvcmNlX3N0YXJ0CiAgICAgICAmJiAhdy0+b3B0aW9uYWxfbmV3 X3N0YXJ0CisgICAgICAmJiAhdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlCiAgICAgICAv KiBQb2ludCBtdXN0IGJlIG9uIHRoZSBsaW5lIHRoYXQgd2UgaGF2ZSBpbmZvIHJlY29yZGVkIGFi b3V0LiAgKi8KICAgICAgICYmIFBUID49IENIQVJQT1MgKHRsYnVmcG9zKQogICAgICAgJiYgUFQg PD0gWiAtIENIQVJQT1MgKHRsZW5kcG9zKQpAQCAtMTU0MTgsNiArMTU0ODgsOCBAQCB0cnlfc2Ny b2xsaW5nIChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICAvKiBS dW4gd2luZG93IHNjcm9sbCBmdW5jdGlvbnMuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93X3Nj cm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgc3RhcnRwKTsKIAorICBydW5fd2luZG93X3N0YXJ0X2Vu ZF9ob29rIChzdGFydHAsIHcsIHdpbmRvdywgaXQsICJ0cnlfc2Nyb2xsaW5nIik7CisKICAgLyog RGlzcGxheSB0aGUgd2luZG93LiAgR2l2ZSB1cCBpZiBuZXcgZm9udHMgYXJlIGxvYWRlZCwgb3Ig aWYgcG9pbnQKICAgICAgZG9lc24ndCBhcHBlYXIuICAqLwogICBpZiAoIXRyeV93aW5kb3cgKHdp bmRvdywgc3RhcnRwLCAwKSkKQEAgLTE2MDgyLDYgKzE2MTU0LDcgQEAgcmVkaXNwbGF5X3dpbmRv dyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKICAgYm9vbCBsYXN0 X2xpbmVfbWlzZml0ID0gZmFsc2U7CiAgIHB0cmRpZmZfdCBiZWdfdW5jaGFuZ2VkLCBlbmRfdW5j aGFuZ2VkOwogICBpbnQgZnJhbWVfbGluZV9oZWlnaHQ7CisgIGJvb2wgd2luZG93X3N0YXJ0X2Vu ZF9ob29rX3N1cHByZXNzX3dzZiA9IGZhbHNlOwogCiAgIFNFVF9URVhUX1BPUyAobHBvaW50LCBQ VCwgUFRfQllURSk7CiAgIG9wb2ludCA9IGxwb2ludDsKQEAgLTE2MjcyLDEzICsxNjM0NSwxNiBA QCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29u ZV9wKQogCiAgIC8qIElmIHNvbWVvbmUgc3BlY2lmaWVkIGEgbmV3IHN0YXJ0aW5nIHBvaW50IGJ1 dCBkaWQgbm90IGluc2lzdCwKICAgICAgY2hlY2sgd2hldGhlciBpdCBjYW4gYmUgdXNlZC4gICov Ci0gIGlmICgody0+b3B0aW9uYWxfbmV3X3N0YXJ0IHx8IHdpbmRvd19mcm96ZW5fcCAodykpCisg IGlmICgody0+b3B0aW9uYWxfbmV3X3N0YXJ0IHx8IHctPndpbmRvd19zdGFydF9lbmRfaG9va19m b3JjZSB8fCB3aW5kb3dfZnJvemVuX3AgKHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+ PSBCRUdWCiAgICAgICAmJiBDSEFSUE9TIChzdGFydHApIDw9IFpWKQogICAgIHsKKworICAgICAg aWYgKHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSAmJiAhdy0+b3B0aW9uYWxfbmV3X3N0 YXJ0ICYmICF3aW5kb3dfZnJvemVuX3AgKHcpICYmICF3LT5mb3JjZV9zdGFydCkKKyAgICAgICAg d2luZG93X3N0YXJ0X2VuZF9ob29rX3N1cHByZXNzX3dzZiA9IHRydWU7CisKICAgICAgIHB0cmRp ZmZfdCBpdF9jaGFycG9zOwogCi0gICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBmYWxzZTsK ICAgICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVfaXRfdG8g KCZpdCwgUFQsIDAsIGl0Lmxhc3RfdmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BPUyB8IE1P VkVfVE9fWCB8IE1PVkVfVE9fWSk7CkBAIC0xNjI5OSwxNCArMTYzNzUsMjggQEAgcmVkaXNwbGF5 X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAg dy0+Zm9yY2Vfc3RhcnQgPSB0cnVlOwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAody0+Zm9y Y2Vfc3RhcnQpCi0JICAgIHsKLQkgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKLQkJZGVi dWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3Rh cnQiKTsKLQkgICAgICBlbHNlCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3Rh cnQgZnJvbSBvcHRpb25hbF9uZXdfc3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAgIGlmICh3 aW5kb3dfZnJvemVuX3AgKHcpKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQg KHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7CisgICAgICB9 CisgICAgICBlbHNlIGlmICh3LT5vcHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsKKyAgICAg ICAgZGVidWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25l d19zdGFydCIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+d2luZG93X3N0YXJ0X2VuZF9o b29rX2ZvcmNlKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQg Zm9yY2Vfc3RhcnQgZnJvbSB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UiKTsKKyAgICAgIH0K KyAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAiVGhp cyBzaXR1YXRpb24gaXMgbm90IHlldCBjb250ZW1wbGF0ZWQuIik7CisgICAgICB9CisgICAgfQog I2VuZGlmCiAJfQorICAgICAgdy0+b3B0aW9uYWxfbmV3X3N0YXJ0ID0gZmFsc2U7CisgICAgICB3 LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9z dGFydDoKQEAgLTE2MzM0LDExICsxNjQyNCwxOCBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09i amVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFu IGluZmluaXRlIGxvb3AgY2FsbGluZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0 aGVtIGdldCBtb3JlIGVycm9ycy4gICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkg IHx8ICEgTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndp bmRvd19zY3JvbGxfZnVuY3Rpb25zKQorCSAgfHwgISBOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9o b29rKSkKIAl7CiAJICB1cGRhdGVfbW9kZV9saW5lID0gdHJ1ZTsKIAkgIHctPnVwZGF0ZV9tb2Rl X2xpbmUgPSB0cnVlOwotCSAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3 aW5kb3csIHN0YXJ0cCk7CisKKyAgLyogUnVuIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8K KyAgaWYgKCF3aW5kb3dfc3RhcnRfZW5kX2hvb2tfc3VwcHJlc3Nfd3NmKQorICAgIHN0YXJ0cCA9 IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHApOworCisgIHJ1bl93 aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0YXJ0cCwgdywgd2luZG93LCBpdCwgInJlZGlzcGxheV93 aW5kb3cgKGZvcmNlX3N0YXJ0KSIpOworCiAJfQogCiAgICAgICBpZiAoQ0hBUlBPUyAoc3RhcnRw KSA8IEJFR1YpCkBAIC0xNjYwNiw2ICsxNjcwMyw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3Bf T2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJICAgICBiZWNhdXNlIGEgd2lu ZG93IHNjcm9sbCBmdW5jdGlvbiBjYW4gaGF2ZSBjaGFuZ2VkIHRoZQogCSAgICAgYnVmZmVyLiAg Ki8KIAkgIHx8ICFOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpCisJICB8fCAhTklMUCAo VndpbmRvd19zdGFydF9lbmRfaG9vaykKIAkgIHx8IE1JTklfV0lORE9XX1AgKHcpCiAJICB8fCAh KHVzZWRfY3VycmVudF9tYXRyaXhfcAogCSAgICAgICA9IHRyeV93aW5kb3dfcmV1c2luZ19jdXJy ZW50X21hdHJpeCAodykpKQpAQCAtMTY4MDMsNiArMTY5MDEsOCBAQCByZWRpc3BsYXlfd2luZG93 IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICAvKiBSdW4gc2Ny b2xsIGhvb2tzLiAgKi8KICAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3 aW5kb3csIGl0LmN1cnJlbnQucG9zKTsKIAorICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIChz dGFydHAsIHcsIHdpbmRvdywgaXQsICJyZWRpc3BsYXlfd2luZG93IChyZWNlbnRlcikiKTsKKwog ICAvKiBSZWRpc3BsYXkgdGhlIHdpbmRvdy4gICovCiAgIGJvb2wgdXNlX2Rlc2lyZWRfbWF0cml4 ID0gZmFsc2U7CiAgIGlmICghY3VycmVudF9tYXRyaXhfdXBfdG9fZGF0ZV9wCkBAIC0xNjgxMSw2 ICsxNjkxMSw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBq dXN0X3RoaXNfb25lX3ApCiAgICAgICAvKiBEb24ndCB1c2UgdHJ5X3dpbmRvd19yZXVzaW5nX2N1 cnJlbnRfbWF0cml4IGluIHRoaXMgY2FzZQogCSBiZWNhdXNlIGl0IGNhbiBoYXZlIGNoYW5nZWQg dGhlIGJ1ZmZlci4gICovCiAgICAgICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z KQorICAgICAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2spCiAgICAgICB8fCAhanVz dF90aGlzX29uZV9wCiAgICAgICB8fCBNSU5JX1dJTkRPV19QICh3KQogICAgICAgfHwgISh1c2Vk X2N1cnJlbnRfbWF0cml4X3AKQEAgLTE2OTMxLDcgKzE3MDMyLDE3IEBAIHJlZGlzcGxheV93aW5k b3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJICBjbGVhcl9n bHlwaF9tYXRyaXggKHctPmRlc2lyZWRfbWF0cml4KTsKIAkgIGlmICgxID09IHRyeV93aW5kb3cg KHdpbmRvdywgaXQuY3VycmVudC5wb3MsCiAJCQkgICAgICAgVFJZX1dJTkRPV19DSEVDS19NQVJH SU5TKSkKLQkgICAgZ290byBkb25lOworICAgIHsKKyAgICAgIGlmICghTklMUCAoRmxvY2FsX3Zh cmlhYmxlX3AgKFF3aW5kb3dfc3RhcnRfZW5kX2hvb2ssIEZ3aW5kb3dfYnVmZmVyICh3aW5kb3cp KSkKKyAgICAgICAgICAmJiB3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfcGVuZGluZykKKyAgICAg ICAgeworICAgICAgICAgIHJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKGl0LmN1cnJlbnQucG9z LCB3LCB3aW5kb3csIGl0LCAicmVkaXNwbGF5X3dpbmRvdyAocG9zdC1yZWNlbnRlcikiKTsKKyAg ICAgICAgICBjbGVhcl9nbHlwaF9tYXRyaXggKHctPmRlc2lyZWRfbWF0cml4KTsKKyAgICAgICAg ICB0cnlfd2luZG93ICh3aW5kb3csIGl0LmN1cnJlbnQucG9zLCAwKTsKKyAgICAgICAgfQorICAg ICAgZ290byBkb25lOworICAgIH0KKwogCX0KIAogICAgICAgLyogSWYgY2VudGVyaW5nIHBvaW50 IGZhaWxlZCB0byBtYWtlIHRoZSB3aG9sZSBsaW5lIHZpc2libGUsCkBAIC0yMzY4Niw2ICsyMzc5 NywyMCBAQCBkZWNvZGVfbW9kZV9zcGVjIChzdHJ1Y3Qgd2luZG93ICp3LCByZWdpc3RlciBpbnQg YywgaW50IGZpZWxkX3dpZHRoLAogCSAgcmV0dXJuICJAIjsKICAgICAgIH0KIAorICAgIGNhc2Ug J3cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X3N0YXJ0ID0gbWFya2VyX3Bvc2l0aW9u ICh3LT5zdGFydCk7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgsIHdp bmRvd19zdGFydCk7CisgIHJldHVybiBkZWNvZGVfbW9kZV9zcGVjX2J1ZjsKKyAgICAgIH0KKwor ICAgIGNhc2UgJ1cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X2VuZCA9IEJVRl9aIChi KSAtIHctPndpbmRvd19lbmRfcG9zOworICBwaW50MnN0ciAoZGVjb2RlX21vZGVfc3BlY19idWYs IHdpZHRoLCB3aW5kb3dfZW5kKTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAg ICAgfQorCiAgICAgY2FzZSAneic6CiAgICAgICAvKiBjb2Rpbmctc3lzdGVtIChub3QgaW5jbHVk aW5nIGVuZC1vZi1saW5lIGZvcm1hdCkgKi8KICAgICBjYXNlICdaJzoKQEAgLTMxMTUxLDYgKzMx Mjc2LDcgQEAgVGhleSBhcmUgc3RpbGwgbG9nZ2VkIHRvIHRoZSAqTWVzc2FnZXMqIGJ1ZmZlci4g ICovKTsKICAgREVGU1lNIChRb3ZlcnJpZGluZ190ZXJtaW5hbF9sb2NhbF9tYXAsICJvdmVycmlk aW5nLXRlcm1pbmFsLWxvY2FsLW1hcCIpOwogICBERUZTWU0gKFFvdmVycmlkaW5nX2xvY2FsX21h cCwgIm92ZXJyaWRpbmctbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUXdpbmRvd19zY3JvbGxfZnVu Y3Rpb25zLCAid2luZG93LXNjcm9sbC1mdW5jdGlvbnMiKTsKKyAgREVGU1lNIChRd2luZG93X3N0 YXJ0X2VuZF9ob29rLCAid2luZG93LXN0YXJ0LWVuZC1ob29rIik7CiAgIERFRlNZTSAoUXdpbmRv d190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsICJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIik7 CiAgIERFRlNZTSAoUXJlZGlzcGxheV9lbmRfdHJpZ2dlcl9mdW5jdGlvbnMsICJyZWRpc3BsYXkt ZW5kLXRyaWdnZXItZnVuY3Rpb25zIik7CiAgIERFRlNZTSAoUWluaGliaXRfcG9pbnRfbW90aW9u X2hvb2tzLCAiaW5oaWJpdC1wb2ludC1tb3Rpb24taG9va3MiKTsKQEAgLTMxNDcyLDYgKzMxNTk4 LDEzIEBAIGlzIHNjcm9sbGVkLiAgSXQgaXMgbm90IGRlc2lnbmVkIGZvciB0aGF0LCBhbmQgc3Vj aCB1c2UgcHJvYmFibHkgd29uJ3QKIHdvcmsuICAqLyk7CiAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0 aW9ucyA9IFFuaWw7CiAKKyAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siLCBW d2luZG93X3N0YXJ0X2VuZF9ob29rLAorICAgIGRvYzogLyogQSBidWZlci1sb2NhbCBob29rIHVz ZWQgdG8gb2J0YWluIG5ldyBgd2luZG93LXN0YXJ0YCBhbmQgYHdpbmRvdy1lbmRgCitkdXJpbmcg cmVkaXNwbGF5LiAgVGhlIGZ1bmN0aW9uIGF0dGFjaGVkIHRvIHRoaXMgaG9vayBoYXMgdGhlIGZv bGxvd2luZyBhcmd1bWVudHM6CitXSU5ET1csIFdJTkRPVy1TVEFSVCwgV0lORE9XLUVORCwgUEJP TC1TVEFSVCwgUEVPTC1FTkQsIEZVTExZLVAuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX2hv b2sgPSBRbmlsOworICBGbWFrZV92YXJpYWJsZV9idWZmZXJfbG9jYWwgKFF3aW5kb3dfc3RhcnRf ZW5kX2hvb2spOworCiAgIERFRlZBUl9MSVNQICgid2luZG93LXRleHQtY2hhbmdlLWZ1bmN0aW9u cyIsCiAJICAgICAgIFZ3aW5kb3dfdGV4dF9jaGFuZ2VfZnVuY3Rpb25zLAogICAgIGRvYzogLyog RnVuY3Rpb25zIHRvIGNhbGwgaW4gcmVkaXNwbGF5IHdoZW4gdGV4dCBpbiB0aGUgd2luZG93IG1p Z2h0IGNoYW5nZS4gICovKTsK --Multipart_Mon_Feb_15_18:00:05_2016-1--