From unknown Sun Jun 22 17:11:11 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#50951 <50951@debbugs.gnu.org> To: bug#50951 <50951@debbugs.gnu.org> Subject: Status: 28.0.50; Urdu text is not displayed correctly Reply-To: bug#50951 <50951@debbugs.gnu.org> Date: Mon, 23 Jun 2025 00:11:11 +0000 retitle 50951 28.0.50; Urdu text is not displayed correctly reassign 50951 emacs submitter 50951 Rah Guzar severity 50951 normal tag 50951 moreinfo thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 01 16:18:02 2021 Received: (at submit) by debbugs.gnu.org; 1 Oct 2021 20:18:03 +0000 Received: from localhost ([127.0.0.1]:57443 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWOyo-0000SW-T9 for submit@debbugs.gnu.org; Fri, 01 Oct 2021 16:18:02 -0400 Received: from lists.gnu.org ([209.51.188.17]:44240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWOss-0000IE-5Q for submit@debbugs.gnu.org; Fri, 01 Oct 2021 16:11:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37946) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mWOss-0001CB-0B for bug-gnu-emacs@gnu.org; Fri, 01 Oct 2021 16:11:54 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:45816) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mWOsl-0003nR-Ot for bug-gnu-emacs@gnu.org; Fri, 01 Oct 2021 16:11:53 -0400 Received: by mail-wr1-x42c.google.com with SMTP id r10so723600wra.12 for ; Fri, 01 Oct 2021 13:11:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=+SWZZG3xwsyRHBlWRAJ6kL641UGDmvoOmIKRYTGOri0=; b=VVPK4otgfcwZth9zSnsyic6uRarklZ6RAWrEXzw0umKmDRyXyi9JinMc/obb1TjsP2 bM/S32lPjinMope2ZrdWSVK92jzbI+nzftSZXDz4CJ7mfokDbzQh8pjJF1N0gbHGtGUH SCP+VgIZ5q1bB5/PMfGoJCDPpildyaLxpXjWIha0vqPJ480s6v/uaw62UXCkKXRw7iGV 68wa+nw0OgTaitqiWzbC4E50I6ph14TXZg3OpV0Vo8QCUw7+J0P9NeNdvs29CqWe6Rn6 PVmwHDItp/+uSbujHko8eh5FDGn2RE6UDoQ4sTP2s55FfVaRaKD0A6m28KQiX2XMUIwA wNYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=+SWZZG3xwsyRHBlWRAJ6kL641UGDmvoOmIKRYTGOri0=; b=ZFvGLhcdPR619truV79crZWuTLcOT3eQqcFdNk5P8wnGDEBz+PFnkAHf/CqH67ymCx ROd2QsL/paSdzorMveT+jNpQsNWwRRePWkMF4/JRGNX1isrbmvIX6SOCGjEjWz1wbaml HJE3OTOilsnqKHRrF1fM9SYq0N6WeUm/iwTyzjW3ktkb/aKZ/kbtzH5x65igNlMSTzlA Tf8kjNQ7o5+vwuGNPWyawLt18AjsqZ72FUOJfwQFrUbBjtH5xxPL9mMVCbjG6wc9BB0o ieN3A+CwvTgYL8FEy4hSPanwsuMMIflgLXD3BOwULwV9D2RBPvT2L8IaZ2IrH6kMetrv wVWw== X-Gm-Message-State: AOAM530zJteLkWzhLb/yO2xjfD1e/TNU3GfAp4VDWYSwqZ0ezTIyr6Ie ubaicRHHKiDGePuq+PBIrQK0GfqBU7P7n/adTAhYxO8aOqU= X-Google-Smtp-Source: ABdhPJwSLDRacBuonRXmgSO/PCOEUllm9NgxO+Dgv9fgSbteU711ik/LdYQICDVH9u4mnfsIqNNRjWuMjte6EQKL8ow= X-Received: by 2002:adf:a2c8:: with SMTP id t8mr11932631wra.215.1633119104379; Fri, 01 Oct 2021 13:11:44 -0700 (PDT) MIME-Version: 1.0 From: Rah Guzar Date: Fri, 1 Oct 2021 22:11:32 +0200 Message-ID: Subject: 28.0.50; Urdu text is not displayed correctly To: bug-gnu-emacs@gnu.org Content-Type: multipart/related; boundary="00000000000017c5a005cd502cac" Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=aikrahguzar@gmail.com; helo=mail-wr1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, HTML_MESSAGE=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-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 01 Oct 2021 16:18:00 -0400 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" --00000000000017c5a005cd502cac Content-Type: multipart/alternative; boundary="00000000000017c59f05cd502cab" --00000000000017c59f05cd502cab Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Starting with 'emacs -Q' and using the menu bar to paste urdu text =D8=AD=D8=B1=D9=81 =D9=86=DB=81=DB=8C=DA=BA =D8=AC=D8=A7=DA=BA =D8=A8=D8=AE= =D8=B4=DB=8C =D9=85=DB=8C=DA=BA =D8=A7=D8=B3 =DA=A9=DB=8C =D8=AE=D9=88=D8= =A8=DB=8C =D8=A7=D9=BE=D9=86=DB=8C =D9=82=D8=B3=D9=85=D8=AA =DA=A9=DB=8C =DB=81=D9=85 =D8=B3=DB=92 =D8=AC=D9=88 =D9=BE=DB=81=D9=84=DB=92 =DA=A9=DB= =81=DB=81 =D8=A8=DA=BE=DB=8C=D8=AC=D8=A7 =D8=B3=D9=88 =D9=85=D8=B1=D9=86=DB= =92 =DA=A9=D8=A7 =D9=BE=DB=8C=D8=BA=D8=A7=D9=85 =DA=A9=DB=8C=D8=A7 the text is not rendered properly, some characters which should be joined together are instead rendered individually. It look like this [image: 2021-10-01T21:43:10,566697499+02:00.png] [image: 2021-10-01T21:49:10,611532571+02:00.png] Changing the font to a Nastaliq font more common for Urdu via (set-fontset-font t 'arabic (font-spec :family "NotoNastaliqUrdu")) the text is again rendered improperly but in a different way with chracters overlapping each other when they shouldn't, others have gaps where they should be joined. It looks like this [image: 2021-10-01T22:02:00,166113989+02:00.png] while it should look like this [image: 2021-10-01T22:05:28,910692941+02:00.png] In GNU Emacs 28.0.50 (build 1, x86_64-suse-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0) of 2021-09-29 built on goat11 Windowing system distributor 'System Description: openSUSE Tumbleweed Configured using: 'configure --host=3Dx86_64-suse-linux-gnu --build=3Dx86_64-suse-linux-gnu --program-prefix=3D --disable-dependency-tracking --prefix=3D/usr --exec-prefix=3D/usr --bindir=3D/usr/bin --sbindir=3D/usr/sbin --sysconfdir=3D/etc --datadir=3D/usr/share --includedir=3D/usr/include --libdir=3D/usr/lib64 --libexecdir=3D/usr/libexec --localstatedir=3D/var --sharedstatedir=3D/var/lib --mandir=3D/usr/share/man --infodir=3D/usr/share/info --disable-dependency-tracking --with-pgtk --with-native-compilation --with-cairo --with-libotf --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-xft --with-dbus --with-sound --with-xwidgets --enable-locallisppath=3D/usr/share/emacs/28.0.50/site-lisp:/usr/share/ema= cs/site-lisp 'CFLAGS=3D-O2 -Wall -D_FORTIFY_SOURCE=3D2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=3Dreturn-type -flto=3Dauto -g' LDFLAGS=3D-Wl,-O2' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XIM XWIDGETS GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: DOOM v3.0.0-alpha Minor modes in effect: diff-hl-margin-mode: t delete-selection-mode: t TeX-PDF-mode: t TeX-source-correlate-mode: t global-evil-surround-mode: t evil-surround-mode: t eros-mode: t projectile-mode: t solaire-global-mode: t solaire-mode: t global-git-commit-mode: t yas-global-mode: t yas-minor-mode: t which-key-mode: t savehist-mode: t better-jumper-mode: t better-jumper-local-mode: t global-company-mode: t company-mode: t vertico-mode: t marginalia-mode: t evil-goggles-mode: t evil-escape-mode: t evil-snipe-override-mode: t evil-snipe-mode: t evil-snipe-override-local-mode: t evil-snipe-local-mode: t recentf-mode: t save-place-mode: t global-so-long-mode: t gcmh-mode: t global-hl-line-mode: t hl-line-mode: t winner-mode: t show-paren-mode: t smartparens-global-mode: t ws-butler-global-mode: t global-undo-fu-session-mode: t undo-fu-mode: t global-flycheck-mode: t persp-mode: t shell-dirtrack-mode: t evil-mode: t evil-local-mode: t windmove-mode: t +popup-mode: t +modeline-global-mode: t +modeline-mode: t general-override-mode: t global-eldoc-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t size-indication-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/azeem/.emacs.d/.local/straight/build-28.0.50/org-contrib/ox-koma-lett= er hides /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-koma-letter /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= lint hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-lint /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= jump hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-jump /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= ensure hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-ensure /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= diminish hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-diminish /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= delight hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-delight /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= core hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-core /home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-= bind-key hides /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-bind-key /home/azeem/.emacs.d/.local/straight/build-28.0.50/bind-key/bind-key hides /home/azeem/.emacs.d/.local/straight/repos/use-package/bind-key /home/azeem/.emacs.d/.local/straight/build-28.0.50/straight/straight hides /home/azeem/.emacs.d/.local/straight/repos/straight.el/straight /home/azeem/.emacs.d/.local/straight/build-28.0.50/straight/straight-x hides /home/azeem/.emacs.d/.local/straight/repos/straight.el/straight-x /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-site hides /usr/share/emacs/site-lisp/tex-site /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-ispell hides /usr/share/emacs/site-lisp/auctex/tex-ispell /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/latex-flymake hides /usr/share/emacs/site-lisp/auctex/latex-flymake /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/context hides /usr/share/emacs/site-lisp/auctex/context /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite /home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/auctex hides /usr/share/emacs/site-lisp/site-start.d/auctex /home/azeem/.emacs.d/.local/straight/build-28.0.50/transient/transient hides /usr/share/emacs/28.0.50/lisp/transient /home/azeem/.emacs.d/.local/straight/repos/straight.el/indent hides /usr/share/emacs/28.0.50/lisp/indent /home/azeem/.emacs.d/.local/straight/build-28.0.50/xref/xref hides /usr/share/emacs/28.0.50/lisp/progmodes/xref /home/azeem/.emacs.d/.local/straight/build-28.0.50/project/project hides /usr/share/emacs/28.0.50/lisp/progmodes/project /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox hides /usr/share/emacs/28.0.50/lisp/org/ox /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-texinfo hides /usr/share/emacs/28.0.50/lisp/org/ox-texinfo /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-publish hides /usr/share/emacs/28.0.50/lisp/org/ox-publish /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-org hides /usr/share/emacs/28.0.50/lisp/org/ox-org /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-odt hides /usr/share/emacs/28.0.50/lisp/org/ox-odt /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-md hides /usr/share/emacs/28.0.50/lisp/org/ox-md /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-man hides /usr/share/emacs/28.0.50/lisp/org/ox-man /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-latex hides /usr/share/emacs/28.0.50/lisp/org/ox-latex /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-icalendar hides /usr/share/emacs/28.0.50/lisp/org/ox-icalendar /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-html hides /usr/share/emacs/28.0.50/lisp/org/ox-html /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-beamer hides /usr/share/emacs/28.0.50/lisp/org/ox-beamer /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-ascii hides /usr/share/emacs/28.0.50/lisp/org/ox-ascii /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org hides /usr/share/emacs/28.0.50/lisp/org/org /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-version hides /usr/share/emacs/28.0.50/lisp/org/org-version /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-timer hides /usr/share/emacs/28.0.50/lisp/org/org-timer /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-tempo hides /usr/share/emacs/28.0.50/lisp/org/org-tempo /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-table hides /usr/share/emacs/28.0.50/lisp/org/org-table /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-src hides /usr/share/emacs/28.0.50/lisp/org/org-src /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-refile hides /usr/share/emacs/28.0.50/lisp/org/org-refile /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-protocol hides /usr/share/emacs/28.0.50/lisp/org/org-protocol /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-plot hides /usr/share/emacs/28.0.50/lisp/org/org-plot /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-pcomplete hides /usr/share/emacs/28.0.50/lisp/org/org-pcomplete /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-num hides /usr/share/emacs/28.0.50/lisp/org/org-num /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-mouse hides /usr/share/emacs/28.0.50/lisp/org/org-mouse /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-mobile hides /usr/share/emacs/28.0.50/lisp/org/org-mobile /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-macs hides /usr/share/emacs/28.0.50/lisp/org/org-macs /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-macro hides /usr/share/emacs/28.0.50/lisp/org/org-macro /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-loaddefs hides /usr/share/emacs/28.0.50/lisp/org/org-loaddefs /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-list hides /usr/share/emacs/28.0.50/lisp/org/org-list /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-lint hides /usr/share/emacs/28.0.50/lisp/org/org-lint /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-keys hides /usr/share/emacs/28.0.50/lisp/org/org-keys /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-install hides /usr/share/emacs/28.0.50/lisp/org/org-install /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-inlinetask hides /usr/share/emacs/28.0.50/lisp/org/org-inlinetask /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-indent hides /usr/share/emacs/28.0.50/lisp/org/org-indent /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-id hides /usr/share/emacs/28.0.50/lisp/org/org-id /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-habit hides /usr/share/emacs/28.0.50/lisp/org/org-habit /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-goto hides /usr/share/emacs/28.0.50/lisp/org/org-goto /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-footnote hides /usr/share/emacs/28.0.50/lisp/org/org-footnote /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-feed hides /usr/share/emacs/28.0.50/lisp/org/org-feed /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-faces hides /usr/share/emacs/28.0.50/lisp/org/org-faces /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-entities hides /usr/share/emacs/28.0.50/lisp/org/org-entities /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-element hides /usr/share/emacs/28.0.50/lisp/org/org-element /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-duration hides /usr/share/emacs/28.0.50/lisp/org/org-duration /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-datetree hides /usr/share/emacs/28.0.50/lisp/org/org-datetree /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-ctags hides /usr/share/emacs/28.0.50/lisp/org/org-ctags /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-crypt hides /usr/share/emacs/28.0.50/lisp/org/org-crypt /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-compat hides /usr/share/emacs/28.0.50/lisp/org/org-compat /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-colview hides /usr/share/emacs/28.0.50/lisp/org/org-colview /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-clock hides /usr/share/emacs/28.0.50/lisp/org/org-clock /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-capture hides /usr/share/emacs/28.0.50/lisp/org/org-capture /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-attach hides /usr/share/emacs/28.0.50/lisp/org/org-attach /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-attach-git hides /usr/share/emacs/28.0.50/lisp/org/org-attach-git /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-archive hides /usr/share/emacs/28.0.50/lisp/org/org-archive /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-agenda hides /usr/share/emacs/28.0.50/lisp/org/org-agenda /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol hides /usr/share/emacs/28.0.50/lisp/org/ol /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-w3m hides /usr/share/emacs/28.0.50/lisp/org/ol-w3m /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-rmail hides /usr/share/emacs/28.0.50/lisp/org/ol-rmail /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-mhe hides /usr/share/emacs/28.0.50/lisp/org/ol-mhe /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-irc hides /usr/share/emacs/28.0.50/lisp/org/ol-irc /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-info hides /usr/share/emacs/28.0.50/lisp/org/ol-info /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-gnus hides /usr/share/emacs/28.0.50/lisp/org/ol-gnus /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-eww hides /usr/share/emacs/28.0.50/lisp/org/ol-eww /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-eshell hides /usr/share/emacs/28.0.50/lisp/org/ol-eshell /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-docview hides /usr/share/emacs/28.0.50/lisp/org/ol-docview /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-bibtex hides /usr/share/emacs/28.0.50/lisp/org/ol-bibtex /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-bbdb hides /usr/share/emacs/28.0.50/lisp/org/ol-bbdb /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob hides /usr/share/emacs/28.0.50/lisp/org/ob /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-vala hides /usr/share/emacs/28.0.50/lisp/org/ob-vala /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-tangle hides /usr/share/emacs/28.0.50/lisp/org/ob-tangle /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-table hides /usr/share/emacs/28.0.50/lisp/org/ob-table /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-stan hides /usr/share/emacs/28.0.50/lisp/org/ob-stan /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-sqlite hides /usr/share/emacs/28.0.50/lisp/org/ob-sqlite /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-sql hides /usr/share/emacs/28.0.50/lisp/org/ob-sql /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-shen hides /usr/share/emacs/28.0.50/lisp/org/ob-shen /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-shell hides /usr/share/emacs/28.0.50/lisp/org/ob-shell /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-sed hides /usr/share/emacs/28.0.50/lisp/org/ob-sed /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-screen hides /usr/share/emacs/28.0.50/lisp/org/ob-screen /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-scheme hides /usr/share/emacs/28.0.50/lisp/org/ob-scheme /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-sass hides /usr/share/emacs/28.0.50/lisp/org/ob-sass /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ruby hides /usr/share/emacs/28.0.50/lisp/org/ob-ruby /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ref hides /usr/share/emacs/28.0.50/lisp/org/ob-ref /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-python hides /usr/share/emacs/28.0.50/lisp/org/ob-python /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-processing hides /usr/share/emacs/28.0.50/lisp/org/ob-processing /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-plantuml hides /usr/share/emacs/28.0.50/lisp/org/ob-plantuml /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-picolisp hides /usr/share/emacs/28.0.50/lisp/org/ob-picolisp /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-perl hides /usr/share/emacs/28.0.50/lisp/org/ob-perl /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-org hides /usr/share/emacs/28.0.50/lisp/org/ob-org /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-octave hides /usr/share/emacs/28.0.50/lisp/org/ob-octave /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ocaml hides /usr/share/emacs/28.0.50/lisp/org/ob-ocaml /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-mscgen hides /usr/share/emacs/28.0.50/lisp/org/ob-mscgen /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-maxima hides /usr/share/emacs/28.0.50/lisp/org/ob-maxima /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-matlab hides /usr/share/emacs/28.0.50/lisp/org/ob-matlab /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-makefile hides /usr/share/emacs/28.0.50/lisp/org/ob-makefile /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-lua hides /usr/share/emacs/28.0.50/lisp/org/ob-lua /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-lob hides /usr/share/emacs/28.0.50/lisp/org/ob-lob /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-lisp hides /usr/share/emacs/28.0.50/lisp/org/ob-lisp /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-lilypond hides /usr/share/emacs/28.0.50/lisp/org/ob-lilypond /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ledger hides /usr/share/emacs/28.0.50/lisp/org/ob-ledger /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-latex hides /usr/share/emacs/28.0.50/lisp/org/ob-latex /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-js hides /usr/share/emacs/28.0.50/lisp/org/ob-js /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-java hides /usr/share/emacs/28.0.50/lisp/org/ob-java /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-io hides /usr/share/emacs/28.0.50/lisp/org/ob-io /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-hledger hides /usr/share/emacs/28.0.50/lisp/org/ob-hledger /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-haskell hides /usr/share/emacs/28.0.50/lisp/org/ob-haskell /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-groovy hides /usr/share/emacs/28.0.50/lisp/org/ob-groovy /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-gnuplot hides /usr/share/emacs/28.0.50/lisp/org/ob-gnuplot /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-fortran hides /usr/share/emacs/28.0.50/lisp/org/ob-fortran /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-forth hides /usr/share/emacs/28.0.50/lisp/org/ob-forth /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-exp hides /usr/share/emacs/28.0.50/lisp/org/ob-exp /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-eval hides /usr/share/emacs/28.0.50/lisp/org/ob-eval /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-eshell hides /usr/share/emacs/28.0.50/lisp/org/ob-eshell /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-emacs-lisp hides /usr/share/emacs/28.0.50/lisp/org/ob-emacs-lisp /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ebnf hides /usr/share/emacs/28.0.50/lisp/org/ob-ebnf /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-dot hides /usr/share/emacs/28.0.50/lisp/org/ob-dot /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ditaa hides /usr/share/emacs/28.0.50/lisp/org/ob-ditaa /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-css hides /usr/share/emacs/28.0.50/lisp/org/ob-css /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-core hides /usr/share/emacs/28.0.50/lisp/org/ob-core /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-coq hides /usr/share/emacs/28.0.50/lisp/org/ob-coq /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-comint hides /usr/share/emacs/28.0.50/lisp/org/ob-comint /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-clojure hides /usr/share/emacs/28.0.50/lisp/org/ob-clojure /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-calc hides /usr/share/emacs/28.0.50/lisp/org/ob-calc /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-awk hides /usr/share/emacs/28.0.50/lisp/org/ob-awk /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-asymptote hides /usr/share/emacs/28.0.50/lisp/org/ob-asymptote /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-abc hides /usr/share/emacs/28.0.50/lisp/org/ob-abc /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-R hides /usr/share/emacs/28.0.50/lisp/org/ob-R /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-J hides /usr/share/emacs/28.0.50/lisp/org/ob-J /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-C hides /usr/share/emacs/28.0.50/lisp/org/ob-C Features: (shadow sort mail-extr emacsbug sendmail elisp-mode org-indent ol-bibtex magit-patch magit-subtree magit-gitignore magit-ediff evil-collection-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util diff-hl-margin diff-hl-dired diff-hl evil-collection-log-view log-view evil-collection-vc-dir vc-dir ewoc magit-extras goto-addr vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc bug-reference magit-gitflow evil-collection-vc-git vc-git vc-dispatcher company-yasnippet delsel restart-emacs desktop frameset evil-collection-help vertico-directory tabify elisp-demos evil-collection-indent evil-collection-helpful helpful trace evil-collection-edebug edebug info-look evil-collection-info info evil-collection-elisp-refs elisp-refs jka-compr hide-mode-line help-fns radix-tree cl-print evil-collection-debug debug backtrace mule-util vertico-repeat cursor-sensor consult-flycheck evil-collection-consult consult-org consult-imenu consult-vertico consult magit-bookmark evil-collection-bookmark bookmark preview cdlatex adaptive-wrap evil-tex reftex-dcr reftex-auc laas aas tex-fold spell-fu font-latex latex-mode-expansions bibtex-actions-filenotify bibtex-actions-latex evil-collection-reftex reftex-toc reftex-cite reftex-ref reftex-parse reftex reftex-loaddefs reftex-vars bibtex-actions bibtex-completion biblio biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core url-queue ido parsebib bibtex-actions-file org-id bibtex iso8601 auctex-latexmk tex-buf latex latex-flymake evil-collection-flymake flymake-proc flymake project tex-ispell tex-style tex dbus xml texmathp smartparens-latex tex-mode latexenc auto-minor-mode disp-table whitespace flycheck-popup-tip evil-collection-popup popup flycheck-cask evil-embrace evil-surround embrace expand-region text-mode-expansions the-org-mode-expansions er-basic-expansions expand-region-core expand-region-custom eros highlight-quoted rainbow-delimiters highlight-numbers parent-mode display-line-numbers projectile ibuffer-vc ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs doom-themes-ext-org solaire-mode face-remap doom-tomorrow-day-theme doom-themes doom-themes-base org-capture org-agenda org-refile evil-collection-magit-todos magit-todos pcre2el rxt re-builder hl-todo async evil-collection-grep grep evil-collection-compile compile orgit smartparens-org org-yt org-element avl-tree generator org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys oc org-compat org-macs org-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs github-review ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth gnutls deferred a evil-collection-magit magit-autoloads magit-submodule magit-obsolete magit-popup magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff evil-collection-diff-mode diff-mode magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process magit-mode git-commit transient format-spec evil-collection-log-edit log-edit message rmc puny evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa epg rfc6068 epg-config gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-git magit-section magit-utils crm with-editor f s doom-snippets doom-snippets-lib yasnippet evil-collection-elisp-mode server dtrt-indent evil-collection-which-key which-key savehist better-jumper company-capf company vertico orderless marginalia evil-goggles pulse color evil-easymotion evil-escape evil-snipe recentf tree-widget saveplace so-long gcmh hl-line winner paren smartparens-config smartparens-text smartparens ws-butler undo-fu-session undo-fu flycheck-package package-lint evil-collection-imenu imenu evil-collection-finder finder finder-inf lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr evil-collection-package-menu core-packages package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core eieio-loaddefs password-cache url-vars evil-collection-flycheck evil-collection-custom cus-edit cus-start cus-load wid-edit evil-collection-comint evil-collection annalist flycheck json map find-func dash persp-mode ibuf-macs evil evil-integration evil-maps evil-commands reveal flyspell evil-jumps evil-command-window evil-types evil-search shell pcomplete comint ansi-color evil-macros evil-repeat evil-states evil-core advice evil-common windmove calc calc-loaddefs calc-macs thingatpt rect evil-digraphs evil-vars ring all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons let-alist derived edmacro kmacro core-editor core-projects core-ui easy-mmode comp comp-cstr warnings rx core-keybinds pp general cl-extra help-mode seq byte-opt cl-seq use-package-core bytecomp byte-compile cconv core-modules tex-site core core-lib pcase cl-macs gv cl-loaddefs cl-lib subr-x iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/pgtk-win pgtk-win term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-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 emoji-zwj 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 xwidget-internal dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit pgtk multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1057984 116256) (symbols 48 69380 3) (strings 32 354565 43630) (string-bytes 1 8886860) (vectors 16 122135) (vector-slots 8 3279970 69608) (floats 8 1209 337) (intervals 56 15396 641) (buffers 992 31)) --00000000000017c59f05cd502cab Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Starting with 'emacs -Q' and using the menu b= ar to paste urdu text

=D8=AD=D8=B1=D9=81 =D9=86=DB=81= =DB=8C=DA=BA =D8=AC=D8=A7=DA=BA =D8=A8=D8=AE=D8=B4=DB=8C =D9=85=DB=8C=DA=BA= =D8=A7=D8=B3 =DA=A9=DB=8C =D8=AE=D9=88=D8=A8=DB=8C =D8=A7=D9=BE=D9=86=DB= =8C =D9=82=D8=B3=D9=85=D8=AA =DA=A9=DB=8C
=DB=81=D9=85 =D8=B3=DB=92 =D8= =AC=D9=88 =D9=BE=DB=81=D9=84=DB=92 =DA=A9=DB=81=DB=81 =D8=A8=DA=BE=DB=8C=D8= =AC=D8=A7 =D8=B3=D9=88 =D9=85=D8=B1=D9=86=DB=92 =DA=A9=D8=A7 =D9=BE=DB=8C= =D8=BA=D8=A7=D9=85 =DA=A9=DB=8C=D8=A7

the text is not rendered prope= rly, some characters which should be
joined together are instead rendere= d individually. =C2=A0

It look like this
3D"2021-10-01T21:43:10,566697499+02:00.png"
3D"2021-10-01T21:=
Chan= ging the font to a Nastaliq font more common for Urdu via

(set-fontset-font t 'arabic (font-spec :family "NotoNastal= iqUrdu"))

the text is again rendered improper= ly but in a different way with chracters overlapping each other when they s= houldn't, others have gaps where they should be joined. It looks like t= his

3D"2021-10-0=
while it should look like this

3D"2021-10-01T22:05:28,910692941+02:00.png"

In GNU Emacs 28.0.50 (build 1, = x86_64-suse-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0)
=C2= =A0of 2021-09-29 built on goat11
Windowing system distributor 'Syste= m Description: openSUSE Tumbleweed

Configured using:
=C2=A0'c= onfigure --host=3Dx86_64-suse-linux-gnu --build=3Dx86_64-suse-linux-gnu
= =C2=A0--program-prefix=3D --disable-dependency-tracking --prefix=3D/usr
= =C2=A0--exec-prefix=3D/usr --bindir=3D/usr/bin --sbindir=3D/usr/sbin
=C2= =A0--sysconfdir=3D/etc --datadir=3D/usr/share --includedir=3D/usr/include=C2=A0--libdir=3D/usr/lib64 --libexecdir=3D/usr/libexec --localstatedir= =3D/var
=C2=A0--sharedstatedir=3D/var/lib --mandir=3D/usr/share/man
= =C2=A0--infodir=3D/usr/share/info --disable-dependency-tracking --with-pgtk=
=C2=A0--with-native-compilation --with-cairo --with-libotf --with-jpeg<= br>=C2=A0--with-tiff --with-gif --with-png --with-rsvg --with-xft --with-db= us
=C2=A0--with-sound --with-xwidgets
=C2=A0--enable-locallisppath=3D= /usr/share/emacs/28.0.50/site-lisp:/usr/share/emacs/site-lisp
=C2=A0'= ;CFLAGS=3D-O2 -Wall -D_FORTIFY_SOURCE=3D2 -fstack-protector-strong
=C2= =A0-funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection=C2=A0-Werror=3Dreturn-type -flto=3Dauto -g' LDFLAGS=3D-Wl,-O2'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTI= NGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATI= VE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND THREADS TIFF = TOOLKIT_SCROLL_BARS XIM
XWIDGETS GTK3 ZLIB

Important settings:=C2=A0 value of $LANG: en_US.UTF-8
=C2=A0 locale-coding-system: utf-8-u= nix

Major mode: DOOM v3.0.0-alpha

Minor modes in effect:
= =C2=A0 diff-hl-margin-mode: t
=C2=A0 delete-selection-mode: t
=C2=A0 = TeX-PDF-mode: t
=C2=A0 TeX-source-correlate-mode: t
=C2=A0 global-evi= l-surround-mode: t
=C2=A0 evil-surround-mode: t
=C2=A0 eros-mode: t=C2=A0 projectile-mode: t
=C2=A0 solaire-global-mode: t
=C2=A0 sola= ire-mode: t
=C2=A0 global-git-commit-mode: t
=C2=A0 yas-global-mode: = t
=C2=A0 yas-minor-mode: t
=C2=A0 which-key-mode: t
=C2=A0 savehis= t-mode: t
=C2=A0 better-jumper-mode: t
=C2=A0 better-jumper-local-mod= e: t
=C2=A0 global-company-mode: t
=C2=A0 company-mode: t
=C2=A0 v= ertico-mode: t
=C2=A0 marginalia-mode: t
=C2=A0 evil-goggles-mode: t<= br>=C2=A0 evil-escape-mode: t
=C2=A0 evil-snipe-override-mode: t
=C2= =A0 evil-snipe-mode: t
=C2=A0 evil-snipe-override-local-mode: t
=C2= =A0 evil-snipe-local-mode: t
=C2=A0 recentf-mode: t
=C2=A0 save-place= -mode: t
=C2=A0 global-so-long-mode: t
=C2=A0 gcmh-mode: t
=C2=A0 = global-hl-line-mode: t
=C2=A0 hl-line-mode: t
=C2=A0 winner-mode: t=C2=A0 show-paren-mode: t
=C2=A0 smartparens-global-mode: t
=C2=A0 = ws-butler-global-mode: t
=C2=A0 global-undo-fu-session-mode: t
=C2=A0= undo-fu-mode: t
=C2=A0 global-flycheck-mode: t
=C2=A0 persp-mode: t<= br>=C2=A0 shell-dirtrack-mode: t
=C2=A0 evil-mode: t
=C2=A0 evil-loca= l-mode: t
=C2=A0 windmove-mode: t
=C2=A0 +popup-mode: t
=C2=A0 +mo= deline-global-mode: t
=C2=A0 +modeline-mode: t
=C2=A0 general-overrid= e-mode: t
=C2=A0 global-eldoc-mode: t
=C2=A0 mouse-wheel-mode: t
= =C2=A0 file-name-shadow-mode: t
=C2=A0 global-font-lock-mode: t
=C2= =A0 font-lock-mode: t
=C2=A0 window-divider-mode: t
=C2=A0 auto-compo= sition-mode: t
=C2=A0 auto-encryption-mode: t
=C2=A0 auto-compression= -mode: t
=C2=A0 buffer-read-only: t
=C2=A0 size-indication-mode: t=C2=A0 line-number-mode: t
=C2=A0 transient-mark-mode: t

Load-pa= th shadows:
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org-contr= ib/ox-koma-letter hides /home/azeem/.emacs.d/.local/straight/build-28.0.50/= org/ox-koma-letter
/home/azeem/.emacs.d/.local/straight/build-28.0.50/us= e-package/use-package hides /home/azeem/.emacs.d/.local/straight/repos/use-= package/use-package
/home/azeem/.emacs.d/.local/straight/build-28.0.50/u= se-package/use-package-lint hides /home/azeem/.emacs.d/.local/straight/repo= s/use-package/use-package-lint
/home/azeem/.emacs.d/.local/straight/buil= d-28.0.50/use-package/use-package-jump hides /home/azeem/.emacs.d/.local/st= raight/repos/use-package/use-package-jump
/home/azeem/.emacs.d/.local/st= raight/build-28.0.50/use-package/use-package-ensure hides /home/azeem/.emac= s.d/.local/straight/repos/use-package/use-package-ensure
/home/azeem/.em= acs.d/.local/straight/build-28.0.50/use-package/use-package-diminish hides = /home/azeem/.emacs.d/.local/straight/repos/use-package/use-package-diminish=
/home/azeem/.emacs.d/.local/straight/build-28.0.50/use-package/use-pack= age-delight hides /home/azeem/.emacs.d/.local/straight/repos/use-package/us= e-package-delight
/home/azeem/.emacs.d/.local/straight/build-28.0.50/use= -package/use-package-core hides /home/azeem/.emacs.d/.local/straight/repos/= use-package/use-package-core
/home/azeem/.emacs.d/.local/straight/build-= 28.0.50/use-package/use-package-bind-key hides /home/azeem/.emacs.d/.local/= straight/repos/use-package/use-package-bind-key
/home/azeem/.emacs.d/.lo= cal/straight/build-28.0.50/bind-key/bind-key hides /home/azeem/.emacs.d/.lo= cal/straight/repos/use-package/bind-key
/home/azeem/.emacs.d/.local/stra= ight/build-28.0.50/straight/straight hides /home/azeem/.emacs.d/.local/stra= ight/repos/straight.el/straight
/home/azeem/.emacs.d/.local/straight/bui= ld-28.0.50/straight/straight-x hides /home/azeem/.emacs.d/.local/straight/r= epos/straight.el/straight-x
/home/azeem/.emacs.d/.local/straight/build-2= 8.0.50/auctex/tex-site hides /usr/share/emacs/site-lisp/tex-site
/home/a= zeem/.emacs.d/.local/straight/build-28.0.50/auctex/toolbar-x hides /usr/sha= re/emacs/site-lisp/auctex/toolbar-x
/home/azeem/.emacs.d/.local/straight= /build-28.0.50/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texm= athp
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex hides= /usr/share/emacs/site-lisp/auctex/tex
/home/azeem/.emacs.d/.local/strai= ght/build-28.0.50/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/= tex-style
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-= mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/home/azeem/.emacs.d= /.local/straight/build-28.0.50/auctex/tex-jp hides /usr/share/emacs/site-li= sp/auctex/tex-jp
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auct= ex/tex-ispell hides /usr/share/emacs/site-lisp/auctex/tex-ispell
/home/a= zeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-info hides /usr/shar= e/emacs/site-lisp/auctex/tex-info
/home/azeem/.emacs.d/.local/straight/b= uild-28.0.50/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-fo= nt
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/tex-fold hi= des /usr/share/emacs/site-lisp/auctex/tex-fold
/home/azeem/.emacs.d/.loc= al/straight/build-28.0.50/auctex/tex-buf hides /usr/share/emacs/site-lisp/a= uctex/tex-buf
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/= tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/home/azeem/.ema= cs.d/.local/straight/build-28.0.50/auctex/preview hides /usr/share/emacs/si= te-lisp/auctex/preview
/home/azeem/.emacs.d/.local/straight/build-28.0.5= 0/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex
/ho= me/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/multi-prompt hides /= usr/share/emacs/site-lisp/auctex/multi-prompt
/home/azeem/.emacs.d/.loca= l/straight/build-28.0.50/auctex/latex hides /usr/share/emacs/site-lisp/auct= ex/latex
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/latex= -flymake hides /usr/share/emacs/site-lisp/auctex/latex-flymake
/home/aze= em/.emacs.d/.local/straight/build-28.0.50/auctex/font-latex hides /usr/shar= e/emacs/site-lisp/auctex/font-latex
/home/azeem/.emacs.d/.local/straight= /build-28.0.50/auctex/context hides /usr/share/emacs/site-lisp/auctex/conte= xt
/home/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/context-nl = hides /usr/share/emacs/site-lisp/auctex/context-nl
/home/azeem/.emacs.d/= .local/straight/build-28.0.50/auctex/context-en hides /usr/share/emacs/site= -lisp/auctex/context-en
/home/azeem/.emacs.d/.local/straight/build-28.0.= 50/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/hom= e/azeem/.emacs.d/.local/straight/build-28.0.50/auctex/auctex hides /usr/sha= re/emacs/site-lisp/site-start.d/auctex
/home/azeem/.emacs.d/.local/strai= ght/build-28.0.50/transient/transient hides /usr/share/emacs/28.0.50/lisp/t= ransient
/home/azeem/.emacs.d/.local/straight/repos/straight.el/indent h= ides /usr/share/emacs/28.0.50/lisp/indent
/home/azeem/.emacs.d/.local/st= raight/build-28.0.50/xref/xref hides /usr/share/emacs/28.0.50/lisp/progmode= s/xref
/home/azeem/.emacs.d/.local/straight/build-28.0.50/project/projec= t hides /usr/share/emacs/28.0.50/lisp/progmodes/project
/home/azeem/.ema= cs.d/.local/straight/build-28.0.50/org/ox hides /usr/share/emacs/28.0.50/li= sp/org/ox
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-texi= nfo hides /usr/share/emacs/28.0.50/lisp/org/ox-texinfo
/home/azeem/.emac= s.d/.local/straight/build-28.0.50/org/ox-publish hides /usr/share/emacs/28.= 0.50/lisp/org/ox-publish
/home/azeem/.emacs.d/.local/straight/build-28.0= .50/org/ox-org hides /usr/share/emacs/28.0.50/lisp/org/ox-org
/home/azee= m/.emacs.d/.local/straight/build-28.0.50/org/ox-odt hides /usr/share/emacs/= 28.0.50/lisp/org/ox-odt
/home/azeem/.emacs.d/.local/straight/build-28.0.= 50/org/ox-md hides /usr/share/emacs/28.0.50/lisp/org/ox-md
/home/azeem/.= emacs.d/.local/straight/build-28.0.50/org/ox-man hides /usr/share/emacs/28.= 0.50/lisp/org/ox-man
/home/azeem/.emacs.d/.local/straight/build-28.0.50/= org/ox-latex hides /usr/share/emacs/28.0.50/lisp/org/ox-latex
/home/azee= m/.emacs.d/.local/straight/build-28.0.50/org/ox-icalendar hides /usr/share/= emacs/28.0.50/lisp/org/ox-icalendar
/home/azeem/.emacs.d/.local/straight= /build-28.0.50/org/ox-html hides /usr/share/emacs/28.0.50/lisp/org/ox-html<= br>/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ox-beamer hides /= usr/share/emacs/28.0.50/lisp/org/ox-beamer
/home/azeem/.emacs.d/.local/s= traight/build-28.0.50/org/ox-ascii hides /usr/share/emacs/28.0.50/lisp/org/= ox-ascii
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org hide= s /usr/share/emacs/28.0.50/lisp/org/org
/home/azeem/.emacs.d/.local/stra= ight/build-28.0.50/org/org-version hides /usr/share/emacs/28.0.50/lisp/org/= org-version
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-t= imer hides /usr/share/emacs/28.0.50/lisp/org/org-timer
/home/azeem/.emac= s.d/.local/straight/build-28.0.50/org/org-tempo hides /usr/share/emacs/28.0= .50/lisp/org/org-tempo
/home/azeem/.emacs.d/.local/straight/build-28.0.5= 0/org/org-table hides /usr/share/emacs/28.0.50/lisp/org/org-table
/home/= azeem/.emacs.d/.local/straight/build-28.0.50/org/org-src hides /usr/share/e= macs/28.0.50/lisp/org/org-src
/home/azeem/.emacs.d/.local/straight/build= -28.0.50/org/org-refile hides /usr/share/emacs/28.0.50/lisp/org/org-refile<= br>/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-protocol hide= s /usr/share/emacs/28.0.50/lisp/org/org-protocol
/home/azeem/.emacs.d/.l= ocal/straight/build-28.0.50/org/org-plot hides /usr/share/emacs/28.0.50/lis= p/org/org-plot
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/or= g-pcomplete hides /usr/share/emacs/28.0.50/lisp/org/org-pcomplete
/home/= azeem/.emacs.d/.local/straight/build-28.0.50/org/org-num hides /usr/share/e= macs/28.0.50/lisp/org/org-num
/home/azeem/.emacs.d/.local/straight/build= -28.0.50/org/org-mouse hides /usr/share/emacs/28.0.50/lisp/org/org-mouse/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-mobile hides /u= sr/share/emacs/28.0.50/lisp/org/org-mobile
/home/azeem/.emacs.d/.local/s= traight/build-28.0.50/org/org-macs hides /usr/share/emacs/28.0.50/lisp/org/= org-macs
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-macr= o hides /usr/share/emacs/28.0.50/lisp/org/org-macro
/home/azeem/.emacs.d= /.local/straight/build-28.0.50/org/org-loaddefs hides /usr/share/emacs/28.0= .50/lisp/org/org-loaddefs
/home/azeem/.emacs.d/.local/straight/build-28.= 0.50/org/org-list hides /usr/share/emacs/28.0.50/lisp/org/org-list
/home= /azeem/.emacs.d/.local/straight/build-28.0.50/org/org-lint hides /usr/share= /emacs/28.0.50/lisp/org/org-lint
/home/azeem/.emacs.d/.local/straight/bu= ild-28.0.50/org/org-keys hides /usr/share/emacs/28.0.50/lisp/org/org-keys/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-install hides = /usr/share/emacs/28.0.50/lisp/org/org-install
/home/azeem/.emacs.d/.loca= l/straight/build-28.0.50/org/org-inlinetask hides /usr/share/emacs/28.0.50/= lisp/org/org-inlinetask
/home/azeem/.emacs.d/.local/straight/build-28.0.= 50/org/org-indent hides /usr/share/emacs/28.0.50/lisp/org/org-indent
/ho= me/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-id hides /usr/share= /emacs/28.0.50/lisp/org/org-id
/home/azeem/.emacs.d/.local/straight/buil= d-28.0.50/org/org-habit hides /usr/share/emacs/28.0.50/lisp/org/org-habit/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-goto hides /us= r/share/emacs/28.0.50/lisp/org/org-goto
/home/azeem/.emacs.d/.local/stra= ight/build-28.0.50/org/org-footnote hides /usr/share/emacs/28.0.50/lisp/org= /org-footnote
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org= -feed hides /usr/share/emacs/28.0.50/lisp/org/org-feed
/home/azeem/.emac= s.d/.local/straight/build-28.0.50/org/org-faces hides /usr/share/emacs/28.0= .50/lisp/org/org-faces
/home/azeem/.emacs.d/.local/straight/build-28.0.5= 0/org/org-entities hides /usr/share/emacs/28.0.50/lisp/org/org-entities
= /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-element hides /u= sr/share/emacs/28.0.50/lisp/org/org-element
/home/azeem/.emacs.d/.local/= straight/build-28.0.50/org/org-duration hides /usr/share/emacs/28.0.50/lisp= /org/org-duration
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org= /org-datetree hides /usr/share/emacs/28.0.50/lisp/org/org-datetree
/home= /azeem/.emacs.d/.local/straight/build-28.0.50/org/org-ctags hides /usr/shar= e/emacs/28.0.50/lisp/org/org-ctags
/home/azeem/.emacs.d/.local/straight/= build-28.0.50/org/org-crypt hides /usr/share/emacs/28.0.50/lisp/org/org-cry= pt
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-compat hid= es /usr/share/emacs/28.0.50/lisp/org/org-compat
/home/azeem/.emacs.d/.lo= cal/straight/build-28.0.50/org/org-colview hides /usr/share/emacs/28.0.50/l= isp/org/org-colview
/home/azeem/.emacs.d/.local/straight/build-28.0.50/o= rg/org-clock hides /usr/share/emacs/28.0.50/lisp/org/org-clock
/home/aze= em/.emacs.d/.local/straight/build-28.0.50/org/org-capture hides /usr/share/= emacs/28.0.50/lisp/org/org-capture
/home/azeem/.emacs.d/.local/straight/= build-28.0.50/org/org-attach hides /usr/share/emacs/28.0.50/lisp/org/org-at= tach
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/org-attach-g= it hides /usr/share/emacs/28.0.50/lisp/org/org-attach-git
/home/azeem/.e= macs.d/.local/straight/build-28.0.50/org/org-archive hides /usr/share/emacs= /28.0.50/lisp/org/org-archive
/home/azeem/.emacs.d/.local/straight/build= -28.0.50/org/org-agenda hides /usr/share/emacs/28.0.50/lisp/org/org-agenda<= br>/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol hides /usr/sha= re/emacs/28.0.50/lisp/org/ol
/home/azeem/.emacs.d/.local/straight/build-= 28.0.50/org/ol-w3m hides /usr/share/emacs/28.0.50/lisp/org/ol-w3m
/home/= azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-rmail hides /usr/share/= emacs/28.0.50/lisp/org/ol-rmail
/home/azeem/.emacs.d/.local/straight/bui= ld-28.0.50/org/ol-mhe hides /usr/share/emacs/28.0.50/lisp/org/ol-mhe
/ho= me/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-irc hides /usr/share= /emacs/28.0.50/lisp/org/ol-irc
/home/azeem/.emacs.d/.local/straight/buil= d-28.0.50/org/ol-info hides /usr/share/emacs/28.0.50/lisp/org/ol-info
/h= ome/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-gnus hides /usr/sha= re/emacs/28.0.50/lisp/org/ol-gnus
/home/azeem/.emacs.d/.local/straight/b= uild-28.0.50/org/ol-eww hides /usr/share/emacs/28.0.50/lisp/org/ol-eww
/= home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-eshell hides /usr/= share/emacs/28.0.50/lisp/org/ol-eshell
/home/azeem/.emacs.d/.local/strai= ght/build-28.0.50/org/ol-docview hides /usr/share/emacs/28.0.50/lisp/org/ol= -docview
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ol-bibte= x hides /usr/share/emacs/28.0.50/lisp/org/ol-bibtex
/home/azeem/.emacs.d= /.local/straight/build-28.0.50/org/ol-bbdb hides /usr/share/emacs/28.0.50/l= isp/org/ol-bbdb
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/o= b hides /usr/share/emacs/28.0.50/lisp/org/ob
/home/azeem/.emacs.d/.local= /straight/build-28.0.50/org/ob-vala hides /usr/share/emacs/28.0.50/lisp/org= /ob-vala
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-tangl= e hides /usr/share/emacs/28.0.50/lisp/org/ob-tangle
/home/azeem/.emacs.d= /.local/straight/build-28.0.50/org/ob-table hides /usr/share/emacs/28.0.50/= lisp/org/ob-table
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org= /ob-stan hides /usr/share/emacs/28.0.50/lisp/org/ob-stan
/home/azeem/.em= acs.d/.local/straight/build-28.0.50/org/ob-sqlite hides /usr/share/emacs/28= .0.50/lisp/org/ob-sqlite
/home/azeem/.emacs.d/.local/straight/build-28.0= .50/org/ob-sql hides /usr/share/emacs/28.0.50/lisp/org/ob-sql
/home/azee= m/.emacs.d/.local/straight/build-28.0.50/org/ob-shen hides /usr/share/emacs= /28.0.50/lisp/org/ob-shen
/home/azeem/.emacs.d/.local/straight/build-28.= 0.50/org/ob-shell hides /usr/share/emacs/28.0.50/lisp/org/ob-shell
/home= /azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-sed hides /usr/share/e= macs/28.0.50/lisp/org/ob-sed
/home/azeem/.emacs.d/.local/straight/build-= 28.0.50/org/ob-screen hides /usr/share/emacs/28.0.50/lisp/org/ob-screen
= /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-scheme hides /usr= /share/emacs/28.0.50/lisp/org/ob-scheme
/home/azeem/.emacs.d/.local/stra= ight/build-28.0.50/org/ob-sass hides /usr/share/emacs/28.0.50/lisp/org/ob-s= ass
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-ruby hides= /usr/share/emacs/28.0.50/lisp/org/ob-ruby
/home/azeem/.emacs.d/.local/s= traight/build-28.0.50/org/ob-ref hides /usr/share/emacs/28.0.50/lisp/org/ob= -ref
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-python hi= des /usr/share/emacs/28.0.50/lisp/org/ob-python
/home/azeem/.emacs.d/.lo= cal/straight/build-28.0.50/org/ob-processing hides /usr/share/emacs/28.0.50= /lisp/org/ob-processing
/home/azeem/.emacs.d/.local/straight/build-28.0.= 50/org/ob-plantuml hides /usr/share/emacs/28.0.50/lisp/org/ob-plantuml
/= home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-picolisp hides /us= r/share/emacs/28.0.50/lisp/org/ob-picolisp
/home/azeem/.emacs.d/.local/s= traight/build-28.0.50/org/ob-perl hides /usr/share/emacs/28.0.50/lisp/org/o= b-perl
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-org hid= es /usr/share/emacs/28.0.50/lisp/org/ob-org
/home/azeem/.emacs.d/.local/= straight/build-28.0.50/org/ob-octave hides /usr/share/emacs/28.0.50/lisp/or= g/ob-octave
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-oc= aml hides /usr/share/emacs/28.0.50/lisp/org/ob-ocaml
/home/azeem/.emacs.= d/.local/straight/build-28.0.50/org/ob-mscgen hides /usr/share/emacs/28.0.5= 0/lisp/org/ob-mscgen
/home/azeem/.emacs.d/.local/straight/build-28.0.50/= org/ob-maxima hides /usr/share/emacs/28.0.50/lisp/org/ob-maxima
/home/az= eem/.emacs.d/.local/straight/build-28.0.50/org/ob-matlab hides /usr/share/e= macs/28.0.50/lisp/org/ob-matlab
/home/azeem/.emacs.d/.local/straight/bui= ld-28.0.50/org/ob-makefile hides /usr/share/emacs/28.0.50/lisp/org/ob-makef= ile
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-lua hides = /usr/share/emacs/28.0.50/lisp/org/ob-lua
/home/azeem/.emacs.d/.local/str= aight/build-28.0.50/org/ob-lob hides /usr/share/emacs/28.0.50/lisp/org/ob-l= ob
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-lisp hides = /usr/share/emacs/28.0.50/lisp/org/ob-lisp
/home/azeem/.emacs.d/.local/st= raight/build-28.0.50/org/ob-lilypond hides /usr/share/emacs/28.0.50/lisp/or= g/ob-lilypond
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-= ledger hides /usr/share/emacs/28.0.50/lisp/org/ob-ledger
/home/azeem/.em= acs.d/.local/straight/build-28.0.50/org/ob-latex hides /usr/share/emacs/28.= 0.50/lisp/org/ob-latex
/home/azeem/.emacs.d/.local/straight/build-28.0.5= 0/org/ob-js hides /usr/share/emacs/28.0.50/lisp/org/ob-js
/home/azeem/.e= macs.d/.local/straight/build-28.0.50/org/ob-java hides /usr/share/emacs/28.= 0.50/lisp/org/ob-java
/home/azeem/.emacs.d/.local/straight/build-28.0.50= /org/ob-io hides /usr/share/emacs/28.0.50/lisp/org/ob-io
/home/azeem/.em= acs.d/.local/straight/build-28.0.50/org/ob-hledger hides /usr/share/emacs/2= 8.0.50/lisp/org/ob-hledger
/home/azeem/.emacs.d/.local/straight/build-28= .0.50/org/ob-haskell hides /usr/share/emacs/28.0.50/lisp/org/ob-haskell
= /home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-groovy hides /usr= /share/emacs/28.0.50/lisp/org/ob-groovy
/home/azeem/.emacs.d/.local/stra= ight/build-28.0.50/org/ob-gnuplot hides /usr/share/emacs/28.0.50/lisp/org/o= b-gnuplot
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-fort= ran hides /usr/share/emacs/28.0.50/lisp/org/ob-fortran
/home/azeem/.emac= s.d/.local/straight/build-28.0.50/org/ob-forth hides /usr/share/emacs/28.0.= 50/lisp/org/ob-forth
/home/azeem/.emacs.d/.local/straight/build-28.0.50/= org/ob-exp hides /usr/share/emacs/28.0.50/lisp/org/ob-exp
/home/azeem/.e= macs.d/.local/straight/build-28.0.50/org/ob-eval hides /usr/share/emacs/28.= 0.50/lisp/org/ob-eval
/home/azeem/.emacs.d/.local/straight/build-28.0.50= /org/ob-eshell hides /usr/share/emacs/28.0.50/lisp/org/ob-eshell
/home/a= zeem/.emacs.d/.local/straight/build-28.0.50/org/ob-emacs-lisp hides /usr/sh= are/emacs/28.0.50/lisp/org/ob-emacs-lisp
/home/azeem/.emacs.d/.local/str= aight/build-28.0.50/org/ob-ebnf hides /usr/share/emacs/28.0.50/lisp/org/ob-= ebnf
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-dot hides= /usr/share/emacs/28.0.50/lisp/org/ob-dot
/home/azeem/.emacs.d/.local/st= raight/build-28.0.50/org/ob-ditaa hides /usr/share/emacs/28.0.50/lisp/org/o= b-ditaa
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-css hi= des /usr/share/emacs/28.0.50/lisp/org/ob-css
/home/azeem/.emacs.d/.local= /straight/build-28.0.50/org/ob-core hides /usr/share/emacs/28.0.50/lisp/org= /ob-core
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-coq h= ides /usr/share/emacs/28.0.50/lisp/org/ob-coq
/home/azeem/.emacs.d/.loca= l/straight/build-28.0.50/org/ob-comint hides /usr/share/emacs/28.0.50/lisp/= org/ob-comint
/home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-= clojure hides /usr/share/emacs/28.0.50/lisp/org/ob-clojure
/home/azeem/.= emacs.d/.local/straight/build-28.0.50/org/ob-calc hides /usr/share/emacs/28= .0.50/lisp/org/ob-calc
/home/azeem/.emacs.d/.local/straight/build-28.0.5= 0/org/ob-awk hides /usr/share/emacs/28.0.50/lisp/org/ob-awk
/home/azeem/= .emacs.d/.local/straight/build-28.0.50/org/ob-asymptote hides /usr/share/em= acs/28.0.50/lisp/org/ob-asymptote
/home/azeem/.emacs.d/.local/straight/b= uild-28.0.50/org/ob-abc hides /usr/share/emacs/28.0.50/lisp/org/ob-abc
/= home/azeem/.emacs.d/.local/straight/build-28.0.50/org/ob-R hides /usr/share= /emacs/28.0.50/lisp/org/ob-R
/home/azeem/.emacs.d/.local/straight/build-= 28.0.50/org/ob-J hides /usr/share/emacs/28.0.50/lisp/org/ob-J
/home/azee= m/.emacs.d/.local/straight/build-28.0.50/org/ob-C hides /usr/share/emacs/28= .0.50/lisp/org/ob-C

Features:
(shadow sort mail-extr emacsbug sen= dmail elisp-mode org-indent ol-bibtex
magit-patch magit-subtree magit-gi= tignore magit-ediff
evil-collection-ediff ediff ediff-merg ediff-mult ed= iff-wind ediff-diff
ediff-help ediff-init ediff-util diff-hl-margin diff= -hl-dired diff-hl
evil-collection-log-view log-view evil-collection-vc-d= ir vc-dir ewoc
magit-extras goto-addr vc-mtn vc-hg vc-bzr vc-src vc-sccs= vc-svn vc-cvs
vc-rcs vc bug-reference magit-gitflow evil-collection-vc-= git vc-git
vc-dispatcher company-yasnippet delsel restart-emacs desktop = frameset
evil-collection-help vertico-directory tabify elisp-demos
ev= il-collection-indent evil-collection-helpful helpful trace
evil-collecti= on-edebug edebug info-look evil-collection-info info
evil-collection-eli= sp-refs elisp-refs jka-compr hide-mode-line help-fns
radix-tree cl-print= evil-collection-debug debug backtrace mule-util
vertico-repeat cursor-s= ensor consult-flycheck evil-collection-consult
consult-org consult-imenu= consult-vertico consult magit-bookmark
evil-collection-bookmark bookmar= k preview cdlatex adaptive-wrap evil-tex
reftex-dcr reftex-auc laas aas = tex-fold spell-fu font-latex
latex-mode-expansions bibtex-actions-fileno= tify bibtex-actions-latex
evil-collection-reftex reftex-toc reftex-cite = reftex-ref reftex-parse
reftex reftex-loaddefs reftex-vars bibtex-action= s bibtex-completion
biblio biblio-download biblio-dissemin biblio-ieee b= iblio-hal
biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi b= iblio-core
url-queue ido parsebib bibtex-actions-file org-id bibtex iso8= 601
auctex-latexmk tex-buf latex latex-flymake evil-collection-flymakeflymake-proc flymake project tex-ispell tex-style tex dbus xml texmathpsmartparens-latex tex-mode latexenc auto-minor-mode disp-table
whitesp= ace flycheck-popup-tip evil-collection-popup popup flycheck-cask
evil-em= brace evil-surround embrace expand-region text-mode-expansions
the-org-m= ode-expansions er-basic-expansions expand-region-core
expand-region-cust= om eros highlight-quoted rainbow-delimiters
highlight-numbers parent-mod= e display-line-numbers projectile ibuffer-vc
ibuf-ext evil-collection-ib= uffer ibuffer ibuffer-loaddefs
doom-themes-ext-org solaire-mode face-rem= ap doom-tomorrow-day-theme
doom-themes doom-themes-base org-capture org-= agenda org-refile
evil-collection-magit-todos magit-todos pcre2el rxt re= -builder hl-todo
async evil-collection-grep grep evil-collection-compile= compile orgit
smartparens-org org-yt org-element avl-tree generator org= ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-s= rc ob-comint
org-pcomplete org-list org-faces org-entities noutline outl= ine
org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys ocorg-compat org-macs org-loaddefs evil-collection-calendar cal-menu
cal= endar cal-loaddefs github-review ghub-graphql treepy gsexp ghub
url-http= url-gw nsm url-auth gnutls deferred a evil-collection-magit
magit-autol= oads magit-submodule magit-obsolete magit-popup magit-blame
magit-stash = magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone = magit-remote magit-commit magit-sequence magit-notes
magit-worktree magi= t-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-= status magit magit-repos magit-apply
magit-wip magit-log which-func magi= t-diff smerge-mode diff
evil-collection-diff-mode diff-mode magit-core m= agit-autorevert
autorevert filenotify magit-margin magit-transient magit= -process
magit-mode git-commit transient format-spec evil-collection-log= -edit
log-edit message rmc puny evil-collection-dired dired dired-loadde= fs
rfc822 mml mml-sec evil-collection-epa epa epg rfc6068 epg-config
= gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode
= mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader pcvs-utiladd-log magit-git magit-section magit-utils crm with-editor f s
doom-sn= ippets doom-snippets-lib yasnippet evil-collection-elisp-mode
server dtr= t-indent evil-collection-which-key which-key savehist
better-jumper comp= any-capf company vertico orderless marginalia
evil-goggles pulse color e= vil-easymotion evil-escape evil-snipe recentf
tree-widget saveplace so-l= ong gcmh hl-line winner paren
smartparens-config smartparens-text smartp= arens ws-butler
undo-fu-session undo-fu flycheck-package package-lintevil-collection-imenu imenu evil-collection-finder finder finder-inf
li= sp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr = evil-collection-package-menu core-packages package browse-url
url url-pr= oxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf= url-util mailcap url-handlers url-parse auth-source eieio
eieio-core ei= eio-loaddefs password-cache url-vars
evil-collection-flycheck evil-colle= ction-custom cus-edit cus-start
cus-load wid-edit evil-collection-comint= evil-collection annalist
flycheck json map find-func dash persp-mode ib= uf-macs evil
evil-integration evil-maps evil-commands reveal flyspell ev= il-jumps
evil-command-window evil-types evil-search shell pcomplete comi= nt
ansi-color evil-macros evil-repeat evil-states evil-core advice
ev= il-common windmove calc calc-loaddefs calc-macs thingatpt rect
evil-digr= aphs evil-vars ring all-the-icons all-the-icons-faces
data-material data= -weathericons data-octicons data-fileicons
data-faicons data-alltheicons= let-alist derived edmacro kmacro
core-editor core-projects core-ui easy= -mmode comp comp-cstr warnings rx
core-keybinds pp general cl-extra help= -mode seq byte-opt cl-seq
use-package-core bytecomp byte-compile cconv c= ore-modules tex-site core
core-lib pcase cl-macs gv cl-loaddefs cl-lib s= ubr-x iso-transl tooltip
eldoc electric uniquify ediff-hook vc-hooks lis= p-float-type mwheel
term/pgtk-win pgtk-win term/common-win tool-bar dnd = fontset image
regexp-opt fringe tabulated-list replace newcomment text-m= ode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isear= ch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font= -core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-la= ng
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-= ms
cp51932 hebrew greek romanian slovak czech european ethiopic indiancyrillic chinese composite emoji-zwj charscript charprop case-table
ep= a-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
but= ton loaddefs faces cus-face macroexp files window text-properties
overla= y sha1 md5 base64 format env code-pages mule custom widget
hashtable-pri= nt-readable backquote threads xwidget-internal dbusbind
inotify dynamic-= setting system-font-setting font-render-setting cairo
move-toolbar gtk x= -toolkit pgtk multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 1057984 116256)
=C2=A0(symbols 48 6= 9380 3)
=C2=A0(strings 32 354565 43630)
=C2=A0(string-bytes 1 8886860= )
=C2=A0(vectors 16 122135)
=C2=A0(vector-slots 8 3279970 69608)
= =C2=A0(floats 8 1209 337)
=C2=A0(intervals 56 15396 641)
=C2=A0(buffe= rs 992 31))
--00000000000017c59f05cd502cab-- --00000000000017c5a005cd502cac Content-Type: image/png; name="2021-10-01T21:43:10,566697499+02:00.png" Content-Disposition: inline; filename="2021-10-01T21:43:10,566697499+02:00.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku8s47ko0 iVBORw0KGgoAAAANSUhEUgAAAl0AAACuCAIAAACDeS/iAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE QVR4nOydd3wUxRfAZ3ev1/RL74V0epcSei8CilgQ+SGKVBEREBWpKqAiIEUBRbAL0nvvUgMEQnrv yV2ub5nfHxeSkNxd7o49AjrfDx/Nzc3NvH3zZt5O2X2YVqMGCAQCgUAgAAAA4M0tAAKBQCAQTxHI LyIQCAQCUQfyiwgEAoFA1IH8IgKBQCAQdSC/iEAgEAhEHcgvIhAIBAJRB8fKdx8u+vTIsRP1U5J6 dFv6ycdjX5swoG/vV8e9BAB4fdJbI4YNGTpoIIsyNa63dcvEdV+tbpDNaDR269P/9x3b/f1864tk MBohwwgEAocFYBjmx50/nzl3PjMj08fXp3Wrlm++MUEsEln/VYN664vULNSqkcPheHl69urR/X8T xvN4PCs/YRhm9TdrDx855iKXL1/8SVBgYP2PIcHBT0ZyAMDocS/n5hU0Tv9l+7aggAC7imLdRD9c 9Km7m9uMd6bUT2Sxuc2W34DHN3JbaEaTNquEjt2Tvlu/NjYm2soPnTEiIf5rWPOLAICRw4dOmfS/ 2o8EQQAAunftEhUZ6VSxGtSL403Ma+uLtO3Hn3Lz8z5d+KFjVZMkOfXd2Xq9YdKE14MCAzIyszZt 2fbKhP9t+OYrTw8PKz9sUO8T0FKTPD982DuTJxmNxtt37i5atgIAMGXyJCv59+zff/XajR1bv8Nw XCaVNvj4pKQGAICtmzcBhgEA7Pz19yvXrq5avsyULhQKn6QYtvOEm/sxjdyxWp4Gk0YgngBN+EUe lysWixskTv7fG06Tx1q9VmBRpN//3KWsUm7dtIHP5wMA/Hx927drO2nK1HUbNn00/4NmEclhuFyO UCgUCoVdOnca/fyIs+cvWM+fk5MXExXl7u5u9uOTRPzQ//H4PAIn7DKGZuFpaG5n81+4RgQCNOkX zWJppYIkyW83fXfs5Cm9wdC9a9fpU94WiVhe56FpeuN3Ww4dO6bVaDt37NhYpB93/rzlx+0AgOMn Tw8fMvi9mdPtreKnX399Z/Ikk1M0wefx3nxjwrtz582aNlUqlbw+6a0BffscPXEiPT0jKDj4vRlT o1u0aFxvfS2ZFmb3HThYUVmVEB/33oxpPt7eJrF7dH/u1JlzmVlZ/r6+s2dMT0yIAwBcvHx5w+Yt mdnZHu5uST16vD1p4mNrDuAY5uFeM98dNGLUxx/Oa9e6NQDg3v3UN9+ZdurIweVfrNq9dx8A4MCR I6HBwbEx0fU//vj9Jkvt+/qkt8aMGrn/wKG7KSlLFy/q0LaNM+SvxZIyLaXXx3mC1W9us7WYNRtb im1sIY2NzcamaZ2YsG7jprPnz5eUliu8PF9/9ZUBffvU1vXzb3/s3rOnvKIyLi72vRnTjp44yaJJ s44to41jOkcgmvCLJEnpdLraj3w+38qS5sqvvykrK9+yYT1JkZ8uXbF2wwYH3JLZenk8nmkJd92G TVeuXf986WKJWLztp52Nf/jK2Bd1Wp3DS0wajaasrDymRcMNjJYJiRDC7JycuNgYAMCeAwffmznd x1uxfefP78x6b/evO63Xu3nrD+cuXFi26BOBgL9m/YYpM9795cetXC4XAHDp8pX3Z83w8vTc8P2W eR99vOvXnXq94f35C6dPebtPr6TSslKDweDAhTSgqKh438HDM6e+bSXP3NmzxCKRUqla8MEcU0qD j1bad9XXa6a/8/b0d9729/OtrlazLn99LCnTipJNOFuwJmtpbDYSiaTJAhtbSGNjs7FpuFyuv5/f isWf8vn8oydOfrpsRUx0C9N+7Y87fz585NhH8+e5u7tdv3HLRS5n0aTrt4LtNBgEGmDjaOOYzhH/ cZrYt/tj1+6e/QfV/rtxK9lSTo1W+/fefRPHv+rq6uLl6Tlp4uunzp51WKwG9Z44dRoAYDAaf/9r 1wfvzYoIC/Px9p451drBBMcoLCoGALi5ujRIF4kEMqm0vKLc9HH0yOEJcbGeHh7Tp7zt5io/cuy4 lTKNRuOOX36d++7MsNAQP1/fj+bN1Wg0Z87VLGn279snKjLC1dXltXFjyysq8vLzS8tKSYrq3KmD VCoJDQl5nDvcn3/7o2P3pI7dk4a/MFapUolEjq9GWm/fSRMmDO7fPzwsVCAQsCh/Yywp07qSTThV MFtqsctsamlsIQ0y2N40AIDnhw8LDQnx8/V9bdxLvj7ed1PuAQBomt7640/vvzuzRVSkp4dH395J 1vdx7TVp2zTXkAaDQM/+g2y85Po4pnPEf5wm5osvjn7e+rm4WnJycxmGmbvwIwxgAACKorRajcNi ma23oLCQZpioiAjTR8zh0i3j6eEOACgqLgl/9KbSYDSqNRpfX98G+XEcj4+Ny8nLs1JmfmERRVG1 BxaEQmFsbExWTnaDbD7e3kKhUKvVRbeIatOy5UvjX+/SqdPQwYNMq52OUatGjU63d9+Bd2a+u/bL Va0SExwoynr78vl1x1yDg4LYkr8xlpQZEhLcpJKdKphdtdhiNo2ptZAG6bY3DQCgqqrq8NHjN2/f ViqVFZUVBr0eAFBQWKTT6aJbRNkoib0mbc9V1tF4EOjYPcn0hwOjjWM6R/w3cWR/0SwSsRQA8P23 69xcXdkqswGk0cgwDMMwTR5PdRi5XC6XyW7cSg4PC62ffjflHo7jAX5+jX9C4LiAb20blTQaGIah abpWbB6XW3//shYMgwAAHMfXrP7i2o2b+w4cnDt/YZvWrT5b8qnjlwQAAEAsFL4wauTxUydPnTlj 8osQQrtKsL19nSF/LZaUaYuSnSqYvbWYzMZoNNafBq3/anVCvLXdOJOFNMD2ptFq9W+89U5S924T x7/qpVDMfO99U7paXQ0AYBjGtFvRJPaaNOs4Nto02VURCBOsORgfby+xUHj23Hm2CmyMn78/AMDK Wm4tFEU5XMuoEcO37/xZo9XWpjAMs3nL1tHPj6h9kEujqfv2zr37tQ/2ma23Ruzk5NrS7t1PDQ8J sS5G65aJH37w/qZ1a06fPVdaVubw5dTHRe4qEooAAEKhIDsrx67f2tu+zpAfWFam7Up2kmC21NLY bHg83rnjR2r/WXeKDag1Ntub5l7q/SqlcsrkSSHBwWKhEHu45OLr68swTMr9VCu11Mcxk2YR2y/Z UldFIKzwuH5RLpcXFhZBCDkczriXXly7cfPlq1cZhikuKUm5f9/hYk1b7rUYjEYAgFgoHNS/34qV q+6mpFRWVm35YbvZ33p5eV6/mVxUVGxl094K4158USIRT5z89rnzF8rKyq/fvDXzvfdVquoJr7xS m2fz1m1nzp2vqqravHWbVqft2f05K/WKhcIhAwd+tnJ1yr17FZWVq9d84+ri0r5dW0sCqKqr9xw4 WFpWptfrr924JRQKZTKZAxcCAKBp2mg0Go1GVXX1iVNnrl6/bhI1IS7u7337i4qKi4qLd+3Za0tR trcvi/I3xpIyrSi51kRZFExvMCpVqtp/DMPUfmWlFrNm4xj1jc32pnF3d9NoNH/u+ruqqurQ0WNp D9JN6XKZrPtzz33x5dfZubkane7s+fNarR6wZ9KsY+WSa5vb9JFFnSP+OzzuOurYMaNWrFydkZW1 YvGi1195WcDnr/5qTVFJqZur6ytjX4iOsnXHogF/7Nr9x67dtR9r33fz7vSpX36zbtbc+VwOZ/CA /gH+DTf8AAAD+vY5f/HSS6+/3qplq5XLlthbtUgk+O7bdd9t2fbtd1vyC/KCAoI6tGs74bVX6r8p pn3b1t+s31BWXh4XF7v+q9Wm43ZW6p01/Z21GzbOmb+QoqkObdp++cUKDLO4PVpdXX3i1Ol1GzZq NdrAgIBliz7iW31JjRV++3PXb3/uAgDIZbLwsNDPlnwaER4OAHjnrTcXL/9s7PgJHu5uQwYO4Nh2 XNDG9mVRfrNYUqal9FoTnfb2ZLYE2/X3nl1/76n7+Evd0Wgrl2/WbByjgbHZ2DRBAQFTJk/auGXr +s2b27dt0759nSdb8P57q75e8+Y700mSjIoIDw8NE4kEbJm0M7B0yfVHJMCqzhH/HTCtRt3cMjxj oBdNIRwAmc2TB+kc4RjoveEIBAKBQNSB/CICgUAgEHUgv4hAIBAIRB1ofxGBQCAQiDrQfBGBQCAQ iDqQX0QgEAgEog5OUVFRc8uAQCAQCMTTAtpfRCAQCASiDrSOikAgEAhEHcgvIhAIBAJRB/KLCAQC gUDUgfwiAlEHOobWGKSTZxHUao8D8osIBAKBQNSB/CICgUAgEHUgv4hAIBAIRB3ILyIQCAQCUQfH sZ8xDAMhtJ4Hx/EnHMIbgUAgEIjHxBG/yDBMdm4WDShLrhECQGA4j+D7+vgRBPF4Ej7VQAjvPUgp ryhrkAhhzf8ffoReHoqYFrH/1hsFCMHJmwVZRaomcwYppD1b+v1L1YCwRm5+rotMLpXKLGUoLS0p LSuNiY59klI1F7fvJt++e5umadNHgiASE1pGR0Y3r1SNufKg6vK9yuSs6gcF1RBg4T7i+GBZ+yiX DlGuzS2aE3HEL+r1eiNtSIxtY2WUr1arSstL8gpz/X0CnOEas++eKki/CiFTPxHDiZhOo+TuAaxX ZxYIYUrqXZFI1LVzD4IgMBMAAzUuEUKGgRAykGEYJi8/59adWwmxCf8+12hyigYaPNc6mMAB/vAC aQghAxgIGQYwENIMoBmYW1R5/Hp+z1a++L9ODwgr6PX64uLiqsrKhPhEs/fTNE3nFeTzefyqKqWL i5zFqkvKivV6fYPEmh4KAYAQAigQCH0VvixW2iTnL5wfNnS4WCQ2fdRoNHv2/v1U+cVqLbX057vJ adUxbu4t5O5dEnw5BKAwUF6lW/NH2q8evAUvRbtKeM0tplNwbL4IGYbBMEyv11nKk5OfGRkanZOX nZufE+AXyLprLMy45qoI4XC4AMMwzLRgixkN2vuXdid0f1kgdmG3OrPce5Di4uLq6+NH0xTD0DiO 4ziOYTgAADIMAxmaphkTEPr5BhAE5+btmy3jWz4B2Z4kJ27k6ykQ4udmMNIAAwSO4RhGG7WaqgIA ML7MG3CEDANpBkII/BUuuUVVJ28UJrV6osPQE8agziy882l16Tm57wCfmA+4AkVzS9TMVFVVBvj7 q9Wa0rIyD3f3xhkKCgv8/fw5XE51tYpdv6jX60NDwq3nuXvvDnByEylzLmefXauvLgEQQAAr1N2r lJWurm4EQdA0nV+YV1ZRdm5NLwAAhFAgU4T2mOYW3Mm5Mlnm+oOK9zb+EyFz7+2juHTj5JnMa0pV EcHhKdx92rbvMbFn77v5ZaM/Ob3kjZYdWng0l5DOw/H9RQCA9akPl8sL8A/KzE7LK8wL8A3AcTbP +EDA6DVVNGWsnyiRe4ldvK4e3WRWMJ+wNiGxPVmUobSsJCgoRK2pxjCMQ3AIDocDOBwCJwgOIABN UwAACCBgIMNQWp3RzdXtzp3bLApgQqVSbty0MSMrq1PHjiOGjZBIJA0yaLXaP/764+LFi4FBgZPe mOTqyvICSF6ZOqltKAMhhDgAAALA0HRVaVZEWCiE8EF6utw7jC8S4hgOAMAwzEOmOP5PBrsyPFXo q1PTTg2OTvpT5LqlNH1b0b3PA1p+0dxCNTNqjcbf39/d3ePmrZvubm4NeqiBNFZUViQmtNTrdcVs P5BOMzQAwEgaIYQQMqZ9DYZhav4DGRe5m6m3OpXM02sU/uEyjyS1nj5/r0JbVEVRVHpGGsPQOE4w DK1Va0oU/TtHycUCvKo068HRVR0m/uZsqcyi0hhnrTvf0SugujT/h5Pf+/rJe/aK9XJti2Egv6Q6 OfXMibP750z9YHqvNh98e/73T3u7SfnNIqfzeCy/CIBFv1hSVFKQfwAA0L5tp9T0exRF8Xhszrgh Y8Yrq1WlYqmHp38UBkC9rT0GQEhTVFHmDXb9IsMwJcXFBUV5D7XRBD7e/gy0KaddrN/4LZfD6dev b0ZGxqdLF304b2F916jRaJYsXezu6dGvX7/09LRvN337wZwP2BWApmFuqf5BXkVtCkMZol0pT08v CGHqg9Sz13O4QhmG16wZBPu40nQTh7aeXUxOMbbPbqE8kqErXP2Ssm8sRn5Rq9FgAPB4PG+FIicv JyggqP63Odk5YaFhGAYoktRZXoVyDNMeHk1TaWnpoGb5tG4FNTg4qDaPU9FWFUpb9tKW3F2+Vztm zIvTB0ZxOY8Mv9OnzbiXcnf5z7/NGyySe4SnXj/ubJEssWjbPwECSXV50bm7B4f0je3aKlwqk7m5 uHh4edEUlZaefujU1cVffjLppZl9W4Qt3Hzpm5ndmktUJ+GoX6SbmC926dTd9AePx2Noymgk2fWL 9WvOqwS55QaGMQ21uQ1y4jgW6MEL8hQAtn0SwzAYhms12pYtW/H5Ai6Hy+XyuBwul8sFAJAkSVIk SRpJiqyurk6+fdO0rMquDACA/Lz8nkk9KsrLw8PD+TzekuVL5s+db3KNGo1mybLFPr6+YWFhpWUl ISGhR48dZV0AAAADAYFjYX6uAGAAQFKvBfpK8NBC/N2FEhc5QXAZADLyqxrvLml1umvXb+QXFGh1 OqFQ6O3l1aljBz6rBvNk0Fenpp0aFNPrV4E0gNLdwAiXitx9Lv5DbS8hacDAFUsWt2vdujZl1997 9h48tHndNzaWYDQau/Xp//uO7f5+T9FKtd5ooGmapmkfH9/rN655eyn4fIHpK41Gw0BKKpXptGoG Nn3Q3V5MPo+iqZCQIACwmtNw4KF/hBAAQFNO94s0TQMIMcB4ifTfbtxoKVu0Lx8DAgDgE3DVZrl0 t+if5PzOXgFHbh0Y2Tuud9d4D3cPsUTs4uIql8s5HK6Xl8LV1VUilm79fePMCQsvX8k8czP/uUS/ ZpHWSThxHRUAcDa5YOvBlLT8iiCvyomDYjrFeDtWnXVyyw2zZ821JAyE8ItVy4M8BazXyzAMhmNa nRbHCYamb969c+funZYJrSIjIkiSvJNy5979exGh4X4B/iRJarVahmac4RdbtWyZmZkVGRlZUJAf HBKCYfjSFUvmz10AAFi6bImfn19YeHheXp6vj+/91PuJCYmsCwAAgADSDFTpIAAQQIbU0x71Vs2r dRTNYwiCMX0NwCMDH03TBw4d9nR379e7F5/P12q1hUXFPC7XGXI6FZNTjE76USgLoDQncY5XVcGR 9MsLAGRKH3zbIDNfEiJ2a+/iP8zFzw6v+ewi5AsMBj2GYyKRJCgwKDMrq0VUC9NX2TlZ4eGRFGlk GLqqqsrLk+WNPpPPgwzMyMgEoG6Ry+QfQ0JDwBOZLzI0bbL8Me2FBqPFez4+jzAJxzSTX7xwK9eL J7iXdy/Ql9e7a4Kvr4+LTC4QCAgOh6EZCpAAA16eHr27Jl66fv/UlVOR7iFnb+YgvwiAbX7xzK38 Od+eBQBc2Tiu3aSf3t94cfGEdt0S2Fcfw0AMw6qrlWa/lUrlD6eSrNfLYBim0Wg5BAfH8eTk5LEv jvtpx49nz50xZRgz+oU///rDw8uDJCmNRsswTpkvvjDmxcVLPuXz+SHBIUVFhaFhoRiGLVm2GAOY X0BARER4fn6ev79/RkZGaXHJm/PfZF0AAEDNZdUsTkH4qOeDDMPQNMAI05jUoDXKyspV1dUjhg4x 7UALhUJ3c+cynnL01empJwfH9twklPoZVbs5wtYEL8o9MK7zS682zgwBpI3l+ur09Ivvq4pPBbRc juHP3n2AXXh5eZWWlQYGBBiNeg93z7z8/Cql0kUuL6+okEqlfB5PparkcLhl5eWxMXHsVm3yeRDC kNAQDDONWhh4dPh6An6RpinTkpVcYsNuHGSaa754PSVfyhFmqQr792jh6eHuKncRicU4jgGAUZQR kgBCRigQunu4deuYeOh0aifvmOt3M5tFVOfxmH7RWp7NexueMfnh8H0W/WIDX3fxynmz2fokDWic mRUYhsExXKvVcQgCx4kWUdEe7p7/e+NNg6HmULhaXc0wjMFgIClSq9ViGO4MvygSiebPW7Bk6WII QUR4eFFRYXhEOI/PBxAGBwcVFBT4+vo9ePAgPy9v/rwFIpGIdQHAw41cgqoSMSUAQhUlBPVuiEUc gzuWA2mgpN0ggzdYKGMgpGlardbIZNL66TTDXLl6NSc3V6vVicWilgkJEWFhAIDjp05xCE63rl1M 2W4mJ5eWlffu2YNmmKtXr2VkZVE0HRQY2LFdOy7XQfN2gLQLE9382wmkCoNyK2AMRtLqSIFxcY6f QBwZ3//vrBuLMy9PD+24zpZaXp/0Vo/uz506cy4zK8vf13f2jOmJCXEAAJqmN3635dCxY1qNtnPH jrX5GYb5cefP+w4crKisSoiPe2/GNB9vp6zZNIlC4V1cXKxWa0UiIZfLDw0JycjMjI9LyM/Pi4+L 12rVHA63tKxMLpOzvn5ucjAYhmVmZtY9TIVhAAAMgLDwMFOe6zevu7m5Ou/hDZqhGy8R5wm7qDG3 BokMw0AtFPZYefz0UQihq4tb68Q2bInRJHcz8rv6xZMMExaokEikfAEfN+nMdN+LAQzgPD5fIhbH RAX+tOc8D+Om5ZZA2IQ7eLZw1nwRQphTUn1l4zjTR9Mf3ab+DCF00gN8XR/uaD4xTPuLOq0WAmAw 6I2k8fCRgyn37tY+LEUQuIenh8FgABjQarQEh3CGXwQAiMXi+fMWLF22BMdAREREUVGhr483huPF JcU+Pr6pqakFefnzP1ggFoudUTsAgGEgZGghXd4qMZEg8Pup9zSamq8wDAQrBFGRLSiKunbjZiEp pRmm/o2Kl6eHq6vr3oMHY2Oiw0NCaoUkcFwulfVJSiIIIiMr6/TZc56eni4yWVhIyJnzF2oNKTsn Ny4mBgBw4dJlrVY7fMhgmqZPnz13+eo/Xep5CGcT1nHznaP9JfKNrt5hlDGZI+zAESbShvvmc0MG Qi1ZfQgjLge3nHtldz9N5S2xa4ItFV26fOX9WTO8PD03fL9l3kcf7/p1J5fLXbdh05Vr1z9fulgi Fm/7aWdt5s1bfzh34cKyRZ8IBPw16zdMmfHuLz9u5TbTGnVERETK/XvhoaEGg04mk3M5nLS0B35+ fgxDQ4bR6HTKKmVMDPsP9Zv8Io5j4eHhOIZjeM2TXTUDkWl/kab9/QJ8fHzq/5Ddhzdq11Hro8bc TDfuVvj9r1+AU3Y/zENTJEVRPELI5fF5PC6H4GB47Qy7Rl0YhnG5XB6Xx+Fy9HojQxohgJjlY5jP HE5cR/V1E7Sb9BN4uI4KAAj1dspkxcTZC6fMpjdpdg7DMAyOYRqtxmAwUCQZGBBQpayKj4unaIok KZomKZricrkcDofH52u0Gi7BcZJfBACIxeJ5H8xfumwJj8/38fEpKS3Bcdzd3SM7OysvN3feB/Od 5xRBzSP8tOn4u0QiSYhvmZlZ8ySGt8InJCQUx3GlSslAhiH1DTZOCIIYMmjgvXv3ku/c/efqtdCQ 4MS4ODc3NwBAdIsoU56W8fGpDx6Ulpa6yGT+/v4Mw5SUlim8PHU6XVVlZWCAv5Ek76emDhs8SCAQ AADatGp59OSpJ+kXhbKwmN77kg8NiGiV5KrwN6r3EPwovV5wafd42OjAF8HluilCW3Say5D/ULpL kR3ez7m9Juq5TbZU1L9vn6jICADAa+PG7vp7T15+vq+v7+9/7fr2m69M8+mZU6fs+nsPAMBoNO74 5df1X60KCw0BAHw0b+7wMWPPnLuQ1KN5Tg8KhaLQ4NCMrMyIsHAel69QKPILCtzc3HRaNc0weXl5 0S1inPEOkJoFSQzLyKiZL+IYFhkZiWE4wOr8ok6vU2uqnffwhuncTYNEkiQBAGpNNcMwDGN63pmm acp0RolmqJDACKPRwKIYTRLp71peXSUTeucWaDAMAxhmmgtiGAYhrPGPEOIYnpFf6ibxLKmsCPKR /Mte0+Gs5zQAAC90D1r2y936Kc93Zm8RFULw6NG1Hs/1biI/2zAMQzG0VqNbucqmU/gEx4l+0QQE EDPt55k6N8OAmqMuzsW0ZZhdzhC3b4WHhXsrvMPCap6kNv1RVFSYlp6eVagBHH7j3V4eh5MQFxcX E5OTm3f77p3d+/YPGzTQzc1Nr9enZ2QWl5bodXqdTkdTFACAwPGQoKCcnByFl2dObm5AYACHwykr K4MQHj1x0mSRDMOQpLFhNU5GJIuM63vg5oEBka07uHkFaIpnijwXt+m/OivlfEz37+rnpEh1bvLq ktw7PiGtjdW7hC6TVRUbar+10VZ9vL2FQqFWqysoLKQZJioiwpRe2yfzC4soioqKjDR9FAqFsbEx WTnZj32hjuPi4qLQeWfl5ISFhBYVFwcFBefn57u6uGRkZQcFBZvuaVinZh0VgLCwUBzHcQzHHj5L jQEMPsyTm5ujUqmc9/BG7f5ifYxGIwDAYNQfOni45v1YNY9WQgjo7j261+Z5YrRu4X3yVJ6HKOTO 3SJqMM0wNEEQded4IYZhEAJIUdT1O1l8jnuJqqhVok+TxT5bOOgX4cPZtKUMGIb17RBBUdSf5/M7 v7U9yFMwsqNPUptgFhdRKYqiqJobOpIkS0tLzXodgiCqVdU0xf5UlaEZhqY7de6QGN9SIpVaeU5D p9VeuXqZ40y/qFarl65Y4h8Q4OfvX1RU6OHuAQAoLy/z9w8wGIxLli+e9/78xo/8swVkgEQiU947 k1rONej1KpUyLDTcdO9P03Ra+oO8vLzi4mJgMIp8wwAwPyfAcTw4KDAwwP+P3bszs7KlUtnf+/YH BwW1TkwUSSSHjhypzRkaGnLx4qV2bdtk5eRGR0UCAHg8PgBg2KCBQqHQSddoC2J5ZOKAA1f3DWjR KtbdM1JX+qnMe0PZsRUNsnG4Ep/I12+ffN4/agSj/RCXvlhdmQoABACTiKUq5SOvmdXodDKZ+XeK YhgEAJBGo+mtSg1enUEaDabZR206j8vl85v5EWwfHx+SMqamPTAY9ADCwhAsgM8AACAASURBVKKC iopyhaeXm2vDbTa2MLk3sUhq9lvTiETTtJ+fn5fCy3kPb9A03fgO9aFfNPRM6m7yPRCY3h1purll AABGwxP1i51bh/1x6HqgS6RRE7j/WNqoIQlCAQGBadsCAgAYBlIUdeZqSkpGUaR79+uF1ye3dtaa XHPhxIMJYrF4YJfoTjHex08dSYyL9ffzY/fQB0WSFEkC03PlmSn5KacpsuFbEE30SnSnSAojRMln f4/vOootARiGYWhGqVSpqlXlFeXZOVl5ufne3gqFt4LP4xeXlOTm5kaFR0a1iObz+UqlyjSRY6v2 +qjV6sXLFwf6BwYFBeXl5fn7++fl5UEIAgMD8gvygkOCIYBLli+eP3eBk1wjA4G6uorw60IDkKEB GfeMp+7dfTSLAkgUQAIogwECzMpKA47jIqEIJ/Cy8jKdXt++bc2Jg/o/8PX21huN5RUVZeXlfr6+ AACJRMzjcHJyc2unR82FWB7ZeuCBf/YOiIiPUgT0Ksr8091/YIM8NG0ozTvmHz6EIdMwQqip+Jvg epguMTws9NLlK72T6l5AcePmrRZWL8rP3x8AcONWctvWrcykJyebnoZkGObe/dQRQwazdKH2QRsM 5adOVd28yTAMgJArlQr79kl9kMrhcGB6RtW+A1UYhmGYPDbWMymJYPXmRiqVHTt+tO44Te2paQjA wySCwykoKNRoNM57eIMxt45q8nkMTR87etzko2uFAhAm9U4CT3y+2LVVeKvYgMy0lCBZh38uqQWC +0P7RfN4PJNThBBSFHXmcsq67Ue9+C3SSzKNuvwe7aOepIRPACf6RQzDJBKJWCz28fH29fVlfX+L ohjTfJHDkAX3TkcldBHJ3EHNC24YyNCQYSCka/9gaPL29bMsCsAwDM3QKqXKYNCTJFmQX/jyuFd/ 2vFjdnaOKcOY0S/8tevP1q3b4DihVCopyinPaajV6k+XLgoICAwICMjNzQkICMzISM/LzcMAZjQa QkNC8/LyggIDIYSN34bDFgwEBIFFBvua+rbpvB9W25MAML11iIEgNauggQpKSkvTMzMD/f1lUikD QXpmRll5WZfOnQAAJEmm3LsfEhyUX1hYUV4BQkNNP8EwLDQ46PzFiwF+NQFbcByPj4+7cvWaRCr1 9fbWarU6nc7Do3ne3ChxiWw/9GjGzTX39uzwDhsa3qbuBUOaqnRl6TVtVaqLl6930AtU5SKuMF5Z opR51WyFTnj1lTenTlcoFP369AEA7D948M7dlA8/eN9KdWKhcFD/fitWrvpkwTwfb59f//izNn3I wIGfrVy96MP5CoViyw8/urq4tG/X1mnXbRFKrcnctFEqkwWHhJgmr+WlpdWHjwg7tsdy89yKir0i IwEADMMoS0oyvv02aPx4HntvK0yMT2SYhy9YeuiYzl88FxUZXa1WmXYcOQQhk8n5Ar7zHt4wu79o 8nk0w/TqnYRhGI7jADw8M/sQw5P1iwCA5bNG9JqwWkbckzNhJ07oryefbNtaERPpQeDY/ayiC1dT r93JlBMhRooo1uWEcbM/XjBv0dLlT1hIp+L0g+z1o0ywxe1zvxNcCQ4hhyMBAHRogUclduNyecrC +40tr74sLMoATH6RplUqld5goCjS0nMaDIR6rUalVNEUZXpPELv8vfdvH28ff3//nNzsgIDA7Kzs 3Lycd2e8ByFc9eUXDANDQ4Jz83IDAwKNBuOWbVumTpnKugwAAJquea6fVGaTlZkcqQ/PPQoAYPpI SHy4bhGmKAYNmoHP4wMALl66rNZqCYLwcHcf2K+fi0wGAGjfts3VGzeuXLvm5+vj6//I5nRYaOid lHutE+sO6rVKTORwOBcvXlJrtUKBICEutrn8IgBAJAuJe25V3HOrGqRLXIJlrr4YZsSYB4z2exw3 QE6b5Mtr43psM2WIi41Zu3rVxu+///n3P0RCYcvE+C0b18uk5tcAa3l3+tQvv1k3a+58LoczeED/ AP+apwtmTX9n7YaNc+YvpGiqQ5u2X36xolnCuahS7krlcrG/f3ZyMk2SAMMiIyNV6enciios5Z5P u3YZt2+TGg1GEB4KhYubm+r2bY/nnmNRABxvuHQvkUp9fHzE1aKsrCwMYBiOaTTaxg9vsCgDTVMA NOz+Jp9H4Pjx4ydMG584hoGHB0D79u8Hnvh8EQDgIhV98+HYKYt2eJBVfpKI3ByYV5i1Y/dNI6XC cQCMXAUnNl9dlK9OaaUoG96zzw87f9+8acPE/znl2ehm4ck94MUiamVpq44D6iJpYDhl0GjLczGr B0xwDsvH001HyJRKFUka+Tx+QWlhg+c0OBxOZESkVqsxGo1KpZKkKdbnixDCi5cuJvVMKikp8fPz z87Ozs7JeWvSWziOMwzz9uSpa9Z+xdB0SGhIaVlJaFjYwQP7KysrBQIBu/tw9cdaUpnTp3fvY8eP 6rTlAACG1nfr+ty58+egPAQ+fHV4/d/K5bJO7dubLTYhLi4hzvxT3l6enhPHv9YgMT42Nj72qY7e B5lSSKdDOgMwRRxCTGPd/zm5wyN4nGdA3cJpy8T4dV+tNvvzLRvX1/94/MB+0x8CgWDu7FlzZ88y fXxz4gTTH3web9bUd2ZNfYf9K7GH6lu3PMTivJs3QydN4srlKcuWAQAYhglp2zbz2jWmooI2GMKn Twc0k75+XUBQUNGtZHb9YmMYmsYwjCBw6w9vsFkjQz9cuwUA1MxcTT6PIIj+/fsTOEEQBI4Tpsg8 4OExjifvFwEAnRJCj3438/2Vf9xIuSTDXCQ8iZgjFwC5xqhRGzXZhtukpiDUndYZ4dkLF18YNWzz d1sDAoP69u3374ij9+z5xRpb0Skpg+aRL2pu9SyCc3imn7PVcqaD1SqVSiQS83n80JBQkqQ6d+rC 4/L5fJ7RaCQpksfjanVao8GgVKpoimb9zTtarbZFVFRaelp4WHhmRkZ2Ts64F1+maVqj0Zi2BF59 +bUt27YYSTIiPDwzI0Oh8K6qqjItpbLpGmtVCiGAkMPhDB82wnTfwDA0SVLAdIYZb6qR/u0YSYLU SwD0gyStrbp19dS3Ys8BMdHTSZJsrscKnwCQgRgABJdLaTRkVRXB4xlIkiuWQKGQ7+qmJ0mCx1Nn ZQk9PHCCwCC0uurDDjY+vMFWdRBCmqYhZCDA6p9KNfk8DMePHjmG4zhO4ARODB40GCcIDMNgc5y7 qcVNLt74ySsnr9w/dSX12t2cm7npEMJgH7c2CYpWLaL1ZWlfrlrlERDyQC3gXL/+0osjF3zwvpur e6vWrUzBaJtFZrZ4Vv0ibdQZ1BVNZq5PTWREVv0iTuBqtfrL1V/Zlp+GbM8XaYbp06vvvgN7Dx85 HBwUPHL48yKRkENwBAKBQCjEMEwul7/2ymv7D+0/eOiQh4dH/z59KYpm/RVTD2+yIYQQE7juP7Cv YQ6eHMfwmvHu2e4yj4Wyorgw+0pF4TWtugBCwiNqhadfZwCc/gBP8yJpEaVNS/Nyc8vbuZMrFHop FCq1WtKyJQBAnJigun3by8Oj/OTJEo1G4emp1elEEU2ES3x8bHx4g5W6GIbRanV8qaIgK8UnMMp0 sgYAAAA0+TwMgL79+hAEh0MQBMGp2Z8HGMQw0EzzRfCwO3dtFdY+NoAkSZ1Op9MbjEaDQa83GAwG 16h3ps345puvBULRDXUVQXDHjBr+9uSJP/3yW2hIKIfz7HmW+jx70lMURXD5yrI8e0+cK8vzOFwB WxGv1GoNwzAcDmfeB/Mf3ufhBE7QDG3adzSdymFqIhPTAACCIBjIqNUaiYS1I0hCgcDd3f35EaP0 egPN0AROCAR8uVwulUoxDBMKBGq1miCI0SPHkBQJAOByuEKhQCyRsPWsWM0NLwAAAAYyAAJCHg5E PqZzfqDmDCDAuSJQ87kms9FoZDfEyjOBp0+cuyLGaHzZSJIMTRMcDp/H43K5z/r9tXXEERF5V654 e3kFBQUxJKnSaKpUKpfAAACALDYu79IlnGEULi6Ep6fRYCguLha3bq3T6Zz6yI2ND2+wUpfBYCgu LpbEvXL10ibjsd/rQuABYIx4HwCg8DT/tjkCEKD5/CJ4OM2ladpoNBqNRpI0GvR6nU6vN+h1Wq1Q LBr5/Oi/d/9VXlxwXqvs2ql9SHDgvr173357yn/RLzrQhdnt9a7+iUVZVyG0z2oxnOMWxNphPK1W w+PxLlw4Bx+GrAGmRcS6j/XSQc3OAofD1WrZ9ItcLtfNzU0mkxmNRgghl8utP8hyOBwXFxeJREKS JEXTOIZxOBwul8tijGijkeQQWGFREQCgqKj4YXLjdbBqAKpNfxUWFXEIjPXQY88KOI4LBAInPcP+ dML18JD161d05iydnw95PODmxh8wABcIuFwuIRAEvvFG4cFDyvw8RqeDIjFs3Rq4u7MbxrwxFh7e qO3IEEDowtKZWIFA4OvrI+v1iq7zqAa+9uiJo/M+nGt6oN/0Jo6H/4EAQFPsZNNDI80FhmE4ThAE weVyaZqhuRRN17zo1RPH+Ty+QuG1Z8/fudlZp86c12n1U2fNccZLi54wmFajtvc3RqPxdkqyVqdp OisAAACRQBwXE8/WIMgwjFqtViqVJEnZ/hYbDMO4XI5cLpdIJKx0ObVao1ZX2/saHQzDJBIpi36x 2THdRxqNBoPB1rdV8fl8Ho/P43GfQr9YVFTk3Uxv1n5qYUUnEEKSJA1GI0PTHA6Hx+PV30+FEBqN RoPBADCMx+XyeDxn+0Vg2teoqd58BnbH97pHJh9NpGnKrBi1h4A4HI4DywlstZrpBTwURVEUTZKm WSNJUdRD5w0wDONwiJs3bpw6eWLI0KFdn+uG4/izvv7hiF+EEKo1GnW1TV4BwzCJVCoRi9nSlKmp KMoOp1gricnCnvU2QzgP5Bcbg3TyLMJiq9XOoU1vl6wFq0etL/x3jK6OraNiUolE6rSXijVZO4Zh T+FUA4FAIP591Dq8JzCJf0r4r1wnAoFAIBC2gPwiAoFAIBB1IL+IQCAQCEQdjpy7QSAQCATi3wqa LyIQCAQCUQfyiwgEAoFA1IH8IgKBQCAQdXAoCxEBpU2FfEMgEAgE4t8Hmi8iEAgEAlEH8osIBAKB QNTRfH6Rzkof1fXWWdLS98yNr890GZxyxdEYK02VbwmYuz95bNKRLr1PjXo95bSqyXS2eNzrfYiT 5bT3rbRsldMov4Pta7f8bLWLnbClZ3ahq9eOOPbJpSceK9KOep3dTy3RTHZiM6oDN3p3P9a9y8HY Tg6Mio2waJ9Pux5sw9lRshjNDxPOf32bAYDRKBmOjMPHAK4IXLc7ulUTv8S8E7z7Q6nPk43jBVVF KxcrO23suSOOw2gpUtREOnuwc71OlhPeXX3mC98O373If7yXA9tbTnPVC5rJDtm63v8czrR/5uyC 418Gdfrlf2JzYTaaZ7yyHdmAlkcHADor/YWXbQ2EZBkr9vm068E2nC09Ln51a59XAQDGwukdMlv9 3Wm8X40mTWHILHd7zLtHxIc9nCxeI5h8VbrM/fVoDgYAIeIQTaWzBzvX62Q5YVUlCc3HUHVqORbz 2+k2HJC/WeyQLT2zTnMFS7C1Xuf3U0s0z3jVTFixz3+HHpryi+pzd0ZNKwyd1+Wb54W4Del2gfFw 5fkH09bmXkyn/fvErFriF0wAOi1j4qTMDBoAo7HULfSPv6Oia6wbFp24/+GXhTk6yHD50Umhs6b6 BFuPqoFTd368ufbXkgwVr9W4uKVvubvhwHjgavsdHod/CPLCAKCVq4Ze1X7SY0FbHBhLl79w51iZ PrcUvJVUwAVY6GvtNk+QEpbSASALStYvub83hWT4gnavxs57US7FAAAwb8vFWYbYLyKLvvq+4FwK 1eKdDt+9LrXURVm7XstyKm9nf7Y043QWxVG4jZ4dO6mLgAPslRMW7775v3UVpQU61YEzPdZjoCk9 MCUFM8akha7pOiMeh2UFM0Znxm3q9L9wzEo5dtVryX4AJO/uTt/8R8ntbH05JewzM3HhaJnIqvxO bRc6K33cPDDnLWbrmkflNN8udstpUR4Leniw9uybZTEHPnLnm9S789LY22H7lngKLdtz1bXMjxdl XCzBAzt7+xqAg8F6zctjRT921utc+7eIvXZCZ6W/NNswup/x9z/KslTcxJdil77t4W51DDXXLpbb 0YKeLarN0nhoZz8CFvVgXv9W+sXTgMoCNSG2Sv+8nBi+d/DXSgo+gqV0ixgKprU8tyWvLn4XlZn2 fPzBwe9lJ5fRZFH+rG6H5556pDDyYnL3wffu1qYZS+Z3PvnZdQpCSFdXH99XXkpbq5DKTHs+5vD4 daVFemjIyZve/cjcEySE0LD/n8SXs4pNglBVKwce+/RKXUHUrZT+A1NuN7oqM+masiV9j0z6Ualm IF1eumTIsXmnSAghhEzu9+e6jzo3akLKvps6LWmsVFkVlKXrtSQnXZDzvw4n5h3WGiBTceXe6Pan v7lDOyonfWDqgdd26h+JwmZZD8V7/uk+MvWO3njig+Oj1iqN1suxs16L9kPrjm5KO/rASEKoSUkb 1+Hc99mMlXKahAU7bHlo6JyGclpuFzvltCSPBT3QOelju988rTXl0Wx56finl2kILbYjXZD9Rttj s/eodQxdeil1XLsjH1+0yZ4bYkEey/pxpF5n2j99Zv6R5zeqLY14NtpJ43Hp/ROktWottYuldrRm /5DKTHu+y80z9bqixfHQ0X7UQA+W9G+p3Z8OmprreYxoffho0s4pMsK2dPuQeM/+NDDOHecovPu3 ZrIyjdY21nG+t4fh0u6CS1kkI5H0HOjm0eRE1VXxxkQPBR/wAnzHDyBOHal8/P3mWrRns3dJgueO lYkxgLu5vzFGdO54FVXzJSytkM36qsXABIGQw3WROjSjduB6zQALDuVcjg17t7eQBzDXtuFTexv+ 3MWmnJb1gHkNjJ3lm7twzs0vUv0+fkPGbaoouzFrP7ig18SwXuEcfaEqpYQb4KK6dZ/VIywOtItQ MWtRAzmttwsb8ljQA+7vOzysdM95CgBAZxfsU/oMa4UDi+0ICw/nXYkLf3+QWIDhHm28O/k5upJq pV3M6Yelep1u/xaxYiePjkunrY5LlvqXpXZkzf7ZKceq/s20+1NC0/uLhFeQ0J50e8Ax4qGt8AU4 aWSsKZ6QTd7U1nVjxufj72ZCSfcxEbPf9PK1eX/U1Y2rzacYu3ekLAErC3Tq9PJJA3JrC3TrjdXK L2vr1fYx4zY/3vXWyllaZJAHimQ1UuIBwYLyZAP9sOUfW06resAFvUe7L59YEL8iIYb/OLVYwLz9 MFkH7i/9voIKckmMEjAcqNczbB68dqBdzMjZRLuwIY8FPWCCviNcvt1bWt3Lu3BfIT2gZQwHWG5H WFKgdwkWu7DQbSy3izn9sFSvs+3fMrbZSe24ZEl+i/3LfDsC9uyflXKs6t+u8f+J8kydGuJ4uY1b 4DZuAaxKLfh82rWFip6bRtl4YI/JydJ7+AoIABguzjHSBmjykJBy5BYdAIC5KASiCO/vfgkLdNqz Lo9xvbVgHl581QWtGrq7YAAAWJCrd1XwHZ7l8/m40cjAutsLq3rQV234sqrnVN9/Nj243Ce2g8RK OfbWaxE6I+O9lYY3f+nc2x0DgPzz8oMjDpVjhSfQLnbJaVYexrIeXJL8232Vd6pclHaEGLRGQgBg uR2h1IVbnazXAfCY77+y3i6NwFiql2X7twuz7fJoFiY7S+/uI7Asj7X+Za4dm9AzhgMcPvqIhYXx kKV+5LD+mYp8o8BHIGqeJwmbqtV4PXVUpyPjNqso29KdB52b/9U3hWnVEADMJcQl0hOjqaZuL6or j57U6CFU3cxYf5Q3eIicAwARKPZNKzmexTBa7bHPU/4udfAeRfxc4OCKzCXblSoGAMCU3SpPUTpW knkcuV4zYH79A1onZ6w+qacAVN5I/+YQb/hwF0dvh7CQSHHG6dICCgDAaDQMsKYHOvnb5IPR0XOm xCzsULLwi1IVtFaOvfVaAiqNVRgh4mOAoTMPP/jlev3M9tZrhifSLnbIaUkea3oQeY7sqt67Ofe0 m98g/5qRzUI7YiHdvXwvZm66RjIMnXkwc1/6Ixdr+zhgtV3M6Md6vTbDrv3bgTU7qa48fFyjg1B5 PWP9Ee6QoXIr8lgbZ8y1o3U94+4ib4PqVgYDaEqpgcDyeMhSP3JQ/+W7r/bucWzsehXdVE7nYIOB YIC8frSsaILMH7cp3UngLtJwKn3xhLRKPUPTmGenuA9HCKzfrRAhLl4Xb49aoqrgSYcubjslFgcA EBFBc8aWLxh9eI1cOnhm3MzO11IcE0jiOW9bwsbPkkdvIwEXl4Up3prnFi1n7Ry7A9drvhzfwJUb mOVLLyR9SHPcXUZ+0X5yrOMniIPGRL9y6eborqkiGUcxMGHLDDe+BT3ok9MW7pXO+c1LjoPO7yZ0 G31rxemui7tzMUvl2FmvJcvlJITMfu7agv7HRQpheI/g0f2KTliX304VPJF2sUNOS/JY1QPeZqTi 4xeyApf0VNTWaaEdiZjwrz82Lph9sivgx/YPHdyxrPRRAWwcB6zKY4Ym67URVu2fuf31mQ4balqb 1z3+yEpfsaV6rdiJVMC5eHv0MlUFTzp0Sbsp1uWxNs6Yaccm9CxWvDUjf9brx37Cifi3O6x7SWxp PGSrHzmmf56r0EPC8/bkNNdzQSqV+VdC1L033HgxefB2tz+/8WuwDm8pHYFA/HdA44Bd0FnpL7yi mXk8oQv759AQbNGk59ZV79hQ0XqkV8PbIkvpCATivwMaBxwAgqfmgAnCLE34Rfrc13fv9Gu1MImL 2ZSOQCD+O6BxAPGvxIZ1VAQCgUAg/jOgOFMIBAKBQNSB/CICgUAgEHUgv4hAIBAIRB3ILzYANlc8 WEvxVBvG+WQ5vqjd2Bt31EJ+u/XMVjmPW76j8a6fNp5I/F7nxTF2dj9lq3y27NxunNVfnrV4747R fHGJ2z6Nr6BrtniwluOpNozzyWp8UQewN+6o2fxsxQdmsb2cWT6pPfHtvU37y+8VMB6t/N9Z0GJo OKtvIrO/fOfH2XYqzu6n/4I42M7uL/bRfPHeHaP54hI/lTRbPFjL8VSftjif9spjNj9b8YFZbC/7 yrfDiKHxxEcX52X6fro2vps/TD+YdbaIhuEEa93AofKfVPxeJ8UxdnY/ba7424C9/u7s/mIfzRfv 3TGaek6DtbjEJr+49xG/aCFeqEWgpnrvmnubDlWVaIA8zm/ahy0GheBW4ouaj7PaRLxNrYov8BA3 HXfXspT2xQWtH0/VTcGtjadqJc4nADXzxRknErrWe2uGfXJakN5SvFOevfFXzee3pmezsFIOnf5g zBuGOUfjOnAgTULAwQlg/G3imeQ3en7klWVX+SAr/cUJutc/4h9ca1M8VTrtweiXql7Z326Eh00N YCGes8VOZm/5luzN4hU8Zjzhu4WuH/X8qIO1QcKs3Voo34F+6lj8bVvLbyr+9mPaud3xe+3vL3bH 2X7hVWWf8cRJ++O9P2Jvlu2QlXjvj0mzxSW2GpfVHLTmlzcO9ZiadbuKgTT54EDm3gdW44taipdr b7xNi3F3LclpLS6oJSzFQ4aN452a8jeKL2q3nJbEtxTv1JI8TcXpNSc/G/GB7SrHUDy38/kfChmm NHt87OEF52hIln2SdHFnqd3lNxlPuwFlP19InJBTacelWonnzEr5EFq1t4Y4O56wBbu1GrfWvvjY z078bQgb2aHD8Xtt7S//9njvDtHUOqrHiNaHWxtFAUIzcYnNpdtMTbzK472FPAB4bcOn9s79eFfV mzEW3wdNp+Vtv+U++3BQrBwAwAnvHxxer7TSCvmyLS06SQAAQCgF4GE8z1/GysQYAG7ub4wRvXC8 iurmwcEFvSaGAQDVhar7tfE2Ay1OrCyWY+kHdpbPFnbLaQHc33d42Lk956nnenFM8U4XtrK6IoDz vT0MJ3cXXHLxbhMs6TnwMa7BeXBlcWGau2nQQFYawvl3rqqpsOp0nmyoq0OlmeIh8wEA3v1bJ3+f aWS6WVo1gcpKkuPKEzVqf/pO+uQPC0rrjqTgHWd1nNuNqInnfOj8wjlKfb7fio+sx3N2oHw7sWLP priyj+hBYIonfGyQWIABQRvvTn45ZVaLt2S3mPnyLa5OWbV/M+ODvVgu3672cgh79GA3DvRfU1xl LgABvuMHpL59pJLs4cmWOM5uR9totrjEdsdlZYp0pQpphAVdNIovaiVerl3xNpuIP2xWUufGxWVN TgtYjHdqAXbiJzsZjBfdgtj3QHe/Uhvcz+P2laqSlqqcMHcHj7/YEU8Vk7lwyQqDBgLeo66LiA3b 9GeYhfJtj+fsUPn24dR4whbtFjNfvt3lmPg3xt9mif9avHebaLbxy+54lbiHwK1UnaEBkTKbyrcU z9POeJt2xx+2M/6qgzSKL8pmnGSz8U6t4ECcXlbiA9tTDh4eJ807W36tgtPqEzfyj6Ljd3Vu0SFN 3tk9vpyubdxDVhafLA+0df8PWIvnzE759uDkeMKW+6nVnz1+P7VOc8XfdjZm5flXxHtnN45xs8Ul tjteJRHlPzq0dOWivDQtAJDOO53x/SmDlfsmS/E87Y23aW/8YTvjrzpI4/ii1uW0r73MxTu1hENx elmID2xvOeIWMo+MguMaWZzCtU2Qav8pfVi0qCmXz4KcRHjg291VK6bdP5VD0RSZtv/uu19XaK39 wko8Z1bKtw9nxxN2KL43C/2UvfJZjL/tbMzI8++I9852HGMbvGtN3NFGbWop3daafQNXbggyfHsh qeuxER8pO3/Rvon4nIT41W/ajcVypgw4+lzP01N3Gn0DrEatlHjO25YQ/0/y6D4n+vU/89aG0kI1 BDXxNlUL+h8fPPryV/ddR/cT1KsVCxoT/QpIH931aK++p/+3qcpgjkdNaAAAFmpJREFUuRxLWC2f PcSKt2YI975+rHP303N2a2kb5LSnvfA2IxXZ2/I8h3ormpIed5GGU0WLJ5wdNuTU4GFXT0baEqfX nJ4dwY5yiCB5WFZZir9LCIfXqiW8dp0XE9lky7AhJ8bvu6Tjx62q10w43qbNibd+Bf1GuFg5n1wT z3m2lxzndn43odul2ytOk9YMzs7y7cVeeyZiwr/+WP7P7JNde59besdtcMemlGxn/wIAsNJP2Srf anuxZedsYUYeB/pvTbz3nkf7v1ee8Ei8d7hl9OH2g6+fiY2Z2dnRYc+hdmQ7jjGKS/yfAbUXAoFA 2ACKS/wfAbUXAoFA2ASKS/yfALUXAoFA2AiKS4xAIBAIRB0WD4BiFt5sCJsr3gQCgUAgEM4HxZlC IBAIBKIO5BcRCAQCgagD+UUEAoFAIOpAfhGBQCAQiDqQX0QgEAgEog7kFxEIBAKBqAP5RQQCgUAg 6kB+EYFAIBCIOpBfRCAQCASiDuQXEQgEAoGoA/lFBAKBQCDqQH4RgUAgEIg6kF9EIBAIBKIO5BcR CAQCgagD+UUEAoFAIOpAfhGBQCAQiDosxiVG8YcRCAQC8R8EzRcRCAQCgagD+UUEAoFAIOpgxS9S Fbd3r5o6dXMKzUZpTytMxqqu0gHflT6z68tsN9MzrxCngTSDQDzLPJ5fNBZf/XXpGz3Cg7rMPkjH xivQ7POpBDUTgg0M+ybFTzlsbG4xEAhnY/HcTZPQGVvH9nrnCL/7K2+vu7K7fwt5M4+2TP7GES/k jex98nfv7bsnB6Kx38TT1kxPHlj0/fMjsuadWdTWcWNHAAAAf9DG5EHNLQQC4XwcHipg8aHte4n/ Hb65uiufTYEcBvebtPssAAC81tySsIF+1/g2x16+vqY37/HKeeqa6cmDeU/484KV79lS9b8cXfKm Nyd8sisF7/jBjl/mdXXFmlsgBMJpODx7wBS9n++q3Llsy/2nY10FVp5dPjzOSywLG7rqn+rH2tgh z85pPXZnFVuSOYRg+NY7bIzUT1szPXGofxZ2Gvnt9imx43fpzedgS9VPL7o/X4ubduzxDKBq18ez D3q889P3Y5SfT/rsH4ol0RCIpxHHV9WIiMk/fj84dc6oOUcrbHZD5IUP2o3ZvP3NmP/tNQAAAIDq ggdZ5Q512eqfhkvbLq05RMKkfzdn0e1Wi39e9Vzqwinr7j/O0RJu18+u7Rzr8hglPAaGv8bJeEJX n9DY9r1feGfRxr23ysjHKc+hZrICrNw2RNrxs1SnHbGCDMPmcRVO20UX/pz88to7W4cLANAe+2jI 2ztzGAAAy6qGRT9P7PTy1mym4RePXYvFknX3fpk7ultCaFBkpxeWHCsyfQ+rzm7/o8FNkHDktttf 9+IBAIt3v/f8e7uK7Fcw1Kuqac/47r0G9WkpyU65rzWfjW3rRSCahcfZbcIUQ9b8Os/lh9em/F5i tadpTn7Y78X19ygAuJ2WXfl14ssb7m4abFrWo+98ObTXoosPO48x9cc32noJBO6xz6+8WFVbKHl6 eojvpMNGAIBm50hJ9AdXGt6vMtVKFebftk+/YUmReE5G7uMM24Yr385YdqCQAQAA9Y4R0jZL7rLn BeoXCMvPLB8R7yV1j31h/c2akYaXtOTMhVN7tq/5aPLAsPK/3h/WMmTEVuvqbQKbm6khsHLHSPdO nz+gAQDKH4dJ4hdef/xpAiw/t3n5z7d0pk+PqteY+uMbbRRCrsi309S/8hr5Afug/lnau9vCcyQA QLd/WuuBq27TANBFN09eztSY1FCr6o/fHhJRUU/VjjQ65tUuGt/9w76ChmI/doNaKBkW/DBt4m/8 1787cmL7ePH+ldtvUQAA+sG2z+ZPG/vxBY0pE0PXv8vAPKLcczes31NsrXrV3slxSZ/dfrSpMcWI mRN5G3t4+r36u4ojFHHrvmKy9n+5en8WzcrFIhBPA1b8Iq0pL6nS17Np7a11L8QqFLFj1t7U1CQJ W81a9ppg368nLdw/mgrKOrv/vF7m23gv05h7aPuhrPLS8ppOWLVrwYzD/nN+/Wt52+QP3/7mzsOR iVQpNar8fCUEdG5WLlmSk6cDjEpZTasqlabRghM/fs7wgvnRbtHTjhk8vDwe57oM9w9+9+s/5RAA ACiKAgRh+91Dk4XXK5C+vXbap7kDth1e2+XW+zO3mGYxmDw4sU37rr16t3XJPX40y2/Upz+sGOZh ZTOHtWYCgErd9cWaw7UOCZN37RGfcvhYIQPo3OxcsjS/yAigSqmCPD7P0e0lTC7K/mn6kr2VD9UL KZIySV+1a8GMwwFzft+/cZj2+482JVtzwk1fNVWakXzjZkY1BHTenSt3r9xI1wKoVmsYjbrGLz5U da/W4rRDB28pea2nvD/EA7Op0anrnw/oNu9kvaVZPCA6SpSbkUMDAACGY4Cm6fq12NqgTZRcp0iX qDi/sjPbNv16GQ5df27/7JYcAKsO7sYW3r7wQemajfdpQJ6aFhow6VC9oojQ+FhBZmqWFdXSuTcu 57gEBDforZjXgC+vFZek7JmWIIxrk1Bv2RkT5h34aOWBYujAxSIQTyWW3wNXvvPlyDUdzp2f24Iw pWj2LZ57ImrJupif3xzxBvHDvK4uOKBVyT+fLPHpG2TtUAcR1KmT17J5o2ZVThrUNsxTjBurywrS b18+sXvHb+f1/gGcY+u+2B/4fAss56dNx/VBkxOCgqXR/tiOrZ/90PO9Trz8Cyd2rP69XEutmLZC 1+LCpjQhdWf+m0vTRb9f1Kdfmz7Vd8rIbl39+LpW723fNeTUj599njxsZJzD17VtTosbf/2jSyvd caDvaIX6+G9XeKGv+RK2abPJwt+LvFyvQAzDGGVBVvWQDm1c9p87cq1rB7EUIysqcpOP//TV14f5 r26+tnx4iNXzMiw2EzCeXTPzK+OGKbUOAVcE+NInl0xaSLa/tTlDoHvwwdToFOyna17dF/viANgy oSMvzI59vuqrjM0DBDUpnOi2iYaVi+bu8J4cRR7/7Yr+QdEPe/uPCyYKd284rg+anBAYIPCR4nqd zvI0o4mrhqvHiFP//uqXMg29fNrn6qgL394XGG7MmRB2z3XPRV3qtWnTFZOHde3qx62oyE0+vv3L r46IXt+4a/CqcevmL496r4f8btONrrt77qy+4+p60yagV6kMHAUXAwDgHgH+vBt/bj3Wqq8bn8Mo 7WjQJkrWnV4w8DPXL3e9m8gR9Vh56fxzmzZu/2LEF5+P/+vk0m5Sw9mzhWFzJIGtZrdbdKkSeOfk VAR2Ca1flEGjNmJemBVPRQS2bePy2dIpa73mjekU5iHiYIAxVpfmpd+5fHzX1nVbLsjf3vVGWD3d YBKpmDy39uOfYl4LE0q4hjw7LhaBeDpRWYBK/rSVdORONayFzv19QpTU/80D6ftndwnpEMUFAMN5 rpEDPzlRxkDr6DP2LR2fFOfnIiBwjkDq7hfVNmnExPnrD6aqyPw9Mzp7iwO7deRxXWOT+rYNcuFz eFL/+MQwOReXDRvfkS/07Txt596vR7VwFbvFvLDp9J453QPlssCeM1cvf7Wtt0jYfUxHLgAYzhUr ovtO//m+3ookTV5XC6E0tPeYoQnuPH6LcIEsfNjXN3SmfOkru0j6by6xcq02FF6vQMhUnF42ItFH zKkZpziRvTvyOCKP8A5D3/psb5q2CaXaVKPtzURnrOoiHfB9vUxMyeb+Iq/QUDlPEDBk3cm/Z3f2 FslC+n50zKQDGxQClduHSTusuE/VS6r+ZZRE7OYmFMZH1FN1WE3rB8r5XIlfp0k7Hhgf56ptsZmH qv58X7oWQkhm/z2nT7js/+3de1zT9R7H8d9vNxHYuAiIAi6U0Cwlkk5qdsS00Dze9eD1qKUebx07 ZV7ycoyS6NE8KpWXTAs9omngKSwN76ZAnRRFQeWiXOQyQBDGGIzt9+uPjvw22OX3237glPfzv+n8 7fv7/cY+25h7iZ1FLr2Yc2TG/X1jpaEfXGf2iyo/MNnbd06S6o+LmqufTQx2E0l6PSHmdkItb1mX +eEA4x2naapk+4jO8mXntTSty907s5+vV7fAsFlxuTq6Jn6CLOT9DINNVRyK7Ooz67+1FldA1aTv WTI8yE1EEiQpEApIkiAFnTzk/cP/+nbs8Tx1i6s3pCwPdvXrFeAi7Owt4rizAA7J7FykVT++4e8W 9o/D1+81UjRNNdbcTU98b6iP//zjLX8wHi1tul+2bJyqSl4U3GXC/gprTy54u0XTdNc+CJVOOsj8 s8brHw+WPbk81cKAsqomfoIsZMNVg7l4P2muX5fJB+/ZtLcPPPQ7pz43NtxNPnHL6ZtlKk2d8nrS v0b4ygbFZNhzrFhsmapOmN6126iYkzn31KqK2xkXju7ZMLWfm2zA+lQTO64v2BnhETBu08kbZSpN nTLzaNSr3WUvRF9tZLcQTXVJfm52ds6dorIqtc70lajqC+sGunWbmWjf+QRwKObnIk1VpcXOGuAj IUmBQECSpNijd8Syr6/WPuo/ABz2qzp+aujb+za/NjT6mpnHBc4b1/78bujU+GqapmldfWX+5R+2 zAlx9x6+5Rq7Byu7dseKmm+nefmMjDmTU1GnKss6ETutt0v3iXsL9DYujKbpBw/N4zefu1PbpFOX 3/jpk3Fy94Eb0xto2pbD26xN75wG58i8poKk1aOelAlJgiBIcZf+kR+fU1o4VJojs/suPcHqJFvc sl55+sPxfdyEJEGQAievJweNX6JIuqUys9+64mPrRge7PdhUvykfnS6z63w2L6OhujD92M7lo3o6 y0KWHi3lZaMADsLCXPyDTl2efysr61Z+ufqxuu+z3C9WD5HcN65NXREsJklS5BoQNnnNt7fsfpXD y2nS5uyf95yXmCQIgiAlXQcujLtu/8svXfGxdaN7u4tIkiRJiXfoNMX5cr7uSQ//zqmtKc69lVNc 09S+W9apq8or7mtY7jTfi9SmLg8SkkKXgIGRq3aevoN3TOFxQ9bW1pr8vaNUKm2n33B2SJryvKI6 J69uvp6dWX6mp73o60rvFFbppX49A9zF1q/OEt1YdbdE7ezr16Vzh/siusdPw71SVSdvb1d8sR48 njAXAQAAGHjyDgAAwMBchLamvVdp+j0JAAAHZH4uWm+r2tq55bfaanprHSOVTDh2AldTdCFu/fQX Ap9Zfp6fDTZdfDvI943jHfQr0AGgfdj0etGRO7eOvLYOo6nkwq4Vk56VPzUp9oZ8wf7Ubaj2AcAj g/Mnyhy5c+vIa+tAdFc2jnr1S+83Nx7ZGvmiv5P1fwAA4EC4zsU26dxqEmc/f/Zvl2OH2xfBQ4PX MVCVZRWSvgsXzXzR38H+DwoAgHVcX1HZ2rm1GNVr7sPZh+cGLx811w5JMuw9RcTN1ZFRaaqHvRQA AM44v9PIuXNLq37bPDbQ1blLn9fWHCtu+TEY+t4FxdSwAHepZ+Dgudsvq+z6+Ai/DV4baq48N3Vb tJetatMqbIvgran+7QPCHtN2HVxKbYlc8I29FUXW6zFHn/f9ph1nlRyX0d593TavPQMAeyznomGp lVvnVncpZs77ZRN2f7dzQt22uWuPq43/uvHizo3fFgyI+mZFUOZ/YuLSdca3xbUQy7nBqy9Jjl68 8US10ZVZ1VwNc6wEp6auqRyxcXv54CTXvmsucY4Aswvt6u8eWzcuRO7fe2R0ioogWB7kFsFbo4vq UyuGjNmSabBeUjZ4wyFFv1PLVn9fw27tJk8Ey/XQ1YcifZ6LMhlspIpPff7vpDwLO8dnHZrFXthZ e9ZWZueW25+HBgDzLMxFg7aqcT+WdeeWIGhVzumLt33+NPKVYSNH9PNQlZaqaaMtO41cpxjTKfnD 1xUp3ebErhwiNr4tNllgw3VyWRtBEPqszz++MnB47fkUg3Yry5qrYY6VU1PXZI6YIKgGTUNdZWU9 QVBlxaW6KmV5E0HXqzWERCK2FHY1kcA1Fdp9cEipkriFM74i39ijCM/bvu9XLcHqILcI3hpf1Oen ncqQ+LYo2Yrkw8KDVLk55Wye1Jg8ESZQFCUQClquhyrNydX4Bwa0/mV5U8HhbYlVwc/0NP97dH7q 0Bb2gq/aM1WSMK+/f8++YUNX/VRnZSUAYAfzjxcGbVVZzRmmH+siFpHsOrdUWcLcwYuvBIfLEsb6 bNeJPEIXfTXaizSqtoqayjQyD2FdXr1TD3FFZtrPNyvTmm/LT80iC2zUgJVIBOzWRhAEQdSnxeeG LHlzgt4vz+AFXj27mqthjlVwP5l1U9dUjtjZVVtwQHGkvK5xm+JH+XPJ+69R1TdjYsYJnBMve4au 9Lcws0wkcE2Gdh+cPnHKdxelf14rStx60mNytCzr0i8VZ60fZOPgLS1PM7woHB/SX6pQLN/d/Z2J A3t5iBqr7qSf+T5++9bdWaFRXwSy+OyN6ROhu6oY91b1uz9sDHf+/59oy5X3XQNkZIv1CKeEv+z/ 0Zop72qWTRwU3NWZrqsoyr2R8dvPxxMSU6hRnx6d4Wth4PBQh7a0F1xrz+ZoU7ceCjqYnZK1ePjf t36VPWKhr/LKmXTipbHPe1qb1wDAjYWeRnNbNdDJoB/LunNLKXdFuDy99lITTevqK+8WVWiar85U WyVO3k+PXnn4pjJj77JXgj0lIjexq+kssHnM1kQcUsn6osNLZkSn1rS6Hsuaq1GOlUNT13SOuFMn 72dnxGxaNMDLyck96C+KI3sXvtBdKpO/vPq4tYZP6wRuq9Cuc6Dh6TMkksvZHOQWwdsWF2mq+n87 5r8kdxWSpFAoJEmxe8/BU975LLlVw9YUcyeCUu6KkIZ/Wti8+1RlwnRf90nxVVSrBdDaopOb5keE 9PBwEgqEEqn3E/1efG3mW9Fx5/KtLoGHOrSFveBcezanKi5ydoKGpnWZMS/38HTtJO350rjhY6Ku 8F/yAOjorHambKe/vXmIc+gHnNN67UJ/e8f0eQeVph6J2NRcecix2pcjtlnD0dleQUsPfLd2WO8h Gy60flZgjyaVMj8nO7ewsp599cnCiWg4tbhHl6HvnyvVUk3Vued2vznISxq2/heLg06bsipsyq59 C56al9TAae32nQ7ze8Fb7bnu8KxJXxrdgu7GJ0s23XLIHy+ARxqruWhbP9a2uWh4W3Z0a63RXlwT 6uXiZKizrMfgOZ+cLGy0UHPlI8fKT47YgpYJXKPDSJXuGe0eOOdIYerqvn4LkhtpWxuTPLF0Iijl ifWvyjsLhEIhKfbsE7H0i1/5z8JbOh2sY8IW9qKCp9qzLvOj8f88azhN9Xc+fX3MygPZXLcEAJY5 +OvFh/mQ3arman+OlfccsS0abuyZ1ttVJHLuNT/J6rvND59erczPK6hg/RJUX7RjzJCodDZvL7bP 6eCr9qy9uGZVgtHb3dqM3eu/zmyDZ1YAHRv6ixzYn2N1lBwx3VBdqXX1lvEXHn4ktd/p4KP23JR7 szCwTy98hxBAG8NcBAAAYOCbtQEAABiYiwAAAAzMRQAAAAbmIgAAAANzEQAAgIG5CAAAwMBcBAAA YGAuAgAAMDAXAQAAGJiLAAAADMxFAAAABuYiAAAAA3MRAACAgbkIAADAwFwEAABgYC4CAAAwMBcB AAAYmIsAAAAMzEUAAAAG5iIAAAADcxEAAIDxOyV5gBheejTkAAAAAElFTkSuQmCC --00000000000017c5a005cd502cac Content-Type: image/png; name="2021-10-01T21:49:10,611532571+02:00.png" Content-Disposition: inline; filename="2021-10-01T21:49:10,611532571+02:00.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku8s7dl31 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 --00000000000017c5a005cd502cac Content-Type: image/png; name="2021-10-01T22:02:00,166113989+02:00.png" Content-Disposition: inline; filename="2021-10-01T22:02:00,166113989+02:00.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku8smqez2 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 l1OYzI9e3sPKM7Icf8OMmKI+7OhXCguL/XStbZf1z9k/tpCfgsbqd/S8mMXEnILYvx317HxesjDG nLR/+qjr9pwd8CyPyco+62pu4BFZza9caa8/PyLXE7MeLO0wKayi3hbyy5VdO6+8LWJhqiJx52B9 J7/3tQ1EZvo5WfZ16jtqw9mE7CpWaWEpi096Tto/fRSNhvtGZTMoZkboNAtTj+tlDUq+v9iy26ZX dU1EZgaO1rOafOR5MQeT5ckRB84k1wiqPfl+V/9uDZr5m1/Q/jzOqybtYOJe2w68zjdx2oEqTvIe sWuM+6MMTsM/cHKDZgYHvyPrpy2MexoRV1jOxlR1fsTSgyvPllAYs1/cdR0Rdia96omvv8ui+IyS zH8nBzX4IPvTwSknTqWTDfIni8/NP7z/ab1SybKry47uefitysXXLnjs+MDgX/uC2xGjQ3I5GOfd PDc2LK82M9arW/22Jr64Ej7s6McqzLmz94B7VDWFMVnwxtP9+Lr4shpMFSfHTXI/deBDXZ04kbv3 z7pdVf948UrPK39MVdy9nHD3M4ONcVVWwnT38OO5FMYYs7PWewb/k8bCGJPVRdEPswt+FMOlXJ75 1H4gJ8Fl7u3YpicuxuykKCevh8nfm5QseO3uFrgitoRBkQVvH0+ffcQ7icQY1zy52n39s8/fsuTE +B+adr2MxBhj6vPVcKe14RO3xl5Pr6jmMEuqyNp8PLjm8+hK102v8mrz4eTtXhbgk0zyOS51u5d7 ZLjVn/dYjavPa3uL4tkDk7GwNsnO+NjgxpOmY6SXfz/0bEx6ManafvSkfno0hBCqvH0kRGXhznmd VQhE03Fa7mERde0Zn64k58Wusb3t6nFceYvBOzn16cLxBz1WbBtvJo/o2v3W/D3+68lT32Y6CaUx Pgfn9NSVlzUa69KXlZ6Wz+8WRdrrL1kyXTz9VzrVH36jGY71WjG2oyrjc1JijoaF1punb+oGtcnc gs4+YVsm2RkpyappqcnyT09oj/HyGmykQMhbTl46Senm5Xg+o+Nk8qmDTwdsO+jZQ4OOaCodXP6c 3EFOUO05me8/G1uZcZ9NaEBi7c/zuPM4r3i1A6/zTax2IDQ6rQnxOL6/j6XgpiC0HHu5OGop1VR8 fF+pbKCYlVJY2wx0UwsHSwVdfRVjOytzVRVtNXaVGDfSNFWnsQZvIjPKMUJU5ZP7JT2Hmijw/4hm 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 BDAAAABS6f8AIFWnTgCnRCsAAAAASUVORK5CYII= --00000000000017c5a005cd502cac Content-Type: image/png; name="2021-10-01T22:05:28,910692941+02:00.png" Content-Disposition: inline; filename="2021-10-01T22:05:28,910692941+02:00.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku8ss1eo4 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 --00000000000017c5a005cd502cac-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 02:07:58 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 06:07:58 +0000 Received: from localhost ([127.0.0.1]:57726 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWYBi-0007Eh-01 for submit@debbugs.gnu.org; Sat, 02 Oct 2021 02:07:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60084) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWYBc-0007EP-9W for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 02:07:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43724) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWYBX-0007wq-0c; Sat, 02 Oct 2021 02:07:47 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2467 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 1mWYBW-0006AQ-JX; Sat, 02 Oct 2021 02:07:46 -0400 Date: Sat, 02 Oct 2021 09:07:29 +0300 Message-Id: <83mtnsc63i.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Fri, 1 Oct 2021 22:11:32 +0200) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Fri, 1 Oct 2021 22:11:32 +0200 > > Starting with 'emacs -Q' and using the menu bar to paste urdu text > حرف نہیں جاں بخشی میں اس کی خوبی اپنی قسمت کی > ہم سے جو پہلے کہہ بھیجا سو مرنے کا پیغام کیا > the text is not rendered properly, some characters which should be > joined together are instead rendered individually. > > It look like this > 2021-10-01T21:43:10,566697499+02:00.png > 2021-10-01T21:49:10,611532571+02:00.png Can you give a few specific examples of characters that should be joined, but aren't? Please name the characters and also give they positions relative to the beginning of this text, as I don't read Urdu, so the images are useless for me without some additional data and explanations. > Changing the font to a Nastaliq font more common for Urdu via > > (set-fontset-font t 'arabic (font-spec :family "NotoNastaliqUrdu")) > > the text is again rendered improperly but in a different way with chracters overlapping each other when they > shouldn't, others have gaps where they should be joined. It looks like this > > 2021-10-01T22:02:00,166113989+02:00.png > while it should look like this > > 2021-10-01T22:05:28,910692941+02:00.png So isn't this a matter of finding a proper font, in particularly given the "Nastaliq vs Naskh" issues? NotoNastaliqUrdu is not the only font supporting Nastaliq, so perhaps other fonts fare better? Since Urdu uses the Arabic characters, Emacs uses character composition rules for Arabic when displaying this text. Do you know if the composition rules for Urdu are different? Also, which version of HarfBuzz do you have installed? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 07:44:07 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 11:44:07 +0000 Received: from localhost ([127.0.0.1]:58107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWdR1-0007ys-5A for submit@debbugs.gnu.org; Sat, 02 Oct 2021 07:44:07 -0400 Received: from mail-wr1-f48.google.com ([209.85.221.48]:44970) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWdQy-0007yF-Ey for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 07:44:05 -0400 Received: by mail-wr1-f48.google.com with SMTP id d6so19726991wrc.11 for <50951@debbugs.gnu.org>; Sat, 02 Oct 2021 04:44:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=V9UPVYDz0lroiHg5hsJ4bC6iaSu/buSggfdkeDM4wpo=; b=dytU2IHZLsnV+1TEX+yCfokHh99V/RLzJVDzHs62bxjHyA+1bSk35MSvaCCvnYXdK1 t75GzrR4fhn1Xl9YbLh0ZBXZD0xucv2NuXeAH7BIzbwNHAtu81/gZh34cxk8Lm62gWxM cR77t+fODV1PjX4k2YrjTy3JVLfNhZj6S1qaBhv2BzOrGTvzQoo09iPEPlxZxLicb+si 4CvRBvq8znTZ4z4wqxSvQVP5w75pNED3ldAri8Fx10BO7me5re/OlWeQcwqll9doyPb0 3nTFYFzxsuC/0iYVXW1u0zW1NT3itQ9pSnYhylMU+tM+J91GCUA/Cnjc9oCVZyKJcIro OX8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=V9UPVYDz0lroiHg5hsJ4bC6iaSu/buSggfdkeDM4wpo=; b=Lz8hniYoEN/QKnHk+nPJ6spUu05wUWkDaS+KnCWMOOoN1f5TkqlI2AFJvdGSMCfdqt Ukf1DuGh/+4mesK4cpsqmzOrwNpSgEkopV3n5Fi59jpbMrOFcMBv7fho8xIQhMZavw4S QSvjJaFFAmPYRSUK9XNQQABnXbRCxFARBjjOFAZfY1CyC5N4jShS/m77aN7Kp7fMKbdn IlspFF9fteOCHDjw8aSZZr+DX0WDW40iJ0I4r8G/cXme5VS+uvK9TcEBrgrrkAhG9xxC V6M1Ir+zeT3TVBpebQpGB7BmEElpIl58E97u34JbjSahOkKNNSO6qtuMTfbj9qIGGEHt BXtQ== X-Gm-Message-State: AOAM5331owbGHjaqDH5DDK5nuddAi5m+KxQTkBNcz8qH6rqaqFxg3VaL KI9T4iROwuWAEm/yUDCPOG1evzquJnGT5KhrJtOE1kYy X-Google-Smtp-Source: ABdhPJyT/lqgqAwiUTu7zphbOtXZSeKl2jyyXmeBBikTu0vR4p6d2c/7rK6Y+ceh2tSjsNzyB6KiNQz2q2px+uOak38= X-Received: by 2002:a5d:4601:: with SMTP id t1mr2955779wrq.298.1633175038613; Sat, 02 Oct 2021 04:43:58 -0700 (PDT) MIME-Version: 1.0 References: <83mtnsc63i.fsf@gnu.org> In-Reply-To: From: Rah Guzar Date: Sat, 2 Oct 2021 13:43:47 +0200 Message-ID: Subject: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly To: 50951@debbugs.gnu.org Content-Type: multipart/alternative; boundary="000000000000085be705cd5d32e8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 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.0 (-) --000000000000085be705cd5d32e8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I forgot to reply all for my reply and it didn't go to the mailing list. Sorry about that and I am forwarding it to the mailing list now. ---------- Forwarded message --------- From: Rah Guzar Date: Sat, Oct 2, 2021 at 1:40 PM Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly To: Eli Zaretskii Hi, Thanks a lot for the reply. On Sat, Oct 2, 2021 at 8:07 AM Eli Zaretskii wrote: > -10-01T21:49:10,611532571+02:00.png > > Can you give a few specific examples of characters that should be > joined, but aren't? Please name the characters and also give they > positions relative to the beginning of this text, as I don't read > Urdu, so the images are useless for me without some additional data > and explanations. > Let us consider the word =D9=86=DB=81=DB=8C=DA=BA It is composed of four letters. I will use character field from `describe-char` for each of them below 1) =D9=86=E2=80=8E (displayed as =D9=86=E2=80=8E) (codepoint 1606, #o3106, = #x646) 2) =DB=81=E2=80=8E (displayed as =DB=81=E2=80=8E) (codepoint 1729, #o3301,= #x6c1) 3) =DB=8C=E2=80=8E (displayed as =DB=8C=E2=80=8E) (codepoint 1740, #o3314,= #x6cc) 4) =DA=BA=E2=80=8E (displayed as =DA=BA=E2=80=8E) (codepoint 1722, #o3272, = #x6ba) It should be displayed with all 4 characters joined together, instead they are all displayed individually. If I change to `NotoNastaliqUrdu` this word is displayed correctly. But there is problem with =D8=AD=D8=B1=D9=81 It consist of three letters, 1) =D8=AD=E2=80=8E (displayed as =D8=AD=E2=80=8E) (codepoint 1581, #o3055, = #x62d) 2) =D8=B1=E2=80=8E (displayed as =D8=B1=E2=80=8E) (codepoint 1585, #o3061, = #x631) 3) =D9=81=E2=80=8E (displayed as =D9=81=E2=80=8E) (codepoint 1601, #o3101, = #x641) The first two characters should be joined and the last one should be on its own. This seems to be the case. But the two groups are rendered on top of each other making it illegible. So isn't this a matter of finding a proper font, in particularly given > the "Nastaliq vs Naskh" issues? NotoNastaliqUrdu is not the only font > supporting Nastaliq, so perhaps other fonts fare better? > My knowledge here is very deficient but my impression is Nastaliq and Naskh are styles and shouldn't affect composition. NotoNastaliqUrdu was the only Urdu font available from my distro. Libreoffice which also uses harfbuzz renders it correctly so I didn't try another font at first. Like emacs libreoffice also uses a Naskh font by default but all the characters are joined properly. I did try some fonts from https://urdufonts.net/ after your suggestions and they render correctly. Specifically the font I tried were: Jameel Noori Nastaleeq Regular Alvi Nastaleeq Zohra Unicode Manzor Unicode I didn't notice a problem with any of them except a very minor one for the last two which have visible boundaries where glyphs are joined. Since Urdu uses the Arabic characters, Emacs uses character > composition rules for Arabic when displaying this text. Do you know > if the composition rules for Urdu are different? > I think using Arabic composition rules might be part of the problem. Urdu alphabet is a superset of Arabic alphabet and if I don't set a font specifically designed for Urdu, the words where some characters should be joined but aren't always seem to include a character like =DB=81 which is in Urdu alphabet but not in Arabic= . Also, which version of HarfBuzz do you have installed? > It is 2.9.1 Please let me know if you need any more information. Thanks a lot again. --000000000000085be705cd5d32e8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I forgot to reply all for my reply and it didn't = go to the mailing list. Sorry about that and I am forwarding it
<= div>to the mailing list now.

---------- Forwarded message -------= --
From: Rah Guzar <aikrahguzar@gmail= .com>
Date: Sat, Oct 2, 2021 at 1:40 PM
Subject: Re: bu= g#50951: 28.0.50; Urdu text is not displayed correctly
To: Eli Zaretskii= <eliz@gnu.org>


=
Hi,
=C2=A0 Thanks a lot for the reply.
<= /div>
O= n Sat, Oct 2, 2021 at 8:07 AM Eli Zaretskii <eliz@gnu.org> wrote:
-10-01T21:49:10,611532571+02:00.png

Can you give a few specific examples of characters that should be
joined, but aren't?=C2=A0 Please name the characters and also give they=
positions relative to the beginning of this text, as I don't read
Urdu, so the images are useless for me without some additional data
and explanations.

Let us consider the w= ord =D9=86=DB=81=DB=8C=DA=BA

It is composed of fou= r letters. I will use character field from `describe-char` for each of them= below
1) =D9=86=E2=80=8E (displayed as =D9=86=E2=80=8E) (co= depoint 1606, #o3106, #x646)
2)=C2=A0 =DB=81=E2=80=8E (displayed = as =DB=81=E2=80=8E) (codepoint 1729, #o3301, #x6c1)
3)=C2=A0 =DB= =8C=E2=80=8E (displayed as =DB=8C=E2=80=8E) (codepoint 1740, #o3314, #x6cc)=
4) =DA=BA=E2=80=8E (displayed as =DA=BA=E2=80=8E) (codepoint 172= 2, #o3272, #x6ba)

It should be displayed with all = 4 characters joined together, instead they are all displayed individually.<= /div>
If I change to `NotoNastaliqUrdu` this word is displayed correctl= y. But there is problem with=C2=A0=C2=A0 =D8=AD=D8=B1=D9=81

<= /div>
It consist of three letters,
1) =D8=AD=E2=80=8E (displa= yed as =D8=AD=E2=80=8E) (codepoint 1581, #o3055, #x62d)
2) =D8=B1= =E2=80=8E (displayed as =D8=B1=E2=80=8E) (codepoint 1585, #o3061, #x631)
3) =D9=81=E2=80=8E (displayed as =D9=81=E2=80=8E) (codepoint 1601, = #o3101, #x641)

The first two characters should be = joined and the last one should be on its own. This seems to be the case.
But the two groups are rendered on top of each other making it ille= gible.

So isn't this a matter of finding a proper font, in particularly given<= br> the "Nastaliq vs Naskh" issues?=C2=A0 NotoNastaliqUrdu is not the= only font
supporting Nastaliq, so perhaps other fonts fare better?
=C2=A0
My knowledge here is very deficient but my impression i= s Nastaliq and Naskh are styles and shouldn't affect composition.
=
NotoNastaliqUrdu was the only Urdu font available from my distro.=C2= =A0 Libreoffice which also uses harfbuzz renders it
correctly so = I didn't try another font at first. Like emacs libreoffice also uses a = Naskh font by default but all the characters
are joined prop= erly.

I did try some fonts from https://urdufonts.net/ after you= r suggestions and they render correctly. Specifically the font I tried
were:
Jameel Noori Nastaleeq Regular
Alvi Na= staleeq=C2=A0
Zohra Unicode
Manzor Unicode

I didn't notice a problem with any of them except a ve= ry minor one for the last two which have visible boundaries where glyphs
are joined.=C2=A0

Since Urdu uses the Arabic characters, Emacs uses character
composition rules for Arabic when displaying this text.=C2=A0 Do you know if the composition rules for Urdu are different?

<= /div>
I think using Arabic composition rules might be part of the probl= em. Urdu alphabet is a superset of Arabic alphabet and if I
don&#= 39;t set a font specifically designed for Urdu, the words where some charac= ters should be joined but aren't always seem to
include a cha= racter like =DB=81 which is in Urdu alphabet but not in Arabic.
<= div>
Also, which version of HarfBuzz do you have installed?
It is 2.9.1

Please let me know if you need any mo= re information.

Thanks a lot again.
--000000000000085be705cd5d32e8-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 08:18:52 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 12:18:52 +0000 Received: from localhost ([127.0.0.1]:58151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWdye-0000Un-8u for submit@debbugs.gnu.org; Sat, 02 Oct 2021 08:18:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51792) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWdyd-0000Uc-IB for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 08:18:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51872) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWdyY-0002uw-8D; Sat, 02 Oct 2021 08:18:46 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1503 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 1mWdyX-0004WM-RP; Sat, 02 Oct 2021 08:18:46 -0400 Date: Sat, 02 Oct 2021 15:18:28 +0300 Message-Id: <83sfxjbox7.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 13:43:47 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 13:43:47 +0200 > > Let us consider the word نہیں > > It is composed of four letters. I will use character field from `describe-char` for each of them below > 1) ن‎ (displayed as ن‎) (codepoint 1606, #o3106, #x646) > 2) ہ‎ (displayed as ہ‎) (codepoint 1729, #o3301, #x6c1) > 3) ی‎ (displayed as ی‎) (codepoint 1740, #o3314, #x6cc) > 4) ں‎ (displayed as ں‎) (codepoint 1722, #o3272, #x6ba) > > It should be displayed with all 4 characters joined together, instead they are all displayed individually. What font displays them individually? You should be able to tell that if you type "C-u C-x =" on one of these characters. For me, they display joined together. > If I change to `NotoNastaliqUrdu` this word is displayed correctly. But there is problem with حرف > > It consist of three letters, > 1) ح‎ (displayed as ح‎) (codepoint 1581, #o3055, #x62d) > 2) ر‎ (displayed as ر‎) (codepoint 1585, #o3061, #x631) > 3) ف‎ (displayed as ف‎) (codepoint 1601, #o3101, #x641) > > The first two characters should be joined and the last one should be on its own. This seems to be the case. > But the two groups are rendered on top of each other making it illegible. > > So isn't this a matter of finding a proper font, in particularly given > the "Nastaliq vs Naskh" issues? NotoNastaliqUrdu is not the only font > supporting Nastaliq, so perhaps other fonts fare better? > > My knowledge here is very deficient but my impression is Nastaliq and Naskh are styles and shouldn't affect > composition. > NotoNastaliqUrdu was the only Urdu font available from my distro. Libreoffice which also uses harfbuzz > renders it > correctly so I didn't try another font at first. Like emacs libreoffice also uses a Naskh font by default but all the > characters are joined properly. > > I did try some fonts from https://urdufonts.net/ after your suggestions and they render correctly. Specifically > the font I tried > were: > Jameel Noori Nastaleeq Regular > Alvi Nastaleeq > Zohra Unicode > Manzor Unicode > > I didn't notice a problem with any of them except a very minor one for the last two which have visible > boundaries where glyphs > are joined. So would it be correct to say that using a proper font solves the problem? > Since Urdu uses the Arabic characters, Emacs uses character > composition rules for Arabic when displaying this text. Do you know > if the composition rules for Urdu are different? > > I think using Arabic composition rules might be part of the problem. Urdu alphabet is a superset of Arabic > alphabet and if I > don't set a font specifically designed for Urdu, the words where some characters should be joined but aren't > always seem to > include a character like ہ which is in Urdu alphabet but not in Arabic. I don't think the problem is with compositions, because in the 2 examples you described above, there are no character compositions. Moreover, our pattern for asking HarfBuzz to shape Arabic text is this: "[\u0600-\u074F\u200C\u200D]+" which includes all of the characters, including U+06C1 which you say causes problems. You could try setting current-iso639-language to the symbol 'ur' (without the quotes), that should tell HarfBuzz to shape the text as appropriate for Urdu. But I think the real problem is with the font, not with shaping. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 08:47:56 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 12:47:56 +0000 Received: from localhost ([127.0.0.1]:58176 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWeQm-0001EQ-6W for submit@debbugs.gnu.org; Sat, 02 Oct 2021 08:47:56 -0400 Received: from mail-wm1-f41.google.com ([209.85.128.41]:56177) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWeQk-0001EA-EL for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 08:47:54 -0400 Received: by mail-wm1-f41.google.com with SMTP id v127so9180668wme.5 for <50951@debbugs.gnu.org>; Sat, 02 Oct 2021 05:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rDzx9EHMIxCe5FZr574G1jdUdwoj8/8fEqfYGGqQ+RI=; b=oufRUXJc0RozvuJ8Ft7IX5C6qSzYhQ5CItCTxh1RQ8L22dnDsXXrL2QVD4hH5oUqnz e0TH3L6+5sTi+xQLos/DFnSCv0iLxcj+Ds84FgBiU+riLNz4ndQe5UOjcuAUzU3AwvlL x7AC8lWWSb0uxHFs4X/fCroZlwQYIGdY8LkfmEwXn9X27UQllfVetOkdCFZNoy7MT7zl adcT/Xbe25nhm0m/6M4ZT0r+VTYKSqBFb5l0DoGNH7d0eIxqSkgNm9Ta9AaEV+SJ6i5R hsttxUDQz9kiCslpVIEJMKLtePP8mDFQ71r7isoOzczsUxs45b3OfYFjYe5bG6anxsqj inxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rDzx9EHMIxCe5FZr574G1jdUdwoj8/8fEqfYGGqQ+RI=; b=gF8/UD3Ls0olNz4NRFERstbj21K6AoxcHKwGSgvUfwbMruhY17ZGf8WMNqAV/wBT47 i8jeuC6PzF+vPZBkVnSF9x44Qx4QMjRS0GKYOd+x1LJW9vJpbzQO+RbuxAPZsCF4d+lW xjt8ygfCtiUlmiHtJbNRgc7rmsFEZPA/RVBN3mSXBLDyLShaSTL4KCU3EDAAQGmfquS8 L2BpFQv8e8jL5a5/i7dwJAfIkTBwTLSrpfDXZG4wAfUIjAA/Hz1FSwrEnj8EZHWOuz0O A7lgaCbtQhWY3gkh8aJE7qCRe6OX2n0ZbPzEbEuzqo+7PmBvbyI9omNaA/NHLMmjrAFD XiFg== X-Gm-Message-State: AOAM533PKXzfg5D0M/aNP9nYIHW0vfiIT4qjbgYo41R8IQlapKSR5kXW HeXo8bUSw0jOmCVUPz68NeZycbJpkCGOHiJ2D3w= X-Google-Smtp-Source: ABdhPJzT5RlYYhRRO0ZNOocrN0JaqGFltFmIh2USaH6MA9AYqCf5VgDopa/Zc8vzd3jzyChSbMjeYbZZr1YYkx4pOu4= X-Received: by 2002:a1c:1c9:: with SMTP id 192mr9217934wmb.158.1633178868524; Sat, 02 Oct 2021 05:47:48 -0700 (PDT) MIME-Version: 1.0 References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> In-Reply-To: <83sfxjbox7.fsf@gnu.org> From: Rah Guzar Date: Sat, 2 Oct 2021 14:47:37 +0200 Message-ID: Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000502a1105cd5e1641" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@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.0 (-) --000000000000502a1105cd5e1641 Content-Type: text/plain; charset="UTF-8" On Sat, Oct 2, 2021 at 2:18 PM Eli Zaretskii wrote: > What font displays them individually? You should be able to tell that > if you type "C-u C-x =" on one of these characters. > This is the default font that `emacs -Q` chooses. Using "C-u C-x =" I see, ftcrhb:-PfEd-DejaVu Sans-normal-normal-normal-*-13-*-*-*-*-0-iso10646-1 (#x56F) > So would it be correct to say that using a proper font solves the > problem? > This is almost correct except that the font (NotoNastaliqUrdu) that causes problems with emacs works fine in libreoffice and both use harfbuzz. > I don't think the problem is with compositions, because in the 2 > examples you described above, there are no character compositions. > > Moreover, our pattern for asking HarfBuzz to shape Arabic text is > this: > > "[\u0600-\u074F\u200C\u200D]+" > > which includes all of the characters, including U+06C1 which you say > causes problems. > > You could try setting current-iso639-language to the symbol 'ur' > (without the quotes), that should tell HarfBuzz to shape the text as > appropriate for Urdu. But I think the real problem is with the font, > not with shaping. > Sorry, my lack of understanding of terminology got in the way here. I thought composition referred to joining characters together. I did try setting `current-iso639-language` to the symbol `ur`. As you expected it didn't make a difference. --000000000000502a1105cd5e1641 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Sat, Oct 2, 2021 at 2:18 PM Eli Za= retskii <eliz@gnu.org> wrote:
=
What font displays them individually?=C2=A0 You should be able to tell that=
if you type "C-u C-x =3D" on one of these characters.
This is the default font that `emacs -Q` chooses. Using "C-u= C-x =3D" I see,

ftcrhb:-PfEd-DejaVu Sans-nor= mal-normal-normal-*-13-*-*-*-*-0-iso10646-1 (#x56F)
=C2=A0
So would it be correct to say that using a proper font solves the
problem?

This is almost correct except = that the font (NotoNastaliqUrdu) that causes problems with emacs
= works fine in libreoffice and both use harfbuzz.
=C2=A0
I don't think the problem is with compositions, because in the 2
examples you described above, there are no character compositions.

Moreover, our pattern for asking HarfBuzz to shape Arabic text is
this:

=C2=A0 =C2=A0"[\u0600-\u074F\u200C\u200D]+"

which includes all of the characters, including U+06C1 which you say
causes problems.

You could try setting current-iso639-language to the symbol 'ur' (without the quotes), that should tell HarfBuzz to shape the text as
appropriate for Urdu.=C2=A0 But I think the real problem is with the font,<= br> not with shaping.

Sorry, my lack of und= erstanding of terminology got in the way here. I thought composition referr= ed to=C2=A0
joining characters together.

=
I did try setting `current-iso639-language` to the symbol `ur`. = As you expected it didn't make a difference.
--000000000000502a1105cd5e1641-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 09:09:56 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 13:09:56 +0000 Received: from localhost ([127.0.0.1]:58234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWem4-0001rj-7f for submit@debbugs.gnu.org; Sat, 02 Oct 2021 09:09:56 -0400 Received: from eggs.gnu.org ([209.51.188.92]:59446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWem2-0001rV-P5 for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 09:09:55 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52622) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWelx-0003HL-KQ; Sat, 02 Oct 2021 09:09:49 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1032 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 1mWelx-0002HV-55; Sat, 02 Oct 2021 09:09:49 -0400 Date: Sat, 02 Oct 2021 16:09:31 +0300 Message-Id: <83mtnrbmk4.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 14:47:37 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 14:47:37 +0200 > Cc: 50951@debbugs.gnu.org > > On Sat, Oct 2, 2021 at 2:18 PM Eli Zaretskii wrote: > > What font displays them individually? You should be able to tell that > if you type "C-u C-x =" on one of these characters. > > This is the default font that `emacs -Q` chooses. Using "C-u C-x =" I see, > > ftcrhb:-PfEd-DejaVu Sans-normal-normal-normal-*-13-*-*-*-*-0-iso10646-1 (#x56F) I guess that font is problematic (in more than one way). > So would it be correct to say that using a proper font solves the > problem? > > This is almost correct except that the font (NotoNastaliqUrdu) that causes problems with emacs > works fine in libreoffice and both use harfbuzz. The way to investigate such problems is to see what does hb-view, a program that is part of the HarfBuzz installation, produce for the same text with the same font. If hb-view produces correct display, but Emacs doesn't, then the problem is indeed in Emacs; otherwise the problem is probably with the font, and in any case should be taken up with the HarfBuzz developers. (Are you sure that LibreOffice uses NotoNastaliqUrdu for the text you type there? They could use a different font under the hood.) From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 10:18:40 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 14:18:40 +0000 Received: from localhost ([127.0.0.1]:60155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWfqa-0004EF-Cy for submit@debbugs.gnu.org; Sat, 02 Oct 2021 10:18:40 -0400 Received: from mail-out.m-online.net ([212.18.0.9]:40205) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWfqY-0004E6-0F for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 10:18:38 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4HM8Gh51BFz1qwdf; Sat, 2 Oct 2021 16:18:36 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4HM8Gh3FnMz1qqkC; Sat, 2 Oct 2021 16:18:36 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id YpxnUTugDMnk; Sat, 2 Oct 2021 16:18:35 +0200 (CEST) X-Auth-Info: 9xYy3/P+dIaCucO8NciHOWKDsQvxxIPdXex3CupPXdpfqoSZ3YKdfN0zIjSOSV8j Received: from igel.home (ppp-46-244-179-172.dynamic.mnet-online.de [46.244.179.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Sat, 2 Oct 2021 16:18:35 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id 280152C0E99; Sat, 2 Oct 2021 16:18:35 +0200 (CEST) From: Andreas Schwab To: Rah Guzar Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> Date: Sat, 02 Oct 2021 16:18:35 +0200 In-Reply-To: (Rah Guzar's message of "Sat, 2 Oct 2021 14:47:37 +0200") Message-ID: <87pmsnwlvo.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 50951 Cc: Eli Zaretskii , 50951@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.5 (-) On Okt 02 2021, Rah Guzar wrote: > On Sat, Oct 2, 2021 at 2:18 PM Eli Zaretskii wrote: > >> What font displays them individually? You should be able to tell that >> if you type "C-u C-x =" on one of these characters. >> > This is the default font that `emacs -Q` chooses. Using "C-u C-x =" I see, > > ftcrhb:-PfEd-DejaVu Sans-normal-normal-normal-*-13-*-*-*-*-0-iso10646-1 > (#x56F) DejaVu Sans misses a glyph for ARABIC LETTER HEH GOAL, so Emacs has to select a different font for it. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 10:19:22 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 14:19:22 +0000 Received: from localhost ([127.0.0.1]:60159 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWfrF-0004FX-M0 for submit@debbugs.gnu.org; Sat, 02 Oct 2021 10:19:22 -0400 Received: from mail-wr1-f48.google.com ([209.85.221.48]:41575) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWfrD-0004FI-49 for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 10:19:20 -0400 Received: by mail-wr1-f48.google.com with SMTP id w29so20368466wra.8 for <50951@debbugs.gnu.org>; Sat, 02 Oct 2021 07:19:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nlOBjEbatNixb88guyYbGj7xkJVoWdUwQ825vFrLhW8=; b=XadZuA4pMA5cf2TA29tqz5FQlqCmZ/jpSSnfQfNqQKn6AnTuG543MSJOdiGVpXGBYj jVynqMEFt4cIM/t/fzXHHRepVl8SjogwWT6HBVlCAjFN27YFo/pZ+1kWy0hEWWpDEzUo t/l/6/y6pjWuBhYmvdSM/xUA7WPxPX0wmHkIqXZzg41Z2A15VeFfEUneQLETeN3lLxai X6SuGV7CilA3Ufv//xp0ErFJWJocWAHQXDat7zDzqq/nitYivFPt9mJxXNinevjAYj8F 2Hw1rkDXblvX18stWU8QWBWK5Y4rc1PEhqFw65CfwtqAWPa9sZOrvWsvh27BFfNbXcZi Y0qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nlOBjEbatNixb88guyYbGj7xkJVoWdUwQ825vFrLhW8=; b=2hohI+dqCpWP/c7AhApBj2BmjGrv7E8cOB7tJQ2XpN5KB8aSWPRZ+bv/DXnU/SOhsW JxfMze5BQ/8FRTjtIxYmkuzV1hBAYOgmtgCnoLpWIl3/WqbZY25unVX6gjrV5lCzhLFd WNv2QMrvK9ZecbLMi6N9j6VOaoO+n0elgQys7bT910M5w2p+YAMppl7Nm960gwtRz2jb J9o6B4BcCvoHKzYZdyXmapuS0YAbr0TzWMBXeM30I9PGlGgq6nwMl1gJHiJxaU/2rb2q hRlxDV8adJLGXCSfkfhBwkLuQ/tpVwqEOtQyXRqsTpgmzRHs60q1CsQdiiRJRJABHs5+ psJw== X-Gm-Message-State: AOAM532DD5MgUlyUKXF5g479x8ayYpnEBmXmKw6B8i/vhTEBu7ROu6mc UydUQGzn3aQObArCf5wyjP9VwX+oTxAm+wlslB/n4xuiP+A= X-Google-Smtp-Source: ABdhPJzzK2Z9f4jVxeD/Q2sNijCgMXxHjkbWf5SymWMZpzw9flKys9b0DBduhi8fPa+1q1cPohBFsXbmjJJVM/lQ4Sw= X-Received: by 2002:a5d:64ee:: with SMTP id g14mr3589623wri.80.1633184352910; Sat, 02 Oct 2021 07:19:12 -0700 (PDT) MIME-Version: 1.0 References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <83mtnrbmk4.fsf@gnu.org> In-Reply-To: <83mtnrbmk4.fsf@gnu.org> From: Rah Guzar Date: Sat, 2 Oct 2021 16:19:01 +0200 Message-ID: Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly To: Eli Zaretskii Content-Type: multipart/related; boundary="000000000000356cd505cd5f5da6" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@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.0 (-) --000000000000356cd505cd5f5da6 Content-Type: multipart/alternative; boundary="000000000000356cd405cd5f5da5" --000000000000356cd405cd5f5da5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Oct 2, 2021 at 3:09 PM Eli Zaretskii wrote: > The way to investigate such problems is to see what does hb-view, a > program that is part of the HarfBuzz installation, produce for the > same text with the same font. If hb-view produces correct display, > but Emacs doesn't, then the problem is indeed in Emacs; otherwise the > problem is probably with the font, and in any case should be taken up > with the HarfBuzz developers. > I tried hb-view with NotoNastaliqUrdu and the text: =D8=AE=D9=88=D8=A8=DB=8C =D8=A7=D9=BE=D9=86=DB=8C =D9=82=D8=B3=D9=85=D8=AA= =DA=A9=DB=8C This is what I get [image: urduhbtestnoto.png] While in emacs I discovered how it is displayed depends a lot on the font size. For the same text at size 16, I get [image: emacsq16.png] At size 24 it looks almost correct [image: emacsq24.png] At size 32 it is really bad again [image: emacsq32.png] And the issue seem to be glyph placement rather than shaping. NotoNastaliqUrdu seems to be the only font with this issue. I am not sure if the problem is due to Nastaliq. The other two Nastaliq fonts seem to handle joining characters through composition. If I change font using (set-fontset-font t 'arabic (font-spec :family "Jameel Noori Nastaleeq" :size 32)) and move cursor to the word "=D9=82=D8=B3=D9=85=D8=AA" which has 4 characte= rs, the cursor encompasses all of them and "C-u C-x u" gives ---------------------------------------------------------------------------= -------------------------------------------- position: 157 of 283 (55%), column: 11 character: =D9=82=E2=80=8E (displayed as =D9=82=E2=80=8E) (code= point 1602, #o3102, #x642) charset: unicode (Unicode (ISO10646)) code point in charset: 0x0642 script: arabic syntax: w which means: word category: .:Base, R:Right-to-left (strong), b:Arabic to input: type "C-x 8 RET 642" or "C-x 8 RET ARABIC LETTER QAF= " buffer code: #xD9 #x82 file code: #xD9 #x82 (encoded by coding system utf-8-unix) display: composed to form "=D9=82=D8=B3=D9=85=D8=AA" (see bel= ow) Composed with the following character(s) "=D8=B3=D9=85=D8=AA" using this fo= nt: ftcrhb:-pdms-Jameel Noori Nastaleeq-normal-normal-normal-*-32-*-*-*-*-0-iso10646-1 by these glyphs: [0 3 1578 11352 50 1 51 30 1 nil] with these character(s): =D8=B3 (#x633) ARABIC LETTER SEEN =D9=85 (#x645) ARABIC LETTER MEEM =D8=AA (#x62a) ARABIC LETTER TEH Character code properties: customize what to show name: ARABIC LETTER QAF general-category: Lo (Letter, Other) decomposition: (1602) ('=D9=82') There are text properties here: fontified nil ---------------------------------------------------------------------------= -------------------------------------------------- Changing to NotoNastaliqUrdu using (set-fontset-font t 'arabic (font-spec :family "NotoNastaliqUrdu" :size 32)= ) the cursor moves through one character at a time and moving the cursor to the beginning of the same word "C-u C-x =3D" gives ---------------------------------------------------------------------------= -------------------------------------------------------------- position: 157 of 282 (55%), column: 11 character: =D9=82=E2=80=8E (displayed as =D9=82=E2=80=8E) (code= point 1602, #o3102, #x642) charset: unicode (Unicode (ISO10646)) code point in charset: 0x0642 script: arabic syntax: w which means: word category: .:Base, R:Right-to-left (strong), b:Arabic to input: type "C-x 8 RET 642" or "C-x 8 RET ARABIC LETTER QAF= " buffer code: #xD9 #x82 file code: #xD9 #x82 (encoded by coding system utf-8-unix) display: composed to form "=D9=82" (see below) Composed using this font: ftcrhb:-GOOG-Noto Nastaliq Urdu-normal-normal-normal-*-32-*-*-*-*-0-iso10646-1 by these glyphs: [0 0 1602 16 0 -6 6 35 -26 [3 -16 0]] [0 0 1602 983 0 0 0 0 0 nil] [0 0 1602 284 8 -1 8 24 6 [0 -23 8]] Character code properties: customize what to show name: ARABIC LETTER QAF general-category: Lo (Letter, Other) decomposition: (1602) ('=D9=82') There are text properties here: fontified t ---------------------------------------------------------------------------= -------------------------------------------------------------- (Are you sure that LibreOffice uses NotoNastaliqUrdu for the text you > type there? They could use a different font under the hood.) > LibreOffice uses something else by default and when I changed to NotoNastaliqUrdu the appearance changes and is the same as what I get with hb-view. --000000000000356cd405cd5f5da5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Sat, Oct 2, 2021 at 3:09 PM Eli Za= retskii <eliz@gnu.org> wrote:
=
The way to investigate such problems is to see what does hb-view, a
program that is part of the HarfBuzz installation, produce for the
same text with the same font.=C2=A0 If hb-view produces correct display, but Emacs doesn't, then the problem is indeed in Emacs; otherwise the problem is probably with the font, and in any case should be taken up
with the HarfBuzz developers.

I tried h= b-view with NotoNastaliqUrdu and the text:
=C2=A0=D8=AE=D9=88=D8=A8=DB= =8C =D8=A7=D9=BE=D9=86=DB=8C =D9=82=D8=B3=D9=85=D8=AA =DA=A9=DB=8C
This = is what I get
3D"urduhbtest=
While in emacs I discovered how it is displayed depends a lot on the= font size.

For the same text at size 16, I get

3D"emacsq16.p=
=C2=A0
At size 24 it look= s almost correct
3D"emacsq=
At size 32 it is really = bad again
3D"emacsq32.png"
And the issue seem to be glyph place= ment rather than shaping.
=C2=A0
NotoNastaliqUrdu s= eems to be the only font with this issue. I am not sure if the problem is d= ue to Nastaliq.
The other two Nastaliq fonts seem to handle joini= ng characters through composition. If I change font using
(set-fontset-font t 'arabic (font-spec :family "Jamee= l Noori Nastaleeq" :size 32))

and move cursor= to the word "=D9=82=D8=B3=D9=85=D8=AA" which has 4 characters, t= he cursor encompasses all of them and "C-u C-x u"
gives=

-------------------------------------------------= ----------------------------------------------------------------------
<= /div>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 position: 157 of = 283 (55%), column: 11
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 characte= r: =D9=82=E2=80=8E (displayed as =D9=82=E2=80=8E) (codepoint 1602, #o3102, = #x642)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 charset: unicode= (Unicode (ISO10646))
code point in charset: 0x0642
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0script: arabic
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0syntax: w which means: word
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0category: .:Base, R:Right-to-l= eft (strong), b:Arabic
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0t= o input: type "C-x 8 RET 642" or "C-x 8 RET ARABIC LETTER QA= F"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 buffer code: #xD9 #x82
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 file code: #xD9 #x82 (encoded by cod= ing system utf-8-unix)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = display: composed to form "=D9=82=D8=B3=D9=85=D8=AA" (see below)<= br>
Composed with the following character(s) "=D8=B3=D9=85=D8=AA&qu= ot; using this font:
=C2=A0 ftcrhb:-pdms-Jameel Noori Nastaleeq-normal-n= ormal-normal-*-32-*-*-*-*-0-iso10646-1
by these glyphs:
=C2=A0 [0 3 1= 578 11352 50 1 51 30 1 nil]
with these character(s):
=C2=A0 =D8=B3 (#= x633) ARABIC LETTER SEEN
=C2=A0 =D9=85 (#x645) ARABIC LETTER MEEM
=C2= =A0 =D8=AA (#x62a) ARABIC LETTER TEH

Character code properties: cust= omize what to show
=C2=A0 name: ARABIC LETTER QAF
=C2=A0 general-cate= gory: Lo (Letter, Other)
=C2=A0 decomposition: (1602) ('=D9=82')=

There are text properties here:
=C2=A0 fontifi= ed =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nil
-------------= ---------------------------------------------------------------------------= -------------------------------------

Changing to = NotoNastaliqUrdu using

(set-fontset-font t 'ar= abic (font-spec :family "NotoNastaliqUrdu" :size 32))
<= br>
the cursor moves through one character at a time and moving t= he cursor to the beginning of the same word
"C-u C-x =3D&quo= t; gives

-----------------------------------------= ---------------------------------------------------------------------------= ---------------------
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 position: 157 of 282 (55%), column: 11
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 character: =D9=82=E2=80=8E (displayed as =D9=82=E2=80=8E)= (codepoint 1602, #o3102, #x642)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 charset: unicode (Unicode (ISO10646))
code point in charset: = 0x0642
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0script: ar= abic
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0syntax: w w= hich means: word
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0categor= y: .:Base, R:Right-to-left (strong), b:Arabic
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0to input: type "C-x 8 RET 642" or "C= -x 8 RET ARABIC LETTER QAF"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 buff= er code: #xD9 #x82
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 file code: = #xD9 #x82 (encoded by coding system utf-8-unix)
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 display: composed to form "=D9=82" (see = below)

Composed using this font:
=C2=A0 ftcrhb:-GOOG-Noto Nastali= q Urdu-normal-normal-normal-*-32-*-*-*-*-0-iso10646-1
by these glyphs:=C2=A0 [0 0 1602 16 0 -6 6 35 -26 [3 -16 0]]
=C2=A0 [0 0 1602 983 0 0 = 0 0 0 nil]
=C2=A0 [0 0 1602 284 8 -1 8 24 6 [0 -23 8]]

Character = code properties: customize what to show
=C2=A0 name: ARABIC LETTER QAF=C2=A0 general-category: Lo (Letter, Other)
=C2=A0 decomposition: (160= 2) ('=D9=82')

There are text properties here:
=C2=A0 font= ified =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0t
------------= ---------------------------------------------------------------------------= --------------------------------------------------

=
(Are you sure that LibreOffice uses NotoNastaliqUrdu for the text you
type there?=C2=A0 They could use a different font under the hood.)

LibreOffice uses something else by default and = when I changed to NotoNastaliqUrdu the appearance changes
and is = the same as what I get with hb-view.
--000000000000356cd405cd5f5da5-- --000000000000356cd505cd5f5da6 Content-Type: image/png; name="urduhbtestnoto.png" Content-Disposition: inline; filename="urduhbtestnoto.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku9uupz60 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 --000000000000356cd505cd5f5da6 Content-Type: image/png; name="emacsq16.png" Content-Disposition: inline; filename="emacsq16.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku9uxehc1 iVBORw0KGgoAAAANSUhEUgAAAGMAAAArCAIAAADjUqHDAAAABmJLR0QA/wD/AP+gvaeTAAAGH0lE QVRoge2aeVATVxzHdxNAbmFilCpogVQU2ykiWLXMCFWh6uBFES1KLaXU+2g9Bq0cWsWr4oEmYqtS DnUqwgBVC4jKIaNAVCoEEQQloSTEBGiAHJt9/cMgQXO8TUqRmf38lWT2vf3uZ9/+9rc7QQEACAkE lMEOMGQgTcFCmoKFNAULaQoW0hQspClYSFOwkKZgMdCUpLqC0014FEAQ0M7lSYbkU4EBpsDLoj2r jtXamBMaJeMwAydMCQ6ePcl9bgJHSXy3g40Jwe0VzzM2hJ0ds/9SqCMhyaC9qZYroc7wmO5r4uo3 jkpwt+8CgACSKtZSn6CT7E6cyKjXyGVyg8a9G0CbwtvL9gfOWp/53PCjxTtKD4WG7L7eqjR4ikEE 0hT27HzYwt23hIYtJtUcT4/6WKCIqdf+GsyIaQYLuGIjKfjt6dJf43xpqBHXuZLb2IxRTFCR4CVu xDQDAi6TKvRsAmXqn/zMNu9ZRmlCEMTM93itUFAaHeDqqL+gQ0T/zwD83DWTx82MZ8t1bQVjSlFV yqHaGXG7Ap0CQRe/gHkkPTPlHM9j3lg9e9UVvYvHFRnejykxDf2JUiYDVmPcGHSdjQBMl6DgcSXW 1oRXFM4vjN8Qm4d+Mue9ylPMMoxmByQWc45dS3bRd3q0R8d5V9Jv+W9dSTTLK7BHB1blzL/wo0f/ eU3GBiWVB+kbDLGmQE+XjDaKTqxHBYraX3ayWhhedF7JA/qGi3/kl2TvXBYZ+42njZ6uE7ysb7Je klTOPh/sBJ6mnMxp61tCeEt2Jsfa3sAygD3OuJx5u0xg2JKEMdXZAZwZDrq2BOI7eeXS3m8yDjNw /MTAQ7dvpBY77r1TlrFrHoNatiuqrKdq28JlJx7qKkBAnJec126JIgiCCauSon/KqBO/nhjBqh82 Wdga+qxqwvDydBw9enh/0Xhnw92Couo2nUUKQWA6T0V57PqzPJ39gfz2Zr/ILJ4MAAAA3npt44f2 NHsrC1vnkKNnDm7+Yupo82GMiOxWHGAK3Q0CxkmMSeEpAS68GTXNnoqiCIJQaVPDk5uVAADQfTnk 4+33FLA39rdjxuzIalf/BRcVxsz3dhtpThnm4B0al87W3gfpN4UL0/aeqNN9gPKSLS5UlGpJc3J1 c5800ZluaUrpPXMoxcp1fvS15zKIQ1Hcj/shRYgruWmRS2NuNHZwWMEulijqEH4PexXl3IIZ+wzu xhRVp36+LlH7ARM3PqxtxQDARDW5MZ97LbtQJ9U6WospXFjfIH6lV9mYFHdajymAvcjaMtPJsk8P 1cLe0f3TRRG7ErMeCGDbeqw6fsGmQjmQ1ZVVtKlOrrKZGb69WK76nOgfcIqrr8VXCw+6StKuNKjC yx4V3+voWzOKxwemWVKdVud3g54nF3dGpenQBLSYwsV/JrDYqnHSgnVTQ1Mbdc6iSnL9W5dxPmuS K7ltnTJDunlp9kqHOUx1E7ioePfXBx6oVGNPDs6NyO3RPQlseNmt9U5UBDGbsnbfuqDwpGo902o0 hdWe3pP29+tzmuhnhqCW41fntBnzLAODNCfMjkr3jfq9oonP53KK0mOD3N1WJmfHf7eDdfwrT+91 CTu2XGjVnQI6vOKvxMUT6cOoNh9tvNoAsQ40mFKU79ma0lfZlNzcqAAXK7PpR+oH+skWbzkfqH5n Qq08vs9nM/2HU0d4f+ZJd1lx6NJNPaeLUHhla87aLw9z4OqeBlM18Qs2FfavvziPFb6tCKYmG4ni 2aVIT5opilKs35+5+kyFGAcAF1WmbF8cEJFWp7/eYdDhcTGbtdz9g7CrfMgrRUOPXs+5X2PXhvuN 6e1bgKgo8S5jebgZ4Q6GMCbOIWcqgxI6uik2tua9+x8+wrSl5klHN0Tzh8GF76zLOsG6a74ktXTR ZDpsH/u2PPVi0VxzJzV68YTxKzJg1Q8MSrkM6hqRDlx4DaY0FIsCo15M/Y9oqnQFLY9Zy/3XZLww rsxquvdpKhZDhrfDyx8d9rG39d5bady7aRRo+acZ1t2/WAwp3ggPuvgCMHIU8dch6mg1RfIGQ3LJ DAqkKVhIU7CQpmAhTcFCmoKFNAULaQqWfwEmpKvyS/AuugAAAABJRU5ErkJggg== --000000000000356cd505cd5f5da6 Content-Type: image/png; name="emacsq24.png" Content-Disposition: inline; filename="emacsq24.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku9v014x3 iVBORw0KGgoAAAANSUhEUgAAAMYAAABHCAIAAADTFa93AAAABmJLR0QA/wD/AP+gvaeTAAAPAUlE QVR4nO2deVyMeRzHn9/zzNE5HdOtElKuRKRUKiKUK2e5ZVtssY6Vc1mLJVd2V7GOJIvIola5O1jS lqsiqUjHFGmq6ZzjeZ79o0O2mZpmnmlGr+f9Vzp+z3e+38/zO77f7/MAOI5DJCTEAcvbAJLuBikp EoIhJUVCMKSkSAiGlBQJwZCSIiEYUlIkBENKioRgSEmREAwpKRKCISVFQjAylhReV1ZWpzBFRIzP Rxu/KE2MiHxagcnZnu6JTCVV+/zXxTuSeECW1xAbXm74HIse9v5ROax7gRMnLZ7raLfoQr68reqO 4DICYz/8xc1A1+dyhayu0Bmwj3Er+tEBBEGAoqGp1nQjUYf8LG/DuiGymaX4BdcCRk/Y9sr2l58m a8rkCp0DL3twITaPh0MQBNHNnFwtVAAEEH3377zlbVl3hHiV1rwI9epJg3XG7EurJn50SeG9u7S0 vwpjiP+1QgH64c6P878Lf1krb6O6JQAntAUP/5S0Y/qMnY9o7vuvX1pto64Y26gmsIriUnoPIxV5 29HNIVJS/IKrqyYvPP7GwPvY9VOLLJWIGpfkq4KwvVRd5nEfZ+/jRYM3xDyIUFg94RUpx9YsWRp4 PKVcYVIb3Q4iVk+s/J+drroIvfes4xk1RAwoKyrjvjFBIAiCYK0Jx9+h8janeyK9pLBPCRtHMGD1 IQHRhXwCLJIdgjcHHZWbd3fUoTszBfK2qFsi7cLHzTg8e8b+XKstf9/9bYoxRcrRZAovOfTI4/rm 9U6Q/fRFrVzt6a5IJ6n6lJ0LtqRb74yL3eHCVKjTXVvwqtdZLPTzPwWVFRyyIiMDpJEU9u7U5pPK 62OubbTTUHA9QRAEmB7LfQdrwADQ9EyNVACgKykpvtVdBV5bkMPiEjSWxPDStlj1CUioJ24Vlj1o 3SfWh2pe+WlPZYNvb3PlbY6iUJ2215WJaA7/PqZQ+v2l5LMU79/zF1kjx9opaLpAOLAy01BPjYJh uLKt41CqvM1RCNCC877TtiSVo5Vpvy1Yc7lS2uyKxJISZN64WajTw/ArDEt9ZlhEhuucicTs/ohc MuQCr/wjBwUQBEGwxhDHwWpSe0XC2Q1jHXWjU0fszf5qDuKCj5n3zu8LXDF3jLk63WpzCjELtkRL Bsa6tC/sjQJ5jptzdq6lmfvuf8ox6QeTVFLcuyuMYLpbaDEBNsgStPRB1O23XBwtvTiRAQMIgiCg PmLHv4RUjAXvz80yRhoH1ZgZWSGmLwQvdzv7XJRdSR2rKmd3Wq8YihIUSkkXvjpWERsDquqqinVo wjkvL+9dtWShf1BMTh0E1WadDpjrPWFgD1Nji3k3ORgOAS2nPbdu/GhLSO1YsiWDlxIW8aGHKZ0I C4QheHHQc1pwFtrxb7YGwDBRoZRMiWjB7640wJgf3UCMsgmBl3dhkWVzYgDQNA101SjNboI1rce6 O7guOkJww03nlwxu0iozpZEHcmVVDuKnbupPQcy+vy+v86yE+W68ob4Bh/X0daUuO2N8Pk6lIhCE lSb+mciYPNtGS7Ixa5J/mukb8ZaqZ6TKKWXXY7zK0k/KA78NXW3wLPG9ttvKjYttNImfUmnm8/98 NRcS/xYXZNy6W4Sbasoqk8d/EvVXjgAFycn56CgLRDYXaRdJJVVfV48jhsaG0tnMyw2fNy4w3yPk /BbtPzynHnqBmseG3Q73Mev0sDX3t6+IsQp9dm++tRbOSjwadOJhVY+xywOX2uvA0DdSGdkRAO7E PYBzMtPfosggDekPVkJB8+Lj3wkgiFJTVS1GNoBfmhwZfjWlgMcc6DzJy8PWiIiUkGSTG+/ROnMK c0msNOueyH7wjE7vLdG8w67mfjcVuguiEcGrX4ZTYb1vbspqWULzj4xRAYA+9iiro6W45unBca2W GUDVGey14fQjlpSmSbhw4ZwqDmI5qJ8UWSnR/eD9OjlH4RVX1u+5Xxj708p9f78W596UAVjVq5iQ n9Z+57/1ZPIHFIKghuenjiVUC/k9diUG1Bky63eFjce49adQBjg76bV/ibpHP38XDk/8dtnCqfam qjCAcP6n9KtBSxz79Lafs+3vAsnrn5IpseLMJJWeq5J40umZkH5wblaoO6PZe4AxM67Lt6X84hsb nHSbTwIAUWGaDRtlbeQQJCRpx72zzBCmWu9Il1lWCn3/q7Oq7Z6sDi6AlqbEp3OaJjKUkxsftm2h S291BEBAfdi6W6WSnx4kk5QgfcdQvblXOBJftgWUXVQsTY6oJnmLTUsPFARUHYK7OFOGfYxbbkkH EASoqurKSIu29byjPgixpCFmgQagOQXLrv+PmxBg7hL8VpLx69KDx5mNCLxXJpULJZNUzWVvw6kR n+Sd5uTlRczu23d8wNZNS916qcL0XvMuvO/anLQg74SnLkXHbsWxhLccFONkRCwYwKCrmU06mFop 1Du1F2coA/rEU9JFrR34T7YOcw8pEKUorCx+p5edtf2svQ/YX5iAVaUdnGBuu+6O1JZJJCle0hJj S//Uro1eTdL2wMiPLZ+3Lj9u+3iLYQHXWY1m8KvK2F2cJKt9FjzVWtto2slssS+MlZ/2oAOV2VF1 BFy/4dVfpxP+NxXyn28fNubXfFGK4txaZtq4U6X035Ta0oQrKL6x3t7IemWcFOtdC+1KCqu4vfX7 iPdtLlO02oTaM7Are7exqvuB1kqItpXH7OnjXZycHQbo0JQHLIsplr0NGPvG5jXnitpcSPDmoJ2y du9FsZ25rdGikNE0xNg/vhO7UFFRqI5eaDTmSOGX32eHTxu+7bmIhm0097CzSvPSTGtKt/JLEvdM 6sno73etiJg5oj1J1dxfZ+8VVtjms9Td9NWnu4aIuWlpyE99ypKqKZ1bEBvowFQfNNSS1rJrolks vpTfFa3uNUlr7KeHt1UU99EPfSnqc692rvosyNlvT6Xa7etEzVh0FPwMldoUWbHasrJaEYHhPw60 +JyHRHr6/Xn37A6fIdqIsqVv1HvCnClaUoLXB1zttqa1PT/xHq7tgwDE0G3zX6+qOpwleEmrLKZF VEpoXl3+neBFNtoIQHoH3CtJ2eeoAUMQULZcGkPEFN0xgqz9LnY/PmnrBH7qpn4UCNYetTEmt+Z/ IURL448euZnfgOPVqUFuvYcsCWt5boj/7MdBNH2/W2KvlARFAcdxHGMdG9umsAgQ3VGbb5cQuYcR Kamq60v7Tw0vaSt4rDjUjd5sj9bghScz2tsXoHkHHZUtA5M7d7IXcPIfRQWv8Rqq1zgvIT3mXW7c NGANVRU1XbaJq7ruK8IJ7HDPZidQmNbzjz2vbflJwvqhqgAgus4r13oYIgCCINhg7uXGn/ISV5oy pkSIvVYSFIWmi78IctT8XDmi6tjM2XTqUQnRc70ISaEFR8f38b0urMSKsY660T9n0YCq5+mPosfn JQaYIEClv8+hGy/LROoKa2C/z3x858qZI7t+WDLFoa82rVWaDjCGb0wUt3GESNpzQulx91Z3PFCf dZGD4ziOsi7MMmhKHwO4ufIHM6efa/y7+is+uu7HxM1zdDIKYozK+5CZcD36etzReWYGvrGy6fEW LilBdtBI4yWxwhNGWMnVb/p+fhKANia0WPT4vMQAE6TZxTSGQa9+Vja29o6jnF1cnJ3sh1kPsOhl YqClgojI9AKVvjMPp7Dlkq1o1wloQcR0g89WK00+0/jSI35hzPfDGDAEEAOP0IfxO0frUjSGr73Z tEyjhSGTvcKETDqdN0BIFMT1Uu2TXQ4MpneUpLuRDhAqKUF2kJ3a+BOiZY9xsq7tXWSrRwUQrOMb 187OAPt0YaZErQWAwrSe83P0G7nV7QTZQXZqE06KdgKX9fDkD5591QAEIa0rCVj5g6Bl6yLuXlzv vfzE48xX7z5/BJR1L/qx8ISVCAOIiULrv3ly2MMIQcz878nKs8IkhRaFuonzAAn/7RE3NZUJJ0rb 9RHv9fHJRhRxS1oAVjYcMtFvR3jCu//versWcZ1Ql77LXokxM/KLWx4tifm2nxKAIFjX86REiWyi o4DjOI435F0OGKYBQ7Du1HCRyVCpEdbcwn2a/IwHd9xrgzA0GSr2bu667eqFaul35cnA8EO/nomO T8stb8C+qOsCiqqOsVmv3r3NLQZa2wy3c3CyG6CvCM/XiesEJV09DXXXyWMYrb6H5kQeiMxuwCEI qszLLcOgXhLM08RGAarPidowf3lIagXddNymP44tMJHdKzXbqgzNPTCSBpTGd6R7zoP1VkyPUx32 ULRCUPupMO91ZvqLjJfZufmFJWUVdQr6GoUmJ3R082PsO/6W+rMv/r+nE2P/s2u0nlq/BWdeS7gH JjAKgg8Pgn0G6hrZTPEPupRWKuuyuhBJNWbEgOro3/NET471r09ON6GZ+N2okqFxcqTJCWqjfxe9 bmGcp4fG61PNV98XeoCvK/tYLfnaTVwU0JL75yOT8sRLXhGAEEnxHq7tg0AQBGs570wWcnjHOC8j 1zjqIoDhFtLOx/26+ewEl12PhTgBZT895TdUA4aZU8LbZrYJNeBri4KwhS/voAOtcVUEymZu/vvP 3Xqc/vpN1vPke9Fhu5d7DtKhAggCjFEHMqXsl1JgWjtBpdfYgAPnb6dkZOfmZD3/JzbiwOppVkwK gCBYa1yIjJ7H+3qjIOzEx0/ZYNl+TzpAjKadzlPQbRAxfFkQE+oEiql3pOwOTl9tFETkpYJHiX5A DyB6Y/encuR6xO8CBNmH2nWCocdvL2T6SmLxo8B9E7HMa8XpdCm2bgQioiDDzfpDaDIJIDojVl7M +are1iIx3FdHJxkKyesDip7D2qvvZN+QLFYUUNZVX3MagCBYy+VQpgLMWaI7ERryYrZ5Wek0VdsA ot5z5JzN4f9+UACju4763OitUwcyqU1OoKibOfhsPZtW1mWF6w6jwIn1NWwuKmrNuSSjIktn6Ogl 1YKa0oIiNo/ONDbVV5PHg4aKgKC6tKCYzaMzTUz1VeXhhPaigJc/3D3La3tijYXv2dt/zDCRe5AI fpU+iVyozYy5We/kZautCP8XHikpEoJRBFmTdCtISZEQDCkpEoIhJUVCMKSkSAiGlBQJwZCSIiEY UlIkBENKioRgSEmREAwpKRKC+Q/lyfpfLFOGHAAAAABJRU5ErkJggg== --000000000000356cd505cd5f5da6 Content-Type: image/png; name="emacsq32.png" Content-Disposition: inline; filename="emacsq32.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ku9v1oo15 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 /wc0zx3N0kuwVAAAAABJRU5ErkJggg== --000000000000356cd505cd5f5da6-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 10:40:44 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 14:40:44 +0000 Received: from localhost ([127.0.0.1]:60185 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgBv-0004r7-Vq for submit@debbugs.gnu.org; Sat, 02 Oct 2021 10:40:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43748) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgBu-0004qs-GW for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 10:40:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54206) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWgBn-0001rb-P9; Sat, 02 Oct 2021 10:40:35 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2605 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 1mWgBa-0003Vi-8S; Sat, 02 Oct 2021 10:40:33 -0400 Date: Sat, 02 Oct 2021 17:40:02 +0300 Message-Id: <83h7dzbid9.fsf@gnu.org> From: Eli Zaretskii To: Andreas Schwab In-Reply-To: <87pmsnwlvo.fsf@igel.home> (message from Andreas Schwab on Sat, 02 Oct 2021 16:18:35 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@debbugs.gnu.org, aikrahguzar@gmail.com 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: -3.3 (---) > From: Andreas Schwab > Cc: Eli Zaretskii , 50951@debbugs.gnu.org > Date: Sat, 02 Oct 2021 16:18:35 +0200 > > On Okt 02 2021, Rah Guzar wrote: > > > On Sat, Oct 2, 2021 at 2:18 PM Eli Zaretskii wrote: > > > >> What font displays them individually? You should be able to tell that > >> if you type "C-u C-x =" on one of these characters. > >> > > This is the default font that `emacs -Q` chooses. Using "C-u C-x =" I see, > > > > ftcrhb:-PfEd-DejaVu Sans-normal-normal-normal-*-13-*-*-*-*-0-iso10646-1 > > (#x56F) > > DejaVu Sans misses a glyph for ARABIC LETTER HEH GOAL, so Emacs has to > select a different font for it. Thanks, should be fixed now. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 10:50:43 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 14:50:43 +0000 Received: from localhost ([127.0.0.1]:60218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgLb-0005F2-6G for submit@debbugs.gnu.org; Sat, 02 Oct 2021 10:50:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:44980) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgLZ-0005En-SM for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 10:50:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54436) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWgLU-00058S-IB; Sat, 02 Oct 2021 10:50:36 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3220 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 1mWgLK-0004LW-K4; Sat, 02 Oct 2021 10:50:36 -0400 Date: Sat, 02 Oct 2021 17:50:09 +0300 Message-Id: <83fstjbhwe.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 16:19:01 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <83mtnrbmk4.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 16:19:01 +0200 > Cc: 50951@debbugs.gnu.org > > I tried hb-view with NotoNastaliqUrdu and the text: > خوبی اپنی قسمت کی > This is what I get > urduhbtestnoto.png > While in emacs I discovered how it is displayed depends a lot on the font size. > > For the same text at size 16, I get > > emacsq16.png > > At size 24 it looks almost correct > emacsq24.png > At size 32 it is really bad again > emacsq32.png > And the issue seem to be glyph placement rather than shaping. > > NotoNastaliqUrdu seems to be the only font with this issue. I am not sure if the problem is due to Nastaliq. If you set bidi-display-reordering to a nil value, does the display become better or worse? From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 11:08:15 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 15:08:15 +0000 Received: from localhost ([127.0.0.1]:60254 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgcY-0005mD-UB for submit@debbugs.gnu.org; Sat, 02 Oct 2021 11:08:15 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:44723) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgcX-0005lz-U0 for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 11:08:14 -0400 Received: by mail-wr1-f46.google.com with SMTP id d6so20474536wrc.11 for <50951@debbugs.gnu.org>; Sat, 02 Oct 2021 08:08:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9zxdKe6ZpX/5r09T9sasXNwafTwPpEkTeUz9L4RxrT0=; b=MZQ1o2cr2a+OvlMUbStOoaNqkH/VwGQfCYT4tnhTbo0X/dp9k6CCZ3MJmPjKL3BwQG PfP7UwKjujuzZQ4VHk/3dOlF4HkWLGjjahORNfkW50bWQNwTPzbA3MEMQs4/L2T3gNtb krjoBQpYyzIUKT8e4cBXhDNiklyO8cd08FHeXP6EmzrC5HCY/5HgDGcyXoRC7EzO7ycy HauBxVThzXHCxAtkKOJ/dsHjbh/6rPC/CYk/GeWCPZOm7f4QnOZ3des9aNhQghOVoEQY 3CnftyujgcoCadV0N+4ZBn8TpijN2g4ioa/ar+nT0Uvxn+dQhfSruGtp7X49bg84gTA/ 8GMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9zxdKe6ZpX/5r09T9sasXNwafTwPpEkTeUz9L4RxrT0=; b=w55VUKraMZNudYpa+coYoDbvMC9CBjtkVkGOSuEexOmy5EE4pgVLZodcZpD6gqAYZc agQrj3TrYlVZDYPnk4W5gt5DgZMSBDECeYVHHlcBCWBNtdKykmcI7mA6xSU5z2eYtREq Y8kWUmvIRfg7OCX4A95SKa58XVmKmPCUnLoGRliaF1278RzHeoq9CTBk3sX5y8CVjYsH Ue1aUfzWNO+gYK2vYTM3MQn+pHmPiqnIhb5Rt+VsiA0deROI3TWl+Nsko47GDnXfZWPn xbHlAxurP1WujkWT31R+V7qlq70L5mM6KEmvi0SWEv9JEmcDaX7wMUK8wAGR5wn1jEdc Jc4Q== X-Gm-Message-State: AOAM5317l5rXxgT2Cmf4xGBGQEcbtwgCJ+s8hqKjcmaJOOr9VVtD9wHk gCPJLP/LA8pKkZOyYvOOMdvz91N4k4nlKkA8cZs= X-Google-Smtp-Source: ABdhPJy3knDn5p+90j/Vm1xoDXaP6GlYbWUSWKVaxFhfGsi4s1AnCcNzxHshmSjm9zoAZrvBV+9icBEnwfUqcdaZ4CE= X-Received: by 2002:adf:a2c8:: with SMTP id t8mr3856636wra.215.1633187288123; Sat, 02 Oct 2021 08:08:08 -0700 (PDT) MIME-Version: 1.0 References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> In-Reply-To: <87pmsnwlvo.fsf@igel.home> From: Rah Guzar Date: Sat, 2 Oct 2021 17:07:57 +0200 Message-ID: Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly To: Andreas Schwab Content-Type: multipart/alternative; boundary="000000000000290cee05cd600c43" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: Eli Zaretskii , 50951@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.0 (-) --000000000000290cee05cd600c43 Content-Type: text/plain; charset="UTF-8" On Sat, Oct 2, 2021 at 4:18 PM Andreas Schwab wrote: > DejaVu Sans misses a glyph for ARABIC LETTER HEH GOAL, so Emacs has to > select a different font for it. > This also true for ARABIC LETTER YEH BARREE which causes also causes the same problem. --000000000000290cee05cd600c43 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Sat, Oct 2, 2021 at 4:18 PM Andrea= s Schwab <schwab@linux-m68k.org= > wrote:
=C2=A0
DejaVu Sans misses a glyph for ARABIC LETTER HEH GOAL, so Emacs has to
select a different font for it.

This al= so true for ARABIC LETTER YEH BARREE which causes also causes the same prob= lem.
--000000000000290cee05cd600c43-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 11:10:27 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 15:10:27 +0000 Received: from localhost ([127.0.0.1]:60263 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgeh-0005q6-HF for submit@debbugs.gnu.org; Sat, 02 Oct 2021 11:10:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgef-0005pl-KP for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 11:10:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54874) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWgea-00046b-3m; Sat, 02 Oct 2021 11:10:20 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4459 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 1mWgeV-00008t-Rc; Sat, 02 Oct 2021 11:10:19 -0400 Date: Sat, 02 Oct 2021 18:09:59 +0300 Message-Id: <83a6jrbgzc.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 17:05:24 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <83mtnrbmk4.fsf@gnu.org> <83fstjbhwe.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 17:05:24 +0200 > > If you set bidi-display-reordering to a nil value, does the display > become better or worse? > > Setting it to nil completely garbles the text. This I what I see afterwards > reordering-nil.png OK, that's what I expected. It was a stab in the dark. > By the way, the problem of size dependent misplacement happens with another Urdu font > Urdu_Emad_Nastaliq that doesn't rely on extensive composition which I tried. I'm afraid this is where I must stop trying to help investigating this issue, as I'm long out of my depth in this area. It sounds like some tricky issue with the fonts, but maybe something else is at work here, e.g., with Cairo display or something. But I'm just guessing at this point, sorry. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 11:15:00 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 15:15:00 +0000 Received: from localhost ([127.0.0.1]:60274 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgj6-0005wu-JT for submit@debbugs.gnu.org; Sat, 02 Oct 2021 11:15:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgj5-0005wj-Ra for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 11:15:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55002) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWgj0-0007vP-Fs; Sat, 02 Oct 2021 11:14:54 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4744 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 1mWgj0-0000jF-3O; Sat, 02 Oct 2021 11:14:54 -0400 Date: Sat, 02 Oct 2021 18:14:38 +0300 Message-Id: <837devbgrl.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 17:07:57 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: schwab@linux-m68k.org, 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 17:07:57 +0200 > Cc: Eli Zaretskii , 50951@debbugs.gnu.org > > On Sat, Oct 2, 2021 at 4:18 PM Andreas Schwab wrote: > > DejaVu Sans misses a glyph for ARABIC LETTER HEH GOAL, so Emacs has to > select a different font for it. > > This also true for ARABIC LETTER YEH BARREE which causes also causes the same problem. As I already added U+06C1 ARABIC LETTER HEH GOAL to the list of required characters for displaying Arabic, the question is now: are there fonts inappropriate for Arabic that support U+06C1, but do NOT support U+06D2 ARABIC LETTER YEH BARREE? If there are such fonts, then we should add U+06D2 to the list of required characters as well. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 11:18:34 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 15:18:34 +0000 Received: from localhost ([127.0.0.1]:60290 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgmX-00063k-Jb for submit@debbugs.gnu.org; Sat, 02 Oct 2021 11:18:34 -0400 Received: from mail-wm1-f44.google.com ([209.85.128.44]:46788) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWgmO-00063I-Va for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 11:18:32 -0400 Received: by mail-wm1-f44.google.com with SMTP id o4-20020a05600c510400b0030d55d6449fso2244623wms.5 for <50951@debbugs.gnu.org>; Sat, 02 Oct 2021 08:18:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9T7ebcTLrRelAz+k07S7iAnyhGolfvXP+HtNY7KX1vg=; b=TewMJtnFuPWnZ+5Sg0rhMFskx8BsiTfC1Up6kWcAwei6OUCpAttA3brdsTb8juboIi tCzdSoUkmERucfUyd7ytITM9zqf/3P9w9snJbDNkWH7vcvMFWWeE9LB1wxCNmgZuEH5g YMZgPBeXTBbqdQ87RyFMwVGSoBV1dreUcT2Acp6eDd19wUBG6OQT4TsCh8PUAf9ayyqc CNGAvfrz4oItn6ufB0WgQiO751fCuCiu61nRANAFSE5HBjIpG57SkE82lFEdSHM9GHbA 8O1J678ORRwFbhscxsaTYhY0/14gJ2IHhYcnzXpTIfAJjVdE+yvnjg2i5/HzbDeTdpH3 PY2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9T7ebcTLrRelAz+k07S7iAnyhGolfvXP+HtNY7KX1vg=; b=fC6+Ruj/GOsF/k3ZuNU5vcP3u+81QASWdTmMCifK42kQRiDAzUVWJoMXyQZv8J0W2K AWknREiDmxYyM+jY2aOhMCABHsyyjjV9gbs0cmb5NNnpZaCF7JC/HSpe80vLaH56V9pq ZFJW8E5Z8jFUEcNBJ7Smu99G6ZtVwFNaxTRvEOOR/yCrP/EYKb6QEPhh3AbRTVjfk83d W16c4Q1pjuFga1fuh7CtCrkoGZ0eSetzsKQYsm7/BVYKXrAazkolBUmxyWC1lFjjJyYR zYcSWbkRiNJXoRfutmjyvwWKbR+LxxOpXU0mHPYo0STyl3mLSsjgDLLNl8w0/g4gRv7S SoFQ== X-Gm-Message-State: AOAM531wwJDiyxG9VNfvONfPc3eESwZq5efwhr+3wl8TK7WyekfYn3Qi 9NBCAmjF+Xkcal/QWsbVcUqyP3nXygLEdTftC2Npg0dd X-Google-Smtp-Source: ABdhPJwF7lzGfnBeILhH67Sw2cwnh3JRl4C/1vTnktmni9/r+azliYs5h8Ks71t2DCHqMBslAQLZAU7uP3h4dOi4plg= X-Received: by 2002:a05:600c:3b26:: with SMTP id m38mr1342563wms.0.1633187898929; Sat, 02 Oct 2021 08:18:18 -0700 (PDT) MIME-Version: 1.0 References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <83mtnrbmk4.fsf@gnu.org> <83fstjbhwe.fsf@gnu.org> <83a6jrbgzc.fsf@gnu.org> In-Reply-To: <83a6jrbgzc.fsf@gnu.org> From: Rah Guzar Date: Sat, 2 Oct 2021 17:18:07 +0200 Message-ID: Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000913c9605cd6030ac" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@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.0 (-) --000000000000913c9605cd6030ac Content-Type: text/plain; charset="UTF-8" On Sat, Oct 2, 2021 at 5:10 PM Eli Zaretskii wrote: > I'm afraid this is where I must stop trying to help investigating this > issue, as I'm long out of my depth in this area. It sounds like some > tricky issue with the fonts, but maybe something else is at work here, > e.g., with Cairo display or something. But I'm just guessing at this > point, sorry. > Thanks a lot for the help. It would be nice if there is a proper solution to this problem but there is at least an easy workaround of using large Urdu fonts like "Jameel Noori Nastaleeq" or "Alvi Nastaleeq". It seems like only small fonts like "NotoNastaliqUrdu" have this problem. --000000000000913c9605cd6030ac Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable --000000000000913c9605cd6030ac-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 11:56:04 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 15:56:04 +0000 Received: from localhost ([127.0.0.1]:60347 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWhMq-00076f-ME for submit@debbugs.gnu.org; Sat, 02 Oct 2021 11:56:04 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55728) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWhMp-00076A-3Q for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 11:56:03 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55592) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWhMi-0006lr-FY; Sat, 02 Oct 2021 11:55:57 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3238 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 1mWhLu-0000Bu-Ip; Sat, 02 Oct 2021 11:55:38 -0400 Date: Sat, 02 Oct 2021 18:54:52 +0300 Message-Id: <8335pjbewj.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 17:27:33 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 17:27:33 +0200 > > As I already added U+06C1 ARABIC LETTER HEH GOAL to the list of > required characters for displaying Arabic, the question is now: are > there fonts inappropriate for Arabic that support U+06C1, but do NOT > support U+06D2 ARABIC LETTER YEH BARREE? If there are such fonts, > then we should add U+06D2 to the list of required characters as well. > > I haven't seen a font like this and I will reach out if I do. But I think this solution > might cause issues with fonts for just Arabic which don't support Urdu (if there > are such). What kind of issues did you have in mind? From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 12:06:28 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 16:06:28 +0000 Received: from localhost ([127.0.0.1]:60360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWhWu-0007O2-7X for submit@debbugs.gnu.org; Sat, 02 Oct 2021 12:06:28 -0400 Received: from mail-wr1-f52.google.com ([209.85.221.52]:35836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWhWs-0007Nm-7W for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 12:06:26 -0400 Received: by mail-wr1-f52.google.com with SMTP id v25so10094749wra.2 for <50951@debbugs.gnu.org>; Sat, 02 Oct 2021 09:06:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tyPVZ5MHIw1EmiYfN50/CHEthCQbr3b4zzpOx4QsM3M=; b=ml2yWNB0cBEzbbdtZ1Wu5hOTmREPkY5y+/rk313noxKLcUt7/LPThs4ZedNP43g6dz Hhg7r8Cj67U0MacOaOTMHD7L1R2kyTDbwgNN7+jyq7h7gtgxixQLEbACgoW3s8jLzk79 YG4Sluw8KGEYwB6JmDPCobSEKsxuDxnFtwNHw3lHb7GCjcd0bWhzyg36U7mv1Xqka36W BlamHGpDBgm7z9bDglmTg076BYd1CcY4jF/W/jw7ESOUe2y9ZyBwlXYcE2YRki66n56S sBYVBvlE4wRotuABXp0wg1+hznFQMAakH6GbIgRC+HcRCF+4EQC/V4M/p8jCCEHJbEE9 bRYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tyPVZ5MHIw1EmiYfN50/CHEthCQbr3b4zzpOx4QsM3M=; b=Gm6hDXPV5EWIKl5RqcOCwqmPhxI2ivapuACLuIsjorMrYRxcusr0hzjAHbcHApXzLX SzDh7COVCBEtusenpM+efFCvfn62y1tU8QuPUafMdUlcbuTP066Qj0TFdBQceEjdGqcq njNyLwHGQvQ+4SbMxsbSHlM9sR00xRNy2IkcL9DbBWIMC6OwBcw45PGARjt34au9WPpH BvVIgoyYTXwGbUCOb/ak+QlpkYiZ1X1gjNV+4c9oeYO9PsMizxwfEGoFZDvDDAvrV3/U l6uSvgAoN8AQHz1cDx0cbh79BPn8a9LvSdn7rWAVKQf8YfIkUpSWqO0dM03wmF011XWp KrFg== X-Gm-Message-State: AOAM532unr9UNyQVHtfHbEtOTxeij0b6MDZ1SCUrkG4UJRlU2MHzUUE2 /X6RTEneeN5c4m4MPdyEEQDop3kJQQQRd90J1Rk= X-Google-Smtp-Source: ABdhPJwI9uwHOip/ULOLTCbL1K1ntDNNJzrhNckplq90OSkNKGon0woBCwj7kKPiEmrM6Gq/NGIQh0Yzm1Qdv0TIc5Y= X-Received: by 2002:adf:b304:: with SMTP id j4mr4126238wrd.160.1633190780521; Sat, 02 Oct 2021 09:06:20 -0700 (PDT) MIME-Version: 1.0 References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> In-Reply-To: <8335pjbewj.fsf@gnu.org> From: Rah Guzar Date: Sat, 2 Oct 2021 18:06:09 +0200 Message-ID: Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly To: Eli Zaretskii Content-Type: multipart/alternative; boundary="00000000000052d20f05cd60dccc" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@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.0 (-) --00000000000052d20f05cd60dccc Content-Type: text/plain; charset="UTF-8" > What kind of issues did you have in mind? > This might be me not understanding how required characters work but if a user sets a font for only Arabic (not Urdu) and the font doesn't have these characters, will it cause emacs to use a fallback for Arabic text? Or is the restriction only relevant for the selection of implicit fallback? --00000000000052d20f05cd60dccc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

What kind of issues did you have in mind?

This might be me not understanding how required characters work but if a= user sets a font
--00000000000052d20f05cd60dccc-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 02 12:10:26 2021 Received: (at 50951) by debbugs.gnu.org; 2 Oct 2021 16:10:27 +0000 Received: from localhost ([127.0.0.1]:60364 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWhak-0007Ts-Nx for submit@debbugs.gnu.org; Sat, 02 Oct 2021 12:10:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57660) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mWhaj-0007Th-JW for 50951@debbugs.gnu.org; Sat, 02 Oct 2021 12:10:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55938) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWhae-0001lb-Aj; Sat, 02 Oct 2021 12:10:20 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4160 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 1mWhaR-0003lR-LM; Sat, 02 Oct 2021 12:10:20 -0400 Date: Sat, 02 Oct 2021 19:09:54 +0300 Message-Id: <83zgrr9zn1.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: (message from Rah Guzar on Sat, 2 Oct 2021 18:06:09 +0200) Subject: Re: bug#50951: Fwd: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@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: -3.3 (---) > From: Rah Guzar > Date: Sat, 2 Oct 2021 18:06:09 +0200 > Cc: 50951@debbugs.gnu.org > > What kind of issues did you have in mind? > > This might be me not understanding how required characters work but if a user sets a font > for only Arabic (not Urdu) and the font doesn't have these characters, will it cause emacs > to use a fallback for Arabic text? Or is the restriction only relevant for the selection of implicit > fallback? No, if the user customizes the fontset, the font specified there will be used, no questions asked. The representative characters are only used for selecting the fonts by default. AFAIK, at least. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 04 17:07:44 2022 Received: (at 50951) by debbugs.gnu.org; 4 Sep 2022 21:07:44 +0000 Received: from localhost ([127.0.0.1]:45785 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUwqG-0000GW-7B for submit@debbugs.gnu.org; Sun, 04 Sep 2022 17:07:44 -0400 Received: from quimby.gnus.org ([95.216.78.240]:32770) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUwqE-0000GG-Ft for 50951@debbugs.gnu.org; Sun, 04 Sep 2022 17:07:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=9vTRCGPF/HVNCXo7stm9NK5Pn0LjnRmnkordpUNqapE=; b=MBmyI72qPv3b3OLJK2EXBxeVFi OyJHPe13XkZQxoQf9rXpjtgYKYb0U8xt1GONyc3MWqxw+u/NoxFIFi/c6SkIUf1xYk+WLfm7IVT6w 0qw2EvWFIKGBsuno99KMqQtXmPS0GM24AWQNYWgRL7RoaqkkBt30IY6lyZ6ZAB41KhRE=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oUwq5-0002aV-9v; Sun, 04 Sep 2022 23:07:35 +0200 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <83zgrr9zn1.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 02 Oct 2021 19:09:54 +0300") References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> X-Now-Playing: Yes's _Close to the Edge_: "Close to the Edge" Date: Sun, 04 Sep 2022 23:07:30 +0200 Message-ID: <87edwq7srx.fsf_-_@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: I've only lightly skimmed this thread, but it seems like at least some of the problems were solved. Is there anything more to do here on the Emacs side? Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@debbugs.gnu.org, Rah Guzar 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: -3.3 (---) I've only lightly skimmed this thread, but it seems like at least some of the problems were solved. Is there anything more to do here on the Emacs side? From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 04 17:07:53 2022 Received: (at control) by debbugs.gnu.org; 4 Sep 2022 21:07:53 +0000 Received: from localhost ([127.0.0.1]:45788 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUwqP-0000Gv-EM for submit@debbugs.gnu.org; Sun, 04 Sep 2022 17:07:53 -0400 Received: from quimby.gnus.org ([95.216.78.240]:32786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUwqN-0000Ge-3c for control@debbugs.gnu.org; Sun, 04 Sep 2022 17:07:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=yRYC15XH/Nfd79/97SquRpKtoWyWGlaik12wgk9vcnc=; b=VbMAZPSRf7u7oEBDWy5HzFa0NX hgcBXOcAdDHR7vmyFQu7DwH9+YGxnUo4QkSITmw/N4VgMSY3IL6vAiOrb9mTEc3xn8oJBYEFdptsr PD7Etaad3RaDuKA3JKyXxKdEGJuzppFiQJo+CjkgU0Jrlek6zgtBxqyR79fnjUIlARKg=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oUwqF-0002ag-CA for control@debbugs.gnu.org; Sun, 04 Sep 2022 23:07:45 +0200 Date: Sun, 04 Sep 2022 23:07:38 +0200 Message-Id: <87czca7srp.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #50951 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 50951 + moreinfo quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control 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: -3.3 (---) tags 50951 + moreinfo quit From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 05 07:22:45 2022 Received: (at 50951) by debbugs.gnu.org; 5 Sep 2022 11:22:45 +0000 Received: from localhost ([127.0.0.1]:46570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVABh-0003Ye-Fw for submit@debbugs.gnu.org; Mon, 05 Sep 2022 07:22:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVABf-0003YQ-Ck for 50951@debbugs.gnu.org; Mon, 05 Sep 2022 07:22:43 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41800) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVABa-0008Hs-3A; Mon, 05 Sep 2022 07:22:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=4OmyIAowY4ESOQBUSkASX7j2O2SBwFKlDW0oooQqJj0=; b=ngwBoCRYaSgI meq5Mfe2JrSZ/eAqfWL8MkzUnmVlblse+TSOp+4gMdBqSQbttCGkSeQPKgIWVuTa7Pe3MCq58WlVU dlTqT1Wh8cNAP2lM7pzDow75jn/3a2BC20p8EKf6jQAeufS3ljvXzDx8uaxcW/ejZkK8nyUqMkE8i Vfjw9rqZcETBl8k87hfQufsFOSkM8VSMyfenK8rq7GfPrtPuzjK4+ZQ7WOW6sCqj2t2HXBlhYXFCT 2d0cWUsx280BYR8gfyi7BsDMmqj+LxUjvWmOH120/Hilaalz0wXbMHbbDNUK6RrzMpQEewflcV2h/ 6TQn7zLL001TcexLPK8JLw==; Received: from [87.69.77.57] (port=2003 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 1oVABZ-0001rZ-Et; Mon, 05 Sep 2022 07:22:37 -0400 Date: Mon, 05 Sep 2022 14:22:15 +0300 Message-Id: <83fsh6kqvs.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <87edwq7srx.fsf_-_@gnus.org> (message from Lars Ingebrigtsen on Sun, 04 Sep 2022 23:07:30 +0200) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: 50951@debbugs.gnu.org, aikrahguzar@gmail.com 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: -3.3 (---) > From: Lars Ingebrigtsen > Cc: Rah Guzar , 50951@debbugs.gnu.org > Date: Sun, 04 Sep 2022 23:07:30 +0200 > > I've only lightly skimmed this thread, but it seems like at least some > of the problems were solved. Is there anything more to do here on the > Emacs side? Not from my POV, no. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 05 08:30:06 2022 Received: (at 50951) by debbugs.gnu.org; 5 Sep 2022 12:30:06 +0000 Received: from localhost ([127.0.0.1]:46721 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVBEr-0007TS-TM for submit@debbugs.gnu.org; Mon, 05 Sep 2022 08:30:06 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33230) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVBEp-0007SV-Qg for 50951@debbugs.gnu.org; Mon, 05 Sep 2022 08:30:04 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45714) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVBEk-0004Js-Eu; Mon, 05 Sep 2022 08:29:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=JZOVegLMZKVUpCt4yVpnAby4IQmw1O0am9T1TlnpQro=; b=deATg72byS3B fMIpwKSJiDZx1Fx/eg3o0sWOBIY2W+CJg3EPdJkEc05FWNU2v+gO1bdIOgvdPnaOIrVZezIf2WmK/ vb6qhJirekJXGBsVcGvifiuRsLHJ/J7HO82B2XPILYqXS1laI3+Z+p1Y2c6xK3w3TGCMTUNoTx0ai 82lon+9YdVFJxwGz66lgPCt1LsmvcQ0F22HD7Fr7/Tr7hyLlQOHcRMK9cSJCm5bUq0RUw+laBhYCP Hz5Noxojkd98rV5BAeycb2mtBz1zMcyvbEVjgI1gsDOhhF4/P0EKxSVL4GUXLe3SWBX2pVTtDuZNU r2//NfY2EUQoaFhH5h4Rlg==; Received: from [87.69.77.57] (port=2138 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 1oVBEj-0003ZD-CG; Mon, 05 Sep 2022 08:29:57 -0400 Date: Mon, 05 Sep 2022 15:29:35 +0300 Message-Id: <83wnaij974.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: <87y1uy6mn5.fsf@zohomail.eu> (message from Rah Guzar on Mon, 05 Sep 2022 13:57:24 +0200) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: larsi@gnus.org, 50951@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: -3.3 (---) > From: Rah Guzar > Cc: Eli Zaretskii , 50951@debbugs.gnu.org > Date: Mon, 05 Sep 2022 13:57:24 +0200 > > > Lars Ingebrigtsen writes: > > > I've only lightly skimmed this thread, but it seems like at least some > > of the problems were solved. Is there anything more to do here on the > > Emacs side? > > Hi Lars and Eli, > I am on emacs 28 so this might not be accurate for the development > version of emacs. Right now urdu text renders fine for me using the > default font which for me is, > > -AXIS-Zohra Unicode-normal-normal-normal-*-32-*-*-*-*-0-iso10646-1 > > So that aspect has improved. > > However if I change my font to Noto Nastaliq by evaluating, > > (set-fontset-font t 'arabic (font-spec :family "NotoNastaliqUrdu")) > > rendering is still bad. There are nastaliq fonts > (very big ones) that render fine. My experience is that if font size > is around 10 megabytes it renders fine, if the size is less than that > it has problems (on my system Noto Nastaliq is 1.1M). > > As in the thread this is specific to emacs and not a problem with > harfbuzz generally. It is unclear to me why this conclusion. Emacs uses HarfBuzz, and the only factor that could affect that, apart from selecting the font, is the setting of the current-iso639-language variable, which AFAIR Rahguzar tried setting with no success. > So situation is acceptable but needs workarounds to get a good > experience. My conclusion from this is that Noto Nastaliq is not a good font for Urdu. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 05 09:56:20 2022 Received: (at 50951) by debbugs.gnu.org; 5 Sep 2022 13:56:20 +0000 Received: from localhost ([127.0.0.1]:48537 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVCaK-0003sb-6n for submit@debbugs.gnu.org; Mon, 05 Sep 2022 09:56:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43332) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVCaI-0003sV-IV for 50951@debbugs.gnu.org; Mon, 05 Sep 2022 09:56:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52646) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVCaC-0003bt-TU; Mon, 05 Sep 2022 09:56:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=uWA+RNSiPpwcH1mrfxigv/afpl53PNso0rLdvbYLX/o=; b=h5ECko5Y/Ps3 ShRsUtOxu7AwozB7ROXqT8tZVArqpB256vUhpSn6YGaxEtQhcpGpmYMTHYbo8EFxJUVNilKAkXWua 8Bkqnn19fT/AskPdTfu8AlpHov1MZ9vd1gtRP8lbDJ75OIbwqwTPUyP3Yy3l17R17dLb/iXZnR1/a Ju6oIxup1KK1Fo+RWvjQN4r96zJ1O7xDLUjgU8vNkimD8ihMdiEDiO+u9YwC1FFCFHlQ8J9SCxwne OK+Ya4z6C2KxRTbBlBvFefG2JzOhEXrf5LDqiJNDRl7xEYZT2thUwLVd32ZZIYAWhX1c9iopMjob2 4FfOAV8yFbBkCqVn/iZigw==; Received: from [87.69.77.57] (port=3449 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 1oVCa9-0004oC-SR; Mon, 05 Sep 2022 09:56:12 -0400 Date: Mon, 05 Sep 2022 16:55:47 +0300 Message-Id: <83r10qj57g.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: <87tu5m6jrw.fsf@zohomail.eu> (message from Rah Guzar on Mon, 05 Sep 2022 15:03:47 +0200) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: larsi@gnus.org, 50951@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: -3.3 (---) > From: Rah Guzar > Cc: larsi@gnus.org, 50951@debbugs.gnu.org > Date: Mon, 05 Sep 2022 15:03:47 +0200 > > > My conclusion from this is that Noto Nastaliq is not a good font for > > Urdu. > > On an aesthetic level, I tend to agree. But linux distributions package > very few Urdu fonts and it tends to be one of the few. FWIW, on my system I cannot convince Emacs to use Noto Nastaliq Urdu font for Urdu. I have no idea what's going on here, sorry. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 05 11:47:45 2022 Received: (at 50951) by debbugs.gnu.org; 5 Sep 2022 15:47:45 +0000 Received: from localhost ([127.0.0.1]:48653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVEK9-0002WS-AU for submit@debbugs.gnu.org; Mon, 05 Sep 2022 11:47:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57512) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVEK7-0002Vh-6z for 50951@debbugs.gnu.org; Mon, 05 Sep 2022 11:47:43 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33858) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVEK1-0003jl-5p; Mon, 05 Sep 2022 11:47:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=irdasaRiKH77mXtA1wTOjVDMwLomUMKEwRJVjVFNR8E=; b=bnWughKMht1f N5KM+k3SnQ1Tf+gVwO59vefEtrJcDiu8zRhaBbWn4uJwWBWLWlw0BQtzajzxcJe1rouVvlIgwSEh7 0vt1KoHE33k3NvurMh2RIbLtkW3/VTnwouB7IkpOyK/iM17aEeD4PPsnApMxlogxjnbCfVdAVQWoP OWg9SG/p0IF4u5P6Q4ZUj9yLQRQw8U3/2lg85/+7Zb+XaNVXsi5NMO+qPCEbBgzl4Tj25FA4X77L7 dgBn7M0WZyOYBvtcA7/d/2iM1w89GGHNfI8DrNkvjdF370M5QdJWtrWGe0GNhtjhE8c0KPllgbGC1 j8aHDGlLz5R8RxTpQ3Rl7Q==; Received: from [87.69.77.57] (port=2296 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 1oVEK0-0003wf-J4; Mon, 05 Sep 2022 11:47:36 -0400 Date: Mon, 05 Sep 2022 18:47:15 +0300 Message-Id: <83pmg9kem4.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: <87pmg97vsg.fsf@zohomail.eu> (message from Rah Guzar on Mon, 05 Sep 2022 16:09:31 +0200) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <83r10qj57g.fsf@gnu.org> <87pmg97vsg.fsf@zohomail.eu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@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: -3.3 (---) > From: Rah Guzar > Cc: Rah Guzar , larsi@gnus.org, 50951@debbugs.gnu.org > Date: Mon, 05 Sep 2022 16:09:31 +0200 > > Eli Zaretskii writes: > > > FWIW, on my system I cannot convince Emacs to use Noto Nastaliq Urdu > > font for Urdu. I have no idea what's going on here, sorry. > > I do it by evaluating, > > (set-fontset-font t 'arabic (font-spec :family "NotoNastaliqUrdu") > > and `describe-char` confirms that it is being used. I have attached a screenshot. That's what I tried as well, among many other things. Nothing worked. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 05 13:15:53 2022 Received: (at 50951) by debbugs.gnu.org; 5 Sep 2022 17:15:53 +0000 Received: from localhost ([127.0.0.1]:48740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVFhR-0004nn-B6 for submit@debbugs.gnu.org; Mon, 05 Sep 2022 13:15:53 -0400 Received: from sender11-pp-o92.zoho.eu ([31.186.226.250]:25312) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVB36-00079j-Hw for 50951@debbugs.gnu.org; Mon, 05 Sep 2022 08:17:57 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1662380258; cv=none; d=zohomail.eu; s=zohoarc; b=Mm6NLWqxGCnHzq3vQQsoqWW78Gcl2PyeDuoxjaKiy3KDLoG6rj9ZmppibjK/3J3xbVt1W1kNf01vxfpMURNYruymmXVziEXrCkCaFggccgyouVgUKvV03sPqsoQ1f5x7uQuspDvXPmbSimg1BNhy06KdaW2r/ZQb+0LBAcu3Gaw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1662380258; h=Content-Type:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=IdjKpLECEONpAQibI74qgA4NlOhUuuswrQTWP4ijgek=; b=TuNnLgOaGEYMUeCE+zD3ls1fhqaXObWxydDHevDgc0ONkbJ5AbLA1KvKn80lNQbTAUJulvjfO7vLivXsF0q9+JhLQqmGA01ANETchKVtVde08rJ31Q0ukLz+D8LddawlpBjRSNh4jXf4m3ljZ1pu6U8yrfQH6Obv/B8REosdaXQ= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=zohomail.eu; spf=pass smtp.mailfrom=rahguzar@zohomail.eu; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1662380258; s=zoho; d=zohomail.eu; i=rahguzar@zohomail.eu; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Message-Id:Reply-To; bh=IdjKpLECEONpAQibI74qgA4NlOhUuuswrQTWP4ijgek=; b=up5CIxbFg/Qtzg1NsHhKgf7dtxg5I6sgcv+ce5mLTC3MEPnhfEVWqXfmm4/ejDZq lDtW4CsVI6CFrDxQnokyoehx1ReiokHPL5mUixjwlZeHto2yCOum+yD57UhtzP/4SyT M/DAp6nuA5zimE/AJRxT/VfEMwACXskOe2Zjdn1I= Received: from localhost (emp-89-220.eduroam.uu.se [130.238.89.220]) by mx.zoho.eu with SMTPS id 1662380256127269.30038028149136; Mon, 5 Sep 2022 14:17:36 +0200 (CEST) References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> User-agent: mu4e 1.8.9; emacs 28.1.50 From: Rah Guzar To: Lars Ingebrigtsen Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly Date: Mon, 05 Sep 2022 13:57:24 +0200 In-reply-to: <87edwq7srx.fsf_-_@gnus.org> Message-ID: <87y1uy6mn5.fsf@zohomail.eu> MIME-Version: 1.0 Content-Type: text/plain X-ZohoMailClient: External X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 X-Mailman-Approved-At: Mon, 05 Sep 2022 13:15:52 -0400 Cc: Eli Zaretskii , 50951@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.0 (-) Lars Ingebrigtsen writes: > I've only lightly skimmed this thread, but it seems like at least some > of the problems were solved. Is there anything more to do here on the > Emacs side? Hi Lars and Eli, I am on emacs 28 so this might not be accurate for the development version of emacs. Right now urdu text renders fine for me using the default font which for me is, -AXIS-Zohra Unicode-normal-normal-normal-*-32-*-*-*-*-0-iso10646-1 So that aspect has improved. However if I change my font to Noto Nastaliq by evaluating, (set-fontset-font t 'arabic (font-spec :family "NotoNastaliqUrdu")) rendering is still bad. There are nastaliq fonts (very big ones) that render fine. My experience is that if font size is around 10 megabytes it renders fine, if the size is less than that it has problems (on my system Noto Nastaliq is 1.1M). As in the thread this is specific to emacs and not a problem with harfbuzz generally. So situation is acceptable but needs workarounds to get a good experience. Rahguzar From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 05 13:15:54 2022 Received: (at 50951) by debbugs.gnu.org; 5 Sep 2022 17:15:54 +0000 Received: from localhost ([127.0.0.1]:48742 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVFhR-0004ns-SN for submit@debbugs.gnu.org; Mon, 05 Sep 2022 13:15:54 -0400 Received: from sender11-pp-o93.zoho.eu ([31.186.226.251]:25854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVC0r-0002Xw-Vp for 50951@debbugs.gnu.org; Mon, 05 Sep 2022 09:19:46 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1662383974; cv=none; d=zohomail.eu; s=zohoarc; b=fP9igUU9ZftSQaZI9byAKrGmUfL0NiK03wR+9swjnNPobXKUJ1kqR8JhCf7+VWVQ+vsK2rot0D+mjJFMQTvX4k8kkisuNS9WG8dm37Nq8A+dur8mleNjCTrpY8Faauvco9E1avi4kQz9QwVGPB6EB84ekHycvHFL40aFXqmip0s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1662383974; h=Content-Type:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=zdHW8sWLFvSth04CE2Le7YhJxIS3CGcOjNvhKgMsHns=; b=aUL0Rj5VnY7KOFyV9RAdFtYbOIHhWq4sBR1V0RoSS2rVQ7UwpSxupOjOEtyiEVuVmCr70EhypNYYyzZW/WkVsuJ9amJHAZvpCJW4RqtNe/SuqsOjVNSD4OuqT5OcjDwf1LjXO9YThy+n+76RW+LnpuXAlKrbWyRccEuS9RoTpgM= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=zohomail.eu; spf=pass smtp.mailfrom=rahguzar@zohomail.eu; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1662383974; s=zoho; d=zohomail.eu; i=rahguzar@zohomail.eu; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Message-Id:Reply-To; bh=zdHW8sWLFvSth04CE2Le7YhJxIS3CGcOjNvhKgMsHns=; b=sKDV5HnCL5RBvvqczz3ntPk9HvN2CZiS0kCJyfKW2EiV4H4x7H9AHe1TqvwEDFtb RsSVqSODL5PqeVscJ0YSZEnoi3heMEifWLQ4buOrxVQb/qKFgMg4cwcg2dv0tC9SMKc teeuLA+yV93jNU8d0e4a5o0xD27JpAvHUUUYcyII= Received: from localhost (emp-89-220.eduroam.uu.se [130.238.89.220]) by mx.zoho.eu with SMTPS id 1662383972604331.52748534192517; Mon, 5 Sep 2022 15:19:32 +0200 (CEST) References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> User-agent: mu4e 1.8.9; emacs 28.1.50 From: Rah Guzar To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly Date: Mon, 05 Sep 2022 15:03:47 +0200 In-reply-to: <83wnaij974.fsf@gnu.org> Message-ID: <87tu5m6jrw.fsf@zohomail.eu> MIME-Version: 1.0 Content-Type: text/plain X-ZohoMailClient: External X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 X-Mailman-Approved-At: Mon, 05 Sep 2022 13:15:52 -0400 Cc: larsi@gnus.org, 50951@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.0 (-) Hi Eli, Eli Zaretskii writes: > It is unclear to me why this conclusion. Emacs uses HarfBuzz, and the > only factor that could affect that, apart from selecting the font, is > the setting of the current-iso639-language variable, which AFAIR > Rahguzar tried setting with no success. At your suggestion, I tried hb-view and it renders Noto Nastaliq fine. Similarly Libre Office which also uses harfbuzz as far as I understand, also renders it fine. Which is why I said that the problem is limited to emacs. My understanding of font rendering is non-existent but visually what seems to happen is that emacs displays all the individual atoms (glyphs?) but it doesn't know how to position them relative to each other so they overlap and obscure each other. This positioning is especially tricky in Nastaliq fonts since it can require moving all of up, down, left, right. The big fonts that emacs render correctly, take care of this by prepackaging all these combinations of characters that require anything other than right to left movement as separate shapes. Sorry, if this reads as confused. > My conclusion from this is that Noto Nastaliq is not a good font for > Urdu. On an aesthetic level, I tend to agree. But linux distributions package very few Urdu fonts and it tends to be one of the few. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 06 00:26:29 2022 Received: (at submit) by debbugs.gnu.org; 6 Sep 2022 04:26:29 +0000 Received: from localhost ([127.0.0.1]:49338 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVQAP-0007TL-HF for submit@debbugs.gnu.org; Tue, 06 Sep 2022 00:26:29 -0400 Received: from lists.gnu.org ([209.51.188.17]:34068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVQAO-0007TE-7h for submit@debbugs.gnu.org; Tue, 06 Sep 2022 00:26:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40862) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVQAG-0000Hx-HO for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2022 00:26:22 -0400 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:44929) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oVQAB-0007EO-Cd; Tue, 06 Sep 2022 00:26:16 -0400 Received: by mail-pg1-x544.google.com with SMTP id c24so9538003pgg.11; Mon, 05 Sep 2022 21:26:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date; bh=E1GZWqEIYZWkA9SbScsMADDX/7Px5gOpJ0mkdcUQIVw=; b=LSybWpgdvWkdE4BpQD5H4qzqM5UyNoSZG/RiVaw7lX+q/58nuzbO+SKKcFo3obOz4B c7vEEkktInFXPV6K/GWmNu/DId2OQ7ODdyC14xe9ZgNfRN7fRYbsxg8pkgB7Ef9+RxzN 14gJ6Znytbpb7KQPTePDsXJDDwoyyEhsNH0+8Vc01RLcVqOLmSGLxJxISixQYjnaVCQQ 3x9SdHgE6BbVLFLhMuZEl2CEPRHWnMaCvaFxqe+WI1xKNxftqCshqDzbz8wV4beIZtnK vQdf7beCkhu/SEFPZwl3O0MlSPQNUpjPs+1aT27fviALKzgJFSlStdO1G/swk769oGVQ pgzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date; bh=E1GZWqEIYZWkA9SbScsMADDX/7Px5gOpJ0mkdcUQIVw=; b=hqS9orVf5hsiDM7RtpUPIeQtkp4wsGBKfQPYThEZwO3RZGMqahAGM3Pwpjnl+4NR+C 4Ob3Y+3DJ7eZTXsVv8mLT59X9YI2FsSNnrBoDHXMI9k9CEO/8C5ATJj4ZygBNR3sn9vN 6u3PQIOkd1JgPg7Xf1bb+dHPkYfke6DHR6J6hAMudQgpxmWq31uPKIhAF1cjqT0ZjOB/ HtQsc35RwGpUnShMeWmiV7jZSB2Fi38MdI/1YEgcj/tkPcvglSgYjo5XU9QEaFYUq6JT IGczJZbWKWl4JgbS3e7x+YZjUy9lxmlkUVS3GVNvx++nFUzHGAe85ySAlPw5gfN88FIP rdhA== X-Gm-Message-State: ACgBeo29+33mlAaQGt35ukn7ajsCDLoEobeZJVg2UVzABYHIwN7xJkrv t9gZ/dPhlsccDkFjVFyQm/dxTnurn6w= X-Google-Smtp-Source: AA6agR7IFuYNRCZdnM0m3PKUcdRwcTQtogaViL8RTxnLXM5dMxXLW5kQry/hyabnt4EWTCsNMC/xcQ== X-Received: by 2002:a65:4644:0:b0:42a:dfb6:4e80 with SMTP id k4-20020a654644000000b0042adfb64e80mr44109996pgr.262.1662438373245; Mon, 05 Sep 2022 21:26:13 -0700 (PDT) Received: from localhost ([118.185.152.162]) by smtp.gmail.com with ESMTPSA id k9-20020a170902ce0900b001769e6d4fafsm4532503plg.57.2022.09.05.21.26.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Sep 2022 21:26:12 -0700 (PDT) From: Visuwesh To: Rah Guzar via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <87tu5m6jrw.fsf@zohomail.eu> (Rah Guzar via's message of "Mon, 05 Sep 2022 15:03:47 +0200") References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> Date: Tue, 06 Sep 2022 09:56:09 +0530 Message-ID: <87r10pb02m.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::544; envelope-from=visuweshm@gmail.com; helo=mail-pg1-x544.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: Rah Guzar , Eli Zaretskii , larsi@gnus.org, 50951@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: -2.3 (--) [=E0=AE=A4=E0=AE=BF=E0=AE=99=E0=AF=8D=E0=AE=95=E0=AE=B3=E0=AF=8D =E0=AE=9A= =E0=AF=86=E0=AE=AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0= =AF=8D 05, 2022] Rah Guzar via "Bug reports for GNU Emacs, the Swiss army k= nife of text editors" wrote: > Hi Eli, > Eli Zaretskii writes: > >> It is unclear to me why this conclusion. Emacs uses HarfBuzz, and the >> only factor that could affect that, apart from selecting the font, is >> the setting of the current-iso639-language variable, which AFAIR >> Rahguzar tried setting with no success. > > At your suggestion, I tried hb-view and it renders Noto Nastaliq fine. > Similarly Libre Office which also uses harfbuzz as far as I understand, > also renders it fine. Which is why I said that the problem is limited to > emacs. My understanding of font rendering is non-existent but visually > what seems to happen is that emacs displays all the individual atoms > (glyphs?) but it doesn't know how to position them relative to each > other so they overlap and obscure each other. This positioning is > especially tricky in Nastaliq fonts since it can require moving all of > up, down, left, right. The big fonts that emacs render correctly, take > care of this by prepackaging all these combinations of characters that > require anything other than right to left movement as separate shapes. To my ears, this sounds an awful lot like bug#54646 where I faced similar font clipping issues with Noto Serif Tamil (and other Tamil fonts). The issues with clipping and other glyph placement issues went away when I used the Xft+Harfbuzz backend, perhaps that might fix your issue as well? But you might trade crisp font rendering for a slightly blurry one though; in my case it was a trade-off I had to make. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 06 07:05:33 2022 Received: (at submit) by debbugs.gnu.org; 6 Sep 2022 11:05:33 +0000 Received: from localhost ([127.0.0.1]:49765 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVWOb-00069r-4f for submit@debbugs.gnu.org; Tue, 06 Sep 2022 07:05:33 -0400 Received: from lists.gnu.org ([209.51.188.17]:53102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVWOZ-00069j-1w for submit@debbugs.gnu.org; Tue, 06 Sep 2022 07:05:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49330) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVWOY-0001ew-6p for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2022 07:05:30 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48930) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVWOW-0005RG-So; Tue, 06 Sep 2022 07:05:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ZDnQBWWMQYhT2T8GnUI/12afugbShLZ/cPttAWn3wEg=; b=Ti2Co9fZ+cDB OCV4zui0ENoBr5u+ZBtVN9sIJd7I0d1OmORXuVJ4w+aMH0T/3je/cmLhcLRxbyK3bywdVzr2ZcRqW UpvNP5JOi3xgJjvN7Eqf009h3eScRmla8ls3m9f/o5/de+NDKHf6C/KBwOo+5VmHYMDI+5xZ0SoVf UEElnsvPU2Y/sP7laJL8aANWPHR+e4gDkUaSY33JFOcA0LG0bUkSUZ/Tf+B2hjYfINUn4v04FMpBj g/CDRnTqK8VM1ukE78rPLvUwomrHNsvO3aSdkEglqu3sp1Gx170jyf382yOW6KFeIKgvbMtTJFpgl VYj4s6d3Ht9rKxWwk/uRuQ==; Received: from [87.69.77.57] (port=1180 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 1oVWOV-0003Mw-EA; Tue, 06 Sep 2022 07:05:28 -0400 Date: Tue, 06 Sep 2022 14:05:06 +0300 Message-Id: <83h71kkbkt.fsf@gnu.org> From: Eli Zaretskii To: Visuwesh In-Reply-To: <87r10pb02m.fsf@gmail.com> (message from Visuwesh on Tue, 06 Sep 2022 09:56:09 +0530) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <87r10pb02m.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: rahguzar@zohomail.eu, bug-gnu-emacs@gnu.org, larsi@gnus.org, 50951@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: -3.3 (---) > From: Visuwesh > Cc: Eli Zaretskii , Rah Guzar , > larsi@gnus.org, 50951@debbugs.gnu.org > Date: Tue, 06 Sep 2022 09:56:09 +0530 > > The issues with clipping and other glyph placement issues went > away when I used the Xft+Harfbuzz backend As opposed to what? Cairo+HarfBuzz? or something else? From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 06 09:18:49 2022 Received: (at submit) by debbugs.gnu.org; 6 Sep 2022 13:18:49 +0000 Received: from localhost ([127.0.0.1]:50097 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVYTZ-0008LS-AN for submit@debbugs.gnu.org; Tue, 06 Sep 2022 09:18:49 -0400 Received: from lists.gnu.org ([209.51.188.17]:55832) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVYTX-0008LD-F9 for submit@debbugs.gnu.org; Tue, 06 Sep 2022 09:18:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVYTW-00017d-RS for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2022 09:18:47 -0400 Received: from mail-pj1-x1044.google.com ([2607:f8b0:4864:20::1044]:41701) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oVYTP-0006mQ-DA; Tue, 06 Sep 2022 09:18:46 -0400 Received: by mail-pj1-x1044.google.com with SMTP id q15-20020a17090a304f00b002002ac83485so7423700pjl.0; Tue, 06 Sep 2022 06:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date; bh=bsPWu1qLBQc697rMBROFMoPCm3cLe7KPSFVvhdTc3G4=; b=hAyc1AXI6mfPpawqZA3Kg61yZBY1Nirh8UU3wUFmnbNqYxacquunc6npCe+3RjzosC uVdRW4XEZ0rcdQAar9M7hNTtQOEqAQXXoWaQOdpwFgj2DLkn8qdDI2EuSGy5YOCz1qDb ZcX8+kBXShhG13JQwwecyMztGBSOmMu5yo1vZ9iXknKM0TwNhYE3mPyczyZUJt9BN5fE IN3ehjHn5NyS4ys+R1kLzhnHHzBZEXy8x012PT2coa3bWN5aU3dHcp3sbc4dGQWmkVHu tNoe6UCeJo0FuaUFvOfitRHjm+vruJHqcszpy3P+lsSeIiDVKAAUBQzMkB9Ok4Se2xTl nuxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date; bh=bsPWu1qLBQc697rMBROFMoPCm3cLe7KPSFVvhdTc3G4=; b=fzTZTolbWuie4jFOlYNOqbIwRr6Z7ciGLTRJ0Dh2ur5s87B2kCmE5B6RsecCVpxKKC sGwvgwDYcGIsmpSe/8B8iESv+sXydXwh/ugMwUeMFYMXduhSl6Zw3lFSUiXaZgLcQ0Gr idkCeTqOaGTFUuh8t6XqCoJXR7qgNcKABvGajnLgY3FCLVo8POJnGrQzbpFn3tc/wWLx jLavI0GXqRkS1Koofx/HORTSzKSAnE1dtXSQbQir9NK3x5ZoOf6M1K86veyJRFXxwMsC i4RFbUlV8gEhtr4LRQNGhIgRzrv/WigkgSzXpYEMSPSDYKv19ou2jiwj52bXWlXzD5uQ xXbg== X-Gm-Message-State: ACgBeo3jV1J7RXjONkJVuNqtQVTbgJw8AZ+lpklEZSklYPgkqSaO+ILn Smn8MHzCSGxhXb2rYOMx5k6ClwquUZk= X-Google-Smtp-Source: AA6agR4HZlnVeoEYAS+qOtgoetfMDv8UjQQlBYlIAcZdBMhWkjhdD3a0aMSqWV+LojAF+rp5iUrrhQ== X-Received: by 2002:a17:903:1205:b0:171:4f8d:22a7 with SMTP id l5-20020a170903120500b001714f8d22a7mr53222047plh.164.1662470317076; Tue, 06 Sep 2022 06:18:37 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with ESMTPSA id d4-20020a17090ad3c400b001f2fa09786asm8899554pjw.19.2022.09.06.06.18.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Sep 2022 06:18:36 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <83h71kkbkt.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 06 Sep 2022 14:05:06 +0300") References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <87r10pb02m.fsf@gmail.com> <83h71kkbkt.fsf@gnu.org> Date: Tue, 06 Sep 2022 18:48:33 +0530 Message-ID: <87o7vsljyu.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::1044; envelope-from=visuweshm@gmail.com; helo=mail-pj1-x1044.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: rahguzar@zohomail.eu, bug-gnu-emacs@gnu.org, larsi@gnus.org, 50951@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: -2.3 (--) [=E0=AE=9A=E0=AF=86=E0=AE=B5=E0=AF=8D=E0=AE=B5=E0=AE=BE=E0=AE=AF=E0=AF=8D = =E0=AE=9A=E0=AF=86=E0=AE=AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0= =AE=B0=E0=AF=8D 06, 2022] Eli Zaretskii wrote: >> From: Visuwesh >> Cc: Eli Zaretskii , Rah Guzar , >> larsi@gnus.org, 50951@debbugs.gnu.org >> Date: Tue, 06 Sep 2022 09:56:09 +0530 >>=20 >> The issues with clipping and other glyph placement issues went >> away when I used the Xft+Harfbuzz backend > > As opposed to what? Cairo+HarfBuzz? or something else? Cairo+Harfbuzz. From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 07 02:18:30 2022 Received: (at 50951) by debbugs.gnu.org; 7 Sep 2022 06:18:30 +0000 Received: from localhost ([127.0.0.1]:53214 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVoOM-0006xv-Aq for submit@debbugs.gnu.org; Wed, 07 Sep 2022 02:18:30 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:59762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVoOH-0006xi-DF for 50951@debbugs.gnu.org; Wed, 07 Sep 2022 02:18:28 -0400 Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id D6DF1F08EA; Wed, 7 Sep 2022 15:18:21 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) Date: Wed, 07 Sep 2022 15:18:21 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Rah Guzar Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <87tu5m6jrw.fsf@zohomail.eu> References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: Eli Zaretskii , larsi@gnus.org, 50951@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.0 (-) On Mon, 05 Sep 2022 22:03:47 +0900, Rah Guzar via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > > At your suggestion, I tried hb-view and it renders Noto Nastaliq fine. > Similarly Libre Office which also uses harfbuzz as far as I understand, > also renders it fine. Which is why I said that the problem is limited to > emacs. Probably the following change will fix the problem: diff --git a/src/hbfont.c b/src/hbfont.c index 2721a66120..01db522909 100644 --- a/src/hbfont.c +++ b/src/hbfont.c @@ -598,6 +598,8 @@ hbfont_shape (Lisp_Object lgstring, Lisp_Object direction) make_fixnum (xoff), make_fixnum (yoff), make_fixnum (wadjust))); + else + LGLYPH_SET_ADJUSTMENT (lglyph, Qnil); } return make_fixnum (glyph_len); The other shapers except uniscribe_shape need to be changed, too. Alternatively, one could clear garbage entries at the caller side: diff --git a/src/composite.c b/src/composite.c index 22422cca09..249d7587f6 100644 --- a/src/composite.c +++ b/src/composite.c @@ -876,7 +876,8 @@ fill_gstring_body (Lisp_Object gstring) } LGLYPH_SET_ADJUSTMENT (g, Qnil); } - if (i < LGSTRING_GLYPH_LEN (gstring)) + len = LGSTRING_GLYPH_LEN (gstring); + for (; i < len; i++) LGSTRING_SET_GLYPH (gstring, i, Qnil); } YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 07 07:28:17 2022 Received: (at 50951) by debbugs.gnu.org; 7 Sep 2022 11:28:17 +0000 Received: from localhost ([127.0.0.1]:53698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVtE8-0006i4-Oh for submit@debbugs.gnu.org; Wed, 07 Sep 2022 07:28:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50376) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oVtE6-0006hq-EA for 50951@debbugs.gnu.org; Wed, 07 Sep 2022 07:28:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39726) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oVtE1-0000DW-1F; Wed, 07 Sep 2022 07:28:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=/hjyki0wI5F5sw6Qiwt2zCY0arbauX8ko12Ne8nceHY=; b=St34Wxqucu8i zLnlyqHZtAe/rjdjHc/kLteAr3EQjN4TjTiuITul/zmYuULFKN/M4E4TzGpDsLKySm2YB0aR3X07h BYH+9H3VC3IU2aZgy5Bd8MpBWNiR7GN6rPmLWftF5pVQngG2SjpFXv+8OJj1PMSieMn1RP7Mf9IZ+ IyAMqN7jzLUzDeJkbDf47Jz0fupOlfrwkaKAFQaMSPKRZFk9WLaIt98nbY039+1FdQxEjoohbtOVQ lf4uEiOiVcxamHyW8JqGn1zI+hd5fPPervTlHLoT4Kdj4sEmYhYGrE70uE69p6n3857Atrr7r0D2t uZ3Ap1zXreLCAcThVHyVQw==; Received: from [87.69.77.57] (port=3709 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 1oVtE0-0005jE-GL; Wed, 07 Sep 2022 07:28:08 -0400 Date: Wed, 07 Sep 2022 14:27:51 +0300 Message-Id: <835yhzifuw.fsf@gnu.org> From: Eli Zaretskii To: YAMAMOTO Mitsuharu In-Reply-To: (message from YAMAMOTO Mitsuharu on Wed, 07 Sep 2022 15:18:21 +0900) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@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: -3.3 (---) > Date: Wed, 07 Sep 2022 15:18:21 +0900 > From: YAMAMOTO Mitsuharu > Cc: Eli Zaretskii , > larsi@gnus.org, > 50951@debbugs.gnu.org > > Probably the following change will fix the problem: Thanks. Rah Guzar, can you try one of these changes and see if they fix the problem? From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 08 02:06:50 2022 Received: (at 50951) by debbugs.gnu.org; 8 Sep 2022 06:06:50 +0000 Received: from localhost ([127.0.0.1]:57006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWAgb-0002hN-QE for submit@debbugs.gnu.org; Thu, 08 Sep 2022 02:06:50 -0400 Received: from mail-pj1-f67.google.com ([209.85.216.67]:43522) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWAgZ-0002h9-7t for 50951@debbugs.gnu.org; Thu, 08 Sep 2022 02:06:48 -0400 Received: by mail-pj1-f67.google.com with SMTP id z9-20020a17090a468900b001ffff693b27so1305605pjf.2 for <50951@debbugs.gnu.org>; Wed, 07 Sep 2022 23:06:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date; bh=AJwSDoNEKTGN3rO8LhaHoqvAGkZd0XpNCsgnu6Pylhc=; b=FD278Az065fkZLvMy7Vs8is17Fi4ILmvEeaBzFllzGpIXcyC738dwGzTwXGXT0iL/U zMAVvatxDflZ8j3M12no5uE5gYSFhVf9PryTpn2y/rher9ONgC3PdvtYBAlu0KOY/3rz XIBquUfZbsApZRFuYeZiPiSEdUF0Mqrdu7mpph7y6Y1GXkjLjx0UrmxFfr1OnvyUtE8a B8A3lQzTBM8Q582niT6ilS62hm1mVi2ffNAifTkrkZj6nZIH71hwoNJc2RbHliP0hHFC D3gpCpcppjvZ22UbhEEmXjTXJwWbPDaw+LGfoDWS+pPd0a1tqPZ2Mjuxvyn3RcGZJyB9 +imQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date; bh=AJwSDoNEKTGN3rO8LhaHoqvAGkZd0XpNCsgnu6Pylhc=; b=p62r+g1f18FWjnFdJjyHr0CPsULiY9lzwhmiOLN3CNrbXaMDCXzriCOaWwP5gwBVVK Y90dMwc2zZS8bxHX6yRNz+t2CRZkdgvhSYGyj9RcELsu6jcigBPFsPHGFVWmY0XYPgzP 9QCDvJQF4Oy/qBuZBDzvLhQhEmXMXnG+qQIRT6Mw440xqrn/d6HXJ2cAMLsUnMCRsiDi 44CBlaMmTrt7kfi0mZY2kSOQ9xYrVCXdsz5EpChLzLV5URnxhNkeg1CZn6mTB60wwqri UTl1v0hOIedJT16Me8e6lOx4cJfh3MaI3RRtHRIvNueI6Jf88Yw2pilWz/C1/R3tzeWB am+w== X-Gm-Message-State: ACgBeo0syRIfRb+nvBm7bru9fqYsX9/QsPPTIfPaGfe0EbedQTFV/oGK 5uo1JWZoxeLUM0+00EtzxAM= X-Google-Smtp-Source: AA6agR5/coIYCVI99QIofgrE++C5UMeh6v70ypJ/bF2zLLxK+myDG7JxOQcwHfXT9+5JtNxoIKzUgQ== X-Received: by 2002:a17:902:eb91:b0:176:90a:8bb with SMTP id q17-20020a170902eb9100b00176090a08bbmr7287966plg.28.1662617201074; Wed, 07 Sep 2022 23:06:41 -0700 (PDT) Received: from localhost ([118.185.152.162]) by smtp.gmail.com with ESMTPSA id e11-20020a170902784b00b00176dac464e5sm4625461pln.173.2022.09.07.23.06.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Sep 2022 23:06:40 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <835yhzifuw.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 07 Sep 2022 14:27:51 +0300") References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> Date: Thu, 08 Sep 2022 11:36:31 +0530 Message-ID: <87o7vqxuvs.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, YAMAMOTO Mitsuharu 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.0 (-) [=E0=AE=AA=E0=AF=81=E0=AE=A4=E0=AE=A9=E0=AF=8D =E0=AE=9A=E0=AF=86=E0=AE=AA= =E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0=AF=8D 07, 2022] E= li Zaretskii wrote: >> Date: Wed, 07 Sep 2022 15:18:21 +0900 >> From: YAMAMOTO Mitsuharu >> Cc: Eli Zaretskii , >> larsi@gnus.org, >> 50951@debbugs.gnu.org >>=20 >> Probably the following change will fix the problem: > > Thanks. Rah Guzar, can you try one of these changes and see if they > fix the problem? Not sure about Rah Guzar, but it squashes bug#54646 for me. Thank you so very much, Yamamoto Mitsuharu! With regards to the performance, my eyes say that patch no. 1 (i.e., the one that patches src/hbfont.c) is slightly faster than patch no. 2 when I continually zoomed to reproduce bug#54646. The test material was this random webpage https://www.dinamalar.com/news_detail.asp?id=3D3117719, and M-x report-emacs-bug report on the Emacs with the patch is at the end. The test that I used is the same as I outlined in bug#54646, namely, visit that webpage in eww, zoom in and out with C-scroll-wheel. The glyphs _do not_ bump into each other or get weirdly placed whereas without the patch, glyphs can be oddly spaced. In GNU Emacs 29.0.50 (build 6, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw scroll bars) of 2022-09-08 built on astatine Repository revision: 9219e83b3c0ef53df02caf4c8ba38f482937ab50 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Debian GNU/Linux bookworm/sid Configured using: 'configure --with-sound=3Dalsa --with-x-toolkit=3Dlucid --with-json --without-xaw3d --without-gconf --without-libsystemd' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LIBOTF LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM LUCID ZLIB Important settings: value of $LC_MONETARY: ta_IN.UTF-8 value of $LC_NUMERIC: ta_IN.UTF-8 value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 09 11:07:31 2022 Received: (at 50951) by debbugs.gnu.org; 9 Sep 2022 15:07:31 +0000 Received: from localhost ([127.0.0.1]:35004 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWfbO-00037u-UD for submit@debbugs.gnu.org; Fri, 09 Sep 2022 11:07:31 -0400 Received: from sender11-pp-o93.zoho.eu ([31.186.226.251]:25888) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWfbM-00037k-2H for 50951@debbugs.gnu.org; Fri, 09 Sep 2022 11:07:29 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1662736034; cv=none; d=zohomail.eu; s=zohoarc; b=g6H1+5rVcNfu9d7oC/rm5rlSdkq5OOzikedipAtvdVWapN62t0TtxfrCG2fSspEm6p3VL7A6sFaAXeC5Y41Uut9vB+hcCmVO2A2h+yJyoilEJPNU78JOvJDOAYEKzoSCgWJuhGbpiFO78hk6FdOpKQAQFpgObRXOfKDiW1Fs3a4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1662736034; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=xDxpzaop7B9QGbLqvel745whop66XoXtTChnSLjUp2g=; b=dlpA8/IwueI0d7Sa2fo8Ut0KRNX6ZfJeYB6ERnPfWXq5PVUEkeaVOpqq4rvbeB/aKoMyGdtIsJsBU4j/sSVWyaJHwn6lwP03Z8x2kKkmoMKX9gAdRIQKJg8V4X+2wQpcc0AFT5iJdq1Kxfs6dhJFo1NGE1YHno6rMX5OJXEXrf4= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=zohomail.eu; spf=pass smtp.mailfrom=rahguzar@zohomail.eu; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1662736034; s=zoho; d=zohomail.eu; i=rahguzar@zohomail.eu; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To; bh=xDxpzaop7B9QGbLqvel745whop66XoXtTChnSLjUp2g=; b=rRaKVl1XuVYqZ8nKkSKNmt8gh/hvqIJXmRLeVMLhsTtWsSieQmGx32U3tkcLRWVH 4MKRt+B3BR181sqlomHwvIc3L5dHSPrUOAuxWZPqcN/MkZreaGIUUzTLMbpIEshUEgs SVOh55C0Ef1Vs66nFMDTfO2LvH9lmOEpquzJLd40= Received: from localhost (emp-50-83.eduroam.uu.se [130.238.50.83]) by mx.zoho.eu with SMTPS id 1662736032194791.0152555353695; Fri, 9 Sep 2022 17:07:12 +0200 (CEST) References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> User-agent: mu4e 1.8.9; emacs 28.1.50 From: Rah Guzar To: Visuwesh Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly Date: Fri, 09 Sep 2022 17:00:37 +0200 In-reply-to: <87o7vqxuvs.fsf@gmail.com> Message-ID: <87h71gwpr5.fsf@zohomail.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, Eli Zaretskii , larsi@gnus.org, YAMAMOTO Mitsuharu , 50951@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.0 (-) Unfortunately I have very limited experience with building software and none at all with applying patches so testing this will be a non-trivial undertaking. I will try to do this next weekend. But what Visuwesh describes seem exactly the symptoms I was experiencing so I am pretty positive that it will work for me too. So thank you very much indeed! Rah Guzar Visuwesh writes: > [=E0=AE=AA=E0=AF=81=E0=AE=A4=E0=AE=A9=E0=AF=8D =E0=AE=9A=E0=AF=86=E0=AE= =AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0=AF=8D 07, 2022= ] Eli Zaretskii wrote: > >>> Date: Wed, 07 Sep 2022 15:18:21 +0900 >>> From: YAMAMOTO Mitsuharu >>> Cc: Eli Zaretskii , >>> larsi@gnus.org, >>> 50951@debbugs.gnu.org >>> >>> Probably the following change will fix the problem: >> >> Thanks. Rah Guzar, can you try one of these changes and see if they >> fix the problem? > > Not sure about Rah Guzar, but it squashes bug#54646 for me. Thank you > so very much, Yamamoto Mitsuharu! > > With regards to the performance, my eyes say that patch no. 1 (i.e., the > one that patches src/hbfont.c) is slightly faster than patch no. 2 when > I continually zoomed to reproduce bug#54646. The test material was this > random webpage https://www.dinamalar.com/news_detail.asp?id=3D3117719, > and M-x report-emacs-bug report on the Emacs with the patch is at the > end. > The test that I used is the same as I outlined in bug#54646, namely, > visit that webpage in eww, zoom in and out with C-scroll-wheel. The > glyphs _do not_ bump into each other or get weirdly placed whereas > without the patch, glyphs can be oddly spaced. > > In GNU Emacs 29.0.50 (build 6, x86_64-pc-linux-gnu, X toolkit, cairo > version 1.16.0, Xaw scroll bars) of 2022-09-08 built on astatine > Repository revision: 9219e83b3c0ef53df02caf4c8ba38f482937ab50 > Repository branch: master > Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 > System Description: Debian GNU/Linux bookworm/sid > > Configured using: > 'configure --with-sound=3Dalsa --with-x-toolkit=3Dlucid --with-json > --without-xaw3d --without-gconf --without-libsystemd' > > Configured features: > ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG > JSON LIBOTF LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG > SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM > XINPUT2 XPM LUCID ZLIB > > Important settings: > value of $LC_MONETARY: ta_IN.UTF-8 > value of $LC_NUMERIC: ta_IN.UTF-8 > value of $LANG: en_GB.UTF-8 > locale-coding-system: utf-8-unix From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 11 06:26:37 2022 Received: (at 50951) by debbugs.gnu.org; 11 Sep 2022 10:26:37 +0000 Received: from localhost ([127.0.0.1]:40818 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oXKAf-0001hV-2o for submit@debbugs.gnu.org; Sun, 11 Sep 2022 06:26:37 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:43860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oXKAc-0001hH-08 for 50951@debbugs.gnu.org; Sun, 11 Sep 2022 06:26:35 -0400 Received: by mail-pg1-f193.google.com with SMTP id v4so5641164pgi.10 for <50951@debbugs.gnu.org>; Sun, 11 Sep 2022 03:26:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date; bh=O2ml4UolBSi1P9AJm12p2Mr5ZspI51NbaAs3rVrkbfc=; b=RWBNXVIPdwgZ/s0ZEGgUdSBoR0Ht128oC1ssUuOxE5xFKYj0TFkcA+JW9f1GvDW/xD lwOhJZIVdkNA3M0O6TWGYoTdQ1liOuTWXvNEQNRyHo5sFK6C787TyZ9Qa8PTJVQkfVp6 g8co3UF0XpWMJLKbroi5bgXNkXHonPtcbW5ffqhjQEtTUrrE6/lYssp7/3Yplg9ix6w8 TFhczW4foDIK4a1PBUjE8zhnpVbxtIm39KBA/Js+sT8Bzu2a77pyPqKvoP1PDFYXzcM9 Hecef2SB/e0wQ2c7sscqxN7uKii3jOHIxgfZ2X/5uMgVuwX1wEFwr860H+Dw7loMNKCS iw6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date; bh=O2ml4UolBSi1P9AJm12p2Mr5ZspI51NbaAs3rVrkbfc=; b=Gswz48rnFbyA2JZnpnQhxf1K5aEZ9iWDRWMUDaJkovx0EnG2xclZkmtQnXqfWEyb9T 2RaYYFyjuI63mFNl7B4VY+6/jU4NDjS0L/gUp9tcc/GUIxvoqYzER9abawlVBIrtLexm eWW1HemvZ6pD3pISq8TflyXcn6dQro5KkaVGksNRgTJoLMWJb8Q5AWqtMzc07+mQcy8l b8zxInFPlX+Z6ULOx4BoB3l/bJnmak+cGARAqBCL9GRqy7brdSVBLVHQ+c53f2f10VFS MhdlDXNw7ulU63sOcc9e2YWVC1tND79ksgDJKmooX14DdcXDuqEgKvOLMuZgqKXSaeJK a5+w== X-Gm-Message-State: ACgBeo2X3MZT7mlJF+R+cN0rrO4V6s8OqGKZ4EuDFdm7GYbKLAZst8jG qzuiuH5oUgEbA3CDjXbG780= X-Google-Smtp-Source: AA6agR5ln8A+WLOfDYMWXtqz5BGk0Q41B7zi0d6AjoA4f7mrgc32wQ4CBQ6WxzyDrvrjZTpHpiuqGQ== X-Received: by 2002:a65:6048:0:b0:412:73c7:cca9 with SMTP id a8-20020a656048000000b0041273c7cca9mr19740281pgp.257.1662891988149; Sun, 11 Sep 2022 03:26:28 -0700 (PDT) Received: from localhost ([118.185.152.162]) by smtp.gmail.com with ESMTPSA id u15-20020a17090a5e4f00b001f334aa9170sm3127202pji.48.2022.09.11.03.26.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Sep 2022 03:26:27 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <87o7vqxuvs.fsf@gmail.com> (Visuwesh's message of "Thu, 08 Sep 2022 11:36:31 +0530") References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> Date: Sun, 11 Sep 2022 15:56:19 +0530 Message-ID: <87h71e5hro.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, YAMAMOTO Mitsuharu 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.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=9A= =E0=AF=86=E0=AE=AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0= =AF=8D 08, 2022] Visuwesh wrote: > [=E0=AE=AA=E0=AF=81=E0=AE=A4=E0=AE=A9=E0=AF=8D =E0=AE=9A=E0=AF=86=E0=AE= =AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0=AF=8D 07, 2022= ] Eli Zaretskii wrote: > >>> Date: Wed, 07 Sep 2022 15:18:21 +0900 >>> From: YAMAMOTO Mitsuharu >>> Cc: Eli Zaretskii , >>> larsi@gnus.org, >>> 50951@debbugs.gnu.org >>>=20 >>> Probably the following change will fix the problem: >> >> Thanks. Rah Guzar, can you try one of these changes and see if they >> fix the problem? > > Not sure about Rah Guzar, but it squashes bug#54646 for me. Thank you > so very much, Yamamoto Mitsuharu! Unfortunately, this turned out to be a false alarm. Before I could easily reproduce the issue at will but now it is not so easy=E2=80=94the fa= ct that it took me so long to notice that the bug is still present speaks so. I was using patch no. 1 for the past days, I will try patch no. 2 and see if it improves the situation. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 11 07:12:06 2022 Received: (at 50951) by debbugs.gnu.org; 11 Sep 2022 11:12:06 +0000 Received: from localhost ([127.0.0.1]:40888 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oXKsg-0002vM-1Q for submit@debbugs.gnu.org; Sun, 11 Sep 2022 07:12:06 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42675) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oXKsd-0002ue-Ku for 50951@debbugs.gnu.org; Sun, 11 Sep 2022 07:12:04 -0400 Received: by mail-pf1-f194.google.com with SMTP id b23so5975225pfp.9 for <50951@debbugs.gnu.org>; Sun, 11 Sep 2022 04:12:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date; bh=qv8PCPH7UibFiWPdco5X59G4ZZ5pgrVJBwk8bHq8x1E=; b=lDgoDpfTTXOAvfeI8D4KyvRNnrhgGFfwnuiLi5767c3vhjlLk/2Pvhe5VJ61nBuDV6 MHIDZ7Uf9W7lkj7Jahqmof0wdKCCUQibcJ5kixVmngNX87BCMb/gdVxhb1fw5lh6d5i0 N5DpPQScjjUUA2hKbces0UMdnQgxXr27PnQtx2M8A/QsWElO3MtrMYehPLmGjQSQG1/+ 3oAYxh8ym2eQiAoh6IaTdYsW6rxUglzQcbK7h8+onl1efgoWKvBrFpRCSzUVuJbkfbCw k2gKvg8JgkcCvPeQMnv6TQuz2cEL+GFvmRNqhFIKWk9BQKhGK4hvKGIt//yYbM3dRkR7 vUdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date; bh=qv8PCPH7UibFiWPdco5X59G4ZZ5pgrVJBwk8bHq8x1E=; b=gs4zYzjxrXB7mHXdyr6Z7vpNp9zP6QiHQq5ahx9HnUGZuMhCuqSE+mYC5ST81fue5N hnAaSMRl7CBoAsJFpbMkI3e0DxvuOs4vsT8H0AHY7fbG39aIH4pBUZ0AFOoiZc76Re6C 4OnFCd2TGwyVDDty/C5Dd0JXO5P1oBJ7wiswMCJ+jkl3xtP4DosDZf1FCaAGn7eE+286 wblHR+DZsldU7MUTuLlIC5WpO6N30KQ0l/lmu+iUsHZgNfGX9FckyKeZHn/qFbymTtjW NOUaz2iKePhRDwJ0w2r87b0XuDImIK1zq+gFFK6cMiWnl+FHFnADwU+5/npAv2CSubYA g6tw== X-Gm-Message-State: ACgBeo2XqzsTecWwwjC5ZVzGVxzG313Cz6I/oG/4x3ahgBEeiv0fUkv8 rg3C1FrvQf+AVEXD/A6O2vk= X-Google-Smtp-Source: AA6agR5up+Nu4hUu12tFQDHlDrSfIaWvCFGSLFWqmDsyo5wHIGY1s9Eg7DaRjbrqAFIULZ5IuShl+g== X-Received: by 2002:a05:6a00:2181:b0:51b:560b:dd30 with SMTP id h1-20020a056a00218100b0051b560bdd30mr23065748pfi.44.1662894717876; Sun, 11 Sep 2022 04:11:57 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with ESMTPSA id h10-20020a170902680a00b0015e8d4eb1d5sm3739154plk.31.2022.09.11.04.11.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Sep 2022 04:11:57 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <87h71e5hro.fsf@gmail.com> (Visuwesh's message of "Sun, 11 Sep 2022 15:56:19 +0530") References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71e5hro.fsf@gmail.com> Date: Sun, 11 Sep 2022 16:41:54 +0530 Message-ID: <87edwijhc5.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, YAMAMOTO Mitsuharu 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.0 (-) [=E0=AE=9E=E0=AE=BE=E0=AE=AF=E0=AE=BF=E0=AE=B1=E0=AF=81 =E0=AE=9A=E0=AF=86= =E0=AE=AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0=AF=8D 11= , 2022] Visuwesh wrote: >> Not sure about Rah Guzar, but it squashes bug#54646 for me. Thank you >> so very much, Yamamoto Mitsuharu! > > Unfortunately, this turned out to be a false alarm. Before I could > easily reproduce the issue at will but now it is not so easy=E2=80=94the = fact > that it took me so long to notice that the bug is still present speaks > so. I was using patch no. 1 for the past days, I will try patch no. 2 > and see if it improves the situation. Patch no. 2 also exhibits the bug. I tried Rah Guzar's original test case given in [1] and [2] with the first and the second patch, and without any patches and I saw no mistakes in glyph placements. But of course, I cannot read Urdu so take this with a pound of salt... 1. https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D50951#11 2. https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D50951#26 From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 17 12:48:43 2022 Received: (at 50951) by debbugs.gnu.org; 17 Sep 2022 16:48:43 +0000 Received: from localhost ([127.0.0.1]:47046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oZazi-0006SC-UZ for submit@debbugs.gnu.org; Sat, 17 Sep 2022 12:48:43 -0400 Received: from sender11-pp-o93.zoho.eu ([31.186.226.251]:25831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oZazc-0006Rx-EP for 50951@debbugs.gnu.org; Sat, 17 Sep 2022 12:48:40 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1663433296; cv=none; d=zohomail.eu; s=zohoarc; b=HVTJz+5IJZLaGlnWEzBIUfAXQLw5fgjBtaj/RoMtd4EhIFgnKatkKKYcE3h2iQcMGct7mC91PpwFd5CkeINUSVz5qWioIBUETqwR6/ktVFVeBV1zFGXpQyCunglWtOMoigRTCDx3UT5Q/m+IpPo62BXLrBs2FoQ0LGB4sVmXvrI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1663433296; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=UPoc7XnsO4huskDTQ+dwBmOM1ft9Oet71H7N4ARMVGA=; b=a/hlcVQ7/uY4MMAohwkQcmTSNNvZCB5/UHB/ALVLNEathnhF3Zw94E/nM6TdsK1mLxfAIU549kMe60GFOUAzGjBi7K7BZH8LNHZSJSoAPpBehlCewRMqC8iZdAx+5DlRx59c0/z+97o/5NK4rLIfqhDL5paJUPhTpLpux3/Haho= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=zohomail.eu; spf=pass smtp.mailfrom=rahguzar@zohomail.eu; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1663433296; s=zoho; d=zohomail.eu; i=rahguzar@zohomail.eu; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To; bh=UPoc7XnsO4huskDTQ+dwBmOM1ft9Oet71H7N4ARMVGA=; b=It/dAhDHB4Lr1J9t9vrV2eK9WmPgpTm8nXYNHfU86p9/dqcp9FGwnE7QeASLagoO c1jlnQaZoTLjomBVNy1iyVO5p7X6AtjLsA+gwdFfDh9OSZrv6ipAqMUNQCMKBg9bLTy YWOUDfd3zQSGSraBO1/JcBqOJF0YGY+Q0JeHBfpU= Received: from localhost (c-9190225c.020-1112-7570702.bbcust.telenor.se [92.34.144.145]) by mx.zoho.eu with SMTPS id 1663433293462762.6540046301119; Sat, 17 Sep 2022 18:48:13 +0200 (CEST) References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> User-agent: mu4e 1.8.9; emacs 28.1.50 From: Rah Guzar To: Rah Guzar Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly Date: Sat, 17 Sep 2022 18:37:39 +0200 In-reply-to: <87h71gwpr5.fsf@zohomail.eu> Message-ID: <87mtayymk5.fsf@zohomail.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@debbugs.gnu.org, Eli Zaretskii , larsi@gnus.org, YAMAMOTO Mitsuharu , Visuwesh 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.0 (-) I finally tested the patches and both of them improve the situation by a lot but problems still remain. One word that is not rendered by accurately by them is =DB=81=D9=86=DA=AF=D8=A7=D9=85 Where is problem is fourth character which is character: =DA=AF=E2=80=8E (displayed as =DA=AF=E2=80=8E) (codepoin= t 1711, #o3257, #x6af) charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+F= FFF)) code point in charset: 0x06AF script: arabic This character should be rendered as a circle and two slanted lines which seem to get clipped. Both the patches seem to have the same effect, except that with the first one above a threshold I have seen a newline not getting rendered so what should be two lines appear as one. This doesn't happen with the second patch. Rah Guzar Rah Guzar writes: > Unfortunately I have very limited experience with building software and > none at all with applying patches so testing this will be a non-trivial > undertaking. I will try to do this next weekend. > > But what Visuwesh describes seem exactly the symptoms I was experiencing > so I am pretty positive that it will work for me too. So thank you very > much indeed! > > Rah Guzar > > Visuwesh writes: > >> [=E0=AE=AA=E0=AF=81=E0=AE=A4=E0=AE=A9=E0=AF=8D =E0=AE=9A=E0=AF=86=E0=AE= =AA=E0=AF=8D=E0=AE=9F=E0=AE=AE=E0=AF=8D=E0=AE=AA=E0=AE=B0=E0=AF=8D 07, 2022= ] Eli Zaretskii wrote: >> >>>> Date: Wed, 07 Sep 2022 15:18:21 +0900 >>>> From: YAMAMOTO Mitsuharu >>>> Cc: Eli Zaretskii , >>>> larsi@gnus.org, >>>> 50951@debbugs.gnu.org >>>> >>>> Probably the following change will fix the problem: >>> >>> Thanks. Rah Guzar, can you try one of these changes and see if they >>> fix the problem? >> >> Not sure about Rah Guzar, but it squashes bug#54646 for me. Thank you >> so very much, Yamamoto Mitsuharu! >> >> With regards to the performance, my eyes say that patch no. 1 (i.e., the >> one that patches src/hbfont.c) is slightly faster than patch no. 2 when >> I continually zoomed to reproduce bug#54646. The test material was this >> random webpage https://www.dinamalar.com/news_detail.asp?id=3D3117719, >> and M-x report-emacs-bug report on the Emacs with the patch is at the >> end. >> The test that I used is the same as I outlined in bug#54646, namely, >> visit that webpage in eww, zoom in and out with C-scroll-wheel. The >> glyphs _do not_ bump into each other or get weirdly placed whereas >> without the patch, glyphs can be oddly spaced. >> >> In GNU Emacs 29.0.50 (build 6, x86_64-pc-linux-gnu, X toolkit, cairo >> version 1.16.0, Xaw scroll bars) of 2022-09-08 built on astatine >> Repository revision: 9219e83b3c0ef53df02caf4c8ba38f482937ab50 >> Repository branch: master >> Windowing system distributor 'The X.Org Foundation', version 11.0.121010= 04 >> System Description: Debian GNU/Linux bookworm/sid >> >> Configured using: >> 'configure --with-sound=3Dalsa --with-x-toolkit=3Dlucid --with-json >> --without-xaw3d --without-gconf --without-libsystemd' >> >> Configured features: >> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG >> JSON LIBOTF LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG >> SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM >> XINPUT2 XPM LUCID ZLIB >> >> Important settings: >> value of $LC_MONETARY: ta_IN.UTF-8 >> value of $LC_NUMERIC: ta_IN.UTF-8 >> value of $LANG: en_GB.UTF-8 >> locale-coding-system: utf-8-unix From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 17 13:00:53 2022 Received: (at 50951) by debbugs.gnu.org; 17 Sep 2022 17:00:53 +0000 Received: from localhost ([127.0.0.1]:47062 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oZbBV-0006lc-E3 for submit@debbugs.gnu.org; Sat, 17 Sep 2022 13:00:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51716) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oZbBS-0006lM-BJ for 50951@debbugs.gnu.org; Sat, 17 Sep 2022 13:00:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55318) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oZbBJ-0006jc-Qi; Sat, 17 Sep 2022 13:00:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=dca2K1xuhueMGX3Ptmcdjy5w1/gbNozxuuFkSSKBhys=; b=PrbydkSrsDw+osKugCSE q0J3OycyB/Qfujs3iRTOCcguV0K/QCA1MS93eBAP9mdtHK635Rpcrwh8ptvR0h2EmPUM8t99eNNxY /5WxSRfvCViSXUMxpynCFC9gH51W/4oknAPtmdvE3I6iKDtDRAfLTbiRHZT8o6OgaFLZMjG918PrX 9shId3kKzaaLldkx4iRNgUKNJfN0ZOSKEHsjv23ZDkckx/ofVdmayIOr4YSQw35fhP2Bi3mNo94EK TX9FC6hRmppB1oR88W6zVnAg9uhV5OALAEP9AyW7Ev390WY35dRt5ce2RE99We0/aGGe2eYAcPJln 9ftnMAxKLFAtfw==; Received: from [87.69.77.57] (port=4549 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 1oZbBI-0000P1-Pc; Sat, 17 Sep 2022 13:00:41 -0400 Date: Sat, 17 Sep 2022 20:00:39 +0300 Message-Id: <83czbu0wco.fsf@gnu.org> From: Eli Zaretskii To: Rah Guzar In-Reply-To: <87mtayymk5.fsf@zohomail.eu> (message from Rah Guzar on Sat, 17 Sep 2022 18:37:39 +0200) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: larsi@gnus.org, 50951@debbugs.gnu.org, mituharu@math.s.chiba-u.ac.jp, visuweshm@gmail.com 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: -3.3 (---) > From: Rah Guzar > Cc: Visuwesh , Eli Zaretskii , YAMAMOTO > Mitsuharu , larsi@gnus.org, > 50951@debbugs.gnu.org > Date: Sat, 17 Sep 2022 18:37:39 +0200 > > > I finally tested the patches and both of them improve the situation by a > lot but problems still remain. One word that is not rendered by > accurately by them is > > ہنگام > > Where is problem is fourth character which is > character: گ‎ (displayed as گ‎) (codepoint 1711, #o3257, #x6af) > charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF)) > code point in charset: 0x06AF > script: arabic > > This character should be rendered as a circle and two slanted lines > which seem to get clipped. > > Both the patches seem to have the same effect, except that with the > first one above a threshold I have seen a newline not getting rendered > so what should be two lines appear as one. This doesn't happen with the > second patch. Thanks, I've now installed the second patch on the master branch. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 19 23:41:45 2022 Received: (at 50951) by debbugs.gnu.org; 20 Sep 2022 03:41:45 +0000 Received: from localhost ([127.0.0.1]:55741 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oaU8n-0006fR-2A for submit@debbugs.gnu.org; Mon, 19 Sep 2022 23:41:45 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:62672) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oaU8k-0006fI-4N for 50951@debbugs.gnu.org; Mon, 19 Sep 2022 23:41:42 -0400 Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 46802F08ED; Tue, 20 Sep 2022 12:41:40 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) Date: Tue, 20 Sep 2022 12:41:40 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Rah Guzar Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <87mtayymk5.fsf@zohomail.eu> References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Tue_Sep_20_12:41:40_2022-1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@debbugs.gnu.org, Eli Zaretskii , larsi@gnus.org, Visuwesh 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.0 (-) --Multipart_Tue_Sep_20_12:41:40_2022-1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sun, 18 Sep 2022 01:37:39 +0900, Rah Guzar wrote: >=20 >=20 > I finally tested the patches and both of them improve the situation by a > lot but problems still remain. One word that is not rendered by > accurately by them is >=20 > =DB=81=D9=86=DA=AF=D8=A7=D9=85 >=20 > Where is problem is fourth character which is > character: =DA=AF=E2=80=8E (displayed as =DA=AF=E2=80=8E) (codepo= int 1711, #o3257, #x6af) > charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U= +FFFF)) > code point in charset: 0x06AF > script: arabic >=20 > This character should be rendered as a circle and two slanted lines > which seem to get clipped. Thanks for testing. The width of grapheme cluster corresponding to U+06AF (ARABIC LETTER GAF) is rounded to zero, and Emacs does not display such clusters: xdisp.c: 32424 gstring =3D composition_gstring_from_id (it->cmp_it.id); 32425 it->pixel_width 32426 =3D composition_gstring_width (gstring, it->cmp_it.from, it->cmp_it= .to, 32427 &metrics); 32428 if (it->pixel_width =3D=3D 0) 32429 { 32430 it->glyph_not_available_p =3D true; 32431 it->phys_ascent =3D it->ascent; 32432 it->phys_descent =3D it->descent; 32433 it->pixel_width =3D face->font->space_width; 32434 } 32435 else The attached patch avoids zero-width grapheme clusters by adding 1 to the width of the last glyph in such clusters. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp --Multipart_Tue_Sep_20_12:41:40_2022-1 Content-Type: application/octet-stream; type=patch; name="avoid-zero-width-grapheme-clusters.diff" Content-Disposition: attachment; filename="avoid-zero-width-grapheme-clusters.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9jb21wb3NpdGUuYyBiL3NyYy9jb21wb3NpdGUuYwppbmRleCAyNDlk NzU4N2Y2Li41ZTg1NmZkNWU1IDEwMDY0NAotLS0gYS9zcmMvY29tcG9zaXRlLmMKKysrIGIvc3Jj L2NvbXBvc2l0ZS5jCkBAIC04MDAsNiArODAwLDQ4IEBAIGNvbXBvc2l0aW9uX2dzdHJpbmdfd2lk dGggKExpc3BfT2JqZWN0IGdzdHJpbmcsIHB0cmRpZmZfdCBmcm9tLCBwdHJkaWZmX3QgdG8sCiAg IHJldHVybiB3aWR0aDsKIH0KIAorLyogQWRqdXN0IHRoZSB3aWR0aCBvZiBlYWNoIGdyYXBoZW1l IGNsdXN0ZXIgb2YgR1NUUklORyBiZWNhdXNlCisgICB6ZXJvLXdpZHRoIGdyYXBoZW1lIGNsdXN0 ZXJzIGFyZSBub3QgZGlzcGxheWVkLiAgSWYgdGhlIHdpZHRoIGlzCisgICB6ZXJvLCB0aGVuIHRo ZSB3aWR0aCBvZiB0aGUgbGFzdCBnbHlwaCBpbiB0aGUgY2x1c3RlciBpcworICAgaW5jcmVtZW50 ZWQuICAqLworCit2b2lkCitjb21wb3NpdGlvbl9nc3RyaW5nX2FkanVzdF96ZXJvX3dpZHRoIChM aXNwX09iamVjdCBnc3RyaW5nKQoreworICBwdHJkaWZmX3QgZnJvbSA9IDA7CisgIGludCB3aWR0 aCA9IDA7CisKKyAgZm9yIChwdHJkaWZmX3QgaSA9IDA7IGkgPCBMR1NUUklOR19HTFlQSF9MRU4g KGdzdHJpbmcpOyBpKyspCisgICAgeworICAgICAgTGlzcF9PYmplY3QgZ2x5cGggPSBMR1NUUklO R19HTFlQSCAoZ3N0cmluZywgaSk7CisKKyAgICAgIGlmIChOSUxQIChnbHlwaCkgfHwgZnJvbSAh PSBMR0xZUEhfRlJPTSAoZ2x5cGgpKQorCXsKKwkgIGVhc3NlcnQgKGkgPiAwKTsKKwkgIExpc3Bf T2JqZWN0IGxhc3QgPSBMR1NUUklOR19HTFlQSCAoZ3N0cmluZywgaSAtIDEpOworCisJICBpZiAo d2lkdGggPT0gMCkKKwkgICAgeworCSAgICAgIGlmIChOSUxQIChMR0xZUEhfQURKVVNUTUVOVCAo bGFzdCkpKQorCQlMR0xZUEhfU0VUX0FESlVTVE1FTlQgKGxhc3QsCisJCQkJICAgICAgIENBTExO IChGdmVjdG9yLAorCQkJCQkgICAgICBtYWtlX2ZpeG51bSAoMCksIG1ha2VfZml4bnVtICgwKSwK KwkJCQkJICAgICAgbWFrZV9maXhudW0gKExHTFlQSF9XSURUSCAobGFzdCkKKwkJCQkJCQkgICAr IDEpKSk7CisJICAgICAgZWxzZQorCQlBU0VUIChMR0xZUEhfQURKVVNUTUVOVCAobGFzdCksIDIs CisJCSAgICAgIG1ha2VfZml4bnVtIChMR0xZUEhfV0FESlVTVCAobGFzdCkgKyAxKSk7CisJICAg IH0KKwkgIGlmIChOSUxQIChnbHlwaCkpCisJICAgIGJyZWFrOworCSAgZnJvbSA9IExHTFlQSF9G Uk9NIChnbHlwaCk7CisJICB3aWR0aCA9IDA7CisJfQorICAgICAgd2lkdGggKz0gKE5JTFAgKExH TFlQSF9BREpVU1RNRU5UIChnbHlwaCkpCisJCT8gTEdMWVBIX1dJRFRIIChnbHlwaCkgOiBMR0xZ UEhfV0FESlVTVCAoZ2x5cGgpKTsKKyAgICB9Cit9CisKIAogc3RhdGljIExpc3BfT2JqZWN0IGdz dHJpbmdfd29yazsKIHN0YXRpYyBMaXNwX09iamVjdCBnc3RyaW5nX3dvcmtfaGVhZGVyczsKZGlm ZiAtLWdpdCBhL3NyYy9jb21wb3NpdGUuaCBiL3NyYy9jb21wb3NpdGUuaAppbmRleCBkNzdkZDBk NTA2Li44YTZmZDIwM2QwIDEwMDY0NAotLS0gYS9zcmMvY29tcG9zaXRlLmgKKysrIGIvc3JjL2Nv bXBvc2l0ZS5oCkBAIC0zNDAsNiArMzQwLDcgQEAgI2RlZmluZSBMR0xZUEhfV0FESlVTVChnKSAo VkVDVE9SUCAoTEdMWVBIX0FESlVTVE1FTlQgKGcpKSBcCiBleHRlcm4gYm9vbCBjb21wb3NpdGlv bl9nc3RyaW5nX3AgKExpc3BfT2JqZWN0KTsKIGV4dGVybiBpbnQgY29tcG9zaXRpb25fZ3N0cmlu Z193aWR0aCAoTGlzcF9PYmplY3QsIHB0cmRpZmZfdCwgcHRyZGlmZl90LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm9udF9tZXRyaWNzICopOworZXh0ZXJu IHZvaWQgY29tcG9zaXRpb25fZ3N0cmluZ19hZGp1c3RfemVyb193aWR0aCAoTGlzcF9PYmplY3Qp OwogCiBleHRlcm4gYm9vbCBmaW5kX2F1dG9tYXRpY19jb21wb3NpdGlvbiAocHRyZGlmZl90LCBw dHJkaWZmX3QsIHB0cmRpZmZfdCwKIAkJCQkJcHRyZGlmZl90ICosIHB0cmRpZmZfdCAqLApkaWZm IC0tZ2l0IGEvc3JjL2ZvbnQuYyBiL3NyYy9mb250LmMKaW5kZXggNDEzY2IzODFlZS4uZGVmYmI1 MDg0YiAxMDA2NDQKLS0tIGEvc3JjL2ZvbnQuYworKysgYi9zcmMvZm9udC5jCkBAIC00Njc4LDYg KzQ2NzgsNyBAQCBERUZVTiAoImZvbnQtc2hhcGUtZ3N0cmluZyIsIEZmb250X3NoYXBlX2dzdHJp bmcsIFNmb250X3NoYXBlX2dzdHJpbmcsIDIsIDIsIDAsCiAgICAgICBmcm9tID0gTEdMWVBIX0ZS T00gKGdseXBoKTsKICAgICAgIHRvID0gTEdMWVBIX1RPIChnbHlwaCk7CiAgICAgfQorICBjb21w b3NpdGlvbl9nc3RyaW5nX2FkanVzdF96ZXJvX3dpZHRoIChnc3RyaW5nKTsKICAgcmV0dXJuIGNv bXBvc2l0aW9uX2dzdHJpbmdfcHV0X2NhY2hlIChnc3RyaW5nLCBYRklYTlVNIChuKSk7CiAKICBz aGFwZXJfZXJyb3I6Cg== --Multipart_Tue_Sep_20_12:41:40_2022-1-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 20 07:07:33 2022 Received: (at 50951) by debbugs.gnu.org; 20 Sep 2022 11:07:33 +0000 Received: from localhost ([127.0.0.1]:56303 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oab6C-000681-PF for submit@debbugs.gnu.org; Tue, 20 Sep 2022 07:07:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34416) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oab6A-00067n-H6 for 50951@debbugs.gnu.org; Tue, 20 Sep 2022 07:07:31 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35452) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oab5p-0003D8-5r; Tue, 20 Sep 2022 07:07:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ZPVr4rlWYggsaXhVU+qoD+0JkVF1r8ABImmHzIsdTtM=; b=RnopcGHuKtkA 4xQ9J+4qiFQ54SezuAXAt43mwmpX5vzltdiO2KWlxr0jqhUHV7U3pl9uXMJ+29cAVnTzvS4B12HKH pT6wb7ppqQ1zBOCu8XlMnaM9lOmkgJFu/zZ0LUQfUVK1TeNFIlSV1vltrsR5WhxULBifxs1Ikxh4z Q7unH6hT6CRe7g6eJTDKBPaOLH1tbRI9LnDS8cKWNxLfalkFI9Ucp4PO8CO0SKikI7QuucTxnQszU X+0PQOM7PD83Doc0QhdVZjglkXy7+q8A4DAS37lf0xsMwRmIpghDAsMVOzSoDksupZIqaFT+y8lG8 YAWlJ4YWrbx2sAbVK8SAIA==; Received: from [87.69.77.57] (port=4984 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 1oab5l-0006jm-U9; Tue, 20 Sep 2022 07:07:07 -0400 Date: Tue, 20 Sep 2022 14:07:12 +0300 Message-Id: <835yhixq1r.fsf@gnu.org> From: Eli Zaretskii To: YAMAMOTO Mitsuharu In-Reply-To: (message from YAMAMOTO Mitsuharu on Tue, 20 Sep 2022 12:41:40 +0900) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, visuweshm@gmail.com 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: -3.3 (---) > Date: Tue, 20 Sep 2022 12:41:40 +0900 > From: YAMAMOTO Mitsuharu > Cc: Visuwesh , > Eli Zaretskii , > larsi@gnus.org, > 50951@debbugs.gnu.org > > The width of grapheme cluster corresponding to U+06AF (ARABIC LETTER > GAF) is rounded to zero, and Emacs does not display such clusters: > > xdisp.c: > 32424 gstring = composition_gstring_from_id (it->cmp_it.id); > 32425 it->pixel_width > 32426 = composition_gstring_width (gstring, it->cmp_it.from, it->cmp_it.to, > 32427 &metrics); > 32428 if (it->pixel_width == 0) > 32429 { > 32430 it->glyph_not_available_p = true; > 32431 it->phys_ascent = it->ascent; > 32432 it->phys_descent = it->descent; > 32433 it->pixel_width = face->font->space_width; > 32434 } > 32435 else > > The attached patch avoids zero-width grapheme clusters by adding 1 to > the width of the last glyph in such clusters. If the problem is rounding, I think we should do this adjustment only when the last glyph has a non-zero width that was rounded to zero, no? Otherwise, we are inventing adjustments out of thin air, which could adversely affect the displayed result, I think? Or maybe we should have a variable that controls this heuristic? Bottom line: I'm uneasy with messing with the grapheme cluster data without some sound basis. We delegate this job to a text-shaping engine for a reason. But if there is a sound basis for this adjustment, could you please elaborate on it? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 20 08:44:52 2022 Received: (at 50951) by debbugs.gnu.org; 20 Sep 2022 12:44:53 +0000 Received: from localhost ([127.0.0.1]:56515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oaccO-0002om-JR for submit@debbugs.gnu.org; Tue, 20 Sep 2022 08:44:52 -0400 Received: from sender11-pp-o93.zoho.eu ([31.186.226.251]:25826) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oaccL-0002od-5P for 50951@debbugs.gnu.org; Tue, 20 Sep 2022 08:44:50 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1663677874; cv=none; d=zohomail.eu; s=zohoarc; b=fwwb86/ncyapJOQ6OwU4eKmfR2XAb/Cx/vcJ/BtSfAZsHHkLCgb8yIelpbP6ouO4BT065iQj6YdZsrefAtUppAvSdEesFBjeegeTEGGbf2AhwZmOuv2ejyZYYh+SBPhtW06Ubs8eiBsJD8oEfNeYVsC9Av9UEbZ+U6rIt0t2wgM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1663677874; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=uYvq0c/bGqP2ujZrxlZVGq0suMKdAg3UAFL06la/e3I=; b=H+8gUQKeCAaCcEjvolxItCpjS0K9XQWMIfZW/YB2nXuzzufHM+MClk94UzmxNMv7aGOMdiazZzn3Z2fqqGeuUtm/YM9dmBopWgakg7s+g+0wfT9CA4CVzVe+LelNrbKyfz50R7NUOV1QESaJl4qDV0K4ZIDylbNWS3Z1CWyvTQ0= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=zohomail.eu; spf=pass smtp.mailfrom=rahguzar@zohomail.eu; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1663677874; s=zoho; d=zohomail.eu; i=rahguzar@zohomail.eu; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To; bh=uYvq0c/bGqP2ujZrxlZVGq0suMKdAg3UAFL06la/e3I=; b=DMVjdMJmyQu5w2tne1mY8kS2HVJ0W6Pb/VSvEGYZ2ZR/6C9e0H7jeUgS5zlzx2t1 V63JLHBFZWWa8lbSmDjoH8FKtsm6EstXBOB01eyw++8e7x4uLTcW4o8rF7DrdecEncC ZOUb4bes6EATZtAjZ3c+XPHDmkFyRhFvFL1Zqqlw= Received: from localhost (emp-85-90.eduroam.uu.se [130.238.85.90]) by mx.zoho.eu with SMTPS id 1663677870936802.4672122769103; Tue, 20 Sep 2022 14:44:30 +0200 (CEST) References: <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> User-agent: mu4e 1.8.9; emacs 28.1.50 From: Rah Guzar To: YAMAMOTO Mitsuharu Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly Date: Tue, 20 Sep 2022 14:35:47 +0200 In-reply-to: Message-ID: <87illii5aq.fsf@zohomail.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: 50951@debbugs.gnu.org, Rah Guzar , Eli Zaretskii , larsi@gnus.org, Visuwesh 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.0 (-) Hi, Thank you so much for this patch. Rendering is perfect in my cursory tests after applying this patch. One last problem which is unrelated to this patch: the beginning of some lines is often clipped. For example for me the word, =D8=AA=D9=86=DB=81=D8=A7=D8=A6=DB=8C is shown clipped and is visible from the end of the second of two dots at the top if it is at the beginning of the line. This seems to be the case even for fonts which don't misbehave otherwise. My solution has been to set `bidi-paragraph-direction` to `left-to-right` but that is not ideal. Thanks a lot again, Rah Guzar YAMAMOTO Mitsuharu writes: > On Sun, 18 Sep 2022 01:37:39 +0900, > Rah Guzar wrote: >> >> >> I finally tested the patches and both of them improve the situation by a >> lot but problems still remain. One word that is not rendered by >> accurately by them is >> >> =DB=81=D9=86=DA=AF=D8=A7=D9=85 >> >> Where is problem is fourth character which is >> character: =DA=AF=E2=80=8E (displayed as =DA=AF=E2=80=8E) (codep= oint 1711, #o3257, #x6af) >> charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..= U+FFFF)) >> code point in charset: 0x06AF >> script: arabic >> >> This character should be rendered as a circle and two slanted lines >> which seem to get clipped. > > Thanks for testing. > > The width of grapheme cluster corresponding to U+06AF (ARABIC LETTER > GAF) is rounded to zero, and Emacs does not display such clusters: > > xdisp.c: > 32424 gstring =3D composition_gstring_from_id (it->cmp_it.id); > 32425 it->pixel_width > 32426 =3D composition_gstring_width (gstring, it->cmp_it.from, it->cmp_= it.to, > 32427 &metrics); > 32428 if (it->pixel_width =3D=3D 0) > 32429 { > 32430 it->glyph_not_available_p =3D true; > 32431 it->phys_ascent =3D it->ascent; > 32432 it->phys_descent =3D it->descent; > 32433 it->pixel_width =3D face->font->space_width; > 32434 } > 32435 else > > The attached patch avoids zero-width grapheme clusters by adding 1 to > the width of the last glyph in such clusters. > > YAMAMOTO Mitsuharu > mituharu@math.s.chiba-u.ac.jp > > [2. text/x-patch; avoid-zero-width-grapheme-clusters.diff]... From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 20 22:21:01 2022 Received: (at 50951) by debbugs.gnu.org; 21 Sep 2022 02:21:01 +0000 Received: from localhost ([127.0.0.1]:60130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oapMC-0001sW-JB for submit@debbugs.gnu.org; Tue, 20 Sep 2022 22:21:00 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:61416) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oapM8-0001sL-Tq for 50951@debbugs.gnu.org; Tue, 20 Sep 2022 22:20:58 -0400 Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id B38B5F08EB; Wed, 21 Sep 2022 11:20:54 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) Date: Wed, 21 Sep 2022 11:20:54 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <835yhixq1r.fsf@gnu.org> References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> <835yhixq1r.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Wed_Sep_21_11:20:52_2022-1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, visuweshm@gmail.com 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.0 (-) --Multipart_Wed_Sep_21_11:20:52_2022-1 Content-Type: text/plain; charset=US-ASCII On Tue, 20 Sep 2022 20:07:12 +0900, Eli Zaretskii wrote: > > > Date: Tue, 20 Sep 2022 12:41:40 +0900 > > From: YAMAMOTO Mitsuharu > > Cc: Visuwesh , > > Eli Zaretskii , > > larsi@gnus.org, > > 50951@debbugs.gnu.org > > > > The width of grapheme cluster corresponding to U+06AF (ARABIC LETTER > > GAF) is rounded to zero, and Emacs does not display such clusters: > > > > xdisp.c: > > 32424 gstring = composition_gstring_from_id (it->cmp_it.id); > > 32425 it->pixel_width > > 32426 = composition_gstring_width (gstring, it->cmp_it.from, it->cmp_it.to, > > 32427 &metrics); > > 32428 if (it->pixel_width == 0) > > 32429 { > > 32430 it->glyph_not_available_p = true; > > 32431 it->phys_ascent = it->ascent; > > 32432 it->phys_descent = it->descent; > > 32433 it->pixel_width = face->font->space_width; > > 32434 } > > 32435 else > > > > The attached patch avoids zero-width grapheme clusters by adding 1 to > > the width of the last glyph in such clusters. > > If the problem is rounding, I think we should do this adjustment only > when the last glyph has a non-zero width that was rounded to zero, no? > Otherwise, we are inventing adjustments out of thin air, which could > adversely affect the displayed result, I think? > > Or maybe we should have a variable that controls this heuristic? > > Bottom line: I'm uneasy with messing with the grapheme cluster data > without some sound basis. We delegate this job to a text-shaping > engine for a reason. But if there is a sound basis for this > adjustment, could you please elaborate on it? > > Thanks. IIUC, the only "unsound" case is that the width of a grapheme cluster is exactly 0 before rounding. I think such a case is quite rare. And even for such a case, Emacs needs to put at least extra 1 pixel to move the cursor to the position of the grapheme cluster. So the adjustment made by the patch is minimum and necessary. The current (unpatched) master may put multiple pixels (space width of the font as in Line 32433 above), and moreover the corresponding glyphs are not displayed. If we keep this behavior for the "unsound" case, the result would be much more apart from the optimal. (The attachment is for comparison between unpatched, patched, and the output of hb-view (optimal).) YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp --Multipart_Wed_Sep_21_11:20:52_2022-1 Content-Type: application/pdf; name="unpatched.pdf" Content-Disposition: attachment; filename="unpatched.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjUKJbXtrvsKNCAwIG9iago8PCAvTGVuZ3RoIDUgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlCj4+CnN0cmVhbQp4nJ1Vz6/TMAy+56/wcTu0z25+NEGIAxIXbk8q4oA4oD32JLQhvSH+ f2wn3drQ7hW0KXZi+4vjz00IkH8N8UAdwuFsXgyB/C7P8PAN4fmXEQ9Cpw6X73A0PvCKg0h56iJP 43WKCsnh7wdju4zPkr0CwXA2D8cGG9lhOJq3iEjvhh/mw3DbNuiG/WuAvZX/AmBXAB/hxfgEnk0R SME+w88bXDneHJU3X07TTlD7AC5IurgNtO+Ba7YA6iagUsXx0AJZ09A4KUu6lkViah/y7NPRa6Vj t+VD+poL52ZU27CFavbaSLW2zoRqOVOQM3CG65XIHmEW9QqrdK9XGmwdho5RW9t7GJ5uhGPbU+wr SyhBamHZqVKMI6XYJpeQU6gkp4izIsb5NLcCz5jqtFaB0cH2kwqsb3j9kDkqZlTddzrlk5awudR8 E38VXkgprgkpcU3/VkZvujmPwWOs85iY9kpyIOktc9bbxsNJg26KY2WkmhHHbKQ6QigGjvQqT0Bt iFF1NdnWUpdVvuJEiYm9WSaBF6kRpgSy1ctwWKx9XY2V7iNbrlarB+tK91GDufu+7GDfkN994jHs 3qjeVGMoPrD/OnzMTbVKEmfEeTmcsLReabQVSXcZzdBnlSTllfCsOLGc7u9W6LMJJi2eUs2icJ1p zBrqBv7KH9ewyAAcLeKgDkomr7A8jV5GZmJMYy94IXuZ0Xw+yW8zpXqmBU5/K18X5e5J9bzS7bsU 8ySo2U/Mgc2F4Opp1ScsgHW81vXbHpvtD+0/xk3e08lzWhfzP57TLTeXEn0lKNYLj+YPJmXS6gpl bmRzdHJlYW0KZW5kb2JqCjUgMCBvYmoKICAgNjA4CmVuZG9iagozIDAgb2JqCjw8CiAgIC9FeHRH U3RhdGUgPDwKICAgICAgL2EwIDw8IC9DQSAxIC9jYSAxID4+CiAgID4+CiAgIC9Gb250IDw8CiAg ICAgIC9mLTAtMSA2IDAgUgogICAgICAvZi0xLTAgNyAwIFIKICAgPj4KPj4KZW5kb2JqCjIgMCBv YmoKPDwgL1R5cGUgL1BhZ2UgJSAxCiAgIC9QYXJlbnQgMSAwIFIKICAgL01lZGlhQm94IFsgMCAw IDEwNCAxMjAgXQogICAvQ29udGVudHMgNCAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9H cm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9JIHRydWUKICAgICAgL0NTIC9EZXZp Y2VSR0IKICAgPj4KICAgL1Jlc291cmNlcyAzIDAgUgo+PgplbmRvYmoKOCAwIG9iago8PCAvTGVu Z3RoIDkgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAgIC9MZW5ndGgxIDg4OAo+PgpzdHJl YW0KeJxVk0tPE1EUx8/cebWdTtvpdGYKfc70xauY0tKCoMVEhUBCAyXKBk0VlURQNJLASmOEuFIX RhMXxpUJINHIF/AL4EoTlyYkRCWujMZI2npuIRjv3Hvn/k/mnN+5J2eAAQABBoBA9Mrs0uWF+JP7 aJkFIBMzlyrTIWnrO57foS0/gwZj3fEe9W/U8Zm5W4uSG9YB2CDq4Oz1ixUA2yTqHtTRucriPLSQ XdSTVCNjEM/HuA1gQQTIKqaSMBVzkPyqniOj1bfcxl55guOBgSUAZprtBT+AaSW7c8dJIV8wBEHz hUm2S/MJAmMbPiU6nLzTr0lO3sim28PtN66Vny9X9K4+4eSHh8nyULo32aEimamvsgNwlv0BMvKT qW4Ml9V1zSdyba32WMxm74yW2YH2iF1uTfChlBI/ij479RoZZqKQADBoDvlsV76QpzPbpRs6bphH zEolY5YgiPiYMX/EO/qiHOz0uTyy4LYHVJe7zRfSVTsfiHkmxkpEkqVYW1FLG4qd55x+l2XJkjfg LFomNPLcxu0l00GZmUNmYR+oG/RA7x6zkg2qKAg2LWVkxizLE5FUSZIdiiiktJaAGnV7JbXZMM94 tUi8J5drcjjsNi7N55pzpsshJ6KdfYiCYHWN3CYLlKdSHN6uQGuNoDChKHF/ugjdIyyvKL50dLhS 9GdMqeOIqYYUZ9i78jppmi6RE9nq2tDdm28eFEdKhdJA5MS4XfG73d29ukfhmsb7cptfV05fTSB3 qpaB3foF0JFr7YMNFwIPr/g0HFRDnrDokWSNs8WVRC2TiQZLE6bDk+1pauXiXKeStmjNcBGALYe2 dt7d/xNY9gst5ceRO0n6/jQv9deW/zxTNkW50emk4dHwE+errwC8Um15z61sHtj/DZG9B4OMjfZi fZU46zvM5/o2eQy016cOvmnBtYgL42CnAPMIk7HRf6cRTSTfsOsPaP+Pv/unkloKZW5kc3RyZWFt CmVuZG9iago5IDAgb2JqCiAgIDcyOAplbmRvYmoKMTAgMCBvYmoKPDwgL0xlbmd0aCAxMSAwIFIK ICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicXZDBbsMgDIbvPIWP7aGiybqeIqSp u+TQtVq2ByBgMqQFkEMOefsSUmXKLIH0Yf82v/mlfq+djcDv5FWDEYx1mnDwIymEFjvrWFGCtio+ Kd+ql4HxJG6mIWJfO+NZVQH/TMkh0gS7N+1b3DMA4DfSSNZ1sPu+NMtTM4bwiz26CEcmBGg0qd1V hg/ZI/AsPtQ65W2cDkn2V/E1BYQyc7F8SXmNQ5AKSboOWXVMIaAyKQRDp//lz4uqNepHUq4ulmot MpUbetnQaUOvGzqvlGY+u8/T51Wt1tRIlFzlfWY7sxHrcF158GFW5fMAnxmCkgplbmRzdHJlYW0K ZW5kb2JqCjExIDAgb2JqCiAgIDI0MAplbmRvYmoKMTIgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNj cmlwdG9yCiAgIC9Gb250TmFtZSAvUkxGT1FMK05vdG9OYXN0YWxpcVVyZHUKICAgL0ZvbnRGYW1p bHkgKE5vdG8gTmFzdGFsaXEgVXJkdSkKICAgL0ZsYWdzIDQKICAgL0ZvbnRCQm94IFsgLTM3OSAt MTM4MiA0NTMxIDE4MDUgXQogICAvSXRhbGljQW5nbGUgMAogICAvQXNjZW50IDE5MDQKICAgL0Rl c2NlbnQgLTU5NgogICAvQ2FwSGVpZ2h0IDE4MDUKICAgL1N0ZW1WIDgwCiAgIC9TdGVtSCA4MAog ICAvRm9udEZpbGUyIDggMCBSCj4+CmVuZG9iagoxMyAwIG9iago8PCAvVHlwZSAvRm9udAogICAv U3VidHlwZSAvQ0lERm9udFR5cGUyCiAgIC9CYXNlRm9udCAvUkxGT1FMK05vdG9OYXN0YWxpcVVy ZHUKICAgL0NJRFN5c3RlbUluZm8KICAgPDwgL1JlZ2lzdHJ5IChBZG9iZSkKICAgICAgL09yZGVy aW5nIChJZGVudGl0eSkKICAgICAgL1N1cHBsZW1lbnQgMAogICA+PgogICAvRm9udERlc2NyaXB0 b3IgMTIgMCBSCiAgIC9XIFswIFsgOTAwIDI2NCAwIDUyNCA0ODAgNjYwIDAgXV0KPj4KZW5kb2Jq CjYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAgL1N1YnR5cGUgL1R5cGUwCiAgIC9CYXNlRm9udCAv UkxGT1FMK05vdG9OYXN0YWxpcVVyZHUKICAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAgIC9EZXNj ZW5kYW50Rm9udHMgWyAxMyAwIFJdCiAgIC9Ub1VuaWNvZGUgMTAgMCBSCj4+CmVuZG9iagoxNCAw IG9iago8PCAvTGVuZ3RoIDE1IDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQogICAvTGVuZ3Ro MSA1MjIwCj4+CnN0cmVhbQp4nOUXa3BU1fk75+47m927rzzYPO5yDaAX2LBLQoKpWZPsKs2AIcB0 lxqyS3ZhCRKiQUAtTRS3oRtAKA2gpkw6pY/pQ05Eh+jYNp2x1Y6Tqm2o2tbRohTHmkq1pIwl2X5n dwMBi51pZ/qn5+Z853ucx/c6354AAQAD9IAAUtuWSOfvLn3jHgDVuwB0bdv2bVLJ72/+AYDWh3TP hs6NW+xTz9cB6EcANKc23nXfhkec+9twhx/imqp4LBI9rT3FAMSdyKuMI8NoEQqRRh7cEN+ybadS oatBeozTd21tiwhx1V6kLyJt3xLZ2Umf1i0DsBiRljrviXWuWfHbbyI9H0BYAhRex/GCOozaasF+ SktUoBZU4B51j6bBonKvxWUpc1lcrwvFk220ePIddfiTwR5VGAi8mjorXFLvBjN84RkwpN47WVhc aRhOnfe5c82VgljiQiBaK3UC0QkFwkVB0FGTRjAcEmy53aDrVvss0EFF9WaqKGRWgbh8XByH2vHa mtZ1LXcr2BaVE7tGlgqJ1yJ6PZUVFq9w6YWXpjYev/BA13Hy3IUz5DfCS5capp4YfEp4Fig5lzpP X1O5IAfyYbbPomEgGpnVZhYcwgm9vrDAYq12j9eINfyQcdzck+fA/WfPqVhcaZuB03XeQMDr8fs9 2VHl8ns46fFfeq7B62lo8HgbAAjxknNCgnaj73KfIm9QgXKn8Y1dFS4hMfkEbSbnjqKfTqfOCRdV VhDhzlMG9Sw11Qk53E0LLbZKs9Zs0lGSR6hktVfSMypRZ6w09qtsxGoiCdAnND4rxKlFE7vipUm0 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 S1V68aEP1e0HEFgcpBoQxgf/fReIUqkHmFl2hn3w0/AyOJuAf0SvRkxgrNMRF79GhXDGyTp2aEFb la5RudUsA+NkHrcl4Tw445kQwD8puaS4we5Z+zPeMQDg71FjtG6C3fdprE/jGsIPzugSNKzvQaOh 715leJMzAi/m/aApb9O2J9uf4msLCG2JD7Ul5TUuQSqM0k3IRNP0IIzpGTr9L/dUHWejLjIy0WZl 0xAwcTwWTsDEvSycgDS6ajTxrmq6rOnaylvijw+FE5C3vhPk+tdKuZO8stuIao2Rpit7LWPlgazD 2+qDD9lVzi9TxX+/CmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKICAgMjYxCmVuZG9iagoxOCAw IG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IKICAgL0ZvbnROYW1lIC9ZVVZHTEYrQW5kYWxl TW9ubwogICAvRm9udEZhbWlseSAoQW5kYWxlIE1vbm8pCiAgIC9GbGFncyAzMgogICAvRm9udEJC b3ggWyAwIC0yMTggNjAwIDk5NSBdCiAgIC9JdGFsaWNBbmdsZSAwCiAgIC9Bc2NlbnQgOTA3CiAg IC9EZXNjZW50IC0yMTcKICAgL0NhcEhlaWdodCA5OTUKICAgL1N0ZW1WIDgwCiAgIC9TdGVtSCA4 MAogICAvRm9udEZpbGUyIDE0IDAgUgo+PgplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAvRm9udAog ICAvU3VidHlwZSAvVHJ1ZVR5cGUKICAgL0Jhc2VGb250IC9ZVVZHTEYrQW5kYWxlTW9ubwogICAv Rmlyc3RDaGFyIDMyCiAgIC9MYXN0Q2hhciAxMTcKICAgL0ZvbnREZXNjcmlwdG9yIDE4IDAgUgog ICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwogICAvV2lkdGhzIFsgNjAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCA2MDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MDAgMCAwIDYw MCBdCiAgICAvVG9Vbmljb2RlIDE2IDAgUgo+PgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFn ZXMKICAgL0tpZHMgWyAyIDAgUiBdCiAgIC9Db3VudCAxCj4+CmVuZG9iagoxOSAwIG9iago8PCAv UHJvZHVjZXIgKGNhaXJvIDEuMTcuNCAoaHR0cHM6Ly9jYWlyb2dyYXBoaWNzLm9yZykpCiAgIC9D cmVhdGlvbkRhdGUgKEQ6MjAyMjA5MjExMDEwMDArMDknMDApCj4+CmVuZG9iagoyMCAwIG9iago8 PCAvVHlwZSAvQ2F0YWxvZwogICAvUGFnZXMgMSAwIFIKPj4KZW5kb2JqCnhyZWYKMCAyMQowMDAw MDAwMDAwIDY1NTM1IGYgCjAwMDAwMDczMzIgMDAwMDAgbiAKMDAwMDAwMDg1MCAwMDAwMCBuIAow MDAwMDAwNzIyIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDcwMCAwMDAwMCBu IAowMDAwMDAyNzk0IDAwMDAwIG4gCjAwMDAwMDY5MzAgMDAwMDAgbiAKMDAwMDAwMTA2OCAwMDAw MCBuIAowMDAwMDAxODg5IDAwMDAwIG4gCjAwMDAwMDE5MTEgMDAwMDAgbiAKMDAwMDAwMjIzMCAw MDAwMCBuIAowMDAwMDAyMjUzIDAwMDAwIG4gCjAwMDAwMDI1MzcgMDAwMDAgbiAKMDAwMDAwMjk2 MCAwMDAwMCBuIAowMDAwMDA2Mjc4IDAwMDAwIG4gCjAwMDAwMDYzMDIgMDAwMDAgbiAKMDAwMDAw NjY0MiAwMDAwMCBuIAowMDAwMDA2NjY1IDAwMDAwIG4gCjAwMDAwMDczOTcgMDAwMDAgbiAKMDAw MDAwNzUxNCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDIxCiAgIC9Sb290IDIwIDAgUgogICAv SW5mbyAxOSAwIFIKPj4Kc3RhcnR4cmVmCjc1NjcKJSVFT0YK --Multipart_Wed_Sep_21_11:20:52_2022-1 Content-Type: application/pdf; name="patched.pdf" Content-Disposition: attachment; filename="patched.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjUKJbXtrvsKNCAwIG9iago8PCAvTGVuZ3RoIDUgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlCj4+CnN0cmVhbQp4nL1WS4vbMBC+61fouDk4O5Is2Solh0IvvS249FB6KNlmoSSFTen/ 7zdjyQ+tnTVLaRI8M573fHrEaMK3MngYS/p4Uc/KaP5en/T9d9JPvxVbGKrF4PpDn5S3/EaHmETH Yj3ItYfcDCJJCoT70Cnb9PlAYYU43UXdnyqqOGN3Ul/fE5E5eCb28K37pGjfkGuQvaK9Y1Z3j4rV 7tD9VB879aCfuaAa9XktKb/oX2PS1MM8Nyp+mZuD1pOgIWgXodoYM6Cldimmn8QsR9vC2Q2TMgJD GGSJbtrXJskNLXYTUuYh6/8ELk9Resg98hjLGfQWYxXs9cqoYbzYsKwJLJSaGvx0sWIE3GE9Fcom uZrW48erzcon6zOKtI91JMyxoKiVyxvBaucidyUS8LVmbRbZwpnJLNYzDhsUXm0KK5lnMlpOjnMq JUcYe946yTSSicHol0y2NqNxds6+taeIFV1QOBo5Py5yjnh9FqeRqcFk2BExV8PzYXApwNMLPWuz D20rvKjc3hnbszi8mGkjrEEjh2cqHio5Quv5cVycfjmNlZVoXDo0nTSWV6KpKO2FO72rjL/7jGe4 eyd8VTxDstG7tFdugISKUFdNE5TWJ02uAOkmon3oi1DD42X3nqlZc76dLcEnx+QwsRhLFBnrHsae I0ngB/www0SDhjeToxgImHgDes5WiiVWxrwWPIO9jGjfH9e3GVLpaQHTP4LXVbB7FL5/Y3c2tr0Q RO0n6gB1Arg4e9O1ZXl01m27YhZP3v7gHa8YXEI4tQAKbbwL7UpQO79gEdRMgpaTfmPQefu3g25q P/0V0KvXzRv+CcCIu6d/O9Mt57psgmHxtuWLB/UXHgYHbgplbmRzdHJlYW0KZW5kb2JqCjUgMCBv YmoKICAgNjQ0CmVuZG9iagozIDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAgL2EwIDw8 IC9DQSAxIC9jYSAxID4+CiAgID4+CiAgIC9Gb250IDw8CiAgICAgIC9mLTAtMSA2IDAgUgogICAg ICAvZi0xLTAgNyAwIFIKICAgPj4KPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgJSAx CiAgIC9QYXJlbnQgMSAwIFIKICAgL01lZGlhQm94IFsgMCAwIDEwNCAxMjAgXQogICAvQ29udGVu dHMgNCAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNw YXJlbmN5CiAgICAgIC9JIHRydWUKICAgICAgL0NTIC9EZXZpY2VSR0IKICAgPj4KICAgL1Jlc291 cmNlcyAzIDAgUgo+PgplbmRvYmoKOCAwIG9iago8PCAvTGVuZ3RoIDkgMCBSCiAgIC9GaWx0ZXIg L0ZsYXRlRGVjb2RlCiAgIC9MZW5ndGgxIDExMjgKPj4Kc3RyZWFtCnicVZRbbxtFFIDPzt693rXX a+/aju29+RpfEl+3TlLHBdKEVK3VOAJeSjG9EEEKKQIpfaIC0hckkFAFEg+oL6BeqEDkhd9QCfFC JR4rVaqAqhISog9UtplxTBGjmdk5Z+bMN+fMnAUKADjoAgLrte1L5+9GknewZhuAXto6NziblH58 hMfXsa61hRXGLd9PWL6H5fTWhXd2pTBUABgGy9b2W2cGAEoXy2kyf2GwuwMF9BDLa2QeM1ax7WHm NtDAA9RVW83Yqr2KHg9fRieG3zO3n/Q3GRYouARAnaXbEAWwnWyz0UFeyzM4LhJOoXotEuY4Slhf 4X1+1h+NSH7WqJeLqeLFN/tf7g302iL33M+fZPtr5Xa2pGEyGn+A9/uUaUMQjgNouVbL69CeEeY5 judpp9loteq1VrORzboOh5UuUXmtf6tn6Dpm8txkvUEWTxXc8yr3zFEtHksnRE6ZS352umjOanMd s2FXF3xcmNUYJrZSLvTzhX6mJFKUwpoX3ZdqHlKdUKljWabZQ1/x7rkN3XTredpKJg6nfxgukYPP p/RCvGWFZUOJy6uXF5rna7Uz3hGK4Rm9JrQ/Km51VpBPyD9bWHh9fr6O/aTGN+guvEj/CTKOczbX xGGrk5PyzGxBdF1BrFh9uls0RbmQYZM5Nb2AbR6MR2idsiADYJBYk1AcOI7dNHTcYVddJ0diM4mB 7UbN0Ilr/UQlrARlLiDOaEpgNpzUNZGdcYObJ3tIkiV3djlSNlSRZfxRxXFkKTTjX3ZsmJzzPu6+ pkqEWX3K9A6AukEG5I5dJ5ub3ogQyRnVk44TNCVNkmSfynO5SH5GswIhSYsb9guhiJk+1GjEfD5R YMpsI96wFZ+csSqLGAWJ4U30HnqX8DSCw9555E1hUAoRFH9QFUR6k2ZVNVy21gfL0aotleZsLan6 U6Er32ZtW+EZnh7eXHv/7e8+Xj7W83pd88iGqEYDgWZbD6pMbGOxsf/blaNvZDD31KgKD8evgo65 zgHYUDDwqYufpxJaMpjig5IcYYS0mhlVq1ait2n7gvVDsQKTZipq2SExI+8YQE48vnM6sPQX0PSv JJR3j13Oku8vO9LSaO/vL9R9Xp5kNJpYTOz4neE3ACFptPckoO5P9f8Vgf4QVikB5xxD8mR8A/nH D6h74/voKiTw/Knpujxuu3jDV3C7ig8j4IZl9Af5V0x2FdDvOMun1P+XfwAMFrg9CmVuZHN0cmVh bQplbmRvYmoKOSAwIG9iagogICA5MjAKZW5kb2JqCjEwIDAgb2JqCjw8IC9MZW5ndGggMTEgMCBS CiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nF2Ry27EIAxF93yFl9PFiEn6mE2E NJpusuhDTfsBBEyK1AByyCJ/X0JGqaglkA72BV/Dr+1z62wE/k5edRjBWKcJJz+TQuhxsI5VNWir 4o3yrkYZGE/ibpkijq0znjUN8I+UnCItcLho3+MdAwD+RhrJugEOX9duO+rmEH5wRBfhxIQAjSZd 9yLDqxwReBYfW53yNi7HJPur+FwCQp252lpSXuMUpEKSbkDWnFIIaEwKwdDpf/nzpuqN+paUq6ut WotMdUH3BT0U9FjQU0HnnVIHt7fWXtbB7UbVTJQ85ulmc6st63D/gODDqsrrF24ahg4KZW5kc3Ry ZWFtCmVuZG9iagoxMSAwIG9iagogICAyNDMKZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9Gb250 RGVzY3JpcHRvcgogICAvRm9udE5hbWUgL1RNWlRaTytOb3RvTmFzdGFsaXFVcmR1CiAgIC9Gb250 RmFtaWx5IChOb3RvIE5hc3RhbGlxIFVyZHUpCiAgIC9GbGFncyA0CiAgIC9Gb250QkJveCBbIC0z NzkgLTEzODIgNDUzMSAxODA1IF0KICAgL0l0YWxpY0FuZ2xlIDAKICAgL0FzY2VudCAxOTA0CiAg IC9EZXNjZW50IC01OTYKICAgL0NhcEhlaWdodCAxODA1CiAgIC9TdGVtViA4MAogICAvU3RlbUgg ODAKICAgL0ZvbnRGaWxlMiA4IDAgUgo+PgplbmRvYmoKMTMgMCBvYmoKPDwgL1R5cGUgL0ZvbnQK ICAgL1N1YnR5cGUgL0NJREZvbnRUeXBlMgogICAvQmFzZUZvbnQgL1RNWlRaTytOb3RvTmFzdGFs aXFVcmR1CiAgIC9DSURTeXN0ZW1JbmZvCiAgIDw8IC9SZWdpc3RyeSAoQWRvYmUpCiAgICAgIC9P cmRlcmluZyAoSWRlbnRpdHkpCiAgICAgIC9TdXBwbGVtZW50IDAKICAgPj4KICAgL0ZvbnREZXNj cmlwdG9yIDEyIDAgUgogICAvVyBbMCBbIDkwMCAyNjQgNCAwIDUyNCA0ODAgNjYwIDAgXV0KPj4K ZW5kb2JqCjYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAgL1N1YnR5cGUgL1R5cGUwCiAgIC9CYXNl Rm9udCAvVE1aVFpPK05vdG9OYXN0YWxpcVVyZHUKICAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAg IC9EZXNjZW5kYW50Rm9udHMgWyAxMyAwIFJdCiAgIC9Ub1VuaWNvZGUgMTAgMCBSCj4+CmVuZG9i agoxNCAwIG9iago8PCAvTGVuZ3RoIDE1IDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQogICAv TGVuZ3RoMSA1MjIwCj4+CnN0cmVhbQp4nOUXa3BU1fk75+47m927rzzYPO5yDaAX2LBLQoKpWZPs Ks2AIcB0lxqyS3ZhCRKiQUAtTRS3oRtAKA2gpkw6pY/pQ05Eh+jYNp2x1Y6Tqm2o2tbRohTHmkq1 pIwl2X5ndwMBi51pZ/qn5+Z853ucx/c6354AAQAD9IAAUtuWSOfvLn3jHgDVuwB0bdv2bVLJ72/+ AYDWh3TPhs6NW+xTz9cB6EcANKc23nXfhkec+9twhx/imqp4LBI9rT3FAMSdyKuMI8NoEQqRRh7c EN+ybadSoatBeozTd21tiwhx1V6kLyJt3xLZ2Umf1i0DsBiRljrviXWuWfHbbyI9H0BYAhRex/GC OozaasF+SktUoBZU4B51j6bBonKvxWUpc1lcrwvFk220ePIddfiTwR5VGAi8mjorXFLvBjN84Rkw pN47WVhcaRhOnfe5c82VgljiQiBaK3UC0QkFwkVB0FGTRjAcEmy53aDrVvss0EFF9WaqKGRWgbh8 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 nM8AIcAaw4l9IaWYRXk16CkOMQ9HDhSHQLm2dXVdRQ7Nm+NnN/kjbL4/3DBTQLbNXHFvGuFgxo5d KCIK/iIxGfVXlHVd67Z1dV05AAlkzTh1SM9ta2quQwOb00ayWTISLyJRiYRRroN/AjvLIxsKZW5k c3RyZWFtCmVuZG9iagoxNSAwIG9iagogICAzMjIyCmVuZG9iagoxNiAwIG9iago8PCAvTGVuZ3Ro IDE3IDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJxdUMtuwyAQvPMVe0wP EY7b1D0gS1V68aEP1e0HEFgcpBoQxgf/fReIUqkHmFl2hn3w0/AyOJuAf0SvRkxgrNMRF79GhXDG yTp2aEFbla5RudUsA+NkHrcl4Tw445kQwD8puaS4we5Z+zPeMQDg71FjtG6C3fdprE/jGsIPzugS NKzvQaOh715leJMzAi/m/aApb9O2J9uf4msLCG2JD7Ul5TUuQSqM0k3IRNP0IIzpGTr9L/dUHWej LjIy0WZl0xAwcTwWTsDEvSycgDS6ajTxrmq6rOnaylvijw+FE5C3vhPk+tdKuZO8stuIao2Rpit7 LWPlgazD2+qDD9lVzi9TxX+/CmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKICAgMjYxCmVuZG9i agoxOCAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IKICAgL0ZvbnROYW1lIC9ZVVZHTEYr QW5kYWxlTW9ubwogICAvRm9udEZhbWlseSAoQW5kYWxlIE1vbm8pCiAgIC9GbGFncyAzMgogICAv Rm9udEJCb3ggWyAwIC0yMTggNjAwIDk5NSBdCiAgIC9JdGFsaWNBbmdsZSAwCiAgIC9Bc2NlbnQg OTA3CiAgIC9EZXNjZW50IC0yMTcKICAgL0NhcEhlaWdodCA5OTUKICAgL1N0ZW1WIDgwCiAgIC9T dGVtSCA4MAogICAvRm9udEZpbGUyIDE0IDAgUgo+PgplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAv Rm9udAogICAvU3VidHlwZSAvVHJ1ZVR5cGUKICAgL0Jhc2VGb250IC9ZVVZHTEYrQW5kYWxlTW9u bwogICAvRmlyc3RDaGFyIDMyCiAgIC9MYXN0Q2hhciAxMTcKICAgL0ZvbnREZXNjcmlwdG9yIDE4 IDAgUgogICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwogICAvV2lkdGhzIFsgNjAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDAgMCAwIDYwMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MDAg MCAwIDYwMCBdCiAgICAvVG9Vbmljb2RlIDE2IDAgUgo+PgplbmRvYmoKMSAwIG9iago8PCAvVHlw ZSAvUGFnZXMKICAgL0tpZHMgWyAyIDAgUiBdCiAgIC9Db3VudCAxCj4+CmVuZG9iagoxOSAwIG9i ago8PCAvUHJvZHVjZXIgKGNhaXJvIDEuMTcuNCAoaHR0cHM6Ly9jYWlyb2dyYXBoaWNzLm9yZykp CiAgIC9DcmVhdGlvbkRhdGUgKEQ6MjAyMjA5MjExMDEwNTUrMDknMDApCj4+CmVuZG9iagoyMCAw IG9iago8PCAvVHlwZSAvQ2F0YWxvZwogICAvUGFnZXMgMSAwIFIKPj4KZW5kb2JqCnhyZWYKMCAy MQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDc1NjYgMDAwMDAgbiAKMDAwMDAwMDg4NiAwMDAw MCBuIAowMDAwMDAwNzU4IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDczNiAw MDAwMCBuIAowMDAwMDAzMDI4IDAwMDAwIG4gCjAwMDAwMDcxNjQgMDAwMDAgbiAKMDAwMDAwMTEw NCAwMDAwMCBuIAowMDAwMDAyMTE4IDAwMDAwIG4gCjAwMDAwMDIxNDAgMDAwMDAgbiAKMDAwMDAw MjQ2MiAwMDAwMCBuIAowMDAwMDAyNDg1IDAwMDAwIG4gCjAwMDAwMDI3NjkgMDAwMDAgbiAKMDAw MDAwMzE5NCAwMDAwMCBuIAowMDAwMDA2NTEyIDAwMDAwIG4gCjAwMDAwMDY1MzYgMDAwMDAgbiAK MDAwMDAwNjg3NiAwMDAwMCBuIAowMDAwMDA2ODk5IDAwMDAwIG4gCjAwMDAwMDc2MzEgMDAwMDAg biAKMDAwMDAwNzc0OCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDIxCiAgIC9Sb290IDIwIDAg UgogICAvSW5mbyAxOSAwIFIKPj4Kc3RhcnR4cmVmCjc4MDEKJSVFT0YK --Multipart_Wed_Sep_21_11:20:52_2022-1 Content-Type: application/pdf; name="hb-view.pdf" Content-Disposition: attachment; filename="hb-view.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjUKJbXtrvsKNCAwIG9iago8PCAvTGVuZ3RoIDUgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlCj4+CnN0cmVhbQp4nH1OQWrDMBC86xX7Adu7krXyghE0aS6FHkp1Kz24jhUoSWjTFPr8 amMc2h7KghjNzM4sAZapqDwcLIwH826aF4LdhyHQOe2gGVD/avQ2XHynCXLx2YVH9a2SsZ7nQAXE 4NHVraUueEgH0zy+DUfoe2huxvPnsE/T1xn6POWMPFKEGGF1uzZNrrDS7pQN1a1HJAtYkxcJDtLW 9FiomF5LdfWXtxe+psBofdlyHQtfVafq5n797yktX08p8SyCjrXod1Q7FzlBEZplLx0vsl+aVBGP Fn46ntTC0XJQEKLYVkEXn9Od2STzYL4BxIhbzwplbmRzdHJlYW0KZW5kb2JqCjUgMCBvYmoKICAg MjM5CmVuZG9iagozIDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAgL2IxIDw8IC9CTSAv Tm9ybWFsID4+CiAgICAgIC9iMiA8PCAvQk0gL05vcm1hbCA+PgogICAgICAvYTAgPDwgL0NBIDEg L2NhIDEgPj4KICAgPj4KICAgL0ZvbnQgPDwKICAgICAgL2YtMC0xIDYgMCBSCiAgID4+Cj4+CmVu ZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9QYWdlICUgMQogICAvUGFyZW50IDEgMCBSCiAgIC9NZWRp YUJveCBbIDAgMCA1MjYuMDc4MTI1IDY3MiBdCiAgIC9Db250ZW50cyA0IDAgUgogICAvR3JvdXAg PDwKICAgICAgL1R5cGUgL0dyb3VwCiAgICAgIC9TIC9UcmFuc3BhcmVuY3kKICAgICAgL0kgdHJ1 ZQogICAgICAvQ1MgL0RldmljZVJHQgogICA+PgogICAvUmVzb3VyY2VzIDMgMCBSCj4+CmVuZG9i ago3IDAgb2JqCjw8IC9MZW5ndGggOCAwIFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKICAgL0xl bmd0aDEgMTEzNgo+PgpzdHJlYW0KeJxVVEtvG1UUPnNnPOPxeMYez8t2bM/L71fid52kTgqkKamo aRxBN6UyfRBBCikqUrOioqQbEEioAsQCsQHRQgUiG34AKyQkFlRiWQlUARUrBEJUtrl3bBVxde+Z e87MPd93zrlngAIAFlYBgfXczt6FO1ryW2zZAaCXt88PzyWF737H+0+xrb2NDcZnge+xfhfr6e2L l68IKlQBGIboOy+dHQKIN7Cex3r+4vDKLhTRfaw/iXULY6zjs4eZ20ADB9CQbTljy/Y6+mv0DDox +oq5/WCwxfiAmvwEQH1ClSEDUHOyrWa7UW93Oljqhq4bZKOpLOs62VzWdViOZf1azqiddJywKSiC IAZkjs1p+TnFCkUEJW7YT0U0M32o2YwFAryfqfia8aYtBcSMVV3CUHB6XIP7k2dBB1A8vHbHkJCm PoR6L5VQkuEUFxZEjfGn5cy4VrMS/S07EG4cihWYNFOVKw6Okprcm4zRBmUR7sZD7m0yPfpYYIeu 4zHH1DnWdqNm5MRHg0RVlcIiG+LnFClUVJO6wvvm3PDWyT4SRMEtrmgVQ+Z9TDAqOY4oROaCK44N HuZNehWepv8AEec3m2v1UKehYxiOKRZ41/XzVWtAr5ZMXixkfMmcnF4ENLmGD77DdCEMT+Coc5hh j+4YKk4mx9EOyQEm3mpmZxl2iWkaB5kdgwB4/PH3hhfc1MA+LrOPHFXisXSCZ6X55LtnSmZRme+Z Tbu2GGBVn8IwsbVKYZAvDDJlnqIkn3nJPVXvINmJlHuWZZp99DHnnt/UTbeRp61k4nD669FyN1tW FlJ6Id62VNGQ4uL61cXWhXr9bOcIxXCMXvd33yht99ZQwJ9/tLD4/MJCg+QG9rA4R3chCmCTeuDk 4OqyrKam0LS4lH9jjQsEfcGoJgR9RqNSSpUuvTj4cH+o15fYx354Ozs4ViHwnr/E6BZ6Fb1C6qtM rwrOHPLKm0LEHTedEiLSpH2yrFasjeFKtGYL5XlbScrBVOT6F1nbljiGo0e3jr328pdvrRzvd/qr 5pFNXo6GQq2uHpaZ2OZS8+DX60dfyADpU4S7K/538Exo+U+g6V9I6e8cv5olzx93heXx/j8fyAec 6HU08k4QvsDtjj4HiAjj/Qch+WBm/2/w9OuwTt0lPeeN0yg4uQcwuQnM5Brlhz10AxKzd6Sv35+t n7HzU3i9iYldxusb8s/wvPPoN9ztM/T/j38BOoO5PAplbmRzdHJlYW0KZW5kb2JqCjggMCBvYmoK ICAgOTIyCmVuZG9iago5IDAgb2JqCjw8IC9MZW5ndGggMTAgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlCj4+CnN0cmVhbQp4nF2Ry27EIAxF93yFl9PFiCSd1yKKVE03WfShpv0AAiZFagARssjf l5jRVKklkA72BV/Dr+1za00E/h6c7DCCNlYFnNwcJEKPg7GsrEAZGW9EuxyFZzyJu2WKOLZWO1bX wD9Scophgd2Tcj0+MADgb0FhMHaA3de1y0fd7P0PjmgjFKxpQKFO170I/ypGBE7ifatS3sRln2R/ FZ+LR6iIy9ySdAonLyQGYQdkdZGigVqnaBha9S9/yapey28RqLrM1aohqjb0uKHDho4bOiUqTkJn OhNV50wXosOR+rm9vHa2jvFuW84hJMc0a7K6mjQW79/hnV9VtH4BwQiHlAplbmRzdHJlYW0KZW5k b2JqCjEwIDAgb2JqCiAgIDI1NAplbmRvYmoKMTEgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlw dG9yCiAgIC9Gb250TmFtZSAvTFpTSUZWK05vdG9OYXN0YWxpcVVyZHUKICAgL0ZvbnRGYW1pbHkg KE5vdG8gTmFzdGFsaXEgVXJkdSkKICAgL0ZsYWdzIDQKICAgL0ZvbnRCQm94IFsgLTM3OSAtMTM4 MiA0NTMxIDE4MDUgXQogICAvSXRhbGljQW5nbGUgMAogICAvQXNjZW50IDE5MDQKICAgL0Rlc2Nl bnQgLTU5NgogICAvQ2FwSGVpZ2h0IDE4MDUKICAgL1N0ZW1WIDgwCiAgIC9TdGVtSCA4MAogICAv Rm9udEZpbGUyIDcgMCBSCj4+CmVuZG9iagoxMiAwIG9iago8PCAvVHlwZSAvRm9udAogICAvU3Vi dHlwZSAvQ0lERm9udFR5cGUyCiAgIC9CYXNlRm9udCAvTFpTSUZWK05vdG9OYXN0YWxpcVVyZHUK ICAgL0NJRFN5c3RlbUluZm8KICAgPDwgL1JlZ2lzdHJ5IChBZG9iZSkKICAgICAgL09yZGVyaW5n IChJZGVudGl0eSkKICAgICAgL1N1cHBsZW1lbnQgMAogICA+PgogICAvRm9udERlc2NyaXB0b3Ig MTEgMCBSCiAgIC9XIFswIFsgOTAwIDQ4MCAwIDAgNTI0IDAgNCAyNjQgNjYwIF1dCj4+CmVuZG9i ago2IDAgb2JqCjw8IC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9UeXBlMAogICAvQmFzZUZvbnQg L0xaU0lGVitOb3RvTmFzdGFsaXFVcmR1CiAgIC9FbmNvZGluZyAvSWRlbnRpdHktSAogICAvRGVz Y2VuZGFudEZvbnRzIFsgMTIgMCBSXQogICAvVG9Vbmljb2RlIDkgMCBSCj4+CmVuZG9iagoxIDAg b2JqCjw8IC9UeXBlIC9QYWdlcwogICAvS2lkcyBbIDIgMCBSIF0KICAgL0NvdW50IDEKPj4KZW5k b2JqCjEzIDAgb2JqCjw8IC9Qcm9kdWNlciAoY2Fpcm8gMS4xNy40IChodHRwczovL2NhaXJvZ3Jh cGhpY3Mub3JnKSkKICAgL0NyZWF0aW9uRGF0ZSAoRDoyMDIyMDkyMTA5MTMzOSswOScwMCkKPj4K ZW5kb2JqCjE0IDAgb2JqCjw8IC9UeXBlIC9DYXRhbG9nCiAgIC9QYWdlcyAxIDAgUgo+PgplbmRv YmoKeHJlZgowIDE1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMjg0NiAwMDAwMCBuIAowMDAw MDAwNTE4IDAwMDAwIG4gCjAwMDAwMDAzNTMgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAow MDAwMDAwMzMxIDAwMDAwIG4gCjAwMDAwMDI2ODEgMDAwMDAgbiAKMDAwMDAwMDc0MyAwMDAwMCBu IAowMDAwMDAxNzU5IDAwMDAwIG4gCjAwMDAwMDE3ODEgMDAwMDAgbiAKMDAwMDAwMjExMyAwMDAw MCBuIAowMDAwMDAyMTM2IDAwMDAwIG4gCjAwMDAwMDI0MjAgMDAwMDAgbiAKMDAwMDAwMjkxMSAw MDAwMCBuIAowMDAwMDAzMDI4IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMTUKICAgL1Jvb3Qg MTQgMCBSCiAgIC9JbmZvIDEzIDAgUgo+PgpzdGFydHhyZWYKMzA4MQolJUVPRgo= --Multipart_Wed_Sep_21_11:20:52_2022-1-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 20 22:25:20 2022 Received: (at 50951) by debbugs.gnu.org; 21 Sep 2022 02:25:20 +0000 Received: from localhost ([127.0.0.1]:60145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oapQO-00020H-2V for submit@debbugs.gnu.org; Tue, 20 Sep 2022 22:25:20 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:61414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oapQL-000208-Kp for 50951@debbugs.gnu.org; Tue, 20 Sep 2022 22:25:18 -0400 Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 9B9DCF08EB; Wed, 21 Sep 2022 11:25:16 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) Date: Wed, 21 Sep 2022 11:25:16 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> <835yhixq1r.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Wed_Sep_21_11:25:16_2022-1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, visuweshm@gmail.com 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.0 (-) --Multipart_Wed_Sep_21_11:25:16_2022-1 Content-Type: text/plain; charset=US-ASCII On Wed, 21 Sep 2022 11:20:54 +0900, YAMAMOTO Mitsuharu wrote: > > (The attachment is for comparison between unpatched, patched, and the > output of hb-view (optimal).) Sorry, the unpatched one was wrong. Below is the correct one. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp --Multipart_Wed_Sep_21_11:25:16_2022-1 Content-Type: application/pdf; name="unpatched.pdf" Content-Disposition: attachment; filename="unpatched.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjUKJbXtrvsKNCAwIG9iago8PCAvTGVuZ3RoIDUgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlCj4+CnN0cmVhbQp4nL1VS4/TMBC++1fMsT0kO37WRogDEhduKwVxQBxQl66EWqQt4v8z M7aT1CRt4bBtlRl7nv4+d6IB6dtpemiDsD+pF6WBv+dnePiG8PxLsYdGJw7n73BQLtGOg5DK0tBy Ny5RUlL4+0GZXc5Pkry8geGkHg4ddlxhOKi3iKjfDT/Uh2Eq6y0XdLcSBvJYTGhKwkd4UVTSUece JNdn+DllK6e7TEq1l7u0s6QhgE1kujNnoMPHpZxulrMFPTIGYcTAOF7HW5iQ23L7vgX5lTkU2DiR tmWPcWsPnT0uo25ge/USdNg73NEPsLc7tDsYniY2sectutiNMZRQHT39gDQjn2qvtGGfXEICrpHU K7c3kRUvl3wqWRG/Rq9hUT2snmGxXnH8r1JULGml8sWajlwCL6W0nMjZ83+luCbUKWj4W6neenKu wTXWeUx0hRtJgVpGyUlGioejBE2KI6XSThlrN4wPk4uBIr3II+g+xCi6mGxvtckqzTFWYiJvkonT s5QIVQLJ6vmxX0S/RWPlJmpb5qeVg9WbqDvMN/HLBrad9ptP9AybN6J3zTMUH9h+HT7me7VKEnVE fTmcsbSONNqGpKuM5tQnkZrh5fCsOLYcr1cr9MlcHBFLqWWRuc40Zg2lgB/5IwyLDEDRLPbiIGTS Dslj9VK8YmOqd8Ez2cuM5vNxf3dTKmda4PS38HUW7p5Ezztma1LMiyBmPzMHMheCm9nLjdCWSWDB 2PveKfdP4n+Mm700YXVO/8c7857RJTyP/MR241H9AfiOzPUKZW5kc3RyZWFtCmVuZG9iago1IDAg b2JqCiAgIDU4OAplbmRvYmoKMyAwIG9iago8PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8 PCAvQ0EgMSAvY2EgMSA+PgogICA+PgogICAvRm9udCA8PAogICAgICAvZi0wLTEgNiAwIFIKICAg ICAgL2YtMS0wIDcgMCBSCiAgID4+Cj4+CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9QYWdlICUg MQogICAvUGFyZW50IDEgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCAxMDQgMTIwIF0KICAgL0NvbnRl bnRzIDQgMCBSCiAgIC9Hcm91cCA8PAogICAgICAvVHlwZSAvR3JvdXAKICAgICAgL1MgL1RyYW5z cGFyZW5jeQogICAgICAvSSB0cnVlCiAgICAgIC9DUyAvRGV2aWNlUkdCCiAgID4+CiAgIC9SZXNv dXJjZXMgMyAwIFIKPj4KZW5kb2JqCjggMCBvYmoKPDwgL0xlbmd0aCA5IDAgUgogICAvRmlsdGVy IC9GbGF0ZURlY29kZQogICAvTGVuZ3RoMSA4ODgKPj4Kc3RyZWFtCnicVZNLTxNRFMfP3Hm1nU7b 6XRmCn3O9MWrmNLSgqDFRIVAQgMlygZNFZVEUDSSwEpjhLhSF0YTF8aVCSDRyBfwC+BKE5cmJEQl rozGSNp6biEY79x75/5P5pzfuSdngAEAAQaAQPTK7NLlhfiT+2iZBSATM5cq0yFp6zue36EtP4MG Y93xHvVv1PGZuVuLkhvWAdgg6uDs9YsVANsk6h7U0bnK4jy0kF3Uk1QjYxDPx7gNYEEEyCqmkjAV c5D8qp4jo9W33MZeeYLjgYElAGaa7QU/gGklu3PHSSFfMARB84VJtkvzCQJjGz4lOpy8069JTt7I ptvD7TeulZ8vV/SuPuHkh4fJ8lC6N9mhIpmpr7IDcJb9ATLyk6luDJfVdc0ncm2t9ljMZu+MltmB 9ohdbk3woZQSP4o+O/UaGWaikAAwaA75bFe+kKcz26UbOm6YR8xKJWOWIIj4mDF/xDv6ohzs9Lk8 suC2B1SXu80X0lU7H4h5JsZKRJKlWFtRSxuKneecfpdlyZI34CxaJjTy3MbtJdNBmZlDZmEfqBv0 QO8es5INqigINi1lZMYsyxORVEmSHYoopLSWgBp1eyW12TDPeLVIvCeXa3I47DYuzeeac6bLISei nX2IgmB1jdwmC5SnUhzerkBrjaAwoShxf7oI3SMsryi+dHS4UvRnTKnjiKmGFGfYu/I6aZoukRPZ 6trQ3ZtvHhRHSoXSQOTEuF3xu93dvbpH4ZrG+3KbX1dOX00gd6qWgd36BdCRa+2DDRcCD6/4NBxU Q56w6JFkjbPFlUQtk4kGSxOmw5PtaWrl4lynkrZozXARgC2Htnbe3f8TWPYLLeXHkTtJ+v40L/XX lv88UzZFudHppOHR8BPnq68AvFJtec+tbB7Y/w2RvQeDjI32Yn2VOOs7zOf6NnkMtNenDr5pwbWI C+NgpwDzCJOx0X+nEU0k37DrD2j/j7/7p5JaCmVuZHN0cmVhbQplbmRvYmoKOSAwIG9iagogICA3 MjgKZW5kb2JqCjEwIDAgb2JqCjw8IC9MZW5ndGggMTEgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVj b2RlCj4+CnN0cmVhbQp4nF2QwW7DIAyG7zyFj+2hosm6niKkqbvk0LVatgcgYDKkBZBDDnn7ElJl yiyB9GH/Nr/5pX6vnY3A7+RVgxGMdZpw8CMphBY761hRgrYqPinfqpeB8SRupiFiXzvjWVUB/0zJ IdIEuzftW9wzAOA30kjWdbD7vjTLUzOG8Is9ughHJgRoNKndVYYP2SPwLD7UOuVtnA5J9lfxNQWE MnOxfEl5jUOQCkm6Dll1TCGgMikEQ6f/5c+LqjXqR1KuLpZqLTKVG3rZ0GlDrxs6r5RmPrvP0+dV rdbUSJRc5X1mO7MR63BdefBhVuXzAJ8ZgpIKZW5kc3RyZWFtCmVuZG9iagoxMSAwIG9iagogICAy NDAKZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvcgogICAvRm9udE5hbWUg L1JMRk9RTCtOb3RvTmFzdGFsaXFVcmR1CiAgIC9Gb250RmFtaWx5IChOb3RvIE5hc3RhbGlxIFVy ZHUpCiAgIC9GbGFncyA0CiAgIC9Gb250QkJveCBbIC0zNzkgLTEzODIgNDUzMSAxODA1IF0KICAg L0l0YWxpY0FuZ2xlIDAKICAgL0FzY2VudCAxOTA0CiAgIC9EZXNjZW50IC01OTYKICAgL0NhcEhl aWdodCAxODA1CiAgIC9TdGVtViA4MAogICAvU3RlbUggODAKICAgL0ZvbnRGaWxlMiA4IDAgUgo+ PgplbmRvYmoKMTMgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAgL1N1YnR5cGUgL0NJREZvbnRUeXBl MgogICAvQmFzZUZvbnQgL1JMRk9RTCtOb3RvTmFzdGFsaXFVcmR1CiAgIC9DSURTeXN0ZW1JbmZv CiAgIDw8IC9SZWdpc3RyeSAoQWRvYmUpCiAgICAgIC9PcmRlcmluZyAoSWRlbnRpdHkpCiAgICAg IC9TdXBwbGVtZW50IDAKICAgPj4KICAgL0ZvbnREZXNjcmlwdG9yIDEyIDAgUgogICAvVyBbMCBb IDkwMCAyNjQgMCA1MjQgNDgwIDY2MCAwIF1dCj4+CmVuZG9iago2IDAgb2JqCjw8IC9UeXBlIC9G b250CiAgIC9TdWJ0eXBlIC9UeXBlMAogICAvQmFzZUZvbnQgL1JMRk9RTCtOb3RvTmFzdGFsaXFV cmR1CiAgIC9FbmNvZGluZyAvSWRlbnRpdHktSAogICAvRGVzY2VuZGFudEZvbnRzIFsgMTMgMCBS XQogICAvVG9Vbmljb2RlIDEwIDAgUgo+PgplbmRvYmoKMTQgMCBvYmoKPDwgL0xlbmd0aCAxNSAw IFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKICAgL0xlbmd0aDEgNTIyMAo+PgpzdHJlYW0KeJzl F2twVNX5O+fuO5vdu6882Dzucg2gF9iwS0KCqVmT7CrNgCHAdJcaskt2YQkSokFALU0Ut6EbQCgN oKZMOqWP6UNORIfo2DadsdWOk6ptqNrW0aIUx5pKtaSMJdl+Z3cDAYudaWf6p+fmfOd7nMf3Ot+e AAEAA/SAAFLblkjn7y594x4A1bsAdG3b9m1Sye9v/gGA1od0z4bOjVvsU8/XAehHADSnNt5134ZH nPvbcIcf4pqqeCwSPa09xQDEncirjCPDaBEKkUYe3BDfsm2nUqGrQXqM03dtbYsIcdVepC8ibd8S 2dlJn9YtA7AYkZY674l1rlnx228iPR9AWAIUXsfxgjqM2mrBfkpLVKAWVOAedY+mwaJyr8VlKXNZ XK8LxZNttHjyHXX4k8EeVRgIvJo6K1xS7wYzfOEZMKTeO1lYXGkYTp33uXPNlYJY4kIgWit1AtEJ BcJFQdBRk0YwHBJsud2g61b7LNBBRfVmqihkVoG4fFwch9rx2prWdS13K9gWlRO7RpYKidciej2V FRavcOmFl6Y2Hr/wQNdx8tyFM+Q3wkuXGqaeGHxKeBYoOZc6T19TuSAH8mG2z6JhIBqZ1WYWHMIJ vb6wwGKtdo/XiDX8kHHc3JPnwP1nz6lYXGmbgdN13kDA6/H7PdlR5fJ7OOnxX3quwetpaPB4GwAI 8ZJzQoJ2o+9ynyJvUIFyp/GNXRUuITH5BG0m546in06nzgkXVVYQ4c5TBvUsNdUJOdxNCy22SrPW bNJRkkeoZLVX0jMqUWesNParbMRqIgnQJzQ+K8SpRRO74qVJtKB2XJlU0FGjtTV4oEIQdckVWW/Z 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 iFKpB5hZdoZ98NPwMjibgH9Er0ZMYKzTERe/RoVwxsk6dmhBW5WuUbnVLAPjZB63JeE8OOOZEMA/ KbmkuMHuWfsz3jEA4O9RY7Rugt33aaxP4xrCD87oEjSs70Gjoe9eZXiTMwIv5v2gKW/Ttifbn+Jr CwhtiQ+1JeU1LkEqjNJNyETT9CCM6Rk6/S/3VB1noy4yMtFmZdMQMHE8Fk7AxL0snIA0umo08a5q uqzp2spb4o8PhROQt74T5PrXSrmTvLLbiGqNkaYrey1j5YGsw9vqgw/ZVc4vU8V/vwplbmRzdHJl YW0KZW5kb2JqCjE3IDAgb2JqCiAgIDI2MQplbmRvYmoKMTggMCBvYmoKPDwgL1R5cGUgL0ZvbnRE ZXNjcmlwdG9yCiAgIC9Gb250TmFtZSAvWVVWR0xGK0FuZGFsZU1vbm8KICAgL0ZvbnRGYW1pbHkg KEFuZGFsZSBNb25vKQogICAvRmxhZ3MgMzIKICAgL0ZvbnRCQm94IFsgMCAtMjE4IDYwMCA5OTUg XQogICAvSXRhbGljQW5nbGUgMAogICAvQXNjZW50IDkwNwogICAvRGVzY2VudCAtMjE3CiAgIC9D YXBIZWlnaHQgOTk1CiAgIC9TdGVtViA4MAogICAvU3RlbUggODAKICAgL0ZvbnRGaWxlMiAxNCAw IFIKPj4KZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAgL1N1YnR5cGUgL1RydWVUeXBl CiAgIC9CYXNlRm9udCAvWVVWR0xGK0FuZGFsZU1vbm8KICAgL0ZpcnN0Q2hhciAzMgogICAvTGFz dENoYXIgMTE3CiAgIC9Gb250RGVzY3JpcHRvciAxOCAwIFIKICAgL0VuY29kaW5nIC9XaW5BbnNp RW5jb2RpbmcKICAgL1dpZHRocyBbIDYwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MDAgMCAw IDAgMCA2MDAgMCAwIDAgMCAwIDAgMCA2MDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjAwIDAgMCA2MDAgXQogICAgL1RvVW5pY29kZSAx NiAwIFIKPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCiAgIC9LaWRzIFsgMiAwIFIg XQogICAvQ291bnQgMQo+PgplbmRvYmoKMTkgMCBvYmoKPDwgL1Byb2R1Y2VyIChjYWlybyAxLjE3 LjQgKGh0dHBzOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQogICAvQ3JlYXRpb25EYXRlIChEOjIwMjIw OTIxMTA0MjI0KzA5JzAwKQo+PgplbmRvYmoKMjAgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cKICAg L1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgMjEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAw MDA3MzEyIDAwMDAwIG4gCjAwMDAwMDA4MzAgMDAwMDAgbiAKMDAwMDAwMDcwMiAwMDAwMCBuIAow MDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDA2ODAgMDAwMDAgbiAKMDAwMDAwMjc3NCAwMDAwMCBu IAowMDAwMDA2OTEwIDAwMDAwIG4gCjAwMDAwMDEwNDggMDAwMDAgbiAKMDAwMDAwMTg2OSAwMDAw MCBuIAowMDAwMDAxODkxIDAwMDAwIG4gCjAwMDAwMDIyMTAgMDAwMDAgbiAKMDAwMDAwMjIzMyAw MDAwMCBuIAowMDAwMDAyNTE3IDAwMDAwIG4gCjAwMDAwMDI5NDAgMDAwMDAgbiAKMDAwMDAwNjI1 OCAwMDAwMCBuIAowMDAwMDA2MjgyIDAwMDAwIG4gCjAwMDAwMDY2MjIgMDAwMDAgbiAKMDAwMDAw NjY0NSAwMDAwMCBuIAowMDAwMDA3Mzc3IDAwMDAwIG4gCjAwMDAwMDc0OTQgMDAwMDAgbiAKdHJh aWxlcgo8PCAvU2l6ZSAyMQogICAvUm9vdCAyMCAwIFIKICAgL0luZm8gMTkgMCBSCj4+CnN0YXJ0 eHJlZgo3NTQ3CiUlRU9GCg== --Multipart_Wed_Sep_21_11:25:16_2022-1-- From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 22 01:37:40 2022 Received: (at 50951) by debbugs.gnu.org; 22 Sep 2022 05:37:40 +0000 Received: from localhost ([127.0.0.1]:35828 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1obEu3-00067o-SM for submit@debbugs.gnu.org; Thu, 22 Sep 2022 01:37:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1obEu0-00067Z-CC for 50951@debbugs.gnu.org; Thu, 22 Sep 2022 01:37:38 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52302) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1obEtu-0002YL-22; Thu, 22 Sep 2022 01:37:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=EbNEMt+sCVMhlktB0ZMrhk8A7XTXcE25ajuqBQ1FDTE=; b=EIqNk+Z6SOVB 5zOgqIRMWcuAF/5gdynGDPJl2dUBUW5q3DCMV91QK+hrXpEuKyaTAx220b/sRnn0ad3JZfRGlx+tz O1AAYj0TVGex2nUWtbrAKiRfNzmhLwi7sWheKkpxSgGh1WfM+dRJxyq53qPoT6LRCYgGh6x34Npiy /a9PHm5ByEf16bdauC1OcwcWxoePkmeFgaXFvYYymRLysWfs+E0pAVA59KhxNYF9RUpU9izkobOsq RbIxWwKYyl2aaSkf3x14DBDMUVFmmL8DnZ0pz6q7fkt6A89x9Q13IC9x3eg3xd3qjzG+cnay/xZQR CvJkv2qS81M7BD+1A7Dv/A==; Received: from [87.69.77.57] (port=2359 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 1obEtf-0001ht-Rw; Thu, 22 Sep 2022 01:37:29 -0400 Date: Thu, 22 Sep 2022 08:37:24 +0300 Message-Id: <83h710t1ez.fsf@gnu.org> From: Eli Zaretskii To: YAMAMOTO Mitsuharu In-Reply-To: (message from YAMAMOTO Mitsuharu on Wed, 21 Sep 2022 11:20:54 +0900) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> <835yhixq1r.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, visuweshm@gmail.com 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: -3.3 (---) > Date: Wed, 21 Sep 2022 11:20:54 +0900 > From: YAMAMOTO Mitsuharu > Cc: rahguzar@zohomail.eu, > visuweshm@gmail.com, > larsi@gnus.org, > 50951@debbugs.gnu.org > > > If the problem is rounding, I think we should do this adjustment only > > when the last glyph has a non-zero width that was rounded to zero, no? > > Otherwise, we are inventing adjustments out of thin air, which could > > adversely affect the displayed result, I think? > > > > Or maybe we should have a variable that controls this heuristic? > > > > Bottom line: I'm uneasy with messing with the grapheme cluster data > > without some sound basis. We delegate this job to a text-shaping > > engine for a reason. But if there is a sound basis for this > > adjustment, could you please elaborate on it? > > > > Thanks. > > IIUC, the only "unsound" case is that the width of a grapheme cluster > is exactly 0 before rounding. I think such a case is quite rare. And > even for such a case, Emacs needs to put at least extra 1 pixel to > move the cursor to the position of the grapheme cluster. So the > adjustment made by the patch is minimum and necessary. > > The current (unpatched) master may put multiple pixels (space width of > the font as in Line 32433 above), and moreover the corresponding > glyphs are not displayed. If we keep this behavior for the "unsound" > case, the result would be much more apart from the optimal. Can you please point me to the place(s) in our code where this rounding takes place? Also, I asked whether you could elaborate on the rationale for adjusting the zero width to be 1 pixel, and I don't think you answered that particular question. What you are saying (AFAIU) is that heuristically the results of using this adjustment are better, at least in this case. I don't argue with that, but I wonder whether there's some rationale for this that isn't just heuristics? IOW, do you know how come hb-view doesn't have this problem? what do we do that produces the zero width where hb-view doesn't? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 25 03:18:32 2022 Received: (at 50951) by debbugs.gnu.org; 25 Sep 2022 07:18:32 +0000 Received: from localhost ([127.0.0.1]:45758 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ocLuJ-0001ge-NP for submit@debbugs.gnu.org; Sun, 25 Sep 2022 03:18:32 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:57496) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ocLuH-0001gT-3I for 50951@debbugs.gnu.org; Sun, 25 Sep 2022 03:18:30 -0400 Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id D1A98F08E4; Sun, 25 Sep 2022 16:18:26 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) Date: Sun, 25 Sep 2022 16:18:26 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <83h710t1ez.fsf@gnu.org> References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> <835yhixq1r.fsf@gnu.org> <83h710t1ez.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, visuweshm@gmail.com 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.0 (-) On Thu, 22 Sep 2022 14:37:24 +0900, Eli Zaretskii wrote: > > > Date: Wed, 21 Sep 2022 11:20:54 +0900 > > From: YAMAMOTO Mitsuharu > > Cc: rahguzar@zohomail.eu, > > visuweshm@gmail.com, > > larsi@gnus.org, > > 50951@debbugs.gnu.org > > > > > If the problem is rounding, I think we should do this adjustment only > > > when the last glyph has a non-zero width that was rounded to zero, no? > > > Otherwise, we are inventing adjustments out of thin air, which could > > > adversely affect the displayed result, I think? > > > > > > Or maybe we should have a variable that controls this heuristic? > > > > > > Bottom line: I'm uneasy with messing with the grapheme cluster data > > > without some sound basis. We delegate this job to a text-shaping > > > engine for a reason. But if there is a sound basis for this > > > adjustment, could you please elaborate on it? > > > > > > Thanks. > > > > IIUC, the only "unsound" case is that the width of a grapheme cluster > > is exactly 0 before rounding. I think such a case is quite rare. And > > even for such a case, Emacs needs to put at least extra 1 pixel to > > move the cursor to the position of the grapheme cluster. So the > > adjustment made by the patch is minimum and necessary. > > > > The current (unpatched) master may put multiple pixels (space width of > > the font as in Line 32433 above), and moreover the corresponding > > glyphs are not displayed. If we keep this behavior for the "unsound" > > case, the result would be much more apart from the optimal. > > Can you please point me to the place(s) in our code where this > rounding takes place? For the HarfBuzz shaper, the width rounding happens at Line 595 directly, and at the callee of Line 586 indirectly: hbfont.c: 585 unsigned code = info[i].codepoint; 586 font->driver->text_extents (font, &code, 1, &metrics); 587 LGLYPH_SET_WIDTH (lglyph, metrics.width); 588 LGLYPH_SET_LBEARING (lglyph, metrics.lbearing); 589 LGLYPH_SET_RBEARING (lglyph, metrics.rbearing); 590 LGLYPH_SET_ASCENT (lglyph, metrics.ascent); 591 LGLYPH_SET_DESCENT (lglyph, metrics.descent); 592 593 xoff = lround (pos[i].x_offset * position_unit); 594 yoff = - lround (pos[i].y_offset * position_unit); 595 wadjust = lround (pos[i].x_advance * position_unit); The value of position_unit is usually 1.0 / 32. For the callee of Line 586, rounding may happen either at the Emacs side as in the ftcrhb font backend, ftcrfont.c: 99 cairo_scaled_font_glyph_extents (ftcrfont_info->cr_scaled_font, 100 &cr_glyph, 1, &extents); 101 cache->lbearing = floor (extents.x_bearing); 102 cache->rbearing = ceil (extents.width + extents.x_bearing); 103 cache->width = lround (extents.x_advance); or at the library side as in the xfthb font backend. xftfont.c: 469 block_input (); 470 XftGlyphExtents (xftfont_info->display, xftfont_info->xftfont, code, nglyphs, 471 &extents); 472 unblock_input (); 473 474 metrics->lbearing = - extents.x; 475 metrics->rbearing = - extents.x + extents.width; 476 metrics->width = extents.xOff; For the Uniscribe shaper, rounding seems to happen at the library side: w32uniscribe.c: 297 int *advances; : 346 advances = alloca (max_glyphs * sizeof (int)); : 399 result = ScriptPlace (context, (SCRIPT_CACHE) &(uniscribe_font->cache), 400 glyphs, nglyphs, attributes, &(items[i].a), 401 advances, offsets, &overall_metrics); : 501 LGLYPH_SET_WIDTH (lglyph, advances[j]); : 563 ASET (vec, 2, make_fixnum (advances[j])); 564 LGLYPH_SET_ADJUSTMENT (lglyph, vec); If rounding happens at the library side, we don't know whether the width before rounding was exactly 0 or not. > Also, I asked whether you could elaborate on the rationale for > adjusting the zero width to be 1 pixel, and I don't think you > answered that particular question. What you are saying (AFAIU) is > that heuristically the results of using this adjustment are better, > at least in this case. I don't argue with that, but I wonder > whether there's some rationale for this that isn't just heuristics? > IOW, do you know how come hb-view doesn't have this problem? what do > we do that produces the zero width where hb-view doesn't? The output of hb-view was in PDF, and its coordinate system does not directly correspond to the integral number of physical pixels unlike in Emacs. The display engine of Emacs only accepts positive integer as pixel-width of a glyph (in Emacs terminology). If the actual grapheme cluster has width zero (after rounding), then it is replaced to some positive integer (space width) in gui_produce_glyphs. Because some grapheme cluster in the result of shaping can be in very small width and rounded to 0, adjusting it to 1 is almost the best approximation. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 26 03:19:14 2022 Received: (at 50951) by debbugs.gnu.org; 26 Sep 2022 07:19:14 +0000 Received: from localhost ([127.0.0.1]:49123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ociOX-00081z-NQ for submit@debbugs.gnu.org; Mon, 26 Sep 2022 03:19:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57606) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ociOT-00081i-G5 for 50951@debbugs.gnu.org; Mon, 26 Sep 2022 03:19:12 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58988) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ociOL-0004lP-Kg; Mon, 26 Sep 2022 03:19:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=tzltRoqPfRLqes8nc8534LvGhWQdwM2DBnSztYEb3U8=; b=fqkmMvvr58O2 BcpkK8K0or4Acskv2zgUEAxp1z9vPHnOVzjKBs3pbgM4KI9kazc1AYTkotDZQiMtjCMBPVu1lCohr fLumKCBxPUp17kAeHBn4ZBuHa6UtYPIfjzaivQaMIjgqCJst/kDgmpTVevG2clRqWTtamVmbaOAmH oGwA+HaCqorUlYI9Cbyb2JmUGI8aFQX1PCKtxhsgodGB7eejPxY0KBSrUibr0NfxIQuBzpnex6p5l aYbkIj7EKP3TJ0NuBm99UNFt2rgn/6Py8mN/q+n0rbpaP6VPJh67WR7PwowjAY3hnjuo6+qKgc0o4 qlk/jX96LY74BGwuzQ3Xbw==; Received: from [87.69.77.57] (port=4223 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 1ociOL-0007IN-1P; Mon, 26 Sep 2022 03:19:01 -0400 Date: Mon, 26 Sep 2022 10:18:50 +0300 Message-Id: <83leq6li1x.fsf@gnu.org> From: Eli Zaretskii To: YAMAMOTO Mitsuharu In-Reply-To: (message from YAMAMOTO Mitsuharu on Sun, 25 Sep 2022 16:18:26 +0900) Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> <835yhixq1r.fsf@gnu.org> <83h710t1ez.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50951 Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951@debbugs.gnu.org, visuweshm@gmail.com 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: -3.3 (---) > Date: Sun, 25 Sep 2022 16:18:26 +0900 > From: YAMAMOTO Mitsuharu > Cc: rahguzar@zohomail.eu, visuweshm@gmail.com, larsi@gnus.org, > 50951@debbugs.gnu.org > > > Also, I asked whether you could elaborate on the rationale for > > adjusting the zero width to be 1 pixel, and I don't think you > > answered that particular question. What you are saying (AFAIU) is > > that heuristically the results of using this adjustment are better, > > at least in this case. I don't argue with that, but I wonder > > whether there's some rationale for this that isn't just heuristics? > > IOW, do you know how come hb-view doesn't have this problem? what do > > we do that produces the zero width where hb-view doesn't? > > The output of hb-view was in PDF, and its coordinate system does not > directly correspond to the integral number of physical pixels unlike > in Emacs. > > The display engine of Emacs only accepts positive integer as > pixel-width of a glyph (in Emacs terminology). If the actual grapheme > cluster has width zero (after rounding), then it is replaced to some > positive integer (space width) in gui_produce_glyphs. Because some > grapheme cluster in the result of shaping can be in very small width > and rounded to 0, adjusting it to 1 is almost the best approximation. OK, thanks. Please install your patch on the master branch. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 26 20:29:11 2022 Received: (at 50951-done) by debbugs.gnu.org; 27 Sep 2022 00:29:12 +0000 Received: from localhost ([127.0.0.1]:52020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ocyTH-0006Y5-IY for submit@debbugs.gnu.org; Mon, 26 Sep 2022 20:29:11 -0400 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:55884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ocyTC-0006Xs-HG for 50951-done@debbugs.gnu.org; Mon, 26 Sep 2022 20:29:10 -0400 Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id C6A35F08E7; Tue, 27 Sep 2022 09:29:04 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) Date: Tue, 27 Sep 2022 09:29:04 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: Eli Zaretskii Subject: Re: bug#50951: 28.0.50; Urdu text is not displayed correctly In-Reply-To: <83leq6li1x.fsf@gnu.org> References: <83mtnsc63i.fsf@gnu.org> <83sfxjbox7.fsf@gnu.org> <87pmsnwlvo.fsf@igel.home> <837devbgrl.fsf@gnu.org> <8335pjbewj.fsf@gnu.org> <83zgrr9zn1.fsf@gnu.org> <87edwq7srx.fsf_-_@gnus.org> <87y1uy6mn5.fsf@zohomail.eu> <83wnaij974.fsf@gnu.org> <87tu5m6jrw.fsf@zohomail.eu> <835yhzifuw.fsf@gnu.org> <87o7vqxuvs.fsf@gmail.com> <87h71gwpr5.fsf@zohomail.eu> <87mtayymk5.fsf@zohomail.eu> <835yhixq1r.fsf@gnu.org> <83h710t1ez.fsf@gnu.org> <83leq6li1x.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50951-done Cc: rahguzar@zohomail.eu, larsi@gnus.org, 50951-done@debbugs.gnu.org, visuweshm@gmail.com 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.0 (-) On Mon, 26 Sep 2022 16:18:50 +0900, Eli Zaretskii wrote: > > > Date: Sun, 25 Sep 2022 16:18:26 +0900 > > From: YAMAMOTO Mitsuharu > > Cc: rahguzar@zohomail.eu, visuweshm@gmail.com, larsi@gnus.org, > > 50951@debbugs.gnu.org > > > > > Also, I asked whether you could elaborate on the rationale for > > > adjusting the zero width to be 1 pixel, and I don't think you > > > answered that particular question. What you are saying (AFAIU) is > > > that heuristically the results of using this adjustment are better, > > > at least in this case. I don't argue with that, but I wonder > > > whether there's some rationale for this that isn't just heuristics? > > > IOW, do you know how come hb-view doesn't have this problem? what do > > > we do that produces the zero width where hb-view doesn't? > > > > The output of hb-view was in PDF, and its coordinate system does not > > directly correspond to the integral number of physical pixels unlike > > in Emacs. > > > > The display engine of Emacs only accepts positive integer as > > pixel-width of a glyph (in Emacs terminology). If the actual grapheme > > cluster has width zero (after rounding), then it is replaced to some > > positive integer (space width) in gui_produce_glyphs. Because some > > grapheme cluster in the result of shaping can be in very small width > > and rounded to 0, adjusting it to 1 is almost the best approximation. > > OK, thanks. Please install your patch on the master branch. I installed a slightly modified version because the previous one did not adjust the last grapheme cluster when its width is zero. Closing. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp From unknown Sun Jun 22 17:11:11 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 25 Oct 2022 11:24:11 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator