GNU bug report logs - #81751
30.1; [PATCH] csv-mode.el: Respect quoted fields when sorting numerically

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Antero Mejr <mail@HIDDEN>; Keywords: patch; dated Sun, 30 Aug 2026 19:53:03 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 81751 <at> debbugs.gnu.org:


Received: (at 81751) by debbugs.gnu.org; 3 Sep 2026 09:44:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 03 05:44:02 2026
Received: from localhost ([127.0.0.1]:51828 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1x23zF-0002i2-Ks
	for submit <at> debbugs.gnu.org; Thu, 03 Sep 2026 05:44:01 -0400
Received: from fout-a8-smtp.messagingengine.com ([103.168.172.151]:47179)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>)
 id 1x23zD-0002hb-IN
 for 81751 <at> debbugs.gnu.org; Thu, 03 Sep 2026 05:44:00 -0400
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id BA80EEC023A;
 Thu,  3 Sep 2026 05:43:53 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Thu, 03 Sep 2026 05:43:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spwhitton.name;
 h=cc:content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm2; t=1788428633; x=1788515033; bh=69H4RkbzSv
 e5FF97ehzxXJK8Xo4qMxY4+1yauylsqeo=; b=cur5pCgIKUjkgs35Tntai9kDEN
 KkxbYwXNx3Gtglp2toQ7gHxnx45s8F1C74tv8hgNMSoBYuI8gkkcdBxmflgxy+5B
 Rgo41prHnChJyHFk4PTV52WG5KexEBO8YmIilY4Ei6cC0nHr+sexd7HafwRA2ZRx
 HO6WS5kjIkSUww5RoDiwfzSTZEqYGW5eRLvgbqlnQNaXwVFhW922Xdixty+E66bv
 5Vbfn8N6szH4Mi5lbXm+n0YjveCIJLjMHUuCqIL6mXApkf27DC33s+wsVvitkipT
 Vus52dMcRrQ+yh8ckfIjurlZSKGX4mFZks7iXYO0ROV6HbkDbz4Fsnin5K4g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
 1788428633; x=1788515033; bh=69H4RkbzSve5FF97ehzxXJK8Xo4qMxY4+1y
 auylsqeo=; b=bImcz5C46RjEW3w9X6ItdbfrJnw9yOFUpH7h7P09RILZ2/9bErS
 iomOPMmA8lI9l3WyuMEaaggLrsCxKWelT7rc1/gJP70oERoW0ukT11wDzghOHHAE
 hVzB2pI7QoX6azo2TrVLVzjCPTqpTMxZRyPTVXuLXHTsAIWKopBzxYPEcVQ9Q+kH
 hOVHU3XGhQLG6OlEMB8kqr7KT26BXkPvXomq5H/Rn+Hl850aEHuixx7ihoRpIgrB
 239oaJfTawgSFibAlMlThUNQP+hbU4ds2a6l4gWE7wXGeNr10emh6H8bJY/BcdSm
 LbxP1Up1+w49R1pw5N8JyhKVxvb5CvBYouA==
X-ME-Sender: <xms:WUGZarVEZv6aqxRd12MW5LW2JZIjoONxZ8wz6-xszkqHgxLWUBvBdA>
 <xme:WUGZapl-tVh2Uv6xEiEdvFIyu8iuS_9fwj4lJ4axyCKsEu2yOcboOjo7Ko5QJsM0_
 yNCDCv_HfVMq1RhsGkOa6jgZzxNvi1iwomvQ3WtVat4eNV-Ke33caLF>
X-ME-Received: <xmr:WUGZalBTWWxDPefVlJktEstZO37fbaSaRMgO4fSzp_4oASFNMhtIqWRHAHCb1QDchtLbCxWT3YWLEQFT_EeK1fURATzTnmjeXg>
X-ME-Proxy-Cause: dmFkZTGs8d+vV5Slw0/i0i3OBjhEYA7gcywPmtZzaRalcv4VNxVyHV/HbWn7Tzpp/ZlblW
 1aPvce8234bUoGSIh+i8BgXFYcv74zzWl8ppaX4nSgFfgQhIB0pbqLeNGWwSUe/Si2C3HJ
 SsjZ0QVja2trLeZwuXqWaYHXLEkw5Jgf9w7r8nzulBh7Vf2pPlsINAJzkSCNC09xEv0zGI
 gci9gvFVIzYcSAgu5U6HC06GXwEPpRE2ChAp6oWmEaWcvkG6lrFUe2iuXb9u0l7pPNWMgG
 C8SjFEs5jzOCm3oouYWitkU2kNUEzfb6xOnRYJnPYXs3kPq+RfQqLSMXax/MXIeSKfBrao
 KpzpS7Nji0zgPC5YdhhFQYwAnFjHS3PwJy9NKiBnlapY5vgg2F4ShJsGQ7RMtWQdzq0SVT
 /psRoDL/PLzbvM6dX+hzKFQ3kTwSuoMeSIyrnN8hePmgpc2g9k7VKJoCiTarv/1F3MnEyh
 fZjOYKlnmAOp6vH7US+TTn6vmJJiYf6ubJfIPxWlnpCeiVDH6gkz6UIAx5b0WiPBu6EnHd
 od4YjpXo8cwn0wUzojvqBx6BKwlxp3OOL/C+BM7MWHNOf71Zk+6chYj9hSAhcCaaUkHEyS
 Ne+Iy3nI66TZDwEGr4vA3uKWDK4873NprJ1aVqf1ymEJO8ENYsczRc8Ececg
