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: Question about composite.c Date: Tue, 21 Jan 2020 21:15:59 +0200 Message-ID: <83muagvcwg.fsf@gnu.org> References: <83r1zsvfph.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="104093"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Gerry Agbobada Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jan 21 20:16:55 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 1itz1C-000QyK-Dt for ged-emacs-devel@m.gmane-mx.org; Tue, 21 Jan 2020 20:16:54 +0100 Original-Received: from localhost ([::1]:60004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itz1B-0001gf-AG for ged-emacs-devel@m.gmane-mx.org; Tue, 21 Jan 2020 14:16:53 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59847) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itz0D-0000fu-9T for emacs-devel@gnu.org; Tue, 21 Jan 2020 14:15:54 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:52134) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1itz0D-0006fz-5Z; Tue, 21 Jan 2020 14:15:53 -0500 Original-Received: from [176.228.60.248] (port=3493 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1itz0B-0002nj-GZ; Tue, 21 Jan 2020 14:15:52 -0500 In-reply-to: (message from Gerry Agbobada on Tue, 21 Jan 2020 19:57:07 +0100) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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:244475 Archived-At: > From: Gerry Agbobada > Date: Tue, 21 Jan 2020 19:57:07 +0100 > Cc: emacs-devel@gnu.org > > Therefore, the main goal was to "catch common programming ligatures > starting with ?*" Can you show examples of those, if not their exhaustive list? > > Also, why did you need to use a separate char-table instead of > > composition-function-table? > > I used another char-table so the variable is easily accessible to modify > parts of it. Then again, maybe a poor design decision, but just a design > decision. I don't see why it would be easier to access/modify a separate table. > > It's not just an empty string, it's a _unibyte_ string. How did that > > happen? > > That's the main part I was trying to understand, since I could not > reproduce it in an easy way, I was wondering if an empty string can be > unibyte or multibyte. I have my answer now :) If you post a complete reproduction recipe, starting from "emacs -Q", perhaps I will be able to help you understand what is the immediate cause of the problem. > > There's no problem with empty strings here, as long as they are > > multibyte. > > That the main point I don't understand : is there a way to mark an empty > string as a multibyte string ? We could look into that, but why would an empty string end up in composition-get-gstring anyway? there's no meaningful way of composing such a string. > At least now I know I can continue investigating on the elisp side, thanks for > your answers ! I think the important part is to understand why Emacs is trying to compose an empty string.