From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#41645: 27.0.91; Combining Grapheme Joiner (#x34f) gui artifacts Date: Mon, 1 Jun 2020 22:37:16 +0000 Message-ID: References: <83zh9merd4.fsf@gnu.org> <83wo4qepab.fsf@gnu.org> <83lfl6eiod.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="5578"; mail-complaints-to="usenet@ciao.gmane.io" Cc: dfussner@googlemail.com, 41645@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 02 00:39:16 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1jft5Q-0001LB-6T for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 02 Jun 2020 00:39:16 +0200 Original-Received: from localhost ([::1]:33564 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jft5O-0007DX-Op for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 01 Jun 2020 18:39:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36972) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jft5C-0007DM-MP for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2020 18:39:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53961) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jft5C-0007Nt-Cu for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2020 18:39:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jft5C-0003iV-7t for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2020 18:39:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 22:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41645 X-GNU-PR-Package: emacs Original-Received: via spool by 41645-submit@debbugs.gnu.org id=B41645.159105108314219 (code B ref 41645); Mon, 01 Jun 2020 22:39:02 +0000 Original-Received: (at 41645) by debbugs.gnu.org; 1 Jun 2020 22:38:03 +0000 Original-Received: from localhost ([127.0.0.1]:37274 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jft4F-0003hH-6f for submit@debbugs.gnu.org; Mon, 01 Jun 2020 18:38:03 -0400 Original-Received: from mail-ot1-f48.google.com ([209.85.210.48]:41847) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jft4D-0003gm-Ia for 41645@debbugs.gnu.org; Mon, 01 Jun 2020 18:38:01 -0400 Original-Received: by mail-ot1-f48.google.com with SMTP id k15so5939973otp.8 for <41645@debbugs.gnu.org>; Mon, 01 Jun 2020 15:38:01 -0700 (PDT) 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=NcUkrsPFfcNak7qfq6LSBJkGtBtCH79cFZcygOTvdRU=; b=awJ8icVMXrKyazyQeO7Ln6jFwyI7i5mpp780930WHZCF52b0iQBoyho6TEdtaKXPoc d91jzYZuRYaurBUItE7mOEc9d3wyxfaYGV4bzebEiZcFq3OFShIpx1c75xy79FFs2VUi W1FBfx1rtWrEX+pcIlwqH68FmmWzYnptxaPMidouigQZHvxYuXDaDdWCbZpZKOa1zKcs r4w72rh8WwZyVqSS3B+hGKJh0cUfemCYtIwEsvjx6pgCOqcqEkyfjYB6zk7d3g4Y6gKu L2dx/TyMNmLug+xiGl2y+ZIhDEEmAv7v1nxI1e8xCsAulQBnnpamYUq9PAzUkZYrh+O9 0LFw== 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=NcUkrsPFfcNak7qfq6LSBJkGtBtCH79cFZcygOTvdRU=; b=thJ/Ze0Ygf6WNy6WcQ6SxSs9ft9xwzg3feS4dYxwyXWJP+n0lzljZ168q34TOxcGWG oFdvTB+lIh6YfEgbkRySjdCorXfai6S4oFp7BnyZAtHzcl3+QaQxFZ0mo0yGqfhsSzOg CSN0uk6rG0FeUbKs+Z4PFaF59JsgdFeTfQFNh4G3T+6VSmQVcE9w0DrIo12nPkBB2nbp 0SnGmf/MvTZWqwoIUe7Yxk4EbOfGvPr2az9s4ptz957X59d1ndJDuJBxT5ohnpzsoC0K OICSepXI8wVzwrTYPTBCtnCEe2zIMKYLsvQC0JGrvFLJrbNYn9IcBpQk0Xr6XiW3vF1H C4JA== X-Gm-Message-State: AOAM5313QnpvfmLyS1lEPlOvOeAV8V/JvUunObeb7QZJHHwjOo39bNQF D1tJzyVAOuDvHAqfWBWIJV4jELs/zNE1FHqygY4= X-Google-Smtp-Source: ABdhPJwE6EkjH01Psb4XszGoQOxQ1avU+F8lVooFQKCFdKI9a3C7a6WUYzN+PUkVwA1XwtIhGS4zf3kHhBHB9Vz+I+0= X-Received: by 2002:a9d:7a50:: with SMTP id z16mr19273877otm.292.1591051072711; Mon, 01 Jun 2020 15:37:52 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:181380 Archived-At: On Mon, Jun 1, 2020 at 7:48 PM Pip Cet wrote: > > > Indeed, the composition gstring is a single zero-width glyph. > > See the composition information above: my interpretation of it is that > > the composed glyph is not zero-width. > > ... something is odd here, I agree. I think it's a very odd combination of things: 1. a font which defines an isolated CGJ to have zero width 2. an isolated CGJ appearing in the first place (in this case, because another font does not support CGJ) 3. the fall-back [nil 0 compose-gstring-for-graphic] rule defined for codepoint #x34f 4. compose-gstring-for-graphic attempting to salvage non-spacing characters not following base characters, and producing zero-width lgstrings from zero-width lglyphs Avoiding any of the four will avoid the problem. (1) is something we cannot fix directly. (2) is also something that a user may want. (3) could be dropped, and (4) could be expanded to take care of the zero-width case. However, as long as zero-width gstrings can somehow slip through, I suggest we also apply the patch I sent, assuming it fixes the problem. We might consider simply prohibiting zero-width zero-lbearing zero-rbearing gstrings, the way we prohibit zero-width zero-lbearing zero-rbearing characters in the code I posted.