X-ME-Proxy: <xmx:WUGZaheifLgg3jRcGCLuHqexfms3XQ3Wf3qKsbgMF27obif0RFH2dg>
 <xmx:WUGZaoIrrM9mpeUGP2QQQvFX6Xb2tq4ZX2GAqsWphoFwarTX1mJ4tg>
 <xmx:WUGZasc91ZCanUWJCHmIsNJX9yPzsyPwk_D_h5GJfhNuh5qWmyqcFg>
 <xmx:WUGZan3KVKGlzEwe8-Bs_D2kMCh90c-co1eW5SuguTJxxee1h_PurA>
 <xmx:WUGZalrn45K9jgztDkOVsy1hb6ckS5qU-vA6UqccxTFCWeN_suvb7NF->
Feedback-ID: i62564b17:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Sep 2026 05:43:53 -0400 (EDT)
Received: by athena.silentflame.com (Postfix, from userid 1000)
 id 6C97927B504; Thu, 03 Sep 2026 10:43:52 +0100 (BST)
From: Sean Whitton <spwhitton@HIDDEN>
To: Antero Mejr <mail@HIDDEN>, 81751 <at> debbugs.gnu.org
Subject: Re: bug#81751: 30.1; [PATCH] csv-mode.el: Respect quoted fields
 when sorting numerically
In-Reply-To: <875x0rtmhi.fsf@debian>
References: <875x0rtmhi.fsf@debian>
Date: Thu, 03 Sep 2026 10:43:52 +0100
Message-ID: <87tso6pt47.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81751
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.7 (-)

Antero Mejr via "Bug reports for GNU Emacs, the Swiss army knife of text editors" [30/Aug  3:52pm -04] wrote:
> Currently, the csv-mode.el command "M-x csv-sort-numeric-fields" doesn't
> sort numeric fields that are enclosed in quotes. The attached patch
> should fix it.

Thanks.  Could you add a test to verify the fix?

-- 
Sean Whitton




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#81751; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 30 Aug 2026 19:52:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Aug 30 15:52:24 2026
Received: from localhost ([127.0.0.1]:43183 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1x0lZn-0004sJ-Jq
	for submit <at> debbugs.gnu.org; Sun, 30 Aug 2026 15:52:23 -0400
Received: from lists1p.gnu.org ([2001:470:142::17]:46294)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <mail@HIDDEN>) id 1x0lZl-0004rp-HD
 for submit <at> debbugs.gnu.org; Sun, 30 Aug 2026 15:52:21 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mail@HIDDEN>) id 1x0lZd-0002n2-A0
 for bug-gnu-emacs@HIDDEN; Sun, 30 Aug 2026 15:52:14 -0400
Received: from sendmail.purelymail.com ([34.202.193.197])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mail@HIDDEN>) id 1x0lZb-0002qg-LG
 for bug-gnu-emacs@HIDDEN; Sun, 30 Aug 2026 15:52:13 -0400
DKIM-Signature: a=rsa-sha256;
 b=oldTjxTwkP+Ksf/OGcN9eH/gaqZJKT64uvsc5D/3QUKHD+GrwJwJRVK7IPC6JQMs3kXagt2ramjYwRgKDkqidyfsWLy887krPqKWj/rohITIGZCg9a1gVPaC8rnDI0m0VSmDQ+esf632nfEop/zgfFNmJwVV6J5QI04DDLyW7BxKXInZmUcPg5n6r2woX572a2nFEkpUydZT/iK2UPA5DLVUxweSh6okd/Hlc5uMyKrzHDWYzvxzbH96Pegu3drFEjxTPT/yglBvteso5h6f4GWj/ZZo9S8Lph9h9Oa+UdEJ3UI22atx6oNLKc93huFXB3LoGnb8dBvxHmyzUhzgvg==;
 s=purelymail2; d=antr.me; v=1; bh=zOAMCoCs5nDCEE1ML5InsnJKtV6VB8nf6RjCETV5ssk=;
 h=Received:From:To:Subject:Date; 
