From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lennart Borgman Newsgroups: gmane.emacs.devel Subject: Re: Hl-line and visual-line Date: Sat, 22 May 2010 19:04:09 +0200 Message-ID: References: <45790724-63FC-4B80-A70D-8CD49A92FEE3@gmail.com> <8339xmqob9.fsf@gnu.org> <94F28B33-A04E-4511-B93D-E5471EE4D0DE@gmail.com> <201005210834.28589.tassilo@member.fsf.org> <83wruxpt2z.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e68ea0f5ff996b048731cc07 X-Trace: dough.gmane.org 1274547889 20666 80.91.229.12 (22 May 2010 17:04:49 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 22 May 2010 17:04:49 +0000 (UTC) Cc: Chong Yidong , Eli Zaretskii , Tassilo Horn , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat May 22 19:04:45 2010 connect(): No such file or directory 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.69) (envelope-from ) id 1OFs7v-00025K-8n for ged-emacs-devel@m.gmane.org; Sat, 22 May 2010 19:04:43 +0200 Original-Received: from localhost ([127.0.0.1]:57237 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OFs7u-0004GI-42 for ged-emacs-devel@m.gmane.org; Sat, 22 May 2010 13:04:42 -0400 Original-Received: from [140.186.70.92] (port=33414 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OFs7l-0004Fc-7N for emacs-devel@gnu.org; Sat, 22 May 2010 13:04:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OFs7i-000491-Ev for emacs-devel@gnu.org; Sat, 22 May 2010 13:04:32 -0400 Original-Received: from mail-gw0-f41.google.com ([74.125.83.41]:65247) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OFs7i-00048s-7U; Sat, 22 May 2010 13:04:30 -0400 Original-Received: by gwb20 with SMTP id 20so1309721gwb.0 for ; Sat, 22 May 2010 10:04:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type; bh=RFFloQ/b0R7dlJN7OYRDXxRpDWynhPtGIQwrXGsoldY=; b=i/5/tMyaiob58ZDa0n4ofmS7obcrseqb3QsFD0FW/VF1K15yeYwpWtr7/ArAO+DR4V ertjQSWkW3y912zfMQE/sr22uEOe8ehde4ouvOnr/PQbRN/1tLBpF+1EhMbbTOyZ9Mv9 wtWxkruxbytQbJuB3vTcU3lPDIpjtP0N80MuE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=kMhTP6LQWz4nCtEM2/69UC5IccbMXK8ePCDK7c11XYsyXKVLHLdbI9CoS8+h11f0u8 WmCQGgD5JvziX5FZ/cz5OI/4IFtWy3x1allIZRMIC6up/hxNVKPL79elsd0ZimH8gJMz Naki/TdQyWcxBiMGaDQ5tOpyRHMLl8y6DHPwU= Original-Received: by 10.101.139.37 with SMTP id r37mr4189597ann.75.1274547869292; Sat, 22 May 2010 10:04:29 -0700 (PDT) Original-Received: by 10.100.177.20 with HTTP; Sat, 22 May 2010 10:04:09 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.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:125077 Archived-At: --0016e68ea0f5ff996b048731cc07 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sat, May 22, 2010 at 4:35 AM, Lennart Borgman wrote: > On Sat, May 22, 2010 at 2:18 AM, Stefan Monnier > wrote: >>> Didn't I send something for that long ago? I am not sure anymore. >> >> No idea. >> >>> I am not even sure I understand the code. Is it just a simple change >>> in face_at_buffer_position in xfaces.c that is needed? >> >> No. =C2=A0This is a change to overlays and hence affects all properties,= not >> just `face'. =C2=A0Maybe it'll also require changes in xfaces.c as well,= but the >> core change should be somewhat around the code that implements >> functionality like get-char-property. > > Thanks, forgot. I looked up all places calling sort_overlays and > changed the relevant ones (I skipped mouse overlays). I have attached the patch. Could someone please check and install it to the trunk (unless there are no objections). PS: If someone could tell me how I could do this from my checkout from Launchpad I would be glad to do it myself the next time. --0016e68ea0f5ff996b048731cc07 Content-Type: text/x-patch; charset=US-ASCII; name="overlay-neg-priority-1.diff" Content-Disposition: attachment; filename="overlay-neg-priority-1.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9iotsf00 DQoNCg0KDQo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3RleHRwcm9wLmMnDQotLS0gdHJ1bmsvc3Jj L3RleHRwcm9wLmMJMjAxMC0wMS0xOSAxMzoxNjowMSArMDAwMA0KKysrIHBhdGNoZWQvc3JjL3Rl eHRwcm9wLmMJMjAxMC0wNS0yMiAwMTozOToxMSArMDAwMA0KQEAgLTYyOSw2ICs2MjksMTEgQEAN CiAgICAgIExpc3BfT2JqZWN0ICpvdmVybGF5Ow0KIHsNCiAgIHN0cnVjdCB3aW5kb3cgKncgPSAw Ow0KKyAgTGlzcF9PYmplY3QgdGVtID0gUW5pbDsNCisgIExpc3BfT2JqZWN0IHRlbV90ZXh0ID0g UW5pbDsNCisgIGludCBwcmlvcml0eTsNCisgIGludCBub3ZlcmxheXM7DQorICBMaXNwX09iamVj dCAqb3ZlcmxheV92ZWM7DQoNCiAgIENIRUNLX05VTUJFUl9DT0VSQ0VfTUFSS0VSIChwb3NpdGlv bik7DQoNCkBAIC02NDIsOCArNjQ3LDYgQEANCiAgICAgfQ0KICAgaWYgKEJVRkZFUlAgKG9iamVj dCkpDQogICAgIHsNCi0gICAgICBpbnQgbm92ZXJsYXlzOw0KLSAgICAgIExpc3BfT2JqZWN0ICpv dmVybGF5X3ZlYzsNCiAgICAgICBzdHJ1Y3QgYnVmZmVyICpvYnVmID0gY3VycmVudF9idWZmZXI7 DQoNCiAgICAgICBpZiAoWElOVCAocG9zaXRpb24pIDwgQlVGX0JFR1YgKFhCVUZGRVIgKG9iamVj dCkpDQpAQCAtNjU4LDI2ICs2NjEsMzcgQEANCiAgICAgICBzZXRfYnVmZmVyX3RlbXAgKG9idWYp Ow0KDQogICAgICAgLyogTm93IGNoZWNrIHRoZSBvdmVybGF5cyBpbiBvcmRlciBvZiBkZWNyZWFz aW5nIHByaW9yaXR5LiAgKi8NCi0gICAgICB3aGlsZSAoLS1ub3ZlcmxheXMgPj0gMCkNCisgICAg ICB3aGlsZSAoIE5JTFAgKHRlbSkgJiYgKC0tbm92ZXJsYXlzID49IDApICkNCiAJew0KLQkgIExp c3BfT2JqZWN0IHRlbSA9IEZvdmVybGF5X2dldCAob3ZlcmxheV92ZWNbbm92ZXJsYXlzXSwgcHJv cCk7DQorCSAgdGVtID0gRm92ZXJsYXlfZ2V0IChvdmVybGF5X3ZlY1tub3ZlcmxheXNdLCBwcm9w KTsNCiAJICBpZiAoIU5JTFAgKHRlbSkpDQogCSAgICB7DQotCSAgICAgIGlmIChvdmVybGF5KQ0K LQkJLyogUmV0dXJuIHRoZSBvdmVybGF5IHdlIGdvdCB0aGUgcHJvcGVydHkgZnJvbS4gICovDQot CQkqb3ZlcmxheSA9IG92ZXJsYXlfdmVjW25vdmVybGF5c107DQotCSAgICAgIHJldHVybiB0ZW07 DQorICAgICAgICAgICAgICBMaXNwX09iamVjdCB0ZW1fcHJpID0gRm92ZXJsYXlfZ2V0IChvdmVy bGF5X3ZlY1tub3ZlcmxheXNdLCBRcHJpb3JpdHkpOw0KKyAgICAgICAgICAgICAgcHJpb3JpdHkg PSAoSU5URUdFUlAgKHRlbV9wcmkpKSA/IFhJTlQgKHRlbV9wcmkpIDogMDsNCiAJICAgIH0NCiAJ fQ0KICAgICB9DQoNCi0gIGlmIChvdmVybGF5KQ0KLSAgICAvKiBJbmRpY2F0ZSB0aGF0IHRoZSBy ZXR1cm4gdmFsdWUgaXMgbm90IGZyb20gYW4gb3ZlcmxheS4gICovDQotICAgICpvdmVybGF5ID0g UW5pbDsNCisgIC8qIENoZWNrIHdoYXQgdG8gcmV0dXJuLiAqLw0KKyAgdGVtX3RleHQgPSBGZ2V0 X3RleHRfcHJvcGVydHkgKHBvc2l0aW9uLCBwcm9wLCBvYmplY3QpOw0KKyAgaWYgKCAoIU5JTFAg KHRlbSkpICYmICggKHByaW9yaXR5ID49IDApDQorICAgICAgICAgICAgICAgICAgICAgICAgICB8 fCBOSUxQICh0ZW1fdGV4dCkgKSkNCisgICAgew0KKyAgICAgIGlmIChvdmVybGF5KQ0KKyAgICAg ICAgLyogUmV0dXJuIHRoZSBvdmVybGF5IHdlIGdvdCB0aGUgcHJvcGVydHkgZnJvbS4gICovDQor ICAgICAgICAqb3ZlcmxheSA9IG92ZXJsYXlfdmVjW25vdmVybGF5c107DQorICAgICAgcmV0dXJu IHRlbTsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgaWYgKG92ZXJsYXkpDQorICAg ICAgICAvKiBJbmRpY2F0ZSB0aGF0IHRoZSByZXR1cm4gdmFsdWUgaXMgbm90IGZyb20gYW4gb3Zl cmxheS4gICovDQorICAgICAgICAqb3ZlcmxheSA9IFFuaWw7DQoNCi0gIC8qIE5vdCBhIGJ1ZmZl ciwgb3Igbm8gYXBwcm9wcmlhdGUgb3ZlcmxheSwgc28gZmFsbCB0aHJvdWdoIHRvIHRoZQ0KLSAg ICAgc2ltcGxlciBjYXNlLiAgKi8NCi0gIHJldHVybiBGZ2V0X3RleHRfcHJvcGVydHkgKHBvc2l0 aW9uLCBwcm9wLCBvYmplY3QpOw0KKyAgICAgIC8qIE5vdCBhIGJ1ZmZlciwgb3Igbm8gYXBwcm9w cmlhdGUgb3ZlcmxheSwgc28gZmFsbCB0aHJvdWdoIHRvIHRoZQ0KKyAgICAgICAgIHNpbXBsZXIg Y2FzZS4gICovDQorICAgICAgcmV0dXJuIHRlbV90ZXh0Ow0KKyAgICB9DQogfQ0KDQogREVGVU4g KCJnZXQtY2hhci1wcm9wZXJ0eSIsIEZnZXRfY2hhcl9wcm9wZXJ0eSwgU2dldF9jaGFyX3Byb3Bl cnR5LCAyLCAzLCAwLA0KDQoNCg0KDQoNCj09PSBtb2RpZmllZCBmaWxlICdzcmMvZWRpdGZucy5j Jw0KLS0tIHRydW5rL3NyYy9lZGl0Zm5zLmMJMjAxMC0wMy0yNCAxODowMjo1NiArMDAwMA0KKysr IHBhdGNoZWQvc3JjL2VkaXRmbnMuYwkyMDEwLTA1LTIyIDAxOjQ4OjQ0ICswMDAwDQpAQCAtNDQ0 LDcgKzQ0NCw5IEBADQogICAgIHsNCiAgICAgICBpbnQgcG9zbiA9IFhJTlQgKHBvc2l0aW9uKTsN CiAgICAgICBpbnQgbm92ZXJsYXlzOw0KLSAgICAgIExpc3BfT2JqZWN0ICpvdmVybGF5X3ZlYywg dGVtOw0KKyAgICAgIExpc3BfT2JqZWN0ICpvdmVybGF5X3ZlYzsNCisgICAgICBMaXNwX09iamVj dCB0ZW0gPSBRbmlsOw0KKyAgICAgIExpc3BfT2JqZWN0IHRlbV9wcmk7DQogICAgICAgc3RydWN0 IGJ1ZmZlciAqb2J1ZiA9IGN1cnJlbnRfYnVmZmVyOw0KDQogICAgICAgc2V0X2J1ZmZlcl90ZW1w IChYQlVGRkVSIChvYmplY3QpKTsNCkBAIC00NjYsNyArNDY4LDcgQEANCiAgICAgICBzZXRfYnVm ZmVyX3RlbXAgKG9idWYpOw0KDQogICAgICAgLyogTm93IGNoZWNrIHRoZSBvdmVybGF5cyBpbiBv cmRlciBvZiBkZWNyZWFzaW5nIHByaW9yaXR5LiAgKi8NCi0gICAgICB3aGlsZSAoLS1ub3Zlcmxh eXMgPj0gMCkNCisgICAgICB3aGlsZSAoIE5JTFAgKHRlbSkgJiYgKC0tbm92ZXJsYXlzID49IDAp ICkNCiAJew0KIAkgIExpc3BfT2JqZWN0IG9sID0gb3ZlcmxheV92ZWNbbm92ZXJsYXlzXTsNCiAJ ICB0ZW0gPSBGb3ZlcmxheV9nZXQgKG9sLCBwcm9wKTsNCkBAIC00NzgsMjQgKzQ4MCwyOCBAQA0K IAkJICAgJiYgWE1BUktFUiAoc3RhcnQpLT5pbnNlcnRpb25fdHlwZSA9PSAxKQ0KIAkJICB8fCAo T1ZFUkxBWV9QT1NJVElPTiAoZmluaXNoKSA9PSBwb3NuDQogCQkgICAgICAmJiBYTUFSS0VSIChm aW5pc2gpLT5pbnNlcnRpb25fdHlwZSA9PSAwKSkNCi0JCTsgLyogVGhlIG92ZXJsYXkgd2lsbCBu b3QgY292ZXIgYSBjaGFyIGluc2VydGVkIGF0IHBvaW50LiAgKi8NCisJCXRlbSA9IFFuaWw7IC8q IFRoZSBvdmVybGF5IHdpbGwgbm90IGNvdmVyIGEgY2hhciBpbnNlcnRlZCBhdCBwb2ludC4gICov DQogCSAgICAgIGVsc2UNCiAJCXsNCi0JCSAgcmV0dXJuIHRlbTsNCisgICAgICAgICAgICAgICAg ICB0ZW1fcHJpID0gRm92ZXJsYXlfZ2V0IChvbCwgUXByaW9yaXR5KTsNCisgICAgICAgICAgICAg ICAgICBpZiAodGVtX3ByaSA+PSAwKSByZXR1cm4gdGVtOw0KIAkJfQ0KIAkgICAgfQ0KIAl9DQoN CiAgICAgICB7IC8qIE5vdyBjaGVjayB0aGUgdGV4dCBwcm9wZXJ0aWVzLiAgKi8NCiAJaW50IHN0 aWNraW5lc3MgPSB0ZXh0X3Byb3BlcnR5X3N0aWNraW5lc3MgKHByb3AsIHBvc2l0aW9uLCBvYmpl Y3QpOw0KKyAgICAgICAgTGlzcF9PYmplY3QgdGVtX3RleHQgPSBRbmlsOw0KIAlpZiAoc3RpY2tp bmVzcyA+IDApDQotCSAgcmV0dXJuIEZnZXRfdGV4dF9wcm9wZXJ0eSAocG9zaXRpb24sIHByb3As IG9iamVjdCk7DQorCSAgdGVtX3RleHQgPSBGZ2V0X3RleHRfcHJvcGVydHkgKHBvc2l0aW9uLCBw cm9wLCBvYmplY3QpOw0KIAllbHNlIGlmIChzdGlja2luZXNzIDwgMA0KIAkJICYmIFhJTlQgKHBv c2l0aW9uKSA+IEJVRl9CRUdWIChYQlVGRkVSIChvYmplY3QpKSkNCi0JICByZXR1cm4gRmdldF90 ZXh0X3Byb3BlcnR5IChtYWtlX251bWJlciAoWElOVCAocG9zaXRpb24pIC0gMSksDQorCSAgdGVt X3RleHQgPSBGZ2V0X3RleHRfcHJvcGVydHkgKG1ha2VfbnVtYmVyIChYSU5UIChwb3NpdGlvbikg LSAxKSwNCiAJCQkJICAgICBwcm9wLCBvYmplY3QpOw0KKyAgICAgICAgaWYgKHRlbV90ZXh0ICYm ICh0ZW1fcHJpIDwgMCkpDQorICAgICAgICAgIHJldHVybiB0ZW1fdGV4dDsNCiAJZWxzZQ0KLQkg IHJldHVybiBRbmlsOw0KKwkgIHJldHVybiB0ZW07DQogICAgICAgfQ0KICAgICB9DQogfQ0KDQoN Cg0KDQoNCj09PSBtb2RpZmllZCBmaWxlICdzcmMveGZhY2VzLmMnDQotLS0gdHJ1bmsvc3JjL3hm YWNlcy5jCTIwMTAtMDEtMTMgMDg6MzU6MTAgKzAwMDANCisrKyBwYXRjaGVkL3NyYy94ZmFjZXMu YwkyMDEwLTA1LTIyIDAyOjQyOjA4ICswMDAwDQpAQCAtNjI3OCw3ICs2Mjc4LDcgQEANCiB7DQog ICBzdHJ1Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKHctPmZyYW1lKTsNCiAgIExpc3BfT2JqZWN0IGF0 dHJzW0xGQUNFX1ZFQ1RPUl9TSVpFXTsNCi0gIExpc3BfT2JqZWN0IHByb3AsIHBvc2l0aW9uOw0K KyAgTGlzcF9PYmplY3QgdGV4dF9wcm9wLCBwcm9wLCBwb3NpdGlvbjsNCiAgIGludCBpLCBub3Zl cmxheXM7DQogICBMaXNwX09iamVjdCAqb3ZlcmxheV92ZWM7DQogICBMaXNwX09iamVjdCBmcmFt ZTsNCkBAIC02Mjg2LDYgKzYyODYsNyBAQA0KICAgTGlzcF9PYmplY3QgcHJvcG5hbWUgPSBtb3Vz ZSA/IFFtb3VzZV9mYWNlIDogUWZhY2U7DQogICBMaXNwX09iamVjdCBsaW1pdDEsIGVuZDsNCiAg IHN0cnVjdCBmYWNlICpkZWZhdWx0X2ZhY2U7DQorICBpbnQgdGV4dF9tZXJnZWQgPSAwOw0KDQog ICAvKiBXIG11c3QgZGlzcGxheSB0aGUgY3VycmVudCBidWZmZXIuICBXZSBjb3VsZCB3cml0ZSB0 aGlzIGZ1bmN0aW9uDQogICAgICB0byB1c2UgdGhlIGZyYW1lIGFuZCBidWZmZXIgb2YgVywgYnV0 IHJpZ2h0IG5vdyBpdCBkb2Vzbid0LiAgKi8NCkBAIC02MzAwLDcgKzYzMDEsNyBAQA0KDQogICAv KiBHZXQgdGhlIGBmYWNlJyBvciBgbW91c2VfZmFjZScgdGV4dCBwcm9wZXJ0eSBhdCBQT1MsIGFu ZA0KICAgICAgZGV0ZXJtaW5lIHRoZSBuZXh0IHBvc2l0aW9uIGF0IHdoaWNoIHRoZSBwcm9wZXJ0 eSBjaGFuZ2VzLiAgKi8NCi0gIHByb3AgPSBGZ2V0X3RleHRfcHJvcGVydHkgKHBvc2l0aW9uLCBw cm9wbmFtZSwgdy0+YnVmZmVyKTsNCisgIHRleHRfcHJvcCA9IEZnZXRfdGV4dF9wcm9wZXJ0eSAo cG9zaXRpb24sIHByb3BuYW1lLCB3LT5idWZmZXIpOw0KICAgWFNFVEZBU1RJTlQgKGxpbWl0MSwg KGxpbWl0IDwgZW5kcG9zID8gbGltaXQgOiBlbmRwb3MpKTsNCiAgIGVuZCA9IEZuZXh0X3Npbmds ZV9wcm9wZXJ0eV9jaGFuZ2UgKHBvc2l0aW9uLCBwcm9wbmFtZSwgdy0+YnVmZmVyLCBsaW1pdDEp Ow0KICAgaWYgKElOVEVHRVJQIChlbmQpKQ0KQEAgLTYzMjMsNyArNjMyNCw3IEBADQoNCiAgIC8q IE9wdGltaXplIGNvbW1vbiBjYXNlcyB3aGVyZSB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0IGZhY2Uu ICAqLw0KICAgaWYgKG5vdmVybGF5cyA9PSAwDQotICAgICAgJiYgTklMUCAocHJvcCkNCisgICAg ICAmJiBOSUxQICh0ZXh0X3Byb3ApDQogICAgICAgJiYgIShwb3MgPj0gcmVnaW9uX2JlZyAmJiBw b3MgPCByZWdpb25fZW5kKSkNCiAgICAgcmV0dXJuIGRlZmF1bHRfZmFjZS0+aWQ7DQoNCkBAIC02 MzMxLDE2ICs2MzMyLDI2IEBADQogICBiY29weSAoZGVmYXVsdF9mYWNlLT5sZmFjZSwgYXR0cnMs IHNpemVvZiBhdHRycyk7DQoNCiAgIC8qIE1lcmdlIGluIGF0dHJpYnV0ZXMgc3BlY2lmaWVkIHZp YSB0ZXh0IHByb3BlcnRpZXMuICAqLw0KLSAgaWYgKCFOSUxQIChwcm9wKSkNCi0gICAgbWVyZ2Vf ZmFjZV9yZWYgKGYsIHByb3AsIGF0dHJzLCAxLCAwKTsNCisgIC8qIGlmICghTklMUCAocHJvcCkp ICovDQorICAvKiAgIG1lcmdlX2ZhY2VfcmVmIChmLCBwcm9wLCBhdHRycywgMSwgMCk7ICovDQoN Ci0gIC8qIE5vdyBtZXJnZSB0aGUgb3ZlcmxheSBkYXRhLiAgKi8NCisgIC8qIE5vdyBtZXJnZSB0 aGUgb3ZlcmxheSBkYXRhIGFuZCB0aGUgdGV4dCBwcm9wZXJ0aWVzLiAgKi8NCisgIGlmIChOSUxQ ICh0ZXh0X3Byb3ApKSB0ZXh0X21lcmdlZCA9IDE7DQogICBub3ZlcmxheXMgPSBzb3J0X292ZXJs YXlzIChvdmVybGF5X3ZlYywgbm92ZXJsYXlzLCB3KTsNCiAgIGZvciAoaSA9IDA7IGkgPCBub3Zl cmxheXM7IGkrKykNCiAgICAgew0KICAgICAgIExpc3BfT2JqZWN0IG9lbmQ7DQogICAgICAgaW50 IG9lbmRwb3M7DQoNCisgICAgICBpZiAoIXRleHRfbWVyZ2VkKQ0KKyAgICAgICAgew0KKyAgICAg ICAgICBpbnQgcHJpb3JpdHkgPSBGb3ZlcmxheV9nZXQgKG92ZXJsYXlfdmVjW2ldLCBRcHJpb3Jp dHkpOw0KKyAgICAgICAgICBpZiAocHJpb3JpdHkgPj0gMCkNCisgICAgICAgICAgICB7DQorICAg ICAgICAgICAgICBtZXJnZV9mYWNlX3JlZiAoZiwgdGV4dF9wcm9wLCBhdHRycywgMSwgMCk7DQor ICAgICAgICAgICAgICB0ZXh0X21lcmdlZCA9IDE7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAg fQ0KICAgICAgIHByb3AgPSBGb3ZlcmxheV9nZXQgKG92ZXJsYXlfdmVjW2ldLCBwcm9wbmFtZSk7 DQogICAgICAgaWYgKCFOSUxQIChwcm9wKSkNCiAJbWVyZ2VfZmFjZV9yZWYgKGYsIHByb3AsIGF0 dHJzLCAxLCAwKTsNCkBAIC02MzUwLDYgKzYzNjEsOSBAQA0KICAgICAgIGlmIChvZW5kcG9zIDwg ZW5kcG9zKQ0KIAllbmRwb3MgPSBvZW5kcG9zOw0KICAgICB9DQorICAvKiBJZiB0aGVyZSB3ZXJl IG5vIG92ZXJsYXlzIG9yIGFsbCBoYWQgbmVnYXRpdmUgcHJpb3JpdGVpcyB3ZSBoYXZlDQorICAg ICBub3QgaGFuZGxlZCB0ZXh0IHByb3BlcnRpZXMgeWV0LiAqLw0KKyAgaWYgKCF0ZXh0X21lcmdl ZCkgbWVyZ2VfZmFjZV9yZWYgKGYsIHRleHRfcHJvcCwgYXR0cnMsIDEsIDApOw0KDQogICAvKiBJ ZiBpbiB0aGUgcmVnaW9uLCBtZXJnZSBpbiB0aGUgcmVnaW9uIGZhY2UuICAqLw0KICAgaWYgKHBv cyA+PSByZWdpb25fYmVnICYmIHBvcyA8IHJlZ2lvbl9lbmQpDQoNCg0KDQoNCg0KPT09IG1vZGlm aWVkIGZpbGUgJ3NyYy9saXNwLmgnDQotLS0gdHJ1bmsvc3JjL2xpc3AuaAkyMDEwLTA1LTE1IDIx OjE5OjA1ICswMDAwDQorKysgcGF0Y2hlZC9zcmMvbGlzcC5oCTIwMTAtMDUtMjIgMTM6NTA6NTYg KzAwMDANCkBAIC0yOTczLDEgKzI5NzMsMSBAQA0KIGV4dGVybiB2b2lkIHNldF90aW1lX3pvbmVf cnVsZSBQXyAoKGNoYXIgKikpOw0KDQogLyogZGVmaW5lZCBpbiBidWZmZXIuYyAqLw0KK2V4dGVy biBMaXNwX09iamVjdCBRcHJpb3JpdHk7DQogZXh0ZXJuIGludCBtb3VzZV9mYWNlX292ZXJsYXlf b3ZlcmxhcHMgUF8gKChMaXNwX09iamVjdCkpOw0KIGV4dGVybiB2b2lkIG5zYmVycm9yIFBfICgo TGlzcF9PYmplY3QpKSBOT19SRVRVUk47DQogRVhGVU4gKEZzZXRfYnVmZmVyX211bHRpYnl0ZSwg MSk7DQo= --0016e68ea0f5ff996b048731cc07--