From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Allow inserting non-BMP characters Date: Sun, 07 Jan 2018 15:51:55 +0000 Message-ID: References: <20171225210115.13789-1-phst@google.com> <83d132hz9e.fsf@gnu.org> <834lodii55.fsf@gnu.org> <83zi65grxv.fsf@gnu.org> <20171226213642.GB82103@breton.holly.idiocy.org> <83shbwhm70.fsf@gnu.org> <20171228113820.GA83324@breton.holly.idiocy.org> <834loahl4j.fsf@gnu.org> <83incpfffm.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a113fe138df86b2056231a921" X-Trace: blaine.gmane.org 1515340262 4083 195.159.176.226 (7 Jan 2018 15:51:02 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 7 Jan 2018 15:51:02 +0000 (UTC) Cc: phst@google.com, alan@idiocy.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 07 16:50:58 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eYDDm-0000H0-PB for ged-emacs-devel@m.gmane.org; Sun, 07 Jan 2018 16:50:51 +0100 Original-Received: from localhost ([::1]:57100 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYDFm-00067Y-96 for ged-emacs-devel@m.gmane.org; Sun, 07 Jan 2018 10:52:54 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYDF4-00067G-Ms for emacs-devel@gnu.org; Sun, 07 Jan 2018 10:52:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYDF3-0002OZ-Es for emacs-devel@gnu.org; Sun, 07 Jan 2018 10:52:10 -0500 Original-Received: from mail-qk0-x22e.google.com ([2607:f8b0:400d:c09::22e]:42338) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYDF1-0002M6-Ef; Sun, 07 Jan 2018 10:52:07 -0500 Original-Received: by mail-qk0-x22e.google.com with SMTP id d202so11463261qkc.9; Sun, 07 Jan 2018 07:52:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=67GiZtVzEVMo/LFIcwbRhPKVvRdhqXrJPqdqQvMgDM0=; b=peEZQDPVVY7dP2Mk0oEbNwWUQkr3tiCwaYUJ8S15DJe7EhWOJO3Egz0slvRtbTJGCE YZAR4KfbGsGIXwycmQYMvLp/8CXPaTZeMKD/ecH+9FDgATUwB0UJlorSD/M0HUM6seLS j7Eb0+DwrMiixk2G2MTxsnCFScW+6sWfArSB/TGIQETB0AzkUPoEVYHmSCDjKAFd2v8F dzjfgsSJU7lHmpwNgZPyJP34UYEgaQAgrSx+kd5aOxKmUwZdrwB106iJeVDdH3NbcDev B7eB7h5lLgDbC52tiWLrjAhHC0NxO683xS4K2crRj5nKmKZ/9U8vZt43UQ8TVzm8qaO5 DHiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=67GiZtVzEVMo/LFIcwbRhPKVvRdhqXrJPqdqQvMgDM0=; b=ZxV/Zk6V7q/y7FblcTZaaIa5SxYvHBtQ2dTZ2OLSNePYsV8U6pYwXuALQ7avgyyxt6 tJt4aHF2mB5KlfufIBZSxwI+yU7KDlKkJEewhYjo7PWSV6223MCh+zZekOlY2xP683A5 JdsyeNcQ3WiEymgVybGWth9K9bwICz+x4ecte2x/kibr/yHqiB36uNvVBVc67DrSqMvk bKXW7ywSDz3WgoZCzBDuoLO49roxax/ZidEy4C6H0wS20TV/uFoJct8gVi5AzgXUy6rw hawGX2SGOI/0fI581JAZ0b4AVLPdRtcZmSHxD2MIyqcjwuUIvfZF94fF+coPxhD172z7 +lmA== X-Gm-Message-State: AKwxytetuEJ7k00tiWMxk/qqN4OrOY+tWhoLYWtXM8o1sSuflOfXEu9U HCLO39Jbg2Olq41NoCrq6Ih4CnbUwLvA4uOSPn16iA== X-Google-Smtp-Source: ACJfBoshTnT9zGTH/qT+cTukS7Qdmhv8j0Xd3uUA3bZu6WXu86Vm3i7Kn8SfJScRbtAzhBg5IyjO8SxfstrT8a4M8eo= X-Received: by 10.55.16.219 with SMTP id 88mr12945738qkq.151.1515340326455; Sun, 07 Jan 2018 07:52:06 -0800 (PST) In-Reply-To: <83incpfffm.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::22e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:221670 Archived-At: --001a113fe138df86b2056231a921 Content-Type: multipart/alternative; boundary="001a113fe138df86ae056231a91f" --001a113fe138df86ae056231a91f Content-Type: text/plain; charset="UTF-8" Eli Zaretskii schrieb am Fr., 29. Dez. 2017 um 21:27 Uhr: > > From: Philipp Stephani > > Date: Fri, 29 Dec 2017 20:14:41 +0000 > > Cc: alan@idiocy.org, phst@google.com, emacs-devel@gnu.org > > > > diff --git a/src/coding.c b/src/coding.c > > index 1705838ffa..9903d87b92 100644 > > --- a/src/coding.c > > +++ b/src/coding.c > > @@ -1515,13 +1515,6 @@ encode_coding_utf_8 (struct coding_system *coding) > > /* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions". > > Return true if a text is encoded in one of UTF-16 based coding > systems. */ > > > > -#define UTF_16_HIGH_SURROGATE_P(val) \ > > - (((val) & 0xFC00) == 0xD800) > > - > > -#define UTF_16_LOW_SURROGATE_P(val) \ > > - (((val) & 0xFC00) == 0xDC00) > > - > > - > > static bool > > detect_coding_utf_16 (struct coding_system *coding, > > struct coding_detection_info *detect_info) > > @@ -1686,7 +1679,7 @@ decode_coding_utf_16 (struct coding_system > *coding) > > > > if (surrogate) > > { > > - if (! UTF_16_LOW_SURROGATE_P (c)) > > + if (! char_low_surrogate_p (c)) > > Please don't. This makes decoding UTF-16 a tad slower for no good > reason (more than a tad in unoptimized builds). > > OK, here's a new version of the patch. --001a113fe138df86ae056231a91f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


