From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nathaniel Flath Newsgroups: gmane.emacs.devel Subject: Re: Overalays and point-entered Date: Fri, 6 Nov 2009 09:54:38 -0500 Message-ID: <5e3a506e0911060654w6220a69j9e2af2b6988a4c5f@mail.gmail.com> References: <5e3a506e0909101709u2259d56h25f3ef1ec67326aa@mail.gmail.com> <5e3a506e0910212035y7d5eca50w7ae1005896ef1bdd@mail.gmail.com> <5e3a506e0910230843r3fb837e7v9aa9cf5e57a7aed@mail.gmail.com> <5e3a506e0910270142y799d80dm7c4ebda24e31556@mail.gmail.com> <87aazcfiud.fsf@catnip.gol.com> <5e3a506e0910311003g1a16874em8e51baed60099a48@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=000e0cd2bd42e0310b0477b505be X-Trace: ger.gmane.org 1257519310 6245 80.91.229.12 (6 Nov 2009 14:55:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 6 Nov 2009 14:55:10 +0000 (UTC) Cc: Stefan Monnier , emacs-devel@gnu.org To: Miles Bader Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Nov 06 15:55:02 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1N6QDN-0001cS-P1 for ged-emacs-devel@m.gmane.org; Fri, 06 Nov 2009 15:55:02 +0100 Original-Received: from localhost ([127.0.0.1]:43171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N6QDN-00022N-58 for ged-emacs-devel@m.gmane.org; Fri, 06 Nov 2009 09:55:01 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N6QDF-00020Z-QY for emacs-devel@gnu.org; Fri, 06 Nov 2009 09:54:53 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N6QDA-0001uA-EH for emacs-devel@gnu.org; Fri, 06 Nov 2009 09:54:52 -0500 Original-Received: from [199.232.76.173] (port=37585 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N6QDA-0001u7-6Q for emacs-devel@gnu.org; Fri, 06 Nov 2009 09:54:48 -0500 Original-Received: from mail-px0-f203.google.com ([209.85.216.203]:40406) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N6QD1-0006r2-VE; Fri, 06 Nov 2009 09:54:40 -0500 Original-Received: by pxi41 with SMTP id 41so745168pxi.24 for ; Fri, 06 Nov 2009 06:54:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=1ucjg4kS+EuyzvO24jlsTBOr8ITQUscBImKLMP1vLYc=; b=BQ6ikac12j1gri+K08wFlxD6Lt1GBI8BfsAvg17b0hfjM8/Ymg6cdXtXHRxukToRnF BFd3FtLkM70QY5kgOMYBDZs4FCdkPyNEmbNiSaWfLW0JAAZvmUTp6ZVA5QMDXP30LeFp TNdQ9y2LhR+2/1PhlRwQpT0dani5FNgs+TJSY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=ERKEOmWOocOIxvyhRtbJN7ksaVQRfqNfF7a/2XUrkRO+mb1li/Hm5V03A9KeNRQh1v 7dwL9e0nDF0Ju17bpoQQ7fRCSYof53NnROpU2kURyZBzRxlq9qoCxYfGywWRP55aRDDh XDtPxxqpAfvHZEkG26qpzs0ze98ZhdngkJVbk= Original-Received: by 10.140.171.2 with SMTP id t2mr42991rve.3.1257519278206; Fri, 06 Nov 2009 06:54:38 -0800 (PST) In-Reply-To: <5e3a506e0910311003g1a16874em8e51baed60099a48@mail.gmail.com> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:116685 Archived-At: --000e0cd2bd42e0310b0477b505be Content-Type: multipart/alternative; boundary=000e0cd2bd42e030f50477b505bc --000e0cd2bd42e030f50477b505bc Content-Type: text/plain; charset=ISO-8859-1 I started working on this - attached is a patch that will run hooks in point-motion only when movement occurs inside the same buffer and window. I'll work on buffer-change-motion-hook a bit later. Let me know if there's any issues. Thanks, Nathaniel Flath On Sat, Oct 31, 2009 at 12:03 PM, Nathaniel Flath wrote: > This may be a good solution. What are your thoughts, Stefan? > > Nathaniel > > > On Tue, Oct 27, 2009 at 8:44 PM, Miles Bader wrote: > >> Stefan Monnier writes: >> > Now, what the behavior should be upon C-x o or C-x b is again somewhat >> > unclear: for C-x b, actually I think it's pretty clear that it should >> > run the hook (which is a vote in favor of per-window data), but for "C-x >> > o" it's less clear: running the hook would often be a good idea, but >> > would mean that it's somewhere between difficult and impossible to let >> > the user go to the *Completions* buffer to select an entry with >> > choose-completion. >> >> It seems like it would be easier to handle the subtle variations among a >> variety of cases if there were simply hooks for each type of movement -- >> one which is per-buffer, and only cares about point position, one which >> runs when a window becomes selected/deselected (C-x o case), and one >> which runs when a buffer is attached/detached from a window (C-x b case). >> >> Then the programmer could add hooks to handle which things he cared >> about, without having them be inadvertently triggered in cases he >> doesn't care about. >> >> -miles >> >> -- >> "Though they may have different meanings, the cries of 'Yeeeee-haw!' and >> 'Allahu akbar!' are, in spirit, not actually all that different." >> > > --000e0cd2bd42e030f50477b505bc Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I started working on this - attached is a patch that will run hooks in poin= t-motion only when movement occurs inside the same buffer and window.=A0 I&= #39;ll work on buffer-change-motion-hook a bit later.=A0 Let me know if the= re's any issues.

Thanks,
Nathaniel Flath

On Sat, Oc= t 31, 2009 at 12:03 PM, Nathaniel Flath <flat0103@gmail.com> wrote:
This may be a good solution.=A0 What are your thoughts, Stefan?

Nathaniel

<= br>
On Tue, Oct 27, 2009 at 8:44 PM, Miles Bader = <mi= les@gnu.org> wrote:
Stefan Monni= er <monnie= r@iro.umontreal.ca> writes:
> Now, what the behavior should be upon C-x o or C-x b is again somewhat=
> unclear: for C-x b, actually I think it's pretty clear that it sho= uld
> run the hook (which is a vote in favor of per-window data), but for &q= uot;C-x
> o" it's less clear: running the hook would often be a good id= ea, but
> would mean that it's somewhere between difficult and impossible to= let
> the user go to the *Completions* buffer to select an entry with
> choose-completion.

It seems like it would be easier to handle the subtle variations amon= g a
variety of cases if there were simply hooks for each type of movement -- one which is per-buffer, and only cares about point position, one which
runs when a window becomes selected/deselected (C-x o case), and one
which runs when a buffer is attached/detached from a window (C-x b case).
Then the programmer could add hooks to handle which things he cared
about, without having them be inadvertently triggered in cases he
doesn't care about.

-miles

--
"Though they may have different meanings, the cries of 'Yeeeee-haw= !' and
=A0'Allahu akbar!' are, in spirit, not actually all that different.= "


--000e0cd2bd42e030f50477b505bc-- --000e0cd2bd42e0310b0477b505be Content-Type: text/x-patch; charset=US-ASCII; name="point-motion.patch" Content-Disposition: attachment; filename="point-motion.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g1p2hqg80 ZGlmZiAtLWdpdCBhL3NyYy9lZGl0Zm5zLmMgYi9zcmMvZWRpdGZucy5jCmluZGV4IDhkZmVhMWYu LjMzM2RiMzggMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0Zm5zLmMKKysrIGIvc3JjL2VkaXRmbnMuYwpA QCAtNTAwLDYgKzUwMCw0OCBAQCBnZXRfcG9zX3Byb3BlcnR5IChwb3NpdGlvbiwgcHJvcCwgb2Jq ZWN0KQogICAgIH0KIH0KCisvKiBSZXR1cm5zIGFuIGFycmF5IG9mIG92ZXJsYXlzIHRoYXQgYXJl IGFjdGl2ZSBhdCB0aGUgaW5kaWNhdGlvbiBwb3NpdGlvbiBhbmQgYnVmZmVyLgorICAgVGhlIGxl bmdodCBvZiB0aGUgYXJyYXkgd2lsbCBiZSBzdG9yZWQgaW4gbnVtX292ZXJsYXlzLiAqLworCitM aXNwX09iamVjdCoKK2dldF9vdmVybGF5c19hdF9wb3MgKHBvc2l0aW9uLCBidWZmZXIsIG51bV9v dmVybGF5cyApCisgICAgIExpc3BfT2JqZWN0IHBvc2l0aW9uLCBidWZmZXI7CisgICAgIGludCog bnVtX292ZXJsYXlzOworeworICBDSEVDS19OVU1CRVJfQ09FUkNFX01BUktFUiAocG9zaXRpb24p OworCisgIGlmIChOSUxQIChidWZmZXIpKQorICAgIFhTRVRCVUZGRVIgKGJ1ZmZlciwgY3VycmVu dF9idWZmZXIpOworCisgIGludCBwb3NuID0gWElOVCAocG9zaXRpb24pOworICBpbnQgaSwgbm92 ZXJsYXlzOworICBMaXNwX09iamVjdCogb3ZlcmxheV92ZWM7CisgIHN0cnVjdCBidWZmZXIgKm9i dWYgPSBjdXJyZW50X2J1ZmZlcjsKKyAgc2V0X2J1ZmZlcl90ZW1wIChYQlVGRkVSIChidWZmZXIp KTsKKworICBub3ZlcmxheXMgPSBvdmVybGF5c19hcm91bmQgKHBvc24sIG92ZXJsYXlfdmVjLCAw KTsKKyAgb3ZlcmxheV92ZWMgPSB4bWFsbG9jIChzaXplb2YoTGlzcF9PYmplY3QpICogbm92ZXJs YXlzKTsKKyAgbm92ZXJsYXlzID0gb3ZlcmxheXNfYXJvdW5kIChwb3NuLCBvdmVybGF5X3ZlYywg bm92ZXJsYXlzKTsKKyAgbm92ZXJsYXlzID0gc29ydF9vdmVybGF5cyAob3ZlcmxheV92ZWMsIG5v dmVybGF5cywgTlVMTCk7CisKKyAgc2V0X2J1ZmZlcl90ZW1wIChvYnVmKTsKKyAgZm9yIChpID0g MDsgaSA8IG5vdmVybGF5czsgaSsrKQorICAgIHsKKyAgICAgIExpc3BfT2JqZWN0IG9sID0gb3Zl cmxheV92ZWNbaV07CisgICAgICBMaXNwX09iamVjdCBzdGFydCA9IE9WRVJMQVlfU1RBUlQgKG9s KSwgZmluaXNoID0gT1ZFUkxBWV9FTkQgKG9sKTsKKyAgICAgIGlmICgoT1ZFUkxBWV9QT1NJVElP TiAoc3RhcnQpID09IHBvc24KKyAgICAgICAgICAgJiYgWE1BUktFUiAoc3RhcnQpLT5pbnNlcnRp b25fdHlwZSA9PSAxKQorICAgICAgICAgIHx8IChPVkVSTEFZX1BPU0lUSU9OIChmaW5pc2gpID09 IHBvc24KKyAgICAgICAgICAgICAgJiYgWE1BUktFUiAoZmluaXNoKS0+aW5zZXJ0aW9uX3R5cGUg PT0gMCkpCisgICAgICAgIHsKKyAgICAgICAgICBvdmVybGF5X3ZlY1tpXSA9IG92ZXJsYXlfdmVj W25vdmVybGF5c107CisgICAgICAgICAgbm92ZXJsYXlzLS07IGktLTsKKyAgICAgICAgfQorICAg IH0KKyAgKm51bV9vdmVybGF5cyA9IG5vdmVybGF5czsKKyAgcmV0dXJuIG92ZXJsYXlfdmVjOwor fQorCiAvKiBGaW5kIHRoZSBmaWVsZCBzdXJyb3VuZGluZyBQT1MgaW4gKkJFRyBhbmQgKkVORC4g IElmIFBPUyBpcyBuaWwsCiAgICB0aGUgdmFsdWUgb2YgcG9pbnQgaXMgdXNlZCBpbnN0ZWFkLiAg SWYgQkVHIG9yIEVORCBpcyBudWxsLAogICAgbWVhbnMgZG9uJ3Qgc3RvcmUgdGhlIGJlZ2lubmlu ZyBvciBlbmQgb2YgdGhlIGZpZWxkLgpkaWZmIC0tZ2l0IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMv a2V5Ym9hcmQuYwppbmRleCBkZTRlMWM1Li43YzE5OGU5IDEwMDY0NAotLS0gYS9zcmMva2V5Ym9h cmQuYworKysgYi9zcmMva2V5Ym9hcmQuYwpAQCAtMTk3OCw2ICsxOTc4LDEwIEBAIGNvbW1hbmRf bG9vcF8xICgpCiAJICAmJiAhYWxyZWFkeV9hZGp1c3RlZCkKIAlhZGp1c3RfcG9pbnRfZm9yX3By b3BlcnR5IChsYXN0X3BvaW50X3Bvc2l0aW9uLCBNT0RJRkYgIT0gcHJldl9tb2RpZmYpOwoKKyAg ICAgIGlmIChjdXJyZW50X2J1ZmZlciA9PSBwcmV2X2J1ZmZlcgorICAgICAgICAgICYmIE5JTFAg KFZpbmhpYml0X3BvaW50X21vdGlvbl9ob29rcykpCisgICAgICAgIHJ1bl9wb2ludF9tb3Rpb25f aG9va3MoKTsKKwogICAgICAgLyogSW5zdGFsbCBjaGFycyBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQg aW4ga2JkIG1hY3JvLiAgKi8KCiAgICAgICBpZiAoIU5JTFAgKGN1cnJlbnRfa2JvYXJkLT5kZWZp bmluZ19rYmRfbWFjcm8pCkBAIC0xOTkwLDYgKzE5OTQsOTggQEAgY29tbWFuZF9sb29wXzEgKCkK ICAgICB9CiB9CgorLyogIFJ1bnMgJ3BvaW50LW1vdGlvbiBob29rcyBvbiB0ZXh0IHByb3BlcnRp ZXMgYW5kIG92ZXJsYXlzLiovCit2b2lkCitydW5fcG9pbnRfbW90aW9uX2hvb2tzICgpCit7Cisg IGV4dGVybiBMaXNwX09iamVjdCBRcG9pbnRfbW90aW9uLCBRd2luZG93OworCisgIHN0YXRpYyBM aXNwX09iamVjdCogb3ZlcmxheV9wcmV2X3ZlYzsKKyAgc3RhdGljIExpc3BfT2JqZWN0IHByZXZf dGV4dF9wcm9wOworICBzdGF0aWMgaW50IG5vdmVybGF5c19wcmV2OworICBzdGF0aWMgTGlzcF9P YmplY3QgcHJldl93aW5kb3c7CisKKyAgaW50IGksIGosIG5vdmVybGF5c19jdXI7CisgIExpc3Bf T2JqZWN0ICpvdmVybGF5X2N1cl92ZWM7CisgIExpc3BfT2JqZWN0IHBvaW50X21vdGlvbiwgb3Zl cmxheV93aW5kb3c7CisKKyAgaWYgKCAhTklMUCAoRmVxIChwcmV2X3dpbmRvdywgRnNlbGVjdGVk X3dpbmRvdygpKSkpCisgICAgeworICAgIC8qIFJldHJpZXZlcyB2ZWN0b3Igb2Ygb3ZlcmxheXMg aW4gY3VycmVudCBsb2NhdGlvbiBhbmQgcnVucyAncG9pbnQtbW90aW9uCisgICAgICAgaG9vayBm b3IgdGhvc2Ugd2hvc2UgJ3dpbmRvdyBwcm9wZXJ0eSBhbGxvd3MgaXQgdG8gYmUgZGlzcGxheWVk ICovCisgICAgb3ZlcmxheV9jdXJfdmVjID0gZ2V0X292ZXJsYXlzX2F0X3BvcyAobWFrZV9udW1i ZXIgKGN1cnJlbnRfYnVmZmVyLT5wdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3VycmVudF9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm5vdmVybGF5c19jdXIpOworICAgIGZvciAoaSA9IDA7IGkgPCBub3Zl cmxheXNfY3VyOyBpKyspCisgICAgICB7CisgICAgICAgIHBvaW50X21vdGlvbiA9IEZvdmVybGF5 X2dldCAob3ZlcmxheV9jdXJfdmVjW2ldLCBRcG9pbnRfbW90aW9uKTsKKyAgICAgICAgb3Zlcmxh eV93aW5kb3cgPSBGb3ZlcmxheV9nZXQgKG92ZXJsYXlfY3VyX3ZlY1tpXSwgUXdpbmRvdyk7Cisg ICAgICAgIGlmICghTklMUCAocG9pbnRfbW90aW9uKSAmJgorICAgICAgICAgICAgKE5JTFAgKG92 ZXJsYXlfd2luZG93KQorICAgICAgICAgICAgIHx8ICFOSUxQIChGZXEgKG92ZXJsYXlfd2luZG93 LCBGc2VsZWN0ZWRfd2luZG93KCkpKSkpCisgICAgICAgICAgeworICAgICAgICAgICAgY2FsbDMg KHBvaW50X21vdGlvbiwKKyAgICAgICAgICAgICAgICAgICBtYWtlX251bWJlciAobGFzdF9wb2lu dF9wb3NpdGlvbiksCisgICAgICAgICAgICAgICAgICAgbWFrZV9udW1iZXIgKGN1cnJlbnRfYnVm ZmVyLT5wdCksCisgICAgICAgICAgICAgICAgICAgb3ZlcmxheV9jdXJfdmVjW2ldKTsKKyAgICAg ICAgICB9CisgICAgICB9CisKKyAgICAvKiBSdW5zIGhvb2tzIGZvciBhbGwgb3ZlcmxheXMgdGhh dCB0aGUgcG9pbnQgdXNlZCB0byBiZSBpbiBidXQgbm8gbG9uZ2VyIGlzICovCisgICAgZm9yIChp ID0gMDsgaSA8IG5vdmVybGF5c19wcmV2OyBpKyspCisgICAgICB7CisgICAgICAgIHBvaW50X21v dGlvbiA9IEZvdmVybGF5X2dldCAob3ZlcmxheV9wcmV2X3ZlY1tpXSwgUXBvaW50X21vdGlvbik7 CisgICAgICAgIG92ZXJsYXlfd2luZG93ID0gRm92ZXJsYXlfZ2V0IChvdmVybGF5X3ByZXZfdmVj W2ldLCBRd2luZG93KTsKKyAgICAgICAgaWYgKCFOSUxQIChwb2ludF9tb3Rpb24pICYmCisgICAg ICAgICAgICAoTklMUCAob3ZlcmxheV93aW5kb3cpCisgICAgICAgICAgICAgfHwgIU5JTFAgKEZl cSAob3ZlcmxheV93aW5kb3csIEZzZWxlY3RlZF93aW5kb3coKSkpKSkKKyAgICAgICAgICB7Cisg ICAgICAgICAgICBmb3IgKGogPSAwOyBub3ZlcmxheXNfY3VyOyBqKyspIHsKKyAgICAgICAgICAg ICAgaWYgKCFOSUxQIChGZXEgKG92ZXJsYXlfcHJldl92ZWNbaV0sIG92ZXJsYXlfY3VyX3ZlY1tq XSkpKQorICAgICAgICAgICAgICAgIGdvdG8gbmV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAg ICAgICAgY2FsbDMgKHBvaW50X21vdGlvbiwKKyAgICAgICAgICAgICAgICAgICBtYWtlX251bWJl ciAobGFzdF9wb2ludF9wb3NpdGlvbiksCisgICAgICAgICAgICAgICAgICAgbWFrZV9udW1iZXIg KGN1cnJlbnRfYnVmZmVyLT5wdCksCisgICAgICAgICAgICAgICAgICAgb3ZlcmxheV9wcmV2X3Zl Y1tpXSk7CisgICAgICAgICAgbmV4dDogaT1pOworICAgICAgICAgIH0KKyAgICAgIH0KKworICAg IC8qIFJ1bnMgaG9vayBmb3IgY3VycmVudCB0ZXh0IHByb3BlcnR5ICovCisgICAgcG9pbnRfbW90 aW9uID0gRmdldF90ZXh0X3Byb3BlcnR5IChtYWtlX251bWJlciAoY3VycmVudF9idWZmZXItPnB0 KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFwb2ludF9tb3Rpb24s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRbmlsKTsKKyAgICBpZiAo IU5JTFAgKHBvaW50X21vdGlvbikpCisgICAgICB7CisgICAgICAgIGNhbGwzIChwb2ludF9tb3Rp b24sCisgICAgICAgICAgICAgICBtYWtlX251bWJlciAobGFzdF9wb2ludF9wb3NpdGlvbiksCisg ICAgICAgICAgICAgICBtYWtlX251bWJlciAoY3VycmVudF9idWZmZXItPnB0KSwKKyAgICAgICAg ICAgICAgIEZjdXJyZW50X2J1ZmZlcigpKTsKKyAgICAgIH0KKworICAgIC8qIFJ1bnMgaG9vayBm b3IgcHJldmlvdXMgdGV4dCBwcm9wZXJ0eSBpZiBpdCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgY3Vy cmVudCB0ZXh0IHByb3BlcnR5ICovCisgICAgaWYgKHByZXZfdGV4dF9wcm9wICE9IDAgJiYgIU5J TFAgKHByZXZfdGV4dF9wcm9wKSkgeworICAgICAgaWYgKE5JTFAgKEZlcSAocHJldl90ZXh0X3By b3AsIHBvaW50X21vdGlvbikpKQorICAgICAgICB7CisgICAgICAgICAgY2FsbDMgKHByZXZfdGV4 dF9wcm9wLAorICAgICAgICAgICAgICAgICBtYWtlX251bWJlciAobGFzdF9wb2ludF9wb3NpdGlv biksCisgICAgICAgICAgICAgICAgIG1ha2VfbnVtYmVyIChjdXJyZW50X2J1ZmZlci0+cHQpLAor ICAgICAgICAgICAgICAgICBGY3VycmVudF9idWZmZXIoKSk7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBwcmV2X3RleHRfcHJvcCA9IHBvaW50X21vdGlvbjsKKyAgICAvKiBGcmVlcyBwcmV2aW91 cyBvdmVybGF5cyBhbmQgc2V0cyB0aGVtIHRvIHRoZSBjdXJyZW50IGxpc3QgKi8KKyAgICBmcmVl IChvdmVybGF5X3ByZXZfdmVjKTsKKyAgICBvdmVybGF5X3ByZXZfdmVjID0gb3ZlcmxheV9jdXJf dmVjOworICAgIG5vdmVybGF5c19wcmV2ID0gbm92ZXJsYXlzX2N1cjsKKyAgfQorICBwcmV2X3dp bmRvdyA9IEZzZWxlY3RlZF93aW5kb3coKTsKK30KKworCiBleHRlcm4gTGlzcF9PYmplY3QgUWNv bXBvc2l0aW9uLCBRZGlzcGxheTsKCiAvKiBBZGp1c3QgcG9pbnQgdG8gYSBib3VuZGFyeSBvZiBh IHJlZ2lvbiB0aGF0IGhhcyBzdWNoIGEgcHJvcGVydHkKQEAgLTgxMDEsMTAgKzgxOTcsMTAgQEAg cGFyc2VfbWVudV9pdGVtIChpdGVtLCBub3RyZWFsLCBpbm1lbnViYXIpCiAJCSAgJiYgIShTWU1C T0xQIChkZWYpICYmIEVRICh0ZW0sIFhTWU1CT0wgKGRlZiktPmZ1bmN0aW9uKSkpKQogCSAgICBr ZXlzID0gUW5pbDsKIAl9Ci0KKwogICAgICAgaWYgKE5JTFAgKGtleXMpKQogCWtleXMgPSBGd2hl cmVfaXNfaW50ZXJuYWwgKGRlZiwgUW5pbCwgUXQsIFFuaWwsIFFuaWwpOwotCisKICAgICAgIGlm ICghTklMUCAoa2V5cykpCiAJewogCSAgdGVtID0gRmtleV9kZXNjcmlwdGlvbiAoa2V5cywgUW5p bCk7CkBAIC04MTE5LDcgKzgyMTUsNyBAQCBwYXJzZV9tZW51X2l0ZW0gKGl0ZW0sIG5vdHJlYWws IGlubWVudWJhcikKIAkgIC8qIHRlbSA9IGNvbmNhdDMgKGJ1aWxkX3N0cmluZyAoIiAgKCIpLCB0 ZW0sIGJ1aWxkX3N0cmluZyAoIikiKSk7ICovCiAJfQogICAgIH0KLQorCgogICAvKiBJZiB3ZSBv bmx5IHdhbnQgdG8gcHJlY29tcHV0ZSBlcXVpdmFsZW50IGtleSBiaW5kaW5ncywgc3RvcCBoZXJl LiAqLwogICBpZiAobm90cmVhbCkKZGlmZiAtLWdpdCBhL3NyYy90ZXh0cHJvcC5jIGIvc3JjL3Rl eHRwcm9wLmMKaW5kZXggZTgyYWYxMi4uMDJhNjZjMCAxMDA2NDQKLS0tIGEvc3JjL3RleHRwcm9w LmMKKysrIGIvc3JjL3RleHRwcm9wLmMKQEAgLTU0LDYgKzU0LDcgQEAgTGlzcF9PYmplY3QgUXBv aW50X2xlZnQ7CiBMaXNwX09iamVjdCBRcG9pbnRfZW50ZXJlZDsKIExpc3BfT2JqZWN0IFFjYXRl Z29yeTsKIExpc3BfT2JqZWN0IFFsb2NhbF9tYXA7CitMaXNwX09iamVjdCBRcG9pbnRfbW90aW9u OwoKIC8qIFZpc3VhbCBwcm9wZXJ0aWVzIHRleHQgKGluY2x1ZGluZyBzdHJpbmdzKSBtYXkgaGF2 ZS4gICovCiBMaXNwX09iamVjdCBRZm9yZWdyb3VuZCwgUWJhY2tncm91bmQsIFFmb250LCBRdW5k ZXJsaW5lLCBRc3RpcHBsZTsKQEAgLTIzNDksNiArMjM1MCw3IEBAIGluaGVyaXRzIGl0IGlmIE5P TlNUSUNLSU5FU1MgaXMgbmlsLiAgVGhlIGBmcm9udC1zdGlja3knIGFuZAogICBRcG9pbnRfbGVm dCA9IGludGVybiAoInBvaW50LWxlZnQiKTsKICAgc3RhdGljcHJvICgmUXBvaW50X2VudGVyZWQp OwogICBRcG9pbnRfZW50ZXJlZCA9IGludGVybiAoInBvaW50LWVudGVyZWQiKTsKKyAgUXBvaW50 X21vdGlvbiA9IGludGVybiAoInBvaW50LW1vdGlvbiIpOwoKICAgZGVmc3ViciAoJlN0ZXh0X3By b3BlcnRpZXNfYXQpOwogICBkZWZzdWJyICgmU2dldF90ZXh0X3Byb3BlcnR5KTsK --000e0cd2bd42e0310b0477b505be--