From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.devel Subject: Re: Character literals for Unicode (control) characters Date: Sun, 13 Mar 2016 20:31:00 +0000 Message-ID: References: <87r3fsjenn.fsf@gnus.org> <56D8623F.6060806@cs.ucla.edu> <838u1vwqj9.fsf@gnu.org> <56DC7227.10708@cs.ucla.edu> <56DC7F18.8050103@cs.ucla.edu> <83si03v0c3.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11c2346272b2b7052df40b04 X-Trace: ger.gmane.org 1457901097 17276 80.91.229.3 (13 Mar 2016 20:31:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 13 Mar 2016 20:31:37 +0000 (UTC) Cc: larsi@gnus.org, eggert@cs.ucla.edu, johnw@gnu.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Mar 13 21:31:36 2016 Return-path: Envelope-to: ged-emacs-devel@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 1afCfn-0004r0-Nx for ged-emacs-devel@m.gmane.org; Sun, 13 Mar 2016 21:31:35 +0100 Original-Received: from localhost ([::1]:37583 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1afCfn-0006MS-6W for ged-emacs-devel@m.gmane.org; Sun, 13 Mar 2016 16:31:35 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1afCfV-0006M5-0D for emacs-devel@gnu.org; Sun, 13 Mar 2016 16:31:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1afCfQ-0007sX-MC for emacs-devel@gnu.org; Sun, 13 Mar 2016 16:31:16 -0400 Original-Received: from mail-lb0-x233.google.com ([2a00:1450:4010:c04::233]:34254) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1afCfQ-0007sO-6Z; Sun, 13 Mar 2016 16:31:12 -0400 Original-Received: by mail-lb0-x233.google.com with SMTP id xr8so209795313lbb.1; Sun, 13 Mar 2016 13:31:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2CDxzS1NBjcBUQiwnqQmhm/ZzGb8Zh7+X+ME9B0j3sg=; b=qO7zPByXsKzU/AJ55y73X5cVGt9n2fRB4j5klLN20QHRsvuNV93D1lsr3eQyljfHCd llDTh+w+sZFsYShTx3txlD453yvO5e6ARjzxoaoRNijH29nsXNaLNoJFb4A6M0hfbU9b gTPs7zuIkpdfT7fWpllIKEQOa/mK9vyBMAluAUpacOxZ2kCJLY+AcqPG1LLVinB+4n9h 0ZZMoZ/mwi+r/YzpCkmGMyIX3n5e1GalCM4Zagfe/lXL+6g/CBSffCF87sxOsjRFZi/F oB1XPPtUkDzamnRTO2OPMKNsYoplEk7UXh1sQgNoyMcetJyJoQmGI0JOJmLPVjOk4IxY sXTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2CDxzS1NBjcBUQiwnqQmhm/ZzGb8Zh7+X+ME9B0j3sg=; b=baxJcKgYyTvdQ7V7e+VWckfVPkIjz+p6QWEsl1DShXB0+p/tVnQxxPPeYjfRf4DNj2 wQM5+pNbkWPE5db/g78LHThmTFC1+gbZRF8tRTymdjIH432v0s3M8+zb21N5c6936HzQ v5WYHMmvO0no0BmHm//b88u+aUL+SFmh3ter3sijiuHQSQzq4kmQQZcWjhqag7ZBCPwI jZBKJ3RyjM/rmYMNesJ0s+yUVWGJNAZRAxv7VfynNDJjxfxMVLiM1XSTzojChwLnrgJX czIqNjLlzzDPaM2V7TXOAlPgQUarX/awmhNBZW9NHWyPzVKzOHl9dFRqfrf6dJlf1AhW Hdsw== X-Gm-Message-State: AD7BkJIbtmyhF1R6nmn3dmO9vzwkLCqxco8M3itKMeBfABklwt74ekcGaHFn6m3l87UM19abBFQRGtvYi+nDvg== X-Received: by 10.112.158.69 with SMTP id ws5mr6864598lbb.23.1457901070880; Sun, 13 Mar 2016 13:31:10 -0700 (PDT) In-Reply-To: <83si03v0c3.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c04::233 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:201646 Archived-At: --001a11c2346272b2b7052df40b04 Content-Type: multipart/alternative; boundary=001a11c2346272b2b0052df40b02 --001a11c2346272b2b0052df40b02 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Eli Zaretskii schrieb am So., 6. M=C3=A4rz 2016 um 21:05 Uhr= : > > From: Philipp Stephani > > Date: Sun, 06 Mar 2016 19:16:37 +0000 > > Cc: larsi@gnus.org, johnw@gnu.org, emacs-devel@gnu.org > > > > This is probably for practical purposes (no point in showing thousands > of "CJK UNIFIED IDEOGRAPH-xyz" > > completions). For a character escape these considerations don't apply, > and it would be very surprising and > > confusing to not accept all characters. > > The only characters that ucs-names omits are CJK ideographs, whose > codepoints can be computed from the name algorithmically. All the > others are non-characters, right? So why it won't be a good idea to > simply use ucs-names? > > I've attached another patch to switch to ucs-names. --001a11c2346272b2b0052df40b02 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Eli Za= retskii <eliz@gnu.org> schrieb am= So., 6. M=C3=A4rz 2016 um 21:05=C2=A0Uhr:
> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Sun, 06 Mar 2016 19:16:37 +0000
> Cc: larsi@gnus.org= , johnw@gnu.org,= emacs-devel@gnu.o= rg
>
> This is probably for practical purposes (no point in showing thousands= of "CJK UNIFIED IDEOGRAPH-xyz"
> completions). For a character escape these considerations don't ap= ply, and it would be very surprising and
> confusing to not accept all characters.

The only characters that ucs-names omits are CJK ideographs, whose
codepoints can be computed from the name algorithmically.=C2=A0 All the
others are non-characters, right?=C2=A0 So why it won't be a good idea = to
simply use ucs-names?


I've attached another patch to swi= tch to ucs-names.
--001a11c2346272b2b0052df40b02-- --001a11c2346272b2b7052df40b04 Content-Type: application/octet-stream; name="0004-Use-ucs-names.patch" Content-Disposition: attachment; filename="0004-Use-ucs-names.patch" Content-Transfer-Encoding: base64 Content-ID: <15371ac8563626b844b1> X-Attachment-Id: 15371ac8563626b844b1 RnJvbSAwNDgxYjE2Y2RjZDdjMmI0YzFhODc3ZjhhMDFlNTY5Y2VkOTlkMWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgMTMgTWFyIDIwMTYgMjE6Mjc6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDQvNF0g VXNlIGB1Y3MtbmFtZXMnLgoKKiBscmVhZC5jIChpbnZhbGlkX2NoYXJhY3Rlcl9uYW1lLCBjaGVj a19zY2FsYXJfdmFsdWUpCihwYXJzZV9jb2RlX2FmdGVyX3ByZWZpeCwgY2hhcmFjdGVyX25hbWVf dG9fY29kZSk6IE5ldyBoZWxwZXIKZnVuY3Rpb25zIHRoYXQgdXNlIGB1Y3MtbmFtZXMnIGFuZCBw YXJzaW5nIGZvciBDSksgaWRlb2dyYXBocy4KKHJlYWRfZXNjYXBlKTogVXNlIGhlbHBlciBmdW5j dGlvbnMuCihzeW1zX29mX2xyZWFkKTogTmV3IHN5bWJvbCBgdWNzLW5hbWVzJy4KKiB0ZXN0L3Ny Yy9scmVhZC10ZXN0cy5lbDogTmV3IHRlc3RzOyBmaXggYSBjb3VwbGUgb2YgYnVncyBpbgpleGlz dGluZyB0ZXN0cy4KLS0tCiBzcmMvbHJlYWQuYyAgICAgICAgICAgICB8IDEyMiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3Qvc3JjL2xyZWFkLXRl c3RzLmVsIHwgIDExICsrKystCiAyIGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9scmVhZC5jIGIvc3JjL2xyZWFkLmMKaW5k ZXggNDAwMDYzNy4uNTY3YzA3MSAxMDA2NDQKLS0tIGEvc3JjL2xyZWFkLmMKKysrIGIvc3JjL2xy ZWFkLmMKQEAgLTQ0LDYgKzQ0LDggQEAgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwogI2luY2x1ZGUgInRlcm1ob29r cy5oIgogI2luY2x1ZGUgImJsb2NraW5wdXQuaCIKICNpbmNsdWRlIDxjLWN0eXBlLmg+CisjaW5j bHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3Rkbm9yZXR1cm4uaD4KIAogI2lmZGVmIE1TRE9T CiAjaW5jbHVkZSAibXNkb3MuaCIKQEAgLTIxNTEsMzQgKzIxNTMsODEgQEAgZ3Jvd19yZWFkX2J1 ZmZlciAodm9pZCkKIAkJCSBNQVhfTVVMVElCWVRFX0xFTkdUSCwgLTEsIDEpOwogfQogCi0vKiBI YXNoIHRhYmxlIHRoYXQgbWFwcyBVbmljb2RlIGNoYXJhY3RlciBuYW1lcyB0byBjb2RlIHBvaW50 cy4gICovCi1zdGF0aWMgTGlzcF9PYmplY3QgY2hhcmFjdGVyX25hbWVzOworLyogU2lnbmFscyBh biBgaW52YWxpZC1yZWFkLXN5bnRheCcgZXJyb3IgaW5kaWNhdGluZyB0aGF0IHRoZQorICAgY2hh cmFjdGVyIG5hbWUgaW4gYW4gXE57Li4ufSBsaXRlcmFsIGlzIGludmFsaWQuICAqLworc3RhdGlj IG5vcmV0dXJuIHZvaWQgaW52YWxpZF9jaGFyYWN0ZXJfbmFtZSAoTGlzcF9PYmplY3QgbmFtZSkK K3sKKyAgeHNpZ25hbDEgKFFpbnZhbGlkX3JlYWRfc3ludGF4LAorICAgICAgICAgICAgQ0FMTE4g KEZmb3JtYXQsIGJ1aWxkX3B1cmVfY19zdHJpbmcgKCJcXE57JXN9IiksIG5hbWUpKTsKK30KIAot LyogTGVuZ3RoIG9mIHRoZSBsb25nZXN0IFVuaWNvZGUgY2hhcmFjdGVyIG5hbWUsIGluIGJ5dGVz LiAqLwotc3RhdGljIHB0cmRpZmZfdCBtYXhfY2hhcmFjdGVyX25hbWVfbGVuZ3RoOworLyogQ2hl Y2tzIHRoYXQgQ09ERSBpcyBhIHZhbGlkIFVuaWNvZGUgc2NhbGFyIHZhbHVlLCBhbmQgcmV0dXJu cyBpdHMKKyAgIHZhbHVlLiAgQ09ERSBzaG91bGQgYmUgcGFyc2VkIGZyb20gdGhlIGNoYXJhY3Rl ciBuYW1lIGdpdmVuIGJ5CisgICBOQU1FLiAgTkFNRSBpcyB1c2VkIGZvciBlcnJvciBtZXNzYWdl cy4gICovCitzdGF0aWMgaW50IGNoZWNrX3NjYWxhcl92YWx1ZSAoTGlzcF9PYmplY3QgY29kZSwg TGlzcF9PYmplY3QgbmFtZSkKK3sKKyAgaWYgKCEgUkFOR0VEX0lOVEVHRVJQICgwLCBjb2RlLCBN QVhfVU5JQ09ERV9DSEFSKSB8fAorICAgICAgLyogRG9uJ3QgYWxsb3cgc3Vycm9nYXRlcy4gICov CisgICAgICBSQU5HRURfSU5URUdFUlAgKDB4RDgwMCwgY29kZSwgMHhERkZGKSkKKyAgICBpbnZh bGlkX2NoYXJhY3Rlcl9uYW1lIChuYW1lKTsKKyAgcmV0dXJuIFhJTlQgKGNvZGUpOworfQogCi0v KiBJbml0aWFsaXplcyBgY2hhcmFjdGVyX25hbWVzJyBhbmQgYG1heF9jaGFyYWN0ZXJfbmFtZV9s ZW5ndGgnLgotICAgQ2FsbGVkIGJ5IGByZWFkX2VzY2FwZScuICAqLwotdm9pZCBpbml0X2NoYXJh Y3Rlcl9uYW1lcyAodm9pZCkKKy8qIElmIE5BTUUgc3RhcnRzIHdpdGggUFJFRklYLCBpbnRlcnBy ZXQgdGhlIHJlc3QgYXMgYSBoZXhhZGVjaW1hbAorICAgbnVtYmVyIGFuZCByZXR1cm4gaXRzIHZh bHVlLiAgUmFpc2VzIGBpbnZhbGlkLXJlYWQtc3ludGF4JyBpZiB0aGUKKyAgIG51bWJlciBpcyBu b3QgYSB2YWxpZCBzY2FsYXIgdmFsdWUuICBSZXR1cm5zIC0xIGlmIE5BTUUgZG9lc24ndAorICAg c3RhcnQgd2l0aCBQUkVGSVguICAqLworc3RhdGljIGludAorcGFyc2VfY29kZV9hZnRlcl9wcmVm aXggKExpc3BfT2JqZWN0IG5hbWUsIGNvbnN0IGNoYXIqIHByZWZpeCkKIHsKLSAgY2hhcmFjdGVy X25hbWVzID0gQ0FMTE4gKEZtYWtlX2hhc2hfdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBRQ3Rlc3QsIFFlcXVhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEN1cnJl bnRseSBhcm91bmQgMTAwLDAwMCBVbmljb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkLiAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAg IFFDc2l6ZSwgbWFrZV9uYXRudW0gKDEwMDAwMCkpOwotICBMaXNwX09iamVjdCBnZXRfcHJvcGVy dHkgPQotICAgIEZzeW1ib2xfZnVuY3Rpb24gKGludGVybl9jX3N0cmluZyAoImdldC1jaGFyLWNv ZGUtcHJvcGVydHkiKSk7Ci0gIHB0cmRpZmZfdCBsZW5ndGggPSAwOwotICBmb3IgKGludCBpID0g MDsgaSA8PSBNQVhfVU5JQ09ERV9DSEFSOyArK2kpCisgIHB0cmRpZmZfdCBuYW1lX2xlbiA9IFNC WVRFUyAobmFtZSk7CisgIHB0cmRpZmZfdCBwcmVmaXhfbGVuID0gc3RybGVuIChwcmVmaXgpOwor ICAvKiBBbGxvdyBiZXR3ZWVuIG9uZSBhbmQgZWlnaHQgaGV4YWRlY2ltYWwgZGlnaXRzIGFmdGVy IHRoZQorICAgICBwcmVmaXguICAqLworICBpZiAobmFtZV9sZW4gPiBwcmVmaXhfbGVuICYmIG5h bWVfbGVuIDw9IHByZWZpeF9sZW4gKyA4CisgICAgICAmJiBtZW1jbXAgKFNEQVRBIChuYW1lKSwg cHJlZml4LCBwcmVmaXhfbGVuKSA9PSAwKQogICAgIHsKLSAgICAgIExpc3BfT2JqZWN0IGNvZGUg PSBtYWtlX25hdG51bSAoaSk7Ci0gICAgICBMaXNwX09iamVjdCBuYW1lID0gY2FsbDIgKGdldF9w cm9wZXJ0eSwgY29kZSwgUW5hbWUpOwotICAgICAgaWYgKE5JTFAgKG5hbWUpKSBjb250aW51ZTsK LSAgICAgIENIRUNLX1NUUklORyAobmFtZSk7Ci0gICAgICBsZW5ndGggPSBtYXggKGxlbmd0aCwg U0JZVEVTIChuYW1lKSk7Ci0gICAgICBGcHV0aGFzaCAobmFtZSwgY29kZSwgY2hhcmFjdGVyX25h bWVzKTsKKyAgICAgIExpc3BfT2JqZWN0IGNvZGUgPSBzdHJpbmdfdG9fbnVtYmVyIChTREFUQSAo bmFtZSkgKyBwcmVmaXhfbGVuLCAxNiwgZmFsc2UpOworICAgICAgaWYgKCEgTklMUCAoY29kZSkp CisgICAgICAgIHJldHVybiBjaGVja19zY2FsYXJfdmFsdWUgKGNvZGUsIG5hbWUpOworICAgIH0K KyAgcmV0dXJuIC0xOworfQorCisvKiBSZXR1cm5zIHRoZSBzY2FsYXIgdmFsdWUgdGhhdCBoYXMg dGhlIFVuaWNvZGUgY2hhcmFjdGVyIG5hbWUgTkFNRS4KKyAgIFJhaXNlcyBgaW52YWxpZC1yZWFk LXN5bnRheCcgaWYgdGhlcmUgaXMgbm8gc3VjaCBjaGFyYWN0ZXIuICAqLworc3RhdGljIGludAor Y2hhcmFjdGVyX25hbWVfdG9fY29kZSAoTGlzcF9PYmplY3QgbmFtZSkKK3sKKyAgLyogQ29kZSBw b2ludCBhcyBVK04sIHdoZXJlIE4gaXMgYmV0d2VlbiAxIGFuZCA4IGhleGFkZWNpbWFsCisgICAg IGRpZ2l0cy4gICovCisgIGludCBjb2RlID0gcGFyc2VfY29kZV9hZnRlcl9wcmVmaXggKG5hbWUs ICJVKyIpOworICBpZiAoY29kZSA+PSAwKQorICAgIHJldHVybiBjb2RlOworCisgIC8qIENKSyBp ZGVvZ3JhcGhzIGFyZSBub3QgY29udGFpbmVkIGluIHRoZSBhc3NvY2lhdGlvbiBsaXN0IHJldHVy bmVkCisgICAgIGJ5IGB1Y3MtbmFtZXMnLiAgQnV0IHRoZXkgZm9sbG93IGEgcHJlZGljdGFibGUg bmFtaW5nIHBhdHRlcm46IGEKKyAgICAgZml4ZWQgcHJlZml4IHBsdXMgdGhlIGhleGFkZWNpbWFs IGNvZGVwb2ludCB2YWx1ZS4gICovCisgIGNvZGUgPSBwYXJzZV9jb2RlX2FmdGVyX3ByZWZpeCAo bmFtZSwgIkNKSyBJREVPR1JBUEgtIik7CisgIGlmIChjb2RlID49IDApCisgICAgeworICAgICAg LyogVmFyaW91cyByYW5nZXMgb2YgQ0pLIGNoYXJhY3RlcnM7IHNlZSBVbmljb2RlRGF0YS50eHQu ICAqLworICAgICAgaWYgKChjb2RlID49IDB4MzQwMCAmJiBjb2RlIDw9IDB4NERCNSkgfHwKKyAg ICAgICAgICAoY29kZSA+PSAweDRFMDAgJiYgY29kZSA8PSAweDlGRDUpIHx8CisgICAgICAgICAg KGNvZGUgPj0gMHgyMDAwMCAmJiBjb2RlIDw9IDB4MkE2RDYpIHx8CisgICAgICAgICAgKGNvZGUg Pj0gMHgyQTcwMCAmJiBjb2RlIDw9IDB4MkI3MzQpIHx8CisgICAgICAgICAgKGNvZGUgPj0gMHgy Qjc0MCAmJiBjb2RlIDw9IDB4MkI4MUQpIHx8CisgICAgICAgICAgKGNvZGUgPj0gMHgyQjgyMCAm JiBjb2RlIDw9IDB4MkNFQTEpKQorICAgICAgICByZXR1cm4gY29kZTsKKyAgICAgIGVsc2UKKyAg ICAgICAgaW52YWxpZF9jaGFyYWN0ZXJfbmFtZSAobmFtZSk7CiAgICAgfQotICBtYXhfY2hhcmFj dGVyX25hbWVfbGVuZ3RoID0gbGVuZ3RoOworCisgIC8qIExvb2sgdXAgdGhlIG5hbWUgaW4gdGhl IHRhYmxlIHJldHVybmVkIGJ5IGB1Y3MtbmFtZXMnLiAgKi8KKyAgTGlzcF9PYmplY3QgbmFtZXMg PSBjYWxsMCAoUXVjc19uYW1lcyk7CisgIGlmICghIENPTlNQIChuYW1lcykpCisgICAgaW52YWxp ZF9zeW50YXggKCJVbmljb2RlIGNoYXJhY3RlciBuYW1lIGRhdGFiYXNlIG5vdCBsb2FkZWQiKTsK KyAgcmV0dXJuIGNoZWNrX3NjYWxhcl92YWx1ZSAoQ0RSIChGYXNzb2MgKG5hbWUsIG5hbWVzKSks IG5hbWUpOwogfQogCiAvKiBSZWFkIGEgXC1lc2NhcGUgc2VxdWVuY2UsIGFzc3VtaW5nIHdlIGFs cmVhZHkgcmVhZCB0aGUgYFwnLgpAQCAtMjM5NCwxMCArMjQ0Myw5IEBAIHJlYWRfZXNjYXBlIChM aXNwX09iamVjdCByZWFkY2hhcmZ1biwgYm9vbCBzdHJpbmdwKQogICAgICAgICBjID0gUkVBRENI QVI7CiAgICAgICAgIGlmIChjICE9ICd7JykKICAgICAgICAgICBpbnZhbGlkX3N5bnRheCAoIkV4 cGVjdGVkIG9wZW5pbmcgYnJhY2UgYWZ0ZXIgXFxOIik7Ci0gICAgICAgIGlmIChOSUxQIChjaGFy YWN0ZXJfbmFtZXMpKQotICAgICAgICAgIGluaXRfY2hhcmFjdGVyX25hbWVzICgpOwotICAgICAg ICBVU0VfU0FGRV9BTExPQ0E7Ci0gICAgICAgIGNoYXIgKm5hbWUgPSBTQUZFX0FMTE9DQSAobWF4 X2NoYXJhY3Rlcl9uYW1lX2xlbmd0aCArIDEpOworICAgICAgICAvKiAyMDAgY2hhcmFjdGVycyBp cyBob3BlZnVsbHkgbG9uZyBlbm91Z2guICBJbmNyZWFzZSBpZgorICAgICAgICAgICBub3QuICAq LworICAgICAgICBjaGFyIG5hbWVbMjAwXTsKICAgICAgICAgYm9vbCB3aGl0ZXNwYWNlID0gZmFs c2U7CiAgICAgICAgIHB0cmRpZmZfdCBsZW5ndGggPSAwOwogICAgICAgICB3aGlsZSAodHJ1ZSkK QEAgLTI0MjYsMjUgKzI0NzQsMTIgQEAgcmVhZF9lc2NhcGUgKExpc3BfT2JqZWN0IHJlYWRjaGFy ZnVuLCBib29sIHN0cmluZ3ApCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgIHdoaXRl c3BhY2UgPSBmYWxzZTsKICAgICAgICAgICAgIG5hbWVbbGVuZ3RoKytdID0gYzsKLSAgICAgICAg ICAgIGlmIChsZW5ndGggPj0gbWF4X2NoYXJhY3Rlcl9uYW1lX2xlbmd0aCkKKyAgICAgICAgICAg IGlmIChsZW5ndGggPj0gc2l6ZW9mIG5hbWUpCiAgICAgICAgICAgICAgIGludmFsaWRfc3ludGF4 ICgiQ2hhcmFjdGVyIG5hbWUgdG9vIGxvbmciKTsKICAgICAgICAgICB9CiAgICAgICAgIGlmIChs ZW5ndGggPT0gMCkKICAgICAgICAgICBpbnZhbGlkX3N5bnRheCAoIkVtcHR5IGNoYXJhY3RlciBu YW1lIik7Ci0gICAgICAgIG5hbWVbbGVuZ3RoXSA9IDA7Ci0gICAgICAgIExpc3BfT2JqZWN0IGxp c3BfbmFtZSA9IG1ha2VfdW5pYnl0ZV9zdHJpbmcgKG5hbWUsIGxlbmd0aCk7Ci0gICAgICAgIExp c3BfT2JqZWN0IGNvZGUgPQotICAgICAgICAgIChsZW5ndGggPj0gMyAmJiBsZW5ndGggPD0gMTAg JiYgbmFtZVswXSA9PSAnVScgJiYgbmFtZVsxXSA9PSAnKycpID8KLSAgICAgICAgICAvKiBDb2Rl IHBvaW50IGFzIFUrTiwgd2hlcmUgTiBpcyBiZXR3ZWVuIDEgYW5kIDggaGV4YWRlY2ltYWwKLSAg ICAgICAgICAgICBkaWdpdHMuICAqLwotICAgICAgICAgIHN0cmluZ190b19udW1iZXIgKG5hbWUg KyAyLCAxNiwgZmFsc2UpIDoKLSAgICAgICAgICBGZ2V0aGFzaCAobGlzcF9uYW1lLCBjaGFyYWN0 ZXJfbmFtZXMsIFFuaWwpOwotICAgICAgICBTQUZFX0ZSRUUgKCk7Ci0gICAgICAgIGlmICghIFJB TkdFRF9JTlRFR0VSUCAoMCwgY29kZSwgTUFYX1VOSUNPREVfQ0hBUikpCi0gICAgICAgICAgeHNp Z25hbDEgKFFpbnZhbGlkX3JlYWRfc3ludGF4LAotICAgICAgICAgICAgICAgICAgICBDQUxMTiAo RmZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX3B1cmVfY19zdHJpbmcg KCJcXE57JXN9IiksIGxpc3BfbmFtZSkpOwotICAgICAgICByZXR1cm4gWElOVCAoY29kZSk7Cisg ICAgICAgIHJldHVybiBjaGFyYWN0ZXJfbmFtZV90b19jb2RlIChtYWtlX3VuaWJ5dGVfc3RyaW5n IChuYW1lLCBsZW5ndGgpKTsKICAgICAgIH0KIAogICAgIGRlZmF1bHQ6CkBAIC00ODM2LDYgKzQ4 NzEsNSBAQCB0aGF0IGFyZSBsb2FkZWQgYmVmb3JlIHlvdXIgY3VzdG9taXphdGlvbnMgYXJlIHJl YWQhICAqLyk7CiAgIERFRlNZTSAoUXJlaGFzaF9zaXplLCAicmVoYXNoLXNpemUiKTsKICAgREVG U1lNIChRcmVoYXNoX3RocmVzaG9sZCwgInJlaGFzaC10aHJlc2hvbGQiKTsKIAotICBjaGFyYWN0 ZXJfbmFtZXMgPSBRbmlsOwotICBzdGF0aWNwcm8gKCZjaGFyYWN0ZXJfbmFtZXMpOworICBERUZT WU0gKFF1Y3NfbmFtZXMsICJ1Y3MtbmFtZXMiKTsKIH0KZGlmZiAtLWdpdCBhL3Rlc3Qvc3JjL2xy ZWFkLXRlc3RzLmVsIGIvdGVzdC9zcmMvbHJlYWQtdGVzdHMuZWwKaW5kZXggMWY4NzMzNC4uZmY1 ZDBmNiAxMDA2NDQKLS0tIGEvdGVzdC9zcmMvbHJlYWQtdGVzdHMuZWwKKysrIGIvdGVzdC9zcmMv bHJlYWQtdGVzdHMuZWwKQEAgLTQwLDEwICs0MCwxNyBAQAogICAoc2hvdWxkLWVycm9yIChyZWFk ICI/XFxOe0RPRVMgTk9UIEVYSVNUfSIpKSA6dHlwZSAnaW52YWxpZC1yZWFkLXN5bnRheCkKIAog KGVydC1kZWZ0ZXN0IGxyZWFkLWNoYXItbm9uLWFzY2lpLW5hbWUgKCkKLSAgKHNob3VsZC1lcnJv ciAocmVhZCAiP1xcTntMQVRJTiBDQVBJVEFMIExFVFRFUiDDmH0iKSkgJ2ludmFsaWQtcmVhZC1z eW50YXgpCisgIChzaG91bGQtZXJyb3IgKHJlYWQgIj9cXE57TEFUSU4gQ0FQSVRBTCBMRVRURVIg w5h9IikKKyAgICAgICAgICAgICAgICA6dHlwZSAnaW52YWxpZC1yZWFkLXN5bnRheCkpCiAKIChl cnQtZGVmdGVzdCBscmVhZC1jaGFyLWVtcHR5LW5hbWUgKCkKLSAgKHNob3VsZC1lcnJvciAocmVh ZCAiP1xcTnt9IikpICdpbnZhbGlkLXJlYWQtc3ludGF4KQorICAoc2hvdWxkLWVycm9yIChyZWFk ICI/XFxOe30iKSA6dHlwZSAnaW52YWxpZC1yZWFkLXN5bnRheCkpCisKKyhlcnQtZGVmdGVzdCBs cmVhZC1jaGFyLWNqay1uYW1lICgpCisgIChzaG91bGQgKGVxdWFsID9cTntDSksgSURFT0dSQVBI LTJCNzM0fSAjeDJCNzM0KSkpCisKKyhlcnQtZGVmdGVzdCBscmVhZC1jaGFyLWludmFsaWQtY2pr LW5hbWUgKCkKKyAgKHNob3VsZC1lcnJvciAocmVhZCAiP1xcTntDSksgSURFT0dSQVBILTJCNzM1 fSIpIDp0eXBlICdpbnZhbGlkLXJlYWQtc3ludGF4KSkKIAogKGVydC1kZWZ0ZXN0IGxyZWFkLXN0 cmluZy1jaGFyLW51bWJlciAoKQogICAoc2hvdWxkIChlcXVhbCAiYVxOe1UrQTgxN31iIiAiYVx1 QTgxN2IiKSkpCi0tIAoyLjcuMAoK --001a11c2346272b2b7052df40b04--