From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Ligatures (was: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY)) Date: Fri, 22 May 2020 09:06:00 +0300 Message-ID: <83y2pk4i7r.fsf@gnu.org> References: <20200517165953.000044d2@web.de> <83lflqblp0.fsf@gnu.org> <83ftbybio3.fsf@gnu.org> <83zha69xs2.fsf@gnu.org> <83367x9qeq.fsf@gnu.org> <0ccae2a4-533b-d15c-2884-c2f00b067776@gmail.com> <83wo5987mk.fsf@gnu.org> <99d4beed-88ae-b5cd-3ecb-a44325c8a1dc@gmail.com> <20200518215908.GA57594@breton.holly.idiocy.org> <83mu6481v3.fsf@gnu.org> <75a90563-51b4-d3b8-4832-fc0e2542af0d@gmail.com> <83blmi7hys.fsf@gnu.org> <837dx55qff.fsf@gnu.org> <834ks95cmz.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="27958"; mail-complaints-to="usenet@ciao.gmane.io" Cc: cpitclaudel@gmail.com, alan@idiocy.org, emacs-devel@gnu.org To: Pip Cet Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri May 22 08:06:32 2020 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 1jc0pE-0007BH-Ge for ged-emacs-devel@m.gmane-mx.org; Fri, 22 May 2020 08:06:32 +0200 Original-Received: from localhost ([::1]:59418 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc0pD-0007eR-GW for ged-emacs-devel@m.gmane-mx.org; Fri, 22 May 2020 02:06:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc0on-0007FK-Qo for emacs-devel@gnu.org; Fri, 22 May 2020 02:06:05 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:58645) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc0om-0002Gh-Nj; Fri, 22 May 2020 02:06:04 -0400 Original-Received: from [176.228.60.248] (port=2170 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jc0og-0003CQ-Vv; Fri, 22 May 2020 02:06:04 -0400 In-Reply-To: (message from Pip Cet on Thu, 21 May 2020 21:06:27 +0000) 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:251197 Archived-At: > From: Pip Cet > Date: Thu, 21 May 2020 21:06:27 +0000 > Cc: cpitclaudel@gmail.com, alan@idiocy.org, emacs-devel@gnu.org > > > But automatic compositions do work by calling the shaper. > > Yes, that observation is correct. What I'm doing is still very > different from the (semi-)automatic compositions composite.c does. For ligatures, I don't think I understand why the automatic compositions are not the way to go. > > That would prevent Emacs from controlling what is and what isn't > > composed, leaving the shaper in charge. > > Well, yes and no: the shaper is in charge, and I see absolutely > nothing wrong with that. You can tell the shaper not to perform > ligatures (or perform only some of them), or kerning, if you want to. Tell it how? by introducing new Lisp options and data structures? What would those new data structures be, and how will they be different from composition-function-table? > > We currently allow Lisp to > > control that via composition-function-table, which provides a regexp > > that text around a character must match in order for the matching > > substring to be passed to the shaper. > > And you're suggesting that regexp be set to, say, ".+"? Because that's > the only way I've found of getting it to do kerning. I'm not talking about the kerning. This discussion is about ligatures, AFAIU. For ligatures, the regexp should catch the sequences of characters that should be ligated. ".+" is definitely not right for ligatures, since it will significantly slow down redisplay for no good reason.