From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 18 10:35:50 2021 Received: (at submit) by debbugs.gnu.org; 18 Mar 2021 14:35:50 +0000 Received: from localhost ([127.0.0.1]:47668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lMtkc-00084Y-1f for submit@debbugs.gnu.org; Thu, 18 Mar 2021 10:35:50 -0400 Received: from lists.gnu.org ([209.51.188.17]:40724) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lMtka-00084Q-Cu for submit@debbugs.gnu.org; Thu, 18 Mar 2021 10:35:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59392) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lMtka-0006lh-5g for bug-gnu-emacs@gnu.org; Thu, 18 Mar 2021 10:35:48 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]:35677) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lMtkX-0008En-T2 for bug-gnu-emacs@gnu.org; Thu, 18 Mar 2021 10:35:47 -0400 Received: by mail-ej1-x635.google.com with SMTP id jy13so4305753ejc.2 for ; Thu, 18 Mar 2021 07:35:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=mD7SWRgGyyOAMLwPiSTcbVrQXQzrtNepDN4j/Cm3D6U=; b=PXGT4ZgpMZ8tqEf+ku7iaevG6joy2K614NlhtT0VSBcotEld3BbFjjZzfIZ4U+0Z5/ XSPp4TToqfukzCfvS5BBHomPlTA8owbs7gg9uj+baWxPIlaYw2bD1/+dp7d7j/6w2bFn 9dhUkzIFaJtxzHsbHibpIqZ1c+XqfPyRGwRjVfDrNsJtGNj6Vl01kLtLsRC+Nfa26tPq akcQQcrLGgIjyIQiKCMWLWFrZlsdt9woAORGyzfZiqinajT1BMsrVVhd7v3jx2FwobcQ kIDLmRg0X3/HMq/nNxqUzS0g4CadA4g8LCjHiN050uo2B7qpKSmhfz4SJ0rmhwC7g7rO dDzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=mD7SWRgGyyOAMLwPiSTcbVrQXQzrtNepDN4j/Cm3D6U=; b=aQB3OaUNgH31Ro0uoQqKVwyJQZKfkOe4y+qz3e7ULcm2j6NpsBdTW3TgsI7PKFhFkL HZ6QJhEhRtAcyyrH4Dbg8xrBVmRpuZ55ryxlrl1Um0ivvWzEgsoxaXcBBhJs1ihhyJmI KtAr25l3FFrCjvIbvnaHonJ+8mWtJYwUB+Na6YVTHtyNpEJnYAJkZsLVw1x2mM/9+3C5 SrmnZJ6guGAH5uri5P6/Ha39Mv7nkI81qQi/DXXEb4KMExmBCvw7PsJfx0JnWErWLTfC /7p4okhcqroQ/NnCpoKFyf21UlChAlrXcwp/QepBSvVC/8tyOeZkGvt02g1sr7xK+Pdt Howw== X-Gm-Message-State: AOAM532WsnQeMTGYrFYwvtUHZJ01rr+co5ML3pHIbrFCOkyIHvBM30BA mF2XzFEgNlPF+/ScS6dB/+jYIc3R1mg= X-Google-Smtp-Source: ABdhPJwHpxM9E1fQ0figDxvUNrCn8nQuUulm5QZnlk1dpQacxI5HSZHKIpqpXv+Dn4sHyZoRtnM5OQ== X-Received: by 2002:a17:907:761c:: with SMTP id jx28mr6856223ejc.417.1616078143371; Thu, 18 Mar 2021 07:35:43 -0700 (PDT) Received: from phst (p57aafc25.dip0.t-ipconnect.de. [87.170.252.37]) by smtp.gmail.com with ESMTPSA id br13sm1987418ejb.87.2021.03.18.07.35.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Mar 2021 07:35:42 -0700 (PDT) From: Philipp Stephani To: bug-gnu-emacs@gnu.org Subject: 28.0.50; Suboptimal display of decomposed character sequences Date: Thu, 18 Mar 2021 15:35:40 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=p.stephani2@gmail.com; helo=mail-ej1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On some systems (e.g. my current GNU/Linux system), "A" followed by U+0308 COMBINING DIAERESIS isn't displayed as a single glyph. See the attached screenshot, which compares this character sequence with the canonically-equivalent precomposed form "=C3=84". The precomposed glyph form looks better, and it would be great if Emacs could use it for the composite variant as well. Also see https://lists.gnu.org/archive/html/help-gnu-emacs/2020-12/msg00898.html, https://lists.gnu.org/archive/html/help-gnu-emacs/2021-01/msg00409.html, https://lists.gnu.org/archive/html/help-gnu-emacs/2021-02/msg00808.html, and https://lists.gnu.org/archive/html/help-gnu-emacs/2021-03/msg00114.html for some background discussion. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename="Screenshot from 2021-03-18 15-28-09.png" Content-Transfer-Encoding: base64 Content-Description: screenshot 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 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable In GNU Emacs 28.0.50 (build 10, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, = cairo version 1.16.0) of 2021-03-18 Repository revision: 52270aa0dc3313f42986a07413bf5b600d9fecbe Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12010000 System Description: Debian GNU/Linux rodete Configured using: 'configure --enable-gcc-warnings=3Dwarn-only --enable-gtk-deprecation-warnings --without-pop --with-mailutils --enable-checking=3Dall --enable-check-lisp-object-type --with-modules 'CFLAGS=3D-O0 -ggdb3'' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LIBSELINUX LIBSYSTEMD MODULES NOTIFY INOTIFY PDUMPER PNG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB Important settings: value of $LC_TIME: en_DK.utf8 value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=3Dibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc dired dired-loaddefs rfc822 mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils phst skeleton derived edmacro kmacro pcase ffap thingatpt url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars mailcap rx gnutls puny dbus xml subr-x seq byte-opt gv bytecomp byte-compile cconv compile text-property-search comint ansi-color ring cl-loaddefs cl-lib iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 68371 3862) (symbols 48 8413 1) (strings 32 24380 1846) (string-bytes 1 787869) (vectors 16 14940) (vector-slots 8 195035 6583) (floats 8 26 32) (intervals 56 223 0) (buffers 992 11)) --=20 Google Germany GmbH Erika-Mann-Stra=C3=9Fe 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Diese E-Mail ist vertraulich. Falls Sie diese f=C3=A4lschlicherweise erhal= ten haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, l=C3=B6sche= n Sie alle Kopien und Anh=C3=A4nge davon und lassen Sie mich bitte wissen, dass d= ie E-Mail an die falsche Person gesendet wurde. This e-mail is confidential. If you received this communication by mistake, please don=E2=80=99t forward it to anyone else, please erase all copies and attachments, and please let me know that it has gone to the wrong person. --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 18 11:09:28 2021 Received: (at 47235) by debbugs.gnu.org; 18 Mar 2021 15:09:28 +0000 Received: from localhost ([127.0.0.1]:47707 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lMuHA-0000U9-8B for submit@debbugs.gnu.org; Thu, 18 Mar 2021 11:09:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45886) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lMuH8-0000Tu-Iz for 47235@debbugs.gnu.org; Thu, 18 Mar 2021 11:09:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56944) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lMuH2-0002Yc-Ud; Thu, 18 Mar 2021 11:09:21 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1536 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lMuH2-0005vX-32; Thu, 18 Mar 2021 11:09:20 -0400 Date: Thu, 18 Mar 2021 17:09:15 +0200 Message-Id: <831rcch52c.fsf@gnu.org> From: Eli Zaretskii To: Philipp Stephani In-Reply-To: (message from Philipp Stephani on Thu, 18 Mar 2021 15:35:40 +0100) Subject: Re: bug#47235: 28.0.50; Suboptimal display of decomposed character sequences References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47235 Cc: 47235@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > From: Philipp Stephani > Date: Thu, 18 Mar 2021 15:35:40 +0100 > > On some systems (e.g. my current GNU/Linux system), "A" followed by > U+0308 COMBINING DIAERESIS isn't displayed as a single glyph. See the > attached screenshot, which compares this character sequence with the > canonically-equivalent precomposed form "Ä". The precomposed glyph > form looks better, and it would be great if Emacs could use it for the > composite variant as well. We do something like that for Hebrew, see hebrew-font-get-precomposed and its call in hebrew-shape-gstring. That is based on data structure we maintain manually. We could do that for other scripts as well, but: . if the glyph for the precomposed is not available in the font, you will see "tofu", which is arguably worse than what happens today . the HarfBuzz folks were really unhappy about such "manual compositions", and said we should remove that code and rely on the shaping engine to do this