From unknown Tue Aug 19 02:58:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72199: 31.0.50; `svg-print' add useless and possibly wrong space in XML representation. Resent-From: David Ponce Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 19 Jul 2024 18:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 72199 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 72199@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.172141350923903 (code B ref -1); Fri, 19 Jul 2024 18:26:02 +0000 Received: (at submit) by debbugs.gnu.org; 19 Jul 2024 18:25:09 +0000 Received: from localhost ([127.0.0.1]:50840 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUsI0-0006DS-6M for submit@debbugs.gnu.org; Fri, 19 Jul 2024 14:25:08 -0400 Received: from lists.gnu.org ([209.51.188.17]:42062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUsHx-0006DJ-Tn for submit@debbugs.gnu.org; Fri, 19 Jul 2024 14:25:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sUsHq-0004vK-KJ for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 14:25:06 -0400 Received: from smtp-21.smtpout.orange.fr ([80.12.242.21] helo=smtp.smtpout.orange.fr) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sUsHn-0007HM-5e for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 14:24:57 -0400 Received: from [192.168.1.21] ([2.7.225.247]) by smtp.orange.fr with ESMTPA id UsHfsyfGYx5lnUsHfsoJaE; Fri, 19 Jul 2024 20:24:50 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1721413490; bh=94r3k+hpwms7alJV8TKis8Sj9PutW348vgez7g4K59Y=; h=Message-ID:Date:MIME-Version:From:Subject:To; b=dOQR3JA6qVCNykF8fqcS5MTnG7fqc+GqKHCpdCf6XErB/+DD+OSwHGJEi8KEj6juP lbf886JnoHB+xHlatvfFlubiKJppfYJTD3VPFPbVcikGRaH4y2iGXvzbtg0tmsOrII 0jCGUiDy2LEd9jCMxjeWGFbAkB39eEA7QH5QvZEbFfBMhZss5y3+cddMBmyxRDelmV cn1hw8V9khci/UN+/4pzVAkNGkNnAySU3vz2UNmYWTyOvXfbeOFHkvqsZIqmv0GH3k fDrORiy9SC8o4tEnxhdgizGWsm1lV51lUaQXLepjJvKHU4o18Yp3rTuukN9cYsZq2g 5EJKwi5s7LYCg== X-ME-Helo: [192.168.1.21] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Fri, 19 Jul 2024 20:24:50 +0200 X-ME-IP: 2.7.225.247 Content-Type: multipart/mixed; boundary="------------kaIxd4d6D5QG0JUADdF0gIl0" Message-ID: Date: Fri, 19 Jul 2024 20:24:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: David Ponce Content-Language: fr, en-US Received-SPF: pass client-ip=80.12.242.21; envelope-from=da_vid@orange.fr; helo=smtp.smtpout.orange.fr 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) 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 (--) This is a multi-part message in MIME format. --------------kaIxd4d6D5QG0JUADdF0gIl0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, While working on generating SVG images from text, I discovered that the "svg-print" function adds extra space in front of the XML representation of each child node. This is usually not a problem because, by default, extra spaces are ignored. But this becomes a problem, especially for text nodes, when the `xml:space' attribute is set to "preserve" to indicate that spaces in texts are not ignored. Because, in this case, the XML representation of the text node no longer corresponds to the original definition, including unwanted additional spaces. Here are two examples which illustrate the problem to be evaluated in the *scratch* buffer (emacs -Q): (require 'svg) ;; Simple text with extra spaces between words. (let* ((text "This buffer is for text that is not saved.") (w (* (length text) (default-font-width))) (h (* 1.5 (default-font-height))) (xmlspace "preserve") ;; Rendering preserves spaces. (svg (svg-create w h :xml:space xmlspace :stroke-width 0))) (svg-rectangle svg 0 0 w h :fill "blue") (svg-text svg text :y "1em" :fill "white") (insert-image (svg-image svg :scale 1))) ;; Aggregate texts separated by 1 space. (let* ((texts '("This buffer is " "for text that " "is not saved.")) (w (* (apply #'+ (mapcar #'length texts)) (default-font-width))) (h (* 1.5 (default-font-height))) (xmlspace "preserve") ;; Rendering preserves spaces. (svg (svg-create w h :xml:space xmlspace :stroke-width 0))) (svg-rectangle svg 0 0 w h :fill "blue") (dom-append-child svg (apply #'dom-node 'text '((y . "1em") (fill . "white")) texts)) (insert-image (svg-image svg :scale 1))) Since the extra space in front of the XML representation of each child node is unnecessary according to the SVG 1.1 specification, the attached V0 patch resolves this issue by removing the offending statement. The attached V1 patch is a proposal to go a step further by improving the documentation and using the DOM API to access parts of dom node. Thanks. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.42, cairo version 1.18.0) of 2024-07-17 Repository revision: 3a790abd869ddadc343710deb0c4368227ba6611 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12014000 System Description: Fedora Linux 40 (KDE Plasma) Configured using: 'configure --with-x-toolkit=gtk3 --with-cairo-xcb --with-native-compilation=no PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_TIME: fr_FR.utf8 value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix --------------kaIxd4d6D5QG0JUADdF0gIl0 Content-Type: text/x-patch; charset=UTF-8; name="svg-print-V1.patch" Content-Disposition: attachment; filename="svg-print-V1.patch" Content-Transfer-Encoding: base64 MjAyNC0wNy0xOSAgRGF2aWQgUG9uY2UgIDxkYV92aWRAb3JhbmdlLmZyPgoKCSogc3ZnLmVs IChzdmctcHJpbnQpOiBSZW1vdmUgdXNlbGVzcyBleHRyYSBzcGFjZSBmcm9tIHRoZSBYTUwK CXJlcHJlc2VudGF0aW9uIG9mIFNWRyBub2RlLiAgVXNlIHRoZSBkb20gQVBJIHRvIGFjY2Vz cyBwYXJ0cyBvZgoJZG9tIG5vZGUuIEltcHJvdmUgZG9jIHN0cmluZy4KCmRpZmYgLS1naXQg YS9saXNwL3N2Zy5lbCBiL2xpc3Avc3ZnLmVsCmluZGV4IGYyZWIyZWM2NmRkLi4xZmVkNmM2 YjNiOCAxMDA2NDQKLS0tIGEvbGlzcC9zdmcuZWwKKysrIGIvbGlzcC9zdmcuZWwKQEAgLTMy MSwxOSArMzIxLDE5IEBAIHN2Zy1wb3NzaWJseS11cGRhdGUtaW1hZ2UKIAkocHV0LXRleHQt cHJvcGVydHkgbWFya2VyICgxKyBtYXJrZXIpICdkaXNwbGF5IChzdmctaW1hZ2Ugc3ZnKSkp KSkpCiAKIChkZWZ1biBzdmctcHJpbnQgKGRvbSkKLSAgIkNvbnZlcnQgRE9NIGludG8gYSBz dHJpbmcgY29udGFpbmluZyB0aGUgeG1sIHJlcHJlc2VudGF0aW9uLiIKKyAgIlByaW50IHRo ZSBYTUwgcmVwcmVzZW50YXRpb24gb2YgRE9NIGF0IHBvaW50IGluIGN1cnJlbnQgYnVmZmVy LiIKICAgKGlmIChzdHJpbmdwIGRvbSkKICAgICAgIChpbnNlcnQgZG9tKQotICAgIChpbnNl cnQgKGZvcm1hdCAiPCVzIiAoY2FyIGRvbSkpKQotICAgIChkb2xpc3QgKGF0dHIgKG50aCAx IGRvbSkpCi0gICAgICA7OyBJZ25vcmUgYXR0cmlidXRlcyB0aGF0IHN0YXJ0IHdpdGggYSBj b2xvbi4KLSAgICAgICh1bmxlc3MgKD0gKGFyZWYgKGZvcm1hdCAiJXMiIChjYXIgYXR0cikp IDApID86KQotICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiAlcz1cIiVzXCIiIChjYXIgYXR0 cikgKGNkciBhdHRyKSkpKSkKLSAgICAoaW5zZXJ0ICI+IikKLSAgICAoZG9saXN0IChlbGVt IChudGhjZHIgMiBkb20pKQotICAgICAgKGluc2VydCAiICIpCi0gICAgICAoc3ZnLXByaW50 IGVsZW0pKQotICAgIChpbnNlcnQgKGZvcm1hdCAiPC8lcz4iIChjYXIgZG9tKSkpKSkKKyAg ICAobGV0ICgodGFnIChkb20tdGFnIGRvbSkpKQorICAgICAgKGluc2VydCAoZm9ybWF0ICI8 JXMiIHRhZykpCisgICAgICAoZG9saXN0IChhdHRyIChkb20tYXR0cmlidXRlcyBkb20pKQor ICAgICAgICA7OyBJZ25vcmUgYXR0cmlidXRlcyB0aGF0IHN0YXJ0IHdpdGggYSBjb2xvbi4K KyAgICAgICAgKHVubGVzcyAoPSAoYXJlZiAoZm9ybWF0ICIlcyIgKGNhciBhdHRyKSkgMCkg PzopCisgICAgICAgICAgKGluc2VydCAoZm9ybWF0ICIgJXM9XCIlc1wiIiAoY2FyIGF0dHIp IChjZHIgYXR0cikpKSkpCisgICAgICAoaW5zZXJ0ICI+IikKKyAgICAgIChkb2xpc3QgKGVs ZW0gKGRvbS1jaGlsZHJlbiBkb20pKQorICAgICAgICAoc3ZnLXByaW50IGVsZW0pKQorICAg ICAgKGluc2VydCAoZm9ybWF0ICI8LyVzPiIgdGFnKSkpKSkKIAogKGRlZnVuIHN2Zy1yZW1v dmUgKHN2ZyBpZCkKICAgIlJlbW92ZSB0aGUgZWxlbWVudCBpZGVudGlmaWVkIGJ5IElEIGZy b20gU1ZHLiIK --------------kaIxd4d6D5QG0JUADdF0gIl0 Content-Type: text/x-patch; charset=UTF-8; name="svg-print-V0.patch" Content-Disposition: attachment; filename="svg-print-V0.patch" Content-Transfer-Encoding: base64 MjAyNC0wNy0xOSAgRGF2aWQgUG9uY2UgIDxkYV92aWRAb3JhbmdlLmZyPgoKCSogc3ZnLmVs IChzdmctcHJpbnQpOiBSZW1vdmUgdXNlbGVzcyBleHRyYSBzcGFjZSBmcm9tIHRoZSBYTUwK CXJlcHJlc2VudGF0aW9uIG9mIGNoaWxkIG5vZGUuCgpkaWZmIC0tZ2l0IGEvbGlzcC9zdmcu ZWwgYi9saXNwL3N2Zy5lbAppbmRleCBmMmViMmVjNjZkZC4uZjVjNzYxNDUxMzYgMTAwNjQ0 Ci0tLSBhL2xpc3Avc3ZnLmVsCisrKyBiL2xpc3Avc3ZnLmVsCkBAIC0zMzEsNyArMzMxLDYg QEAgc3ZnLXByaW50CiAgICAgICAgIChpbnNlcnQgKGZvcm1hdCAiICVzPVwiJXNcIiIgKGNh ciBhdHRyKSAoY2RyIGF0dHIpKSkpKQogICAgIChpbnNlcnQgIj4iKQogICAgIChkb2xpc3Qg KGVsZW0gKG50aGNkciAyIGRvbSkpCi0gICAgICAoaW5zZXJ0ICIgIikKICAgICAgIChzdmct cHJpbnQgZWxlbSkpCiAgICAgKGluc2VydCAoZm9ybWF0ICI8LyVzPiIgKGNhciBkb20pKSkp KQogCg== --------------kaIxd4d6D5QG0JUADdF0gIl0-- From unknown Tue Aug 19 02:58:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72199: 31.0.50; `svg-print' add useless and possibly wrong space in XML representation. References: In-Reply-To: Resent-From: David Ponce Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 19 Jul 2024 18:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72199 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 72199@debbugs.gnu.org Received: via spool by 72199-submit@debbugs.gnu.org id=B72199.172141479726133 (code B ref 72199); Fri, 19 Jul 2024 18:47:02 +0000 Received: (at 72199) by debbugs.gnu.org; 19 Jul 2024 18:46:37 +0000 Received: from localhost ([127.0.0.1]:50921 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUscm-0006nR-NP for submit@debbugs.gnu.org; Fri, 19 Jul 2024 14:46:36 -0400 Received: from smtp-27.smtpout.orange.fr ([80.12.242.27]:59386 helo=smtp.smtpout.orange.fr) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUsck-0006nH-Nx for 72199@debbugs.gnu.org; Fri, 19 Jul 2024 14:46:35 -0400 Received: from [192.168.1.21] ([2.7.225.247]) by smtp.orange.fr with ESMTPA id Uscfsgi7akc2vUscgsifE4; Fri, 19 Jul 2024 20:46:32 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1721414793; bh=aFe0J9iZ/hRR2YJpd3KhBXcHD/Z69qC3AVq//cVBKkI=; h=Message-ID:Date:MIME-Version:To:From:Subject; b=nF6DUHxI/qJfb3Ar2uK75/pJ+p/mdHMpb8IXfNy8TUJ7NXbAfVmmLQf/2dd91Leor X4vfAPP11UGx9/PfYoiyJgnuWzx6IblTzgsExhj4MZHAJSQBIYKDGF6Sjnw1POMYv9 sH1919ja1jh3bs2vBvVpjYnCyBX+4LJKLmkpUKuxAVYFoQrNHLK4O0padyx5zH+ZF2 ktEx7Q81Tafi87P+35dYjf0OvEpl4W973fkczArzoOHG6Z2Y0e75SuNLaPdcKZiYZ2 QHua4o13/POdPgACYsENpcqQLgA3jSm0nPrgiDECJDeMnghMIpaTJDDVMTRJ5UVLuk 3gijyiNZakrfA== X-ME-Helo: [192.168.1.21] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Fri, 19 Jul 2024 20:46:33 +0200 X-ME-IP: 2.7.225.247 Message-ID: <154cab0a-5ec5-4a72-be25-a4f6dcdd06b3@orange.fr> Date: Fri, 19 Jul 2024 20:46:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: fr, en-US From: David Ponce Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) 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 (-) Hello, Please close this one as duplicate of #72198. I resent it after a couple of hours because I didn't receive the Acknowledgement for #72198. Thanks! From unknown Tue Aug 19 02:58:12 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: David Ponce Subject: bug#72199: closed (Re: bug#72199: 31.0.50; `svg-print' add useless and possibly wrong space in XML representation.) Message-ID: References: X-Gnu-PR-Message: they-closed 72199 X-Gnu-PR-Package: emacs Reply-To: 72199@debbugs.gnu.org Date: Fri, 19 Jul 2024 20:14:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1721420042-2660-1" This is a multi-part message in MIME format... ------------=_1721420042-2660-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #72199: 31.0.50; `svg-print' add useless and possibly wrong space in XML re= presentation. which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 72199@debbugs.gnu.org. --=20 72199: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D72199 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1721420042-2660-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 72199-done) by debbugs.gnu.org; 19 Jul 2024 20:13:38 +0000 Received: from localhost ([127.0.0.1]:51027 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUtz0-0000g3-15 for submit@debbugs.gnu.org; Fri, 19 Jul 2024 16:13:38 -0400 Received: from mail-ed1-f49.google.com ([209.85.208.49]:49459) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUtyx-0000fl-Q4 for 72199-done@debbugs.gnu.org; Fri, 19 Jul 2024 16:13:36 -0400 Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-5a1337cfbb5so1583930a12.3 for <72199-done@debbugs.gnu.org>; Fri, 19 Jul 2024 13:13:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721419950; x=1722024750; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :from:to:cc:subject:date:message-id:reply-to; bh=07/PpxHZy+BS7cxw9vdTiqStcnkZ6b7bhN8JSbnQLt4=; b=mjIUtkZOx/oqbUyXcwo0Xz8MDgGhXV0cgOG6Dh++nzZOZ3FTBbpW/MYsdUTXpW0724 d50RdxDaml7QMCDM+PgPqmTD5mw3kmXBA8INHbRCVl6yiYrIVY+6drLs3TMU1JGN6pT+ IUoA6YSeyZ4qrO+lBXw1hbkjOBiu1ppwL2AC2lrqlbS+NH7hMvPE7IhBd95h623Q4TR3 yNsLrpSUmCnps5DFh9PdejRiuqXnmLZZaZAA8QkT5o5neRCqS5ilnWo5cyeuShCljg9M gWwwm9OLQSvmcwq6hQmze4SNGxAfYWV4k5oD0NrXZexmF4TK5hKaTNefH0XzBLQLFVDN v/4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721419950; x=1722024750; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=07/PpxHZy+BS7cxw9vdTiqStcnkZ6b7bhN8JSbnQLt4=; b=blIMUQXEYi9kqwCs59AiHfay4hEGILkvEnFhdxHuD0h/EDGBaunV4r8u6AYyS2x8TH H3uMh/Knn9Ecrmp2OETB9704KfByt0JWS8Z1dpJnFxjYhdQaJM2Ee+pstfqWqUCkl6SR hnjJSN01zu8f9ikMWXNzAnqme/bhJ3o2QigrmSj94hBh8kz+IeAJ33UKVAjPi/YOqlFR N+FQ9n4OFBICx7Qc/oIghPNgMsfh4kCNw03y/u5B01OXBuiR/FwkftVTndT+bMoyg8iS r8rm+3dakUJrgsBGwk9xpPQ5tfwRmXYtf6BXPZscf8RwX9kPsgA0m2l7sH7An2xBzB9H zvLw== X-Forwarded-Encrypted: i=1; AJvYcCWZE1gbUt/RuWK8385Ts8T0YIUW31BeL51ABMkku5ALUxts5Z4Qrr16MjYUhMFHV0QNYYYR4a9gWJC6HiuRIout3AhpS1V/IJCl3g== X-Gm-Message-State: AOJu0YwEpz2pTXWfH9SsrJoBgu8pXRvG/TxdQZSQ5w4k8s029ZLPyh4v 0SALWRXduugIA4gsbsrqVMjqGfEHalQmGo5SaUdeRc1cumneviWK3YaQ7vA8phfGlYH/tZLav4n 8gN0wTH0S1nzFbWOZVKryPTWoGybb3bkX X-Google-Smtp-Source: AGHT+IFZXO6M3t3o9GIqnQdk319/iVdAUUKE9Uiq+y58ewhtNK40UCZQZl+QjxzCGz2hsZSg0DVgZCQ6R4gs490oo+Q= X-Received: by 2002:a50:d5d6:0:b0:5a2:b540:e0e8 with SMTP id 4fb4d7f45d1cf-5a2b540e54fmr2013476a12.39.1721419950398; Fri, 19 Jul 2024 13:12:30 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 19 Jul 2024 13:12:29 -0700 From: Stefan Kangas In-Reply-To: <154cab0a-5ec5-4a72-be25-a4f6dcdd06b3@orange.fr> References: <154cab0a-5ec5-4a72-be25-a4f6dcdd06b3@orange.fr> MIME-Version: 1.0 Date: Fri, 19 Jul 2024 13:12:29 -0700 Message-ID: Subject: Re: bug#72199: 31.0.50; `svg-print' add useless and possibly wrong space in XML representation. To: David Ponce , 72199-done@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72199-done 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 (-) David Ponce via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: > Please close this one as duplicate of #72198. Done. ------------=_1721420042-2660-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Jul 2024 18:25:09 +0000 Received: from localhost ([127.0.0.1]:50840 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUsI0-0006DS-6M for submit@debbugs.gnu.org; Fri, 19 Jul 2024 14:25:08 -0400 Received: from lists.gnu.org ([209.51.188.17]:42062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUsHx-0006DJ-Tn for submit@debbugs.gnu.org; Fri, 19 Jul 2024 14:25:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sUsHq-0004vK-KJ for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 14:25:06 -0400 Received: from smtp-21.smtpout.orange.fr ([80.12.242.21] helo=smtp.smtpout.orange.fr) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sUsHn-0007HM-5e for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 14:24:57 -0400 Received: from [192.168.1.21] ([2.7.225.247]) by smtp.orange.fr with ESMTPA id UsHfsyfGYx5lnUsHfsoJaE; Fri, 19 Jul 2024 20:24:50 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1721413490; bh=94r3k+hpwms7alJV8TKis8Sj9PutW348vgez7g4K59Y=; h=Message-ID:Date:MIME-Version:From:Subject:To; b=dOQR3JA6qVCNykF8fqcS5MTnG7fqc+GqKHCpdCf6XErB/+DD+OSwHGJEi8KEj6juP lbf886JnoHB+xHlatvfFlubiKJppfYJTD3VPFPbVcikGRaH4y2iGXvzbtg0tmsOrII 0jCGUiDy2LEd9jCMxjeWGFbAkB39eEA7QH5QvZEbFfBMhZss5y3+cddMBmyxRDelmV cn1hw8V9khci/UN+/4pzVAkNGkNnAySU3vz2UNmYWTyOvXfbeOFHkvqsZIqmv0GH3k fDrORiy9SC8o4tEnxhdgizGWsm1lV51lUaQXLepjJvKHU4o18Yp3rTuukN9cYsZq2g 5EJKwi5s7LYCg== X-ME-Helo: [192.168.1.21] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Fri, 19 Jul 2024 20:24:50 +0200 X-ME-IP: 2.7.225.247 Content-Type: multipart/mixed; boundary="------------kaIxd4d6D5QG0JUADdF0gIl0" Message-ID: Date: Fri, 19 Jul 2024 20:24:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: David Ponce Subject: 31.0.50; `svg-print' add useless and possibly wrong space in XML representation. To: bug-gnu-emacs@gnu.org Content-Language: fr, en-US Received-SPF: pass client-ip=80.12.242.21; envelope-from=da_vid@orange.fr; helo=smtp.smtpout.orange.fr 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------kaIxd4d6D5QG0JUADdF0gIl0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, While working on generating SVG images from text, I discovered that the "svg-print" function adds extra space in front of the XML representation of each child node. This is usually not a problem because, by default, extra spaces are ignored. But this becomes a problem, especially for text nodes, when the `xml:space' attribute is set to "preserve" to indicate that spaces in texts are not ignored. Because, in this case, the XML representation of the text node no longer corresponds to the original definition, including unwanted additional spaces. Here are two examples which illustrate the problem to be evaluated in the *scratch* buffer (emacs -Q): (require 'svg) ;; Simple text with extra spaces between words. (let* ((text "This buffer is for text that is not saved.") (w (* (length text) (default-font-width))) (h (* 1.5 (default-font-height))) (xmlspace "preserve") ;; Rendering preserves spaces. (svg (svg-create w h :xml:space xmlspace :stroke-width 0))) (svg-rectangle svg 0 0 w h :fill "blue") (svg-text svg text :y "1em" :fill "white") (insert-image (svg-image svg :scale 1))) ;; Aggregate texts separated by 1 space. (let* ((texts '("This buffer is " "for text that " "is not saved.")) (w (* (apply #'+ (mapcar #'length texts)) (default-font-width))) (h (* 1.5 (default-font-height))) (xmlspace "preserve") ;; Rendering preserves spaces. (svg (svg-create w h :xml:space xmlspace :stroke-width 0))) (svg-rectangle svg 0 0 w h :fill "blue") (dom-append-child svg (apply #'dom-node 'text '((y . "1em") (fill . "white")) texts)) (insert-image (svg-image svg :scale 1))) Since the extra space in front of the XML representation of each child node is unnecessary according to the SVG 1.1 specification, the attached V0 patch resolves this issue by removing the offending statement. The attached V1 patch is a proposal to go a step further by improving the documentation and using the DOM API to access parts of dom node. Thanks. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.42, cairo version 1.18.0) of 2024-07-17 Repository revision: 3a790abd869ddadc343710deb0c4368227ba6611 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12014000 System Description: Fedora Linux 40 (KDE Plasma) Configured using: 'configure --with-x-toolkit=gtk3 --with-cairo-xcb --with-native-compilation=no PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_TIME: fr_FR.utf8 value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix --------------kaIxd4d6D5QG0JUADdF0gIl0 Content-Type: text/x-patch; charset=UTF-8; name="svg-print-V1.patch" Content-Disposition: attachment; filename="svg-print-V1.patch" Content-Transfer-Encoding: base64 MjAyNC0wNy0xOSAgRGF2aWQgUG9uY2UgIDxkYV92aWRAb3JhbmdlLmZyPgoKCSogc3ZnLmVs IChzdmctcHJpbnQpOiBSZW1vdmUgdXNlbGVzcyBleHRyYSBzcGFjZSBmcm9tIHRoZSBYTUwK CXJlcHJlc2VudGF0aW9uIG9mIFNWRyBub2RlLiAgVXNlIHRoZSBkb20gQVBJIHRvIGFjY2Vz cyBwYXJ0cyBvZgoJZG9tIG5vZGUuIEltcHJvdmUgZG9jIHN0cmluZy4KCmRpZmYgLS1naXQg YS9saXNwL3N2Zy5lbCBiL2xpc3Avc3ZnLmVsCmluZGV4IGYyZWIyZWM2NmRkLi4xZmVkNmM2 YjNiOCAxMDA2NDQKLS0tIGEvbGlzcC9zdmcuZWwKKysrIGIvbGlzcC9zdmcuZWwKQEAgLTMy MSwxOSArMzIxLDE5IEBAIHN2Zy1wb3NzaWJseS11cGRhdGUtaW1hZ2UKIAkocHV0LXRleHQt cHJvcGVydHkgbWFya2VyICgxKyBtYXJrZXIpICdkaXNwbGF5IChzdmctaW1hZ2Ugc3ZnKSkp KSkpCiAKIChkZWZ1biBzdmctcHJpbnQgKGRvbSkKLSAgIkNvbnZlcnQgRE9NIGludG8gYSBz dHJpbmcgY29udGFpbmluZyB0aGUgeG1sIHJlcHJlc2VudGF0aW9uLiIKKyAgIlByaW50IHRo ZSBYTUwgcmVwcmVzZW50YXRpb24gb2YgRE9NIGF0IHBvaW50IGluIGN1cnJlbnQgYnVmZmVy LiIKICAgKGlmIChzdHJpbmdwIGRvbSkKICAgICAgIChpbnNlcnQgZG9tKQotICAgIChpbnNl cnQgKGZvcm1hdCAiPCVzIiAoY2FyIGRvbSkpKQotICAgIChkb2xpc3QgKGF0dHIgKG50aCAx IGRvbSkpCi0gICAgICA7OyBJZ25vcmUgYXR0cmlidXRlcyB0aGF0IHN0YXJ0IHdpdGggYSBj b2xvbi4KLSAgICAgICh1bmxlc3MgKD0gKGFyZWYgKGZvcm1hdCAiJXMiIChjYXIgYXR0cikp IDApID86KQotICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiAlcz1cIiVzXCIiIChjYXIgYXR0 cikgKGNkciBhdHRyKSkpKSkKLSAgICAoaW5zZXJ0ICI+IikKLSAgICAoZG9saXN0IChlbGVt IChudGhjZHIgMiBkb20pKQotICAgICAgKGluc2VydCAiICIpCi0gICAgICAoc3ZnLXByaW50 IGVsZW0pKQotICAgIChpbnNlcnQgKGZvcm1hdCAiPC8lcz4iIChjYXIgZG9tKSkpKSkKKyAg ICAobGV0ICgodGFnIChkb20tdGFnIGRvbSkpKQorICAgICAgKGluc2VydCAoZm9ybWF0ICI8 JXMiIHRhZykpCisgICAgICAoZG9saXN0IChhdHRyIChkb20tYXR0cmlidXRlcyBkb20pKQor ICAgICAgICA7OyBJZ25vcmUgYXR0cmlidXRlcyB0aGF0IHN0YXJ0IHdpdGggYSBjb2xvbi4K KyAgICAgICAgKHVubGVzcyAoPSAoYXJlZiAoZm9ybWF0ICIlcyIgKGNhciBhdHRyKSkgMCkg PzopCisgICAgICAgICAgKGluc2VydCAoZm9ybWF0ICIgJXM9XCIlc1wiIiAoY2FyIGF0dHIp IChjZHIgYXR0cikpKSkpCisgICAgICAoaW5zZXJ0ICI+IikKKyAgICAgIChkb2xpc3QgKGVs ZW0gKGRvbS1jaGlsZHJlbiBkb20pKQorICAgICAgICAoc3ZnLXByaW50IGVsZW0pKQorICAg ICAgKGluc2VydCAoZm9ybWF0ICI8LyVzPiIgdGFnKSkpKSkKIAogKGRlZnVuIHN2Zy1yZW1v dmUgKHN2ZyBpZCkKICAgIlJlbW92ZSB0aGUgZWxlbWVudCBpZGVudGlmaWVkIGJ5IElEIGZy b20gU1ZHLiIK --------------kaIxd4d6D5QG0JUADdF0gIl0 Content-Type: text/x-patch; charset=UTF-8; name="svg-print-V0.patch" Content-Disposition: attachment; filename="svg-print-V0.patch" Content-Transfer-Encoding: base64 MjAyNC0wNy0xOSAgRGF2aWQgUG9uY2UgIDxkYV92aWRAb3JhbmdlLmZyPgoKCSogc3ZnLmVs IChzdmctcHJpbnQpOiBSZW1vdmUgdXNlbGVzcyBleHRyYSBzcGFjZSBmcm9tIHRoZSBYTUwK CXJlcHJlc2VudGF0aW9uIG9mIGNoaWxkIG5vZGUuCgpkaWZmIC0tZ2l0IGEvbGlzcC9zdmcu ZWwgYi9saXNwL3N2Zy5lbAppbmRleCBmMmViMmVjNjZkZC4uZjVjNzYxNDUxMzYgMTAwNjQ0 Ci0tLSBhL2xpc3Avc3ZnLmVsCisrKyBiL2xpc3Avc3ZnLmVsCkBAIC0zMzEsNyArMzMxLDYg QEAgc3ZnLXByaW50CiAgICAgICAgIChpbnNlcnQgKGZvcm1hdCAiICVzPVwiJXNcIiIgKGNh ciBhdHRyKSAoY2RyIGF0dHIpKSkpKQogICAgIChpbnNlcnQgIj4iKQogICAgIChkb2xpc3Qg KGVsZW0gKG50aGNkciAyIGRvbSkpCi0gICAgICAoaW5zZXJ0ICIgIikKICAgICAgIChzdmct cHJpbnQgZWxlbSkpCiAgICAgKGluc2VydCAoZm9ybWF0ICI8LyVzPiIgKGNhciBkb20pKSkp KQogCg== --------------kaIxd4d6D5QG0JUADdF0gIl0-- ------------=_1721420042-2660-1--