Eli Za= retskii <eliz@gnu.org> schrieb am= Fr., 29. Dez. 2017 um 21:27=C2=A0Uhr:
> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Fri, 29 Dec 2017 20:14:41 +0000
> Cc: alan@idiocy.o= rg, phst@google.co= m, emacs-devel= @gnu.org
>
> diff --git a/src/coding.c b/src/coding.c
> index 1705838ffa..9903d87b92 100644
> --- a/src/coding.c
> +++ b/src/coding.c
> @@ -1515,13 +1515,6 @@ encode_coding_utf_8 (struct coding_system *codi= ng)
>=C2=A0 /* See the above "GENERAL NOTES on `detect_coding_XXX ()= 9; functions".
>=C2=A0 =C2=A0 =C2=A0Return true if a text is encoded in one of UTF-16 b= ased coding systems.=C2=A0 */
>
> -#define UTF_16_HIGH_SURROGATE_P(val) \
> -=C2=A0 (((val) & 0xFC00) =3D=3D 0xD800)
> -
> -#define UTF_16_LOW_SURROGATE_P(val) \
> -=C2=A0 (((val) & 0xFC00) =3D=3D 0xDC00)
> -
> -
>=C2=A0 static bool
>=C2=A0 detect_coding_utf_16 (struct coding_system *coding,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0struct coding_detection_info *detect_info)
> @@ -1686,= 7 +1679,7 @@ decode_coding_utf_16 (struct coding_system *coding)
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (surrogate)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0if (! UTF_16_LOW_SURROGATE_P (c))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0if (! char_low_surrogate_p (c))

Please don't.=C2=A0 This makes decoding UTF-16 a tad slower for no good=
reason (more than a tad in unoptimized builds).