DKIM-Signature: a=rsa-sha256;
 b=CIdWl1YEFzcIYk5KypAkl/vxv/AjXfNHEnJ0tk9fqfpRwz+fvZeZIpyX8avUHq1dfUXjx4szu/z2Xk196qS0MOZOXDYNz6R7hqahRb+tM7H2bNU/CDqBP9TTESC6fedPGrLMUJiNBFP5O18J9rNPrh2eKvO0HY14ru4PxSQLzVz4CPeV4+ZPqOpisGBHo6jH6Ek6LdKqoAN4akCu5tWvn58RhUAU03G+qeqhSrD1Sj0Ff0VmWanu7mfXxyTe5bkz/mN3yRxdUmueT/KKs5gUNudaKrkwAwSefNKIuS0Jz39cQvi8J0AJw7tBC1GZ+OhO00i2/CH9DSNbkISv5ueHUw==;
 s=purelymail2; d=purelymail.com; v=1;
 bh=zOAMCoCs5nDCEE1ML5InsnJKtV6VB8nf6RjCETV5ssk=;
 h=Feedback-ID:Received:From:To:Subject:Date; 
Feedback-ID: 731720:37473:null:purelymail
X-Pm-Original-To: bug-gnu-emacs@HIDDEN
Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 26292347
 for <bug-gnu-emacs@HIDDEN>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sun, 30 Aug 2026 19:52:09 +0000 (UTC)
From: Antero Mejr <mail@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 30.1; [PATCH] csv-mode.el: Respect quoted fields when sorting
 numerically
X-Debbugs-Cc: 
Date: Sun, 30 Aug 2026 15:52:09 -0400
Message-ID: <875x0rtmhi.fsf@debian>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=34.202.193.197; envelope-from=mail@HIDDEN;
 helo=sendmail.purelymail.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,
 RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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-Debbugs-Envelope-To: submit
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 (/)

--=-=-=
Content-Type: text/plain


Currently, the csv-mode.el command "M-x csv-sort-numeric-fields" doesn't
sort numeric fields that are enclosed in quotes. The attached patch
should fix it.


--=-=-=
Content-Type: text/x-diff
Content-Disposition: attachment;
 filename=0001-csv-mode.el-Respect-quoted-fields-when-sorting-numer.patch

From 3dc5241c8881b55fe3618ff0f9547b1abd763ae7 Mon Sep 17 00:00:00 2001
From: Antero Mejr <mail@HIDDEN>
Date: Sun, 30 Aug 2026 15:36:55 -0400
Subject: [PATCH] csv-mode.el: Respect quoted fields when sorting numerically

* csv-mode.el (csv-sort-fields-1): Update syntax table to consider quotes.
(csv-sort-numeric-fields): Unquote sorted value.
---
 csv-mode.el | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/csv-mode.el b/csv-mode.el
index b53a491768..d278ee8864 100644
--- a/csv-mode.el
+++ b/csv-mode.el
@@ -643,14 +643,18 @@ starts at the beginning of the record.
 ENDKEYFUN moves from the start of the sort key to the end of the sort key.
 ENDKEYFUN may be nil if STARTKEYFUN returns a value or if it would be the
 same as ENDRECFUN."
-  (let ((tbl (syntax-table)))
+  (let ((tbl (syntax-table))
+        (newtbl (make-syntax-table sort-fields-syntax-table)))
+    (mapc (lambda (x)
+	    (modify-syntax-entry (string-to-char x) "\"" newtbl))
+          csv-field-quotes)
     (if (zerop field) (setq field 1))
     (unwind-protect
 	(save-excursion
 	  (save-restriction
 	    (narrow-to-region beg end)
 	    (goto-char (point-min))
-	    (set-syntax-table sort-fields-syntax-table)
+	    (set-syntax-table newtbl)
 	    (sort-subr csv-descending
 		       'csv-nextrecfun 'end-of-line
 		       startkeyfun endkeyfun)))
@@ -702,10 +706,11 @@ BEG and END specify the region to sort."
 				      (goto-char (match-end 2))
 				      8)
 				     (t nil)))))
-		     (string-to-number (buffer-substring (point)
-							 (save-excursion
-							   (forward-sexp 1)
-							   (point)))
+		     (string-to-number (csv--unquote-value
+                                        (buffer-substring (point)
+							  (save-excursion
+							    (forward-sexp 1)
+							    (point))))
 				       (or base sort-numeric-base))))
 		 nil))
 
-- 
2.47.3


--=-=-=--




Acknowledgement sent to Antero Mejr <mail@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#81751; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Thu, 3 Sep 2026 10:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.