X-Loop: help-debbugs@HIDDEN Subject: bug#75928: 31.0.50; `dom-print' often fails to print an SVG DOM Resent-From: David Ponce <da_vid@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 29 Jan 2025 15:53:02 +0000 Resent-Message-ID: <handler.75928.B.17381659766341 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 75928 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 75928 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.17381659766341 (code B ref -1); Wed, 29 Jan 2025 15:53:02 +0000 Received: (at submit) by debbugs.gnu.org; 29 Jan 2025 15:52:56 +0000 Received: from localhost ([127.0.0.1]:42630 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdAN5-0001eB-CI for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 10:52:55 -0500 Received: from lists.gnu.org ([2001:470:142::17]:58190) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <da_vid@HIDDEN>) id 1tdAN0-0001du-N7 for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 10:52:53 -0500 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 <da_vid@HIDDEN>) id 1tdAMu-0001LU-L0 for bug-gnu-emacs@HIDDEN; Wed, 29 Jan 2025 10:52:45 -0500 Received: from smtp-78.smtpout.orange.fr ([80.12.242.78] 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 <da_vid@HIDDEN>) id 1tdAMq-0003LX-SI for bug-gnu-emacs@HIDDEN; Wed, 29 Jan 2025 10:52:43 -0500 Received: from [192.168.1.21] ([90.112.40.65]) by smtp.orange.fr with ESMTPA id dAMet9fP1cxJ6dAMhtEGN9; Wed, 29 Jan 2025 16:52:32 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1738165952; bh=8kJfK+5OvdxsCjcFEL0b091RmoIs7akNJN9qfoFMs6s=; h=Message-ID:Date:MIME-Version:To:From:Subject; b=qLPgRrvIol87O490K6fTf6ASCntxtY9Zh/Yxdl2oJdeGyMpFmXQWBxMpwtrj+FO1s Sv/xePZtI3gl7PWFeUSMSS4pvNqmzxXFOkaPooBmXSqF1locRyq5PH3Rxv6TZHb5Sc C9gEZtH7sMKl7joFEd+wxrOnKHve3S7sStFN9vRjhRdCPc3rD13d0xrUsRXez3Wgfg 5U3zkZ2NgCBrlIvUWiXtsentwTNs0PkLYqvRVKWTyi9PpDfpv2u6vYRMR5tz9QfTGa jopFEdsFVXfWQMLwbbp/zZn+97FszBtFABNSxTGHVGuGbQYksjIjXTO4cli2b+/8k6 /uX/u+Dqmjhyg== X-ME-Helo: [192.168.1.21] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Wed, 29 Jan 2025 16:52:32 +0100 X-ME-IP: 90.112.40.65 Content-Type: multipart/mixed; boundary="------------T9LwNwB1Qf0NtnmF25vRJCkH" Message-ID: <ec2723d5-9f6c-4250-8ab8-50e6664c4565@HIDDEN> Date: Wed, 29 Jan 2025 16:52:28 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: fr, en-US From: David Ponce <da_vid@HIDDEN> Received-SPF: pass client-ip=80.12.242.78; envelope-from=da_vid@HIDDEN; 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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.0 (+) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------T9LwNwB1Qf0NtnmF25vRJCkH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, Currently `dom-print' is mostly unusable to print an SVG DOM because it fails as soon as it encounters an attribute value which is not a string. This is unfortunate, because `dom-print' can be very useful for examining a DOM by pretty-printing it. Here is a simple example that illustrates the problem: (require 'svg) (let ((svg (svg-create 100 100))) (svg-rectangle svg 0 0 "100%" "100%" :fill "blue") (svg-text svg "A text" :x 0 :y 55 :stroke "yellow" :fill "yellow") (dom-print svg t t)) Which produce this backtrace when evaluated in the *scratch* buffer: Debugger entered--Lisp error: (wrong-type-argument sequencep 100) replace-regexp-in-string("[&<>\"]" #f(compiled-function (c) #<bytecode 0x1119c0c6891a2a03>) 100) url-insert-entities-in-string(100) dom-print((svg ((width . 100) (height . 100) (version . "1.1") (xmlns . "http://www.w3.org/2000/svg") (xmlns:xlink . "http://www.w3.org/1999/xlink")) (rect ((width . "100%") (height . "100%") (x . 0) (y . 0) (fill . "blue"))) (text ((fill . "yellow") (stroke . "yellow") (y . 55) (x . 0)) "A text")) t t) (let ((svg (svg-create 100 100))) (svg-rectangle svg 0 0 "100%" "100%" :fill "blue") (svg-text svg "A text" :x 0 :y 55 :stroke "yellow" :fill "yellow") (dom-print svg t t)) (progn (let ((svg (svg-create 100 100))) (svg-rectangle svg 0 0 "100%" "100%" :fill "blue") (svg-text svg "A text" :x 0 :y 55 :stroke "yellow" :fill "yellow") (dom-print svg t t))) eval((progn (let ((svg (svg-create 100 100))) (svg-rectangle svg 0 0 "100%" "100%" :fill "blue") (svg-text svg "A text" :x 0 :y 55 :stroke "yellow" :fill "yellow") (dom-print svg t t))) t) elisp--eval-last-sexp(t) #f(compiled-function () #<bytecode 0x299b97085c5ba>)() handler-bind-1(#f(compiled-function () #<bytecode 0x299b97085c5ba>) (error) eval-expression--debug) eval-last-sexp(t) eval-print-last-sexp(nil) funcall-interactively(eval-print-last-sexp nil) call-interactively(eval-print-last-sexp nil nil) command-execute(eval-print-last-sexp) The cause is that `dom-print' calls the function `url-insert-entities-in-string' to convert special characters in attribute value assuming this value is a string, which is not always true in an SVG DOM. I propose the attached very simple patch that solves the issue. Here is a possible changelog: 2025-01-29 David Ponce <da_vid@HIDDEN> * dom.el (dom-print): Ensure to pass a string to `url-insert-entities-in-string'. With this patch applied the above example prints the expected result: <svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <rect width="100%" height="100%" x="0" y="0" fill="blue" /> <text fill="yellow" stroke="yellow" y="55" x="0">A text</text> </svg>nil In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.0) of 2025-01-28 Repository revision: 8c4a4b4eab8ac4dc26e65d552821f3f0b49c79c4 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-native-compilation=no' 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 Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. --------------T9LwNwB1Qf0NtnmF25vRJCkH Content-Type: text/x-patch; charset=UTF-8; name="dom-patch-V0.patch" Content-Disposition: attachment; filename="dom-patch-V0.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvZG9tLmVsIGIvbGlzcC9kb20uZWwKaW5kZXggZmMwMzIwNThl OWYuLjllYjdjNThjMzhhIDEwMDY0NAotLS0gYS9saXNwL2RvbS5lbAorKysgYi9saXNwL2Rv bS5lbApAQCAtMjgwLDcgKzI4MCw4IEBAIGRvbS1wcmludAogCQkJIChub3QgeG1sKSkKIAkJ ICAgIChmb3JtYXQgIiAlcyIgKGNhciBlbGVtKSkKIAkJICAoZm9ybWF0ICIgJXM9XCIlc1wi IiAoY2FyIGVsZW0pCi0JICAgICAgICAgICAgICAgICAgKHVybC1pbnNlcnQtZW50aXRpZXMt aW4tc3RyaW5nIChjZHIgZWxlbSkpKSkpKSkKKwkgICAgICAgICAgICAgICAgICAodXJsLWlu c2VydC1lbnRpdGllcy1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChm b3JtYXQgIiVzIiAoY2RyIGVsZW0pKSkpKSkpKQogICAgIChsZXQqICgoY2hpbGRyZW4gKGRv bS1jaGlsZHJlbiBkb20pKQogCSAgIChub24tdGV4dCBuaWwpKQogICAgICAgKGlmIChudWxs IGNoaWxkcmVuKQo= --------------T9LwNwB1Qf0NtnmF25vRJCkH--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: David Ponce <da_vid@HIDDEN> Subject: bug#75928: Acknowledgement (31.0.50; `dom-print' often fails to print an SVG DOM) Message-ID: <handler.75928.B.17381659766341.ack <at> debbugs.gnu.org> References: <ec2723d5-9f6c-4250-8ab8-50e6664c4565@HIDDEN> X-Gnu-PR-Message: ack 75928 X-Gnu-PR-Package: emacs Reply-To: 75928 <at> debbugs.gnu.org Date: Wed, 29 Jan 2025 15:53:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 75928 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 75928: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D75928 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#75928: 31.0.50; `dom-print' often fails to print an SVG DOM References: <ec2723d5-9f6c-4250-8ab8-50e6664c4565@HIDDEN> In-Reply-To: <ec2723d5-9f6c-4250-8ab8-50e6664c4565@HIDDEN> Resent-From: David Ponce <da_vid@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 05 Feb 2025 12:02:02 +0000 Resent-Message-ID: <handler.75928.B75928.173875687613413 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 75928 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 75928 <at> debbugs.gnu.org Received: via spool by 75928-submit <at> debbugs.gnu.org id=B75928.173875687613413 (code B ref 75928); Wed, 05 Feb 2025 12:02:02 +0000 Received: (at 75928) by debbugs.gnu.org; 5 Feb 2025 12:01:16 +0000 Received: from localhost ([127.0.0.1]:48847 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tfe5j-0003UH-Hd for submit <at> debbugs.gnu.org; Wed, 05 Feb 2025 07:01:16 -0500 Received: from smtp-23.smtpout.orange.fr ([80.12.242.23]:38031 helo=smtp.smtpout.orange.fr) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <da_vid@HIDDEN>) id 1tfe5e-0003U0-J9 for 75928 <at> debbugs.gnu.org; Wed, 05 Feb 2025 07:01:13 -0500 Received: from [192.168.1.21] ([90.112.40.65]) by smtp.orange.fr with ESMTPA id fe5Yt3ZUXSgH6fe5btzyKp; Wed, 05 Feb 2025 13:01:08 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1738756868; bh=iVJL8u2izKOyr89bK17Hdxc9BqCgBfOvyGJe5Z690xI=; h=Message-ID:Date:MIME-Version:To:From:Subject; b=NaXueRf84G/F+ENNBF7hcZoWHsZFd7pZVWyg9PdZE7/wVmf628ycnjsKOtK4L7taI cUq6ZKh/NScwZOCdZ1C669396ocmgqOCx47BGeLsLK9vlefOsfT18rZRzOk7pegCi8 Dot/M7CArSHvP8n8/Ied59uPngyVcD5S2l3SW4a+HxhaifUeg4Voa8yrbP8fWh/3YO gUm4PaEPXWl5VONWOhcN8MhLq6TR0QkXLtDKexfzYi02YxqwYCK/xnUUTNOgc1pyYC SQ+yybYZTaQI/qqvghjB6jKGQYKP+s5bwEqmwKZa2eJEV8UcMT4hqU/h2zkOhOC3n5 gPCTUfGGWWOyA== X-ME-Helo: [192.168.1.21] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Wed, 05 Feb 2025 13:01:08 +0100 X-ME-IP: 90.112.40.65 Content-Type: multipart/mixed; boundary="------------kFME70TTGUdjAuHdGz7SGN3F" Message-ID: <76435a3b-75a8-42f4-b1cf-d7f054e11737@HIDDEN> Date: Wed, 5 Feb 2025 13:01:04 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: fr, en-US From: David Ponce <da_vid@HIDDEN> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------kFME70TTGUdjAuHdGz7SGN3F Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, I attached a new patch that also avoid printing attributes without a value (value is nil in the DOM). I also refreshed the list of HTML boolean attributes from the current standard, and put checking for a boolean attribute in a separate inline function for clarity. The patch also slightly improve the code by computing the indentation column outside of loop and delegating indentation to `indent-line-to'. Here is a change log: 2025-02-05 David Ponce <da_vid@HIDDEN> Fix DOM printing when an attribute value is not a string, which is often the case in SVG DOM. Don't print attributes without a value. Refresh the list of HTML boolean attributes. * dom.el (dom--html-boolean-attribute-p): New function. (dom-print): Use it. Convert attribute value to string before to call `url-insert-entities-in-string'. Don't print attribute without a value. Compute indentation column outside of loop and call `indent-line-to' to indent line. This new version passes the `dom-tests-print'. Thanks! --------------kFME70TTGUdjAuHdGz7SGN3F Content-Type: text/x-patch; charset=UTF-8; name="dom-patch-V1.patch" Content-Disposition: attachment; filename="dom-patch-V1.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvZG9tLmVsIGIvbGlzcC9kb20uZWwKaW5kZXggZmMwMzIwNThl OWYuLjYzZjQ3YjVmYzEyIDEwMDY0NAotLS0gYS9saXNwL2RvbS5lbAorKysgYi9saXNwL2Rv bS5lbApAQCAtMjU4LDMxICsyNTgsNDAgQEAgZG9tLXBwCiAJICAgICAgKGluc2VydCAiKSIp CiAJICAgIChpbnNlcnQgIlxuIiAobWFrZS1zdHJpbmcgKDErIGNvbHVtbikgP1xzKSkpKSkp KSkKIAorKGRlZmluZS1pbmxpbmUgZG9tLS1odG1sLWJvb2xlYW4tYXR0cmlidXRlLXAgKGF0 dHIpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBBVFRSIGlzIGFuIEhUTUwgYm9vbGVhbiBhdHRy aWJ1dGUuIgorICAoaW5saW5lLXF1b3RlCisgICAobWVtcSAsYXR0cgorICAgICAgICAgOzsg RXh0cmFjdGVkIGZyb20gdGhlIEhUTUwgTGl2aW5nIFN0YW5kYXJkIGxpc3Qgb2YgYXR0cmli dXRlcworICAgICAgICAgOzsgYXQgPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0 dHJpYnV0ZXMtMz4uCisgICAgICAgICAnKCBhbGxvd2Z1bGxzY3JlZW4gYWxwaGEgYXN5bmMg YXV0b2ZvY3VzIGF1dG9wbGF5IGNoZWNrZWQKKyAgICAgICAgICAgIGNvbnRyb2xzIGRlZmF1 bHQgZGVmZXIgZGlzYWJsZWQgZm9ybW5vdmFsaWRhdGUgaW5lcnQgaXNtYXAKKyAgICAgICAg ICAgIGl0ZW1zY29wZSBsb29wIG11bHRpcGxlIG11dGVkIG5vbW9kdWxlIG5vdmFsaWRhdGUg b3BlbgorICAgICAgICAgICAgcGxheXNpbmxpbmUgcmVhZG9ubHkgcmVxdWlyZWQgcmV2ZXJz ZWQgc2VsZWN0ZWQKKyAgICAgICAgICAgIHNoYWRvd3Jvb3RjbG9uYWJsZSBzaGFkb3dyb290 ZGVsZWdhdGVzZm9jdXMKKyAgICAgICAgICAgIHNoYWRvd3Jvb3RzZXJpYWxpemFibGUpKSkp CisKIChkZWZ1biBkb20tcHJpbnQgKGRvbSAmb3B0aW9uYWwgcHJldHR5IHhtbCkKICAgIlBy aW50IERPTSBhdCBwb2ludCBhcyBIVE1ML1hNTC4KIElmIFBSRVRUWSwgaW5kZW50IHRoZSBI VE1ML1hNTCBsb2dpY2FsbHkuCiBJZiBYTUwsIGdlbmVyYXRlIFhNTCBpbnN0ZWFkIG9mIEhU TUwuIgogICAobGV0ICgoY29sdW1uIChjdXJyZW50LWNvbHVtbikpKQogICAgIChpbnNlcnQg KGZvcm1hdCAiPCVzIiAoZG9tLXRhZyBkb20pKSkKLSAgICAobGV0ICgoYXR0ciAoZG9tLWF0 dHJpYnV0ZXMgZG9tKSkpCi0gICAgICAoZG9saXN0IChlbGVtIGF0dHIpCi0JOzsgSW4gSFRN TCwgdGhlc2UgYXJlIGJvb2xlYW4gYXR0cmlidXRlcyB0aGF0IHNob3VsZCBub3QgaGF2ZQot CTs7IGFuID0gdmFsdWUuCi0JKGluc2VydCAoaWYgKGFuZCAobWVtcSAoY2FyIGVsZW0pCi0J CQkgICAgICAgJyhhc3luYyBhdXRvZm9jdXMgYXV0b3BsYXkgY2hlY2tlZAotCQkJICAgICAg ICAgY29udGVudGVkaXRhYmxlIGNvbnRyb2xzIGRlZmF1bHQKLQkJCSAgICAgICAgIGRlZmVy IGRpc2FibGVkIGZvcm1Ob1ZhbGlkYXRlIGZyYW1lYm9yZGVyCi0JCQkgICAgICAgICBoaWRk ZW4gaXNtYXAgaXRlbXNjb3BlIGxvb3AKLQkJCSAgICAgICAgIG11bHRpcGxlIG11dGVkIG5v bW9kdWxlIG5vdmFsaWRhdGUgb3BlbgotCQkJICAgICAgICAgcmVhZG9ubHkgcmVxdWlyZWQg cmV2ZXJzZWQKLQkJCSAgICAgICAgIHNjb3BlZCBzZWxlY3RlZCB0eXBlbXVzdG1hdGNoKSkK LQkJCSAoY2RyIGVsZW0pCi0JCQkgKG5vdCB4bWwpKQotCQkgICAgKGZvcm1hdCAiICVzIiAo Y2FyIGVsZW0pKQotCQkgIChmb3JtYXQgIiAlcz1cIiVzXCIiIChjYXIgZWxlbSkKLQkgICAg ICAgICAgICAgICAgICAodXJsLWluc2VydC1lbnRpdGllcy1pbi1zdHJpbmcgKGNkciBlbGVt KSkpKSkpKQorICAgIChwY2FzZS1kb2xpc3QgKGAoLGF0dHIgLiAsdmFsdWUpIChkb20tYXR0 cmlidXRlcyBkb20pKQorICAgICAgOzsgRG9uJ3QgcHJpbnQgYXR0cmlidXRlcyB3aXRob3V0 IGEgdmFsdWUuCisgICAgICAod2hlbiB2YWx1ZQorICAgICAgICAoaW5zZXJ0CisgICAgICAg ICA7OyBIVE1MIGJvb2xlYW4gYXR0cmlidXRlcyBzaG91bGQgbm90IGhhdmUgYW4gPSB2YWx1 ZS4gIFRoZQorICAgICAgICAgOzsgcHJlc2VuY2Ugb2YgYSBib29sZWFuIGF0dHJpYnV0ZSBv biBhbiBlbGVtZW50IHJlcHJlc2VudHMKKyAgICAgICAgIDs7IHRoZSB0cnVlIHZhbHVlLCBh bmQgdGhlIGFic2VuY2Ugb2YgdGhlIGF0dHJpYnV0ZQorICAgICAgICAgOzsgcmVwcmVzZW50 cyB0aGUgZmFsc2UgdmFsdWUuCisgICAgICAgICAoaWYgKGFuZCAobm90IHhtbCkgKGRvbS0t aHRtbC1ib29sZWFuLWF0dHJpYnV0ZS1wIGF0dHIpKQorICAgICAgICAgICAgIChmb3JtYXQg IiAlcyIgYXR0cikKKyAgICAgICAgICAgKGZvcm1hdCAiICVzPSVTIiBhdHRyICh1cmwtaW5z ZXJ0LWVudGl0aWVzLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChmb3JtYXQgIiVzIiB2YWx1ZSkpKSkpKSkKICAgICAobGV0KiAoKGNoaWxkcmVuIChk b20tY2hpbGRyZW4gZG9tKSkKLQkgICAobm9uLXRleHQgbmlsKSkKKwkgICAobm9uLXRleHQg bmlsKQorICAgICAgICAgICAoaW5kZW50ICgrIGNvbHVtbiAyKSkpCiAgICAgICAoaWYgKG51 bGwgY2hpbGRyZW4pCiAJICAoaW5zZXJ0ICIgLz4iKQogCShpbnNlcnQgIj4iKQpAQCAtMjkx LDE2ICszMDAsMTQgQEAgZG9tLXByaW50CiAJICAgICAgKGluc2VydCAodXJsLWluc2VydC1l bnRpdGllcy1pbi1zdHJpbmcgY2hpbGQpKQogCSAgICAoc2V0cSBub24tdGV4dCB0KQogCSAg ICAod2hlbiBwcmV0dHkKLSAgICAgICAgICAgICAgKGluc2VydCAiXG4iIChtYWtlLXN0cmlu ZyAoKyBjb2x1bW4gMikgP1xzKSkpCisgICAgICAgICAgICAgIChpbnNlcnQgIlxuIikKKyAg ICAgICAgICAgICAgKGluZGVudC1saW5lLXRvIGluZGVudCkpCiAJICAgIChkb20tcHJpbnQg Y2hpbGQgcHJldHR5IHhtbCkpKQogCTs7IElmIHdlIGluc2VydGVkIG5vbi10ZXh0IGNoaWxk IG5vZGVzLCBvciBhIHRleHQgbm9kZSB0aGF0CiAJOzsgZW5kcyB3aXRoIGEgbmV3bGluZSwg dGhlbiB3ZSBpbmRlbnQgdGhlIGVuZCB0YWcuCi0gICAgICAgICh3aGVuIChhbmQgcHJldHR5 Ci0JCSAgIChvciAoYm9scCkKLQkJICAgICAgIG5vbi10ZXh0KSkKLQkgICh1bmxlc3MgKGJv bHApCi0gICAgICAgICAgICAoaW5zZXJ0ICJcbiIpKQotCSAgKGluc2VydCAobWFrZS1zdHJp bmcgY29sdW1uID9ccykpKQorICAgICAgICAod2hlbiAoYW5kIHByZXR0eSAob3IgKGJvbHAp IG5vbi10ZXh0KSkKKwkgIChvciAoYm9scCkgKGluc2VydCAiXG4iKSkKKwkgIChpbmRlbnQt bGluZS10byBjb2x1bW4pKQogICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIjwvJXM+IiAoZG9t LXRhZyBkb20pKSkpKSkpCiAKIChwcm92aWRlICdkb20pCg== --------------kFME70TTGUdjAuHdGz7SGN3F--
Received: (at control) by debbugs.gnu.org; 5 Feb 2025 22:42:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 05 17:42:52 2025 Received: from localhost ([127.0.0.1]:53123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tfo6e-0005kb-7g for submit <at> debbugs.gnu.org; Wed, 05 Feb 2025 17:42:52 -0500 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]:52596) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>) id 1tfo6b-0005kK-Uj for control <at> debbugs.gnu.org; Wed, 05 Feb 2025 17:42:50 -0500 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-5dce4a5d8a0so556687a12.1 for <control <at> debbugs.gnu.org>; Wed, 05 Feb 2025 14:42:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738795363; x=1739400163; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=4Ed6Mu8O0/QUWKTwIDRXTvQcmMya0OOIOP0CfYuO/VE=; b=Cr2NfZTokwgBU2vuoZCGmz3qHpWyQ01wxZ2WPsOFY9YWem0WLPFqHzPy3K06npFSbg Sj04YoCn1J3tYA1RaTi+B5XjoPlohABQBLuPf8a89MguLtBIseAa2v54FfiHKU+joAE1 2WRtbQCmx9odZCqKjKz8YUmfKHdPXOVZkTvUuRUM/1VMgkSNC5pQMUjx3W2HW9TcPvzD ilv0a9HnB/9j1ta4bSJXfQAwzpe/nyV4zpbVdAVYhSw2cIdlUmQPDUvKPGEaAIQWa4Uu 09IMHlKC7l2DZJqo6zDZuqBHvFhqBJCZqF2N+ZCRZbTOrCdNkym/klFmrel7WN1gp9vi gSrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738795363; x=1739400163; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=4Ed6Mu8O0/QUWKTwIDRXTvQcmMya0OOIOP0CfYuO/VE=; b=BE39/k8MvI1nxZIVF38dEcgnDv11LRS6JvZKVaSxhIcQSvI+tJfuYsjxMcXsVDw+Cl ujl8rZvVRBtv5hhCMW/6olYWasvj1oTo6NcJz2PIVa2nTvySYdzoa56fKmvFlQNs2ODK mWCChNGAjT/7P3Ps87qO+9xrwNCcMehaPGDZ2M9Fr9wf1Kwoz2rOiJ+3t/ykgOAWvre1 IMJTAXD8iAwIknX94kiMMlH0oyHbZbeGzOk5wVsgp4zB2iuEluSekNuj5dS9IkMXEnA2 +csyE4aYee65KU3DJ53Lj5yhwJnnzLcVfN0Kro2bD37ti5Q6uKLNuyKjtJYdsIqwOJMw Pvpg== X-Gm-Message-State: AOJu0Yy/Ue5Z8s2MhEmUqUhY8OTbWN79ek6ef4+3Anadh0PF10OPJj4r EGlbF+LuDmjz0vAsQlZZ13TJ4LEuKm9vQhMqU8fH3KGuwVtLp4C6SWfMptNTyxgozaO4s/MzfTG yWkiiWhWk7x3dFTR5chpxeou2gt9KejGM X-Gm-Gg: ASbGncs5DfVjS0gq94ZJVNQ6GerHqXsAod8b22NGynMkvnK5rbIf3smIA3h/GkRZ3dx NmSBG5MdFpd+6mUh1J4jmoUCHh2eixaMyveFq6x/W8AGKugVMKo1JYM4Q3rJecLQYGGMqk8tIOA == X-Google-Smtp-Source: AGHT+IF5FyGB+28b8pZSn5AGpCH9lIzQfynhmfNmuVMKct8/iFqYMfUvrmwdEfIzyOgc5VZovUmGtVr2+gv71BsQeUI= X-Received: by 2002:a05:6402:40c2:b0:5dc:9589:9f64 with SMTP id 4fb4d7f45d1cf-5dcdb712578mr11765415a12.13.1738795363262; Wed, 05 Feb 2025 14:42:43 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Wed, 5 Feb 2025 16:42:42 -0600 From: Stefan Kangas <stefankangas@HIDDEN> MIME-Version: 1.0 Date: Wed, 5 Feb 2025 16:42:42 -0600 X-Gm-Features: AWEUYZktfoRLJMVS6lmP8u8_T42r5D_gAJ6sahAsYiWVvqVEtLCQmk6iAbxvVmc Message-ID: <CADwFkmnEmXha8xUwj5NZ2mB2pejBEMzc78f5q+c__gFAYkoc+A@HIDDEN> Subject: To: control <at> debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.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 the administrator of that system for details. Content preview: tags 75928 + patch thanks Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (stefankangas[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:52c listed in] [list.dnswl.org] 2.0 BLANK_SUBJECT Subject is present but empty 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.0 (+) tags 75928 + patch thanks
X-Loop: help-debbugs@HIDDEN Subject: bug#75928: 31.0.50; `dom-print' often fails to print an SVG DOM Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 08 Feb 2025 09:42:02 +0000 Resent-Message-ID: <handler.75928.B75928.173900770824847 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 75928 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: David Ponce <da_vid@HIDDEN> Cc: 75928 <at> debbugs.gnu.org Received: via spool by 75928-submit <at> debbugs.gnu.org id=B75928.173900770824847 (code B ref 75928); Sat, 08 Feb 2025 09:42:02 +0000 Received: (at 75928) by debbugs.gnu.org; 8 Feb 2025 09:41:48 +0000 Received: from localhost ([127.0.0.1]:38588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tghLQ-0006Sg-As for submit <at> debbugs.gnu.org; Sat, 08 Feb 2025 04:41:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39712) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tghLN-0006SR-UO for 75928 <at> debbugs.gnu.org; Sat, 08 Feb 2025 04:41:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tghLI-0002sr-1b; Sat, 08 Feb 2025 04:41:40 -0500 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=byzuz9DsEEeLwXkLG3Be08g3hxknnxvx83YJfEJV6dw=; b=ROyglO+VXBpD cQ6+5Qjkiqo6gGhUZ59Ojd0xzPku8o44cwjbqTzn7nkpfQiBPFYRsWImw32ckTb/a5C3G5A3UwbMi xHMOoC/NUMJC0686nukvIr72qMJykH6d+WIxF3Dv2PC0jrmvftShTvQiKZRrAK0C2U/XAri+GtbSZ e4i2RN0/tO0hLWk67m8nCyzIzcWl7HGz6c/XXgciKZB2LKDmfcCKpTY8eydSClLKxtoDcpE0ERVhM rIMHixFLCQ3tE8xzwiYSb+MxR4OtmHPICTw5WbLDChfed/op9kqpy2pI4zn7smaKwxsD48vQnSvYt VMwCi6nH/2MuPuuvKPZPdA==; Date: Sat, 08 Feb 2025 11:41:38 +0200 Message-Id: <86o6zc3h9p.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <76435a3b-75a8-42f4-b1cf-d7f054e11737@HIDDEN> (bug-gnu-emacs@HIDDEN) References: <ec2723d5-9f6c-4250-8ab8-50e6664c4565@HIDDEN> <76435a3b-75a8-42f4-b1cf-d7f054e11737@HIDDEN> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Wed, 5 Feb 2025 13:01:04 +0100 > From: David Ponce via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> > > I attached a new patch that also avoid printing attributes without a > value (value is nil in the DOM). > > I also refreshed the list of HTML boolean attributes from the current > standard, and put checking for a boolean attribute in a separate > inline function for clarity. > > The patch also slightly improve the code by computing the indentation > column outside of loop and delegating indentation to `indent-line-to'. Thanks. Using indent-line-to requires binding indent-tabs-mode to nil, to make sure we produce spaces and not TABs, right? Also, please make sure the dom.el test suite still passes after this change, if you haven't already. Bonus points for providing a new test for this feature.
X-Loop: help-debbugs@HIDDEN Subject: bug#75928: 31.0.50; `dom-print' often fails to print an SVG DOM Resent-From: David Ponce <da_vid@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 08 Feb 2025 12:56:02 +0000 Resent-Message-ID: <handler.75928.B75928.173901933019193 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 75928 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii <eliz@HIDDEN> Cc: 75928 <at> debbugs.gnu.org Received: via spool by 75928-submit <at> debbugs.gnu.org id=B75928.173901933019193 (code B ref 75928); Sat, 08 Feb 2025 12:56:02 +0000 Received: (at 75928) by debbugs.gnu.org; 8 Feb 2025 12:55:30 +0000 Received: from localhost ([127.0.0.1]:39074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tgkMr-0004zU-4A for submit <at> debbugs.gnu.org; Sat, 08 Feb 2025 07:55:29 -0500 Received: from smtp-21.smtpout.orange.fr ([80.12.242.21]:38259 helo=smtp.smtpout.orange.fr) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <da_vid@HIDDEN>) id 1tgkMn-0004zG-39 for 75928 <at> debbugs.gnu.org; Sat, 08 Feb 2025 07:55:26 -0500 Received: from [192.168.1.21] ([90.112.40.65]) by smtp.orange.fr with ESMTPA id gkMftaLJW8ZoAgkMitILce; Sat, 08 Feb 2025 13:55:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1739019323; bh=M/l2j10Lg84eNNZgA8QtqOoVVFwWZS+ULjFCiDwJOVQ=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=aLoUlxM18M6wembdlzSFI9isaVDB1hsoNZNt4I+NxV3ePnpFKR1OVLIOGBXyLjd9S YqPfHW44P4QPmsykNdYbJm7WauxJ8tYZt0owy9bFD+/GTtL++YD/BYx6zr3aQd8oWc jREDMyPB9jYpkIJtluYe1v20oXKK8xqNh85CqmRlpMPmEkmuSDJhVliS8z44uSuPAC JviP5jz5cN6ao0XFT1ZXeT1O+coUtZBtfwetpqj9cZPyOkG2W+BRyvLWFKcmYdL04h qZbf8ofAeAtCqPw8pnp0mWdDXftaikZDbyomzYaNON6B3WPqlAIeqhkPLGINynyZpK vi7+7PTyzMKCg== X-ME-Helo: [192.168.1.21] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Sat, 08 Feb 2025 13:55:23 +0100 X-ME-IP: 90.112.40.65 Content-Type: multipart/mixed; boundary="------------DbNx3wQebTmUTMQ5XPySP6MO" Message-ID: <9154b4d5-b581-4f6d-aa21-c0e46af22b05@HIDDEN> Date: Sat, 8 Feb 2025 13:55:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <ec2723d5-9f6c-4250-8ab8-50e6664c4565@HIDDEN> <76435a3b-75a8-42f4-b1cf-d7f054e11737@HIDDEN> <86o6zc3h9p.fsf@HIDDEN> Content-Language: fr, en-US From: David Ponce <da_vid@HIDDEN> In-Reply-To: <86o6zc3h9p.fsf@HIDDEN> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------DbNx3wQebTmUTMQ5XPySP6MO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2025-02-08 10:41, Eli Zaretskii wrote: >> Date: Wed, 5 Feb 2025 13:01:04 +0100 >> From: David Ponce via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> >> >> I attached a new patch that also avoid printing attributes without a >> value (value is nil in the DOM). >> >> I also refreshed the list of HTML boolean attributes from the current >> standard, and put checking for a boolean attribute in a separate >> inline function for clarity. >> >> The patch also slightly improve the code by computing the indentation >> column outside of loop and delegating indentation to `indent-line-to'. > > Thanks. > > Using indent-line-to requires binding indent-tabs-mode to nil, to make > sure we produce spaces and not TABs, right? > > Also, please make sure the dom.el test suite still passes after this > change, if you haven't already. Bonus points for providing a new test > for this feature. Hello Eli, Thank you very much for your feedback. Please, find attached a new patch to force indent with spaces and to add two new tests to dom-tests.el. Here is the updated change log: 2025-02-08 David Ponce <da_vid@HIDDEN> Fix DOM printing when an attribute value is not a string, which is often the case in SVG DOM. Don't print attributes without a value. Refresh the list of HTML boolean attributes. * lisp/dom.el (dom--html-boolean-attribute-p): New function. (dom-print): Use it. Convert attribute value to string before to call `url-insert-entities-in-string'. Don't print attribute without a value. Compute indentation column outside of loop and call `indent-line-to' to indent line. * test/lisp/dom-tests.el (dom-tests-print-svg) (dom-tests-print-html-boolean): New tests. All tests in dom-tests.el passed for me: Running 28 tests (2025-02-08 13:45:37+0100, selector `(not (or (tag :unstable) (tag :nativecomp)))') passed 1/28 dom-test-search (0.000180 sec) passed 2/28 dom-tests-add-child-before (0.000199 sec) passed 3/28 dom-tests-append-child (0.000074 sec) passed 4/28 dom-tests-attr (0.000096 sec) passed 5/28 dom-tests-attributes (0.000054 sec) passed 6/28 dom-tests-by-class (0.000074 sec) passed 7/28 dom-tests-by-id (0.000091 sec) passed 8/28 dom-tests-by-style (0.000054 sec) passed 9/28 dom-tests-by-tag (0.000052 sec) passed 10/28 dom-tests-child-by-tag (0.000047 sec) passed 11/28 dom-tests-children (0.000066 sec) passed 12/28 dom-tests-elements (0.000057 sec) passed 13/28 dom-tests-ensure-node (0.000071 sec) passed 14/28 dom-tests-non-text-children (0.000057 sec) passed 15/28 dom-tests-parent (0.000052 sec) passed 16/28 dom-tests-pp (0.000102 sec) passed 17/28 dom-tests-previous-sibling (0.000049 sec) passed 18/28 dom-tests-print (0.009147 sec) passed 19/28 dom-tests-print-html-boolean (0.000200 sec) passed 20/28 dom-tests-print-svg (0.000166 sec) passed 21/28 dom-tests-remove-attribute (0.000083 sec) passed 22/28 dom-tests-remove-node (0.000088 sec) passed 23/28 dom-tests-set-attribute (0.000039 sec) passed 24/28 dom-tests-set-attributes (0.000074 sec) passed 25/28 dom-tests-strings (0.000077 sec) passed 26/28 dom-tests-tag (0.000087 sec) passed 27/28 dom-tests-text (0.000065 sec) passed 28/28 dom-tests-texts (0.000047 sec) Ran 28 tests, 28 results as expected, 0 unexpected (2025-02-08 13:45:37+0100, 0.012721 sec) --------------DbNx3wQebTmUTMQ5XPySP6MO Content-Type: text/x-patch; charset=UTF-8; name="dom-patch-V2.patch" Content-Disposition: attachment; filename="dom-patch-V2.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvZG9tLmVsIGIvbGlzcC9kb20uZWwKaW5kZXggZmMwMzIwNThl OWYuLjRkOTA0YzkyZGU5IDEwMDY0NAotLS0gYS9saXNwL2RvbS5lbAorKysgYi9saXNwL2Rv bS5lbApAQCAtMjU4LDMxICsyNTgsNDEgQEAgZG9tLXBwCiAJICAgICAgKGluc2VydCAiKSIp CiAJICAgIChpbnNlcnQgIlxuIiAobWFrZS1zdHJpbmcgKDErIGNvbHVtbikgP1xzKSkpKSkp KSkKIAorKGRlZmluZS1pbmxpbmUgZG9tLS1odG1sLWJvb2xlYW4tYXR0cmlidXRlLXAgKGF0 dHIpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBBVFRSIGlzIGFuIEhUTUwgYm9vbGVhbiBhdHRy aWJ1dGUuIgorICAoaW5saW5lLXF1b3RlCisgICAobWVtcSAsYXR0cgorICAgICAgICAgOzsg RXh0cmFjdGVkIGZyb20gdGhlIEhUTUwgTGl2aW5nIFN0YW5kYXJkIGxpc3Qgb2YgYXR0cmli dXRlcworICAgICAgICAgOzsgYXQgPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0 dHJpYnV0ZXMtMz4uCisgICAgICAgICAnKCBhbGxvd2Z1bGxzY3JlZW4gYWxwaGEgYXN5bmMg YXV0b2ZvY3VzIGF1dG9wbGF5IGNoZWNrZWQKKyAgICAgICAgICAgIGNvbnRyb2xzIGRlZmF1 bHQgZGVmZXIgZGlzYWJsZWQgZm9ybW5vdmFsaWRhdGUgaW5lcnQgaXNtYXAKKyAgICAgICAg ICAgIGl0ZW1zY29wZSBsb29wIG11bHRpcGxlIG11dGVkIG5vbW9kdWxlIG5vdmFsaWRhdGUg b3BlbgorICAgICAgICAgICAgcGxheXNpbmxpbmUgcmVhZG9ubHkgcmVxdWlyZWQgcmV2ZXJz ZWQgc2VsZWN0ZWQKKyAgICAgICAgICAgIHNoYWRvd3Jvb3RjbG9uYWJsZSBzaGFkb3dyb290 ZGVsZWdhdGVzZm9jdXMKKyAgICAgICAgICAgIHNoYWRvd3Jvb3RzZXJpYWxpemFibGUpKSkp CisKIChkZWZ1biBkb20tcHJpbnQgKGRvbSAmb3B0aW9uYWwgcHJldHR5IHhtbCkKICAgIlBy aW50IERPTSBhdCBwb2ludCBhcyBIVE1ML1hNTC4KIElmIFBSRVRUWSwgaW5kZW50IHRoZSBI VE1ML1hNTCBsb2dpY2FsbHkuCiBJZiBYTUwsIGdlbmVyYXRlIFhNTCBpbnN0ZWFkIG9mIEhU TUwuIgotICAobGV0ICgoY29sdW1uIChjdXJyZW50LWNvbHVtbikpKQorICAobGV0ICgoY29s dW1uIChjdXJyZW50LWNvbHVtbikpCisgICAgICAgIChpbmRlbnQtdGFicy1tb2RlIG5pbCkp IDs7IEluZGVudCB3aXRoIHNwYWNlcwogICAgIChpbnNlcnQgKGZvcm1hdCAiPCVzIiAoZG9t LXRhZyBkb20pKSkKLSAgICAobGV0ICgoYXR0ciAoZG9tLWF0dHJpYnV0ZXMgZG9tKSkpCi0g ICAgICAoZG9saXN0IChlbGVtIGF0dHIpCi0JOzsgSW4gSFRNTCwgdGhlc2UgYXJlIGJvb2xl YW4gYXR0cmlidXRlcyB0aGF0IHNob3VsZCBub3QgaGF2ZQotCTs7IGFuID0gdmFsdWUuCi0J KGluc2VydCAoaWYgKGFuZCAobWVtcSAoY2FyIGVsZW0pCi0JCQkgICAgICAgJyhhc3luYyBh dXRvZm9jdXMgYXV0b3BsYXkgY2hlY2tlZAotCQkJICAgICAgICAgY29udGVudGVkaXRhYmxl IGNvbnRyb2xzIGRlZmF1bHQKLQkJCSAgICAgICAgIGRlZmVyIGRpc2FibGVkIGZvcm1Ob1Zh bGlkYXRlIGZyYW1lYm9yZGVyCi0JCQkgICAgICAgICBoaWRkZW4gaXNtYXAgaXRlbXNjb3Bl IGxvb3AKLQkJCSAgICAgICAgIG11bHRpcGxlIG11dGVkIG5vbW9kdWxlIG5vdmFsaWRhdGUg b3BlbgotCQkJICAgICAgICAgcmVhZG9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQKLQkJCSAgICAg ICAgIHNjb3BlZCBzZWxlY3RlZCB0eXBlbXVzdG1hdGNoKSkKLQkJCSAoY2RyIGVsZW0pCi0J CQkgKG5vdCB4bWwpKQotCQkgICAgKGZvcm1hdCAiICVzIiAoY2FyIGVsZW0pKQotCQkgIChm b3JtYXQgIiAlcz1cIiVzXCIiIChjYXIgZWxlbSkKLQkgICAgICAgICAgICAgICAgICAodXJs LWluc2VydC1lbnRpdGllcy1pbi1zdHJpbmcgKGNkciBlbGVtKSkpKSkpKQorICAgIChwY2Fz ZS1kb2xpc3QgKGAoLGF0dHIgLiAsdmFsdWUpIChkb20tYXR0cmlidXRlcyBkb20pKQorICAg ICAgOzsgRG9uJ3QgcHJpbnQgYXR0cmlidXRlcyB3aXRob3V0IGEgdmFsdWUuCisgICAgICAo d2hlbiB2YWx1ZQorICAgICAgICAoaW5zZXJ0CisgICAgICAgICA7OyBIVE1MIGJvb2xlYW4g YXR0cmlidXRlcyBzaG91bGQgbm90IGhhdmUgYW4gPSB2YWx1ZS4gIFRoZQorICAgICAgICAg OzsgcHJlc2VuY2Ugb2YgYSBib29sZWFuIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50IHJlcHJl c2VudHMKKyAgICAgICAgIDs7IHRoZSB0cnVlIHZhbHVlLCBhbmQgdGhlIGFic2VuY2Ugb2Yg dGhlIGF0dHJpYnV0ZQorICAgICAgICAgOzsgcmVwcmVzZW50cyB0aGUgZmFsc2UgdmFsdWUu CisgICAgICAgICAoaWYgKGFuZCAobm90IHhtbCkgKGRvbS0taHRtbC1ib29sZWFuLWF0dHJp YnV0ZS1wIGF0dHIpKQorICAgICAgICAgICAgIChmb3JtYXQgIiAlcyIgYXR0cikKKyAgICAg ICAgICAgKGZvcm1hdCAiICVzPSVTIiBhdHRyICh1cmwtaW5zZXJ0LWVudGl0aWVzLWluLXN0 cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzIiB2 YWx1ZSkpKSkpKSkKICAgICAobGV0KiAoKGNoaWxkcmVuIChkb20tY2hpbGRyZW4gZG9tKSkK LQkgICAobm9uLXRleHQgbmlsKSkKKwkgICAobm9uLXRleHQgbmlsKQorICAgICAgICAgICAo aW5kZW50ICgrIGNvbHVtbiAyKSkpCiAgICAgICAoaWYgKG51bGwgY2hpbGRyZW4pCiAJICAo aW5zZXJ0ICIgLz4iKQogCShpbnNlcnQgIj4iKQpAQCAtMjkxLDE2ICszMDEsMTQgQEAgZG9t LXByaW50CiAJICAgICAgKGluc2VydCAodXJsLWluc2VydC1lbnRpdGllcy1pbi1zdHJpbmcg Y2hpbGQpKQogCSAgICAoc2V0cSBub24tdGV4dCB0KQogCSAgICAod2hlbiBwcmV0dHkKLSAg ICAgICAgICAgICAgKGluc2VydCAiXG4iIChtYWtlLXN0cmluZyAoKyBjb2x1bW4gMikgP1xz KSkpCisgICAgICAgICAgICAgIChpbnNlcnQgIlxuIikKKyAgICAgICAgICAgICAgKGluZGVu dC1saW5lLXRvIGluZGVudCkpCiAJICAgIChkb20tcHJpbnQgY2hpbGQgcHJldHR5IHhtbCkp KQogCTs7IElmIHdlIGluc2VydGVkIG5vbi10ZXh0IGNoaWxkIG5vZGVzLCBvciBhIHRleHQg bm9kZSB0aGF0CiAJOzsgZW5kcyB3aXRoIGEgbmV3bGluZSwgdGhlbiB3ZSBpbmRlbnQgdGhl IGVuZCB0YWcuCi0gICAgICAgICh3aGVuIChhbmQgcHJldHR5Ci0JCSAgIChvciAoYm9scCkK LQkJICAgICAgIG5vbi10ZXh0KSkKLQkgICh1bmxlc3MgKGJvbHApCi0gICAgICAgICAgICAo aW5zZXJ0ICJcbiIpKQotCSAgKGluc2VydCAobWFrZS1zdHJpbmcgY29sdW1uID9ccykpKQor ICAgICAgICAod2hlbiAoYW5kIHByZXR0eSAob3IgKGJvbHApIG5vbi10ZXh0KSkKKwkgIChv ciAoYm9scCkgKGluc2VydCAiXG4iKSkKKwkgIChpbmRlbnQtbGluZS10byBjb2x1bW4pKQog ICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIjwvJXM+IiAoZG9tLXRhZyBkb20pKSkpKSkpCiAK IChwcm92aWRlICdkb20pCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZG9tLXRlc3RzLmVsIGIv dGVzdC9saXNwL2RvbS10ZXN0cy5lbAppbmRleCA0N2MyYTdiYjU2OS4uZWVjYzRmMzk4MDgg MTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9kb20tdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2Rv bS10ZXN0cy5lbApAQCAtMjcsNiArMjcsNyBAQAogOzs7IENvZGU6CiAKIChyZXF1aXJlICdk b20pCisocmVxdWlyZSAnc3ZnKQogKHJlcXVpcmUgJ2VydCkKIAogOzsgYGRlZnN1YnN0J3Mg YXJlIG5vdCBpbmxpbmVkIGluc2lkZSBgZXJ0LWRlZnRlc3QnIChzZWUgQnVnIzI0NDAyKSwK QEAgLTIxOSw2ICsyMjAsNTkgQEAgZG9tLXRlc3RzLXByaW50CiAgICAgICAgICAgICAgICAg ICAgICAiJmx0O2RpdiBjbGFzcz0mcXVvdDtkZWZhdWx0JnF1b3Q7Jmd0OyAmbHQ7L2RpdiZn dDsiCiAgICAgICAgICAgICAgICAgICAgICAiPC9zYW1wPiIpKSkpKQogCisoZXJ0LWRlZnRl c3QgZG9tLXRlc3RzLXByaW50LXN2ZyAoKQorICAiVGVzdCB0aGF0IGBkb20tcHJpbnQnIGNv cnJlY3RseSBwcmludCBhIFNWRyBET00uIgorICAobGV0ICgoc3ZnIChzdmctY3JlYXRlIDEw MCAxMDApKSkKKyAgICAoc3ZnLXJlY3RhbmdsZSBzdmcgMCAwICIxMDAlIiAiMTAwJSIgOmZp bGwgImJsdWUiKQorICAgIChzdmctdGV4dCBzdmcgIkEgdGV4dCIgOnggMCA6eSA1NSA6c3Ry b2tlICJ5ZWxsb3ciIDpmaWxsICJ5ZWxsb3ciKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisg ICAgICAoZG9tLXByaW50IHN2ZyB0IHQpCisgICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFs CisgICAgICAgIChidWZmZXItc3RyaW5nKQorICAgICAgICAoY29uY2F0CisgICAgICAgICAi PHN2ZyB3aWR0aD1cIjEwMFwiIGhlaWdodD1cIjEwMFwiIHZlcnNpb249XCIxLjFcIiAiCisg ICAgICAgICAieG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiICIKKyAgICAg ICAgICJ4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cbiIK KyAgICAgICAgICIgIDxyZWN0IHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB4PVwi MFwiIHk9XCIwXCIgZmlsbD1cImJsdWVcIiAvPlxuIgorICAgICAgICAgIiAgPHRleHQgZmls bD1cInllbGxvd1wiIHN0cm9rZT1cInllbGxvd1wiIHk9XCI1NVwiIHg9XCIwXCI+QSB0ZXh0 PC90ZXh0PlxuIgorICAgICAgICAgIjwvc3ZnPiIpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGRv bS10ZXN0cy1wcmludC1odG1sLWJvb2xlYW4gKCkKKyAgIlRlc3QgdGhhdCBgZG9tLXByaW50 JyBjb3JyZWN0bHkgcHJpbnQgSFRNTCBib29sZWFuIGF0dHJpYnV0ZXMuIgorICAobGV0ICgo ZG9tIChkb20tbm9kZQorICAgICAgICAgICAgICAiaHRtbCIgbmlsCisgICAgICAgICAgICAg IChkb20tbm9kZSAiaGVhZCIgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9tLW5v ZGUgInRpdGxlIiBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVz dCBib29sZWFuIGF0dHJpYnV0ZXMiKSkKKyAgICAgICAgICAgICAgKGRvbS1ub2RlICJib2R5 IiBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgIDs7IFRoZSBmb2xsb3dpbmcgY2hlY2ti b3hlcyBhcmUgY2hlY2tlZAorICAgICAgICAgICAgICAgICAgICAgICAgKGRvbS1ub2RlICJp bnB1dCIgJygodHlwZSAuICJjaGVja2JveCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjaGVja2VkIC4gIiIpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgIChkb20tbm9kZSAiaW5wdXQiICcoKHR5cGUgLiAiY2hlY2tib3giKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZCAuICJjaGVj a2VkIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGRvbS1ub2RlICJpbnB1dCIgJygo dHlwZSAuICJjaGVja2JveCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjaGVja2VkIC4gInRydWUiKSkpCisgICAgICAgICAgICAgICAgICAgICAg ICAoZG9tLW5vZGUgImlucHV0IiAnKCh0eXBlIC4gImNoZWNrYm94IikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWQgLiAiZmFsc2UiKSkp CisgICAgICAgICAgICAgICAgICAgICAgICA7OyBUaGUgZm9sbG93aW5nIGNoZWNrYm94IGlz IG5vdCBjaGVja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9tLW5vZGUgImlucHV0 IiAnKCh0eXBlIC4gImNoZWNrYm94IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNoZWNrZWQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICkp KSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGRvbS1wcmludCBkb20pCisgICAg ICAoc2hvdWxkCisgICAgICAgKGVxdWFsCisgICAgICAgIChidWZmZXItc3RyaW5nKQorICAg ICAgICAoY29uY2F0CisgICAgICAgICAiPGh0bWw+PGhlYWQ+PHRpdGxlPlRlc3QgYm9vbGVh biBhdHRyaWJ1dGVzPC90aXRsZT48L2hlYWQ+PGJvZHk+IgorICAgICAgICAgIjxpbnB1dCB0 eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkIC8+IgorICAgICAgICAgIjxpbnB1dCB0eXBlPVwi Y2hlY2tib3hcIiBjaGVja2VkIC8+IgorICAgICAgICAgIjxpbnB1dCB0eXBlPVwiY2hlY2ti b3hcIiBjaGVja2VkIC8+IgorICAgICAgICAgIjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBj aGVja2VkIC8+IgorICAgICAgICAgIjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAvPiIKKyAg ICAgICAgICI8L2JvZHk+PC9odG1sPiIpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IGRvbS10ZXN0 LXNlYXJjaCAoKQogICAobGV0ICgoZG9tICcoYSBuaWwgKGIgbmlsIChjIG5pbCkpKSkpCiAg ICAgKHNob3VsZCAoZXF1YWwgKGRvbS1zZWFyY2ggZG9tIChsYW1iZGEgKGQpIChlcSAoZG9t LXRhZyBkKSAnYSkpKQo= --------------DbNx3wQebTmUTMQ5XPySP6MO--
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.