OK, here's a new version of the pa= tch.=C2=A0
--001a113fe138df86ae056231a91f-- --001a113fe138df86b2056231a921 Content-Type: text/plain; charset="US-ASCII"; name="0001-Allow-inserting-non-BMP-characters.txt" Content-Disposition: attachment; filename="0001-Allow-inserting-non-BMP-characters.txt" Content-Transfer-Encoding: base64 Content-ID: <160d151fc41d3a38a881> X-Attachment-Id: 160d151fc41d3a38a881 RnJvbSBhYTFkNWIyNjAwYzVlZjBhNzZjODUyNTQ2MmVhODhkYjJhMmZhMjVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMjUgRGVjIDIwMTcgMjI6MDA6MDAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBbGxv dyBpbnNlcnRpbmcgbm9uLUJNUCBjaGFyYWN0ZXJzCgoqIHNyYy9jb2RpbmcuaCAoVVRGXzE2X0hJ R0hfU1VSUk9HQVRFX1AsIFVURl8xNl9MT1dfU1VSUk9HQVRFX1ApOiBNb3ZlCmZyb20gY29kaW5n LmMgYW5kIGRvY3VtZW50Lgooc3Vycm9nYXRlc190b19jb2RlcG9pbnQpOiBOZXcgZnVuY3Rpb24u CgoqIHNyYy9uc3Rlcm0ubSAoaW5zZXJ0VGV4dDopOiBQcm9wZXJseSBoYW5kbGUgc3Vycm9nYXRl IHBhaXJzLgotLS0KIHNyYy9jb2RpbmcuYyB8ICA3IC0tLS0tLS0KIHNyYy9jb2RpbmcuaCB8IDI0 ICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL25zdGVybS5tIHwgMjUgKysrKysrKysrKysr KysrKysrKy0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29kaW5nLmMgYi9zcmMvY29kaW5nLmMKaW5kZXgg ZDhiYzUyNTAyNi4uZGE2MjU0MDM0NCAxMDA2NDQKLS0tIGEvc3JjL2NvZGluZy5jCisrKyBiL3Ny Yy9jb2RpbmcuYwpAQCAtMTUxNSwxMyArMTUxNSw2IEBAIGVuY29kZV9jb2RpbmdfdXRmXzggKHN0 cnVjdCBjb2Rpbmdfc3lzdGVtICpjb2RpbmcpCiAvKiBTZWUgdGhlIGFib3ZlICJHRU5FUkFMIE5P VEVTIG9uIGBkZXRlY3RfY29kaW5nX1hYWCAoKScgZnVuY3Rpb25zIi4KICAgIFJldHVybiB0cnVl IGlmIGEgdGV4dCBpcyBlbmNvZGVkIGluIG9uZSBvZiBVVEYtMTYgYmFzZWQgY29kaW5nIHN5c3Rl bXMuICAqLwogCi0jZGVmaW5lIFVURl8xNl9ISUdIX1NVUlJPR0FURV9QKHZhbCkgXAotICAoKCh2 YWwpICYgMHhGQzAwKSA9PSAweEQ4MDApCi0KLSNkZWZpbmUgVVRGXzE2X0xPV19TVVJST0dBVEVf UCh2YWwpIFwKLSAgKCgodmFsKSAmIDB4RkMwMCkgPT0gMHhEQzAwKQotCi0KIHN0YXRpYyBib29s CiBkZXRlY3RfY29kaW5nX3V0Zl8xNiAoc3RydWN0IGNvZGluZ19zeXN0ZW0gKmNvZGluZywKIAkJ ICAgICAgc3RydWN0IGNvZGluZ19kZXRlY3Rpb25faW5mbyAqZGV0ZWN0X2luZm8pCmRpZmYgLS1n aXQgYS9zcmMvY29kaW5nLmggYi9zcmMvY29kaW5nLmgKaW5kZXggNTQxMDBjY2QzMS4uZDkwYjc5 OWQ3NiAxMDA2NDQKLS0tIGEvc3JjL2NvZGluZy5oCisrKyBiL3NyYy9jb2RpbmcuaApAQCAtNjYy LDYgKzY2MiwzMCBAQCBzdHJ1Y3QgY29kaW5nX3N5c3RlbQogLyogTm90ZSB0aGF0IHRoaXMgZW5j b2RlcyB1dGYtOCwgbm90IHV0Zi04LWVtYWNzLCBzbyBpdCdzIG5vdCBhIG5vLW9wLiAgKi8KICNk ZWZpbmUgRU5DT0RFX1VURl84KHN0cikgY29kZV9jb252ZXJ0X3N0cmluZ19ub3JlY29yZCAoc3Ry LCBRdXRmXzgsIHRydWUpCiAKKy8qIFJldHVybiB0cnVlIGlmIFZBTCBpcyBhIGhpZ2ggc3Vycm9n YXRlLiAgVkFMIG11c3QgYmUgYSAxNi1iaXQgY29kZQorICAgdW5pdC4gICovCisKKyNkZWZpbmUg VVRGXzE2X0hJR0hfU1VSUk9HQVRFX1AodmFsKSBcCisgICgoKHZhbCkgJiAweEZDMDApID09IDB4 RDgwMCkKKworLyogUmV0dXJuIHRydWUgaWYgVkFMIGlzIGEgbG93IHN1cnJvZ2F0ZS4gIFZBTCBt dXN0IGJlIGEgMTYtYml0IGNvZGUKKyAgIHVuaXQuICAqLworCisjZGVmaW5lIFVURl8xNl9MT1df U1VSUk9HQVRFX1AodmFsKSBcCisgICgoKHZhbCkgJiAweEZDMDApID09IDB4REMwMCkKKworLyog UmV0dXJuIHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgZm9yIHRoZSBnaXZlbiBVVEYtMTYgc3Vycm9n YXRlcy4gICovCisKK0lOTElORSBpbnQKK3N1cnJvZ2F0ZXNfdG9fY29kZXBvaW50IChpbnQgbG93 LCBpbnQgaGlnaCkKK3sKKyAgZWFzc2VydCAoMCA8PSBsb3cgJiYgbG93IDw9IDB4RkZGRik7Cisg IGVhc3NlcnQgKDAgPD0gaGlnaCAmJiBoaWdoIDw9IDB4RkZGRik7CisgIGVhc3NlcnQgKFVURl8x Nl9MT1dfU1VSUk9HQVRFX1AgKGxvdykpOworICBlYXNzZXJ0IChVVEZfMTZfSElHSF9TVVJST0dB VEVfUCAoaGlnaCkpOworICByZXR1cm4gMHgxMDAwMCArIChsb3cgLSAweERDMDApICsgKChoaWdo IC0gMHhEODAwKSAqIDB4NDAwKTsKK30KKwogLyogRXh0ZXJuIGRlY2xhcmF0aW9ucy4gICovCiBl eHRlcm4gTGlzcF9PYmplY3QgY29kZV9jb252ZXJzaW9uX3NhdmUgKGJvb2wsIGJvb2wpOwogZXh0 ZXJuIGJvb2wgZW5jb2RlX2NvZGluZ191dGZfOCAoc3RydWN0IGNvZGluZ19zeXN0ZW0gKik7CmRp ZmYgLS1naXQgYS9zcmMvbnN0ZXJtLm0gYi9zcmMvbnN0ZXJtLm0KaW5kZXggZGQ1YzdkOTFlYS4u M2Y1OWUzM2M3YiAxMDA2NDQKLS0tIGEvc3JjL25zdGVybS5tCisrKyBiL3NyYy9uc3Rlcm0ubQpA QCAtNjI4MywxNCArNjI4MywxMyBAQCBmbGFnIHNldCAodGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBp biB0aGUgT1MpLgogICAgICAgICAgYnkgZG9Db21tYW5kQnlTZWxlY3RvcjogZGVsZXRlQmFja3dh cmQ6ICovCiAtICh2b2lkKWluc2VydFRleHQ6IChpZClhU3RyaW5nCiB7Ci0gIGludCBjb2RlOwot ICBpbnQgbGVuID0gWyhOU1N0cmluZyAqKWFTdHJpbmcgbGVuZ3RoXTsKLSAgaW50IGk7CisgIE5T U3RyaW5nICpzID0gYVN0cmluZzsKKyAgTlNVSW50ZWdlciBsZW4gPSBbcyBsZW5ndGhdOwogCiAg IE5TVFJBQ0UgKCJbRW1hY3NWaWV3IGluc2VydFRleHQ6XSIpOwogCiAgIGlmIChOU19LRVlMT0cp Ci0gICAgTlNMb2cgKEAiaW5zZXJ0VGV4dCAnJUAnXHRsZW4gPSAlZCIsIGFTdHJpbmcsIGxlbik7 CisgICAgTlNMb2cgKEAiaW5zZXJ0VGV4dCAnJUAnXHRsZW4gPSAlbHUiLCBhU3RyaW5nLCAodW5z aWduZWQgbG9uZykgbGVuKTsKICAgcHJvY2Vzc2luZ0NvbXBvc2UgPSBOTzsKIAogICBpZiAoIWVt YWNzX2V2ZW50KQpAQCAtNjMwMCwxMCArNjI5OSwyNCBAQCAtICh2b2lkKWluc2VydFRleHQ6IChp ZClhU3RyaW5nCiAgIGlmICh3b3JraW5nVGV4dCAhPSBuaWwpCiAgICAgW3NlbGYgZGVsZXRlV29y a2luZ1RleHRdOwogCisgIC8qIEl0IG1pZ2h0IGJlIHByZWZlcmFibGUgdG8gdXNlIGdldENoYXJh Y3RlcnM6cmFuZ2U6IGJlbG93LAorICAgICBjZi4gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29t L2xpYnJhcnkvY29udGVudC9kb2N1bWVudGF0aW9uL0NvY29hL0NvbmNlcHR1YWwvQ29jb2FQZXJm b3JtYW5jZS9BcnRpY2xlcy9TdHJpbmdEcmF3aW5nLmh0bWwjLy9hcHBsZV9yZWYvZG9jL3VpZC9U UDQwMDAxNDQ1LTExMjM3OC4KKyAgICAgSG93ZXZlciwgd2UgcHJvYmFibHkgY2FuJ3QgdXNlIFNB RkVfTkFMTE9DQSBoZXJlIGJlY2F1c2UgaXQgbWlnaHQKKyAgICAgZXhpdCBub25sb2NhbGx5LiAg Ki8KKwogICAvKiBub3cgaW5zZXJ0IHRoZSBzdHJpbmcgYXMga2V5c3Ryb2tlcyAqLwotICBmb3Ig KGkgPTA7IGk8bGVuOyBpKyspCisgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IGxlbjsgaSsr KQogICAgIHsKLSAgICAgIGNvZGUgPSBbYVN0cmluZyBjaGFyYWN0ZXJBdEluZGV4OiBpXTsKKyAg ICAgIE5TVUludGVnZXIgY29kZSA9IFtzIGNoYXJhY3RlckF0SW5kZXg6aV07CisgICAgICBpZiAo VVRGXzE2X0hJR0hfU1VSUk9HQVRFX1AgKGNvZGUpICYmIGkgPCBsZW4gLSAxKQorICAgICAgICB7 CisgICAgICAgICAgdW5pY2hhciBsb3cgPSBbcyBjaGFyYWN0ZXJBdEluZGV4OmkgKyAxXTsKKyAg ICAgICAgICBpZiAoVVRGXzE2X0xPV19TVVJST0dBVEVfUCAobG93KSkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgY29kZSA9IHN1cnJvZ2F0ZXNfdG9fY29kZXBvaW50IChsb3csIGNvZGUp OworICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgIC8q IFRPRE86IHN0aWxsIG5lZWQgdGhpcz8gKi8KICAgICAgIGlmIChjb2RlID09IDB4MkRDKQogICAg ICAgICBjb2RlID0gJ34nOyAvKiAweDdFICovCi0tIAoyLjE1LjEKCg== --001a113fe138df86b2056231a921--