From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Unicode combining characters Date: Thu, 27 May 2021 12:40:45 +0300 Message-ID: <83y2c08qg2.fsf@gnu.org> References: <83k0nmbubk.fsf@gnu.org> <83v975ac4s.fsf@gnu.org> <83lf81a04l.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12696"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Anand Tamariya Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 27 11:41:36 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 1lmCWE-00033q-TV for ged-emacs-devel@m.gmane-mx.org; Thu, 27 May 2021 11:41:34 +0200 Original-Received: from localhost ([::1]:52362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lmCWD-0003S2-Ms for ged-emacs-devel@m.gmane-mx.org; Thu, 27 May 2021 05:41:33 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lmCVN-0002l1-P8 for emacs-devel@gnu.org; Thu, 27 May 2021 05:40:42 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:39388) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lmCVN-0003nv-6U; Thu, 27 May 2021 05:40:41 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1178 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lmCVM-00080u-Aw; Thu, 27 May 2021 05:40:41 -0400 In-Reply-To: (message from Anand Tamariya on Thu, 27 May 2021 12:30:04 +0530) 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:269938 Archived-At: > From: Anand Tamariya > Date: Thu, 27 May 2021 12:30:04 +0530 > Cc: emacs-devel@gnu.org > > Please try the latest master branch, I hope I fixed this now. > > The fix works for the given example. However, here's another one that ideally should be one composed glyph > (validated by moving the cursor over the glyph) but counts as 2 in string-width. > > (setq ra (string 2352 2366)) > > (string-width ra) ; 2 OK, I improved this case now on master, please take a look. However, please note that getting this right makes string-width more dependent on the selected-frame's font used by the default face for the characters of the string. In particular, if that font is unable to combine the characters that should be composed, you will now get width which could be different from the value on other frames with other fonts. Also, the new code only works in interactive sessions on GUI frames, because we need the shaping engine (a.k.a. "font driver") to compose characters.