From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: describe-char on emoji sequences Date: Wed, 27 Oct 2021 16:25:49 +0200 Message-ID: <874k92a6j6.fsf@gnus.org> References: <87cznths5j.fsf@gnus.org> <874k94j3rn.fsf@gnus.org> <83v91kzydh.fsf@gnu.org> <87tuh4holf.fsf@gnus.org> <822aec9d01909cecfc6c@heytings.org> <87a6iwhltf.fsf@gnus.org> <83tuh4zfg5.fsf@gnu.org> <87y26gfobr.fsf@gnus.org> <87tuh4f1ie.fsf@gnus.org> <87lf2fg44h.fsf@gnus.org> <87h7d3g2uu.fsf@gnus.org> <83bl3bybm3.fsf@gnu.org> <878ryfr9w0.fsf@gmail.com> <878ryfg07k.fsf@gnus.org> <874k93r869.fsf@gmail.com> <87r1c7d28k.fsf_-_@gnus.org> <83zgqvwpq2.fsf@gnu.org> <87mtmvd13h.fsf@gnus.org> <83a6iuwox1.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6687"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Oct 27 17:17:22 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mfkg4-0001Or-7j for ged-emacs-devel@m.gmane-mx.org; Wed, 27 Oct 2021 17:17:20 +0200 Original-Received: from localhost ([::1]:56062 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mfkg2-0007KR-FH for ged-emacs-devel@m.gmane-mx.org; Wed, 27 Oct 2021 11:17:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47888) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfjsL-0006w4-MT for emacs-devel@gnu.org; Wed, 27 Oct 2021 10:25:58 -0400 Original-Received: from quimby.gnus.org ([2a01:4f9:2b:f0f::2]:42090) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfjsJ-0008HL-DQ; Wed, 27 Oct 2021 10:25:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=nQJ/VtYSaNCfi8FV+IIUY38hT2J+9lpg9mn5YbtRJ+c=; b=CCiP4phJyjrZ/u8RezIysOuPI8 qBo6YmDJB7D+Gawszk71rJsdb9h66OZzWXaNB2b95vdskZkLA0+cA9Nsz4EKiPvxOXLYagrURxnpf hG4Vne67pByZzBHGopUd6UOMljE3whEsORS45iPSsJIJ40r6rfwgOmmfbUZgRMzS4Vyw=; Original-Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mfjsE-0006Zz-1D; Wed, 27 Oct 2021 16:25:52 +0200 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAM1BMVEVrV1d+gIKdk5zJ u8GEe4x6c4tSQD7l18lPNjXSsZvw2qeZalrNoGjfmmfKdEQeGR////8FrYCZAAAAAWJLR0QQlbIN LAAAAAd0SU1FB+UKGw0wJkJmyPMAAAFNSURBVEjHtdThroMgDAVgUEQQlPd/20sLaEEK7sc9ycwW zwfFLROiipTLKDJWlq+RUuKaK2TYVJgNUwBrnuoLrPPlAegH8ILuQAEr4iAbnhfBvk6Iqg4dwV6R lQEbBY0ZPlaTQUUGgoD901gU7D8DIizzqFQNHjIExxGbB15R2BQWHJAE8K21I1EAiWXEopxaxoAK hcK5rwC6mDGwX4C1PeFYUPetX7yHB8QB0vTxFa8QRxJ/3hyImQJonhC4+hLXgPwFH7l3p1fHM+xZ nFX82Wm7+D9QwNn0IderzQJ/QTp1oY149a+Sdx0Bmf/qdenyMQCwO6vrHCOGSzdtBBdNr66rEMCv bUoQBEMCN3W6o0s33MHbItAY3aRZzLyBgGl0mamja5DZM/J7tx5IJlTknowB1V6lnmYO4QMxRcxB eMrp0xS0/t/B/AzNBvoPMJFHWqlJmBgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMTAtMjdUMTM6 NDg6MzgrMDA6MDBpvaaMAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTEwLTI3VDEzOjQ4OjM4KzAw OjAwGOAeMAAAAABJRU5ErkJggg== X-Now-Playing: Tyme's _To the Dawn_: "Morning Light (Klute Remix)" In-Reply-To: <83a6iuwox1.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 27 Oct 2021 16:57:46 +0300") Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:277976 Archived-At: Eli Zaretskii writes: >> It's just a sequence of Unicode code points, surely? (And the help >> buffer lists them, but not in the format needed to enter them.) > > How can Emacs know that there is a special command that can be used to > insert this entire sequence of codepoints in one go? There isn't (well, there is now with emoji-insert), but... Take =E2=9A=A0=EF=B8=8F: to input: type "C-x 8 RET 26a0" or "C-x 8 RET WARNING SIGN" buffer code: #xE2 #x9A #xA0 file code: #xE2 #x9A #xA0 (encoded by coding system utf-8-emacs) display: composed to form "=E2=9A=A0=EF=B8=8F" (see below) Composed with the following character(s) "=EF=B8=8F" using this font: ftcrhb:-GOOG-Noto Color Emoji-medium-normal-normal-*-19-*-*-*-m-0-iso1064= 6-1 by these glyphs: [0 1 9888 112 24 0 24 18 5 nil] with these character(s): =EF=B8=8F (#xfe0f) VARIATION SELECTOR-16 If you insert C-x 8 RET WARNING SIGN and then C-x 8 RET VARIATION SELECTOR-16 you indeed get: =E2=9A=A0=EF=B8=8F So=20 to input: type "C-x 8 RET 26a0" or "C-x 8 RET WARNING SIGN" could just be expanded to include all the code points in the decomposition. Of course, with some of these sequences (with five code points), doing this is completely impractical, so perhaps it's not worth doing.=20 > Because it doesn't necessarily have a name. This is a general-purpose > command, it is capable of describing any result of any character > composition, including those which yield more than one glyph and > glyphs that have no name. (Technically, the correct terminology is > "grapheme cluster", not "glyph".) I had a feeling that "glyph" wasn't correct. :-) > We could, of course, program describe-char to give special treatment > to glyphs produced from the Emoji sequences, but that has to be coded > explicitly and specially for Emoji, because I don't see how you can do > that for an arbitrary composition. Yes, that's what I was thinking -- if we had a table that goes from grapheme cluster to name (and those would only be filled in for emojis), then we could output that name. (emoji.el creates such a table, but I don't think we'd want to load that from this command, so the table should perhaps be created in a more central location.) The point of this is that it's not always clear what an emoji is trying to express. For instance, if somebody writes you a message about =F0=9F=91= =A8=F0=9F=8F=BB=E2=80=8D=E2=9C=88=EF=B8=8F, it'd be nice if Emacs could tell you that it's a "man pilot". --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no