From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Thuna Newsgroups: gmane.emacs.bugs Subject: bug#72334: [PATCH] Always print commas and comma-ats specially Date: Sun, 28 Jul 2024 15:30:40 +0200 Message-ID: <874j893apr.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15110"; mail-complaints-to="usenet@ciao.gmane.io" To: 72334@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 28 15:34:20 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sY42W-0003nh-H6 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 28 Jul 2024 15:34:20 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sY429-0001qm-5R; Sun, 28 Jul 2024 09:33:57 -0400 Original-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 1sY425-0001qQ-Iq for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 09:33:54 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sY423-0001yV-SN for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 09:33:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:Subject; bh=whHvVij2LDqqwEQVi+72aU2sl7NB3Gl80LHvO0s4zVo=; b=dKUWrO7edK1lhEnmowMCJr1r74ceKQi4zQHnwb/un4xsMNbIcoNNZMYRvjkvXrQf/Ym4TV8RZRfYwR4s7MCp4kFkgQJXbibqmGvr+TNndaVFVmH2woB6OTsBJV0DhWlwtfHWXnugGpC/J+x1X5V5TQ63Vl1HWjB1sblotxAOzy8vhjUVb6NGWBtXt5PaQ4Q9gWsQouJEbQh3j/mmC8jL6M4caqIEd9ySfiD24SZTL/QOVqZh13V391D+oVSn6i0bJpT7aCJ/6X5g2lp641GZ1c9+MmAYUIo840Prdoew1EzYl9tPetfLIDw+VJF/ObOPkK0rbmsdd9aozqFQrz/c4w==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sY42E-0000bb-7d for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 09:34:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Thuna Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Jul 2024 13:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 72334 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.17221735932264 (code B ref -1); Sun, 28 Jul 2024 13:34:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 28 Jul 2024 13:33:13 +0000 Original-Received: from localhost ([127.0.0.1]:42875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sY41R-0000aR-0m for submit@debbugs.gnu.org; Sun, 28 Jul 2024 09:33:13 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:41648) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sY41N-0000aG-30 for submit@debbugs.gnu.org; Sun, 28 Jul 2024 09:33:11 -0400 Original-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 1sY3z4-0001YM-Ep for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 09:30:46 -0400 Original-Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sY3z2-0001dC-Nn for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 09:30:46 -0400 Original-Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5af326eddb2so3433463a12.1 for ; Sun, 28 Jul 2024 06:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722173443; x=1722778243; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=whHvVij2LDqqwEQVi+72aU2sl7NB3Gl80LHvO0s4zVo=; b=BQa3bUQEDQE4FDoD84dOPAnDPRb9NCQ9kDX6gPyEAmnDwTZveuKhMjm8o6fvyZnBn0 hGJqtDPsVPtRIsHbFpRneVr69ZiGcxmdYO1B8P9HVuMqJzN1j5FyyVrw9PVY5dWb0ET4 okTuOPfbE0NZwGJjTjbVhDgZLJTr5WHJEZD9DapptlbVlty45puNzmx/TYF43eAV4j5n 5Q+R/YuWV3weiT89TVosHeyitmMMtBHPT431sewV9z0UWXLLlrkyGE4OfLS6cWIZy+79 M4n6YWn+eL5pTRF7hy8oOs1gbz0c8ZKNq4bVAg9gEj42Oh4lI/uOKDYdGft1YYDfMpAc 7PTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722173443; x=1722778243; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=whHvVij2LDqqwEQVi+72aU2sl7NB3Gl80LHvO0s4zVo=; b=mWJ17Sg05oDgjbN1Fp6F1kO4DIsHyReYRSbQceWFKcdbnVRrHMCP0JYadZIcn21lDL 4FDK5466um1jfIN2J+KuFn2nMvuggMBi0vaXbdpJ2dRdtjGB5rG6CZKTsn/Mnce2JYAC +FUgxzZ3ewUcr9sIrobxyMJLmH36TRDXTMKc+JWzRGhx2o6JwxY9bpDKfJj8dM/w0+1w u90oCN6qfLpTcJNy1bM/TtEIBJle16MbK2nXGGir4jpXntrTntmxF2L9FMJ5tkM/A2m1 Mf/pig8fAoiuyzmFzoM9uEUo3YyT05vUWKhSmil0a21ONxHk6pthjeaam7QXO+6ekEDa juyA== X-Gm-Message-State: AOJu0YyMhzMZn3+COh1y4uaquf3HRu06603cBT/QobV4vgnQ01SFY1Pz 6CRsa13QSk23HGN1KsidwPVpStwteCnVH2EgGDbS6FSOBJF9EOe8leHMrw== X-Google-Smtp-Source: AGHT+IFfziqBWEj22BH59XX5QYIlRQcIoRjLdYsp/EcjckDnK3k4prYhvZsQbcNgZVQXE5wvH5odvA== X-Received: by 2002:a50:d581:0:b0:5a0:d5f2:1be with SMTP id 4fb4d7f45d1cf-5b214865f85mr1298557a12.8.1722173442563; Sun, 28 Jul 2024 06:30:42 -0700 (PDT) Original-Received: from thuna-lis3 ([85.106.105.81]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5ac6359392bsm4321445a12.33.2024.07.28.06.30.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jul 2024 06:30:41 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::536; envelope-from=thuna.cing@gmail.com; helo=mail-ed1-x536.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 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:289471 Archived-At: --=-=-= Content-Type: text/plain In 55481 the recursion was fixed but backquotes and comma(-at)s were left as-is, so as to print comma(-at)s specially only if they are escaping a backquote. This is not particularly useful (and I would argue is bad), so something like the attached patch could be a good starting point to make it so that they are always printed specially (given `print-quoted' is non-nil and it is a proper list of length two - the usual checks for other quoted forms), which also solves(maybe? - it was not the primary goal) the recursion. Feel free to change or drop whatever. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Always-print-commas-and-comma-ats-specially-with-pri.patch >From bdb1af8498b523c7e80a02675035037884a2f1d0 Mon Sep 17 00:00:00 2001 From: Thuna Date: Sun, 28 Jul 2024 14:45:40 +0200 Subject: [PATCH] Always print commas and comma-ats specially with print-quoted --- src/print.c | 47 +++++++++++++++-------------------------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/src/print.c b/src/print.c index 8f28b14e8b6..256f19aeb90 100644 --- a/src/print.c +++ b/src/print.c @@ -2488,43 +2488,26 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) && print_depth > XFIXNUM (Vprint_level)) print_c_string ("...", printcharfun); else if (print_quoted && CONSP (XCDR (obj)) && NILP (XCDR (XCDR (obj))) - && EQ (XCAR (obj), Qquote)) + && (EQ (XCAR (obj), Qquote) || + EQ (XCAR (obj), Qfunction) || + EQ (XCAR (obj), Qbackquote) || + EQ (XCAR (obj), Qcomma) || + EQ (XCAR (obj), Qcomma_at))) { - printchar ('\'', printcharfun); + if (EQ (XCAR (obj), Qquote)) + printchar ('\'', printcharfun); + else if (EQ (XCAR (obj), Qfunction)) + print_c_string("#'", printcharfun); + else if (EQ (XCAR (obj), Qbackquote)) + printchar ('`', printcharfun); + else if (EQ (XCAR (obj), Qcomma)) + printchar (',', printcharfun); + else if (EQ (XCAR (obj), Qcomma_at)) + print_c_string (",@", printcharfun); obj = XCAR (XCDR (obj)); --print_depth; /* tail recursion */ goto print_obj; } - else if (print_quoted && CONSP (XCDR (obj)) && NILP (XCDR (XCDR (obj))) - && EQ (XCAR (obj), Qfunction)) - { - print_c_string ("#'", printcharfun); - obj = XCAR (XCDR (obj)); - --print_depth; /* tail recursion */ - goto print_obj; - } - /* FIXME: Do we really need the new_backquote_output gating of - special syntax for comma and comma-at? There is basically no - benefit from it at all, and it would be nice to get rid of - the recursion here without additional complexity. */ - else if (print_quoted && CONSP (XCDR (obj)) && NILP (XCDR (XCDR (obj))) - && EQ (XCAR (obj), Qbackquote)) - { - printchar ('`', printcharfun); - new_backquote_output++; - print_object (XCAR (XCDR (obj)), printcharfun, escapeflag); - new_backquote_output--; - } - else if (print_quoted && CONSP (XCDR (obj)) && NILP (XCDR (XCDR (obj))) - && (EQ (XCAR (obj), Qcomma) - || EQ (XCAR (obj), Qcomma_at)) - && new_backquote_output) - { - print_object (XCAR (obj), printcharfun, false); - new_backquote_output--; - print_object (XCAR (XCDR (obj)), printcharfun, escapeflag); - new_backquote_output++; - } else { printchar ('(', printcharfun); -- 2.44.2 --=-=-=--