From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Vitalie Spinu Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 12:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 14254@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.136680793820368 (code B ref -1); Wed, 24 Apr 2013 12:53:02 +0000 Received: (at submit) by debbugs.gnu.org; 24 Apr 2013 12:52:18 +0000 Received: from localhost ([127.0.0.1]:40595 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UUzBJ-0005IK-Bh for submit@debbugs.gnu.org; Wed, 24 Apr 2013 08:52:18 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41094) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UUzBF-0005I3-0f for submit@debbugs.gnu.org; Wed, 24 Apr 2013 08:52:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UUz6G-0007jI-9z for submit@debbugs.gnu.org; Wed, 24 Apr 2013 08:47:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:56987) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUz6G-0007jC-76 for submit@debbugs.gnu.org; Wed, 24 Apr 2013 08:47:04 -0400 Received: from eggs.gnu.org ([208.118.235.92]:52354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUz69-00069S-IJ for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2013 08:47:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UUz66-0007fw-KO for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2013 08:46:57 -0400 Received: from mail-wg0-x22d.google.com ([2a00:1450:400c:c00::22d]:59345) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUz66-0007fS-9w for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2013 08:46:54 -0400 Received: by mail-wg0-f45.google.com with SMTP id l18so815744wgh.0 for ; Wed, 24 Apr 2013 05:46:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:subject:date:message-id:mime-version :content-type; bh=hY9fo8ZcZgr9RxXWVVf94In9f9huqcqoMCJP26hwcBc=; b=0DYuWPZFcqz8J7XOYwUBa0fF+TE7P3/5ZMSzVEJYEQ+NkR12HvDDTCCtyv9EJ+XyT/ 4rY7CKuDBl2kciscJFS34/oFub/0E+6U1DUXxMDkkffxkNT8L9BqlKOwn52D8Cxsr6e+ KxjpjvPobhjdtCrTzcSSM3R5t9nN3su0ZDN+xhF3tAvY5pyw/VqfChCniKTO45cJraac /943jXQzFGNyRSYlGSllOrzyuWDt3JXLPM8e4XvFtbraWw5HfNeRB/4muHWc74E2zqtQ zd1qNe/zXVG19Nf6HMv/rSlRuo/hVcRRs2ke3kq3+vfRBBxe0GBNtC26OcCBODWCY0Os DcHQ== X-Received: by 10.194.62.18 with SMTP id u18mr19977203wjr.53.1366807612805; Wed, 24 Apr 2013 05:46:52 -0700 (PDT) Received: from localhost (dhcp-077-249-018-128.chello.nl. [77.249.18.128]) by mx.google.com with ESMTPSA id o5sm4001809wix.3.2013.04.24.05.46.51 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 24 Apr 2013 05:46:52 -0700 (PDT) From: Vitalie Spinu Date: Wed, 24 Apr 2013 14:46:50 +0200 Message-ID: <87ehe0ayf9.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -6.1 (------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.1 (------) Hi, Try (read-number "Number: ") and insert some non-numeric junk. The expected behavior is for the read-number to recognize the faulty string and ask again, like documented in (elisp) Interactive Codes: `n' A number, read with the minibuffer. If the input is not a number, the user has to try again. This doesn't happen because read-number relies on string-to-number to throw an error, which presumably was happening some time ago. Now (string-to-number "junk") returns 0. Vitalie In GNU Emacs 24.3.1 (i686-pc-linux-gnu, GTK+ Version 2.24.13) of 2013-03-12 on vitoshka-home Windowing system distributor `The X.Org Foundation', version 11.0.11300000 System Description: Ubuntu 12.10 From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number toblame) Resent-From: "Drew Adams" Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 13:15:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: "'Vitalie Spinu'" , <14254@debbugs.gnu.org> Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136680927530604 (code B ref 14254); Wed, 24 Apr 2013 13:15:01 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 13:14:35 +0000 Received: from localhost ([127.0.0.1]:40647 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UUzWr-0007xU-LT for submit@debbugs.gnu.org; Wed, 24 Apr 2013 09:14:34 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:24218) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UUzWp-0007x8-Ml for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 09:14:32 -0400 Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r3OD9Sb2004583 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 24 Apr 2013 13:09:28 GMT Received: from userz7021.oracle.com (userz7021.oracle.com [156.151.31.85]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r3OD9Qn6012401 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 24 Apr 2013 13:09:27 GMT Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56]) by userz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r3OD9Qs2029073; Wed, 24 Apr 2013 13:09:26 GMT Received: from dradamslap1 (/10.159.166.225) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 24 Apr 2013 06:09:26 -0700 From: "Drew Adams" References: <87ehe0ayf9.fsf@gmail.com> Date: Wed, 24 Apr 2013 06:09:18 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <87ehe0ayf9.fsf@gmail.com> Thread-Index: Ac5A6f5m1ySwD7mwQMeV04JatIS9qQAAlrQg X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Spam-Score: -1.5 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.2 (----) Yes, the regression was introduced in Emacs 24.3. From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Andreas Schwab Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 14:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Vitalie Spinu Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136681360423337 (code B ref 14254); Wed, 24 Apr 2013 14:27:02 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 14:26:44 +0000 Received: from localhost ([127.0.0.1]:41054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV0eh-00064L-Ma for submit@debbugs.gnu.org; Wed, 24 Apr 2013 10:26:44 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:36914) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV0eg-000646-20 for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 10:26:43 -0400 Received: from frontend1.mail.m-online.net (frontend1.mail.intern.m-online.net [192.168.8.180]) by mail-out.m-online.net (Postfix) with ESMTP id 3ZwkH64fkTz3hhbN; Wed, 24 Apr 2013 16:21:38 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3ZwkH63pHgzbbvT; Wed, 24 Apr 2013 16:21:38 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.180]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id gM7jUwyrgXgG; Wed, 24 Apr 2013 16:21:35 +0200 (CEST) X-Auth-Info: 6pNZniSw1r1yAt79ufw/iDuqvTRSxxkiSllRh5R4miU= Received: from igel.home (ppp-93-104-137-234.dynamic.mnet-online.de [93.104.137.234]) by mail.mnet-online.de (Postfix) with ESMTPA; Wed, 24 Apr 2013 16:21:35 +0200 (CEST) Received: by igel.home (Postfix, from userid 501) id 3B1D8CA2B6; Wed, 24 Apr 2013 16:21:28 +0200 (CEST) From: Andreas Schwab References: <87ehe0ayf9.fsf@gmail.com> X-Yow: Here I am at the flea market but nobody is buying my urine sample bottles.. Date: Wed, 24 Apr 2013 16:21:28 +0200 In-Reply-To: <87ehe0ayf9.fsf@gmail.com> (Vitalie Spinu's message of "Wed, 24 Apr 2013 14:46:50 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Vitalie Spinu writes: > Now (string-to-number "junk") returns 0. It always did, as documented. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number toblame) Resent-From: "Drew Adams" Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 14:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: "'Andreas Schwab'" , "'Vitalie Spinu'" Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136681500130046 (code B ref 14254); Wed, 24 Apr 2013 14:51:01 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 14:50:01 +0000 Received: from localhost ([127.0.0.1]:41095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV11E-0007oP-U0 for submit@debbugs.gnu.org; Wed, 24 Apr 2013 10:50:01 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:37313) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV11C-0007oA-93 for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 10:49:58 -0400 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by userp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r3OEirdt027931 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 24 Apr 2013 14:44:53 GMT Received: from userz7022.oracle.com (userz7022.oracle.com [156.151.31.86]) by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r3OEiqJS024242 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 24 Apr 2013 14:44:53 GMT Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64]) by userz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r3OEiq4H024222; Wed, 24 Apr 2013 14:44:52 GMT Received: from dradamslap1 (/130.35.178.8) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 24 Apr 2013 07:44:51 -0700 From: "Drew Adams" References: <87ehe0ayf9.fsf@gmail.com> Date: Wed, 24 Apr 2013 07:44:50 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: Ac5A9xvtNM8NmaxURfm2RYDjH0WvBQAAtvHg X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-Spam-Score: -1.5 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.2 (----) > > Now (string-to-number "junk") returns 0. > > It always did, as documented. The regression comes from this change in `read-number' (not from a change in `string-to-number'): Old (good): (read str) New (bad) : (string-to-number str) From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Vitalie Spinu Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 14:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andreas Schwab Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136681519331094 (code B ref 14254); Wed, 24 Apr 2013 14:54:02 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 14:53:13 +0000 Received: from localhost ([127.0.0.1]:41101 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV14K-00085T-VL for submit@debbugs.gnu.org; Wed, 24 Apr 2013 10:53:13 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:33602) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV14I-000857-Ff for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 10:53:11 -0400 Received: by mail-wi0-f171.google.com with SMTP id l13so7527228wie.4 for <14254@debbugs.gnu.org>; Wed, 24 Apr 2013 07:48:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:organization:references:date :in-reply-to:message-id:user-agent:mime-version:content-type; bh=p7P5xVKE7Dx6P0+CYE21Zo/fVVhBKOqV6heBCa1rSv8=; b=HnAhZXZYexrPrhPgCqRY1GFXLsSJ9O52jCsNtN2a+79TVVyxfKYlVrnDi7XRiHxopL mXtgqHDZCmHfWa5bipiCvq/yKLcdswXU3eD2cou4BdvwTMTqegqYAswdS5p1SRusenJr bYzs8Ab1aGwsQ1OHlRhfpIXq6gFcyvejjJI85E0nzEpJcarSeyYDc0Oko/SvPMheiZ+s i6yhrwpaW7I7VNFmR7hkk7fgQhpMlOTycnoXxCOtMtoIAArSJuVKu9edczItIDMJo4rJ rmZwR+GzyJOsYkzdC+xlz9klCvjaVmDhoxNLExGuLeWigUwn2p9/x454Zv+KE2HQgfd7 H8Zw== X-Received: by 10.194.10.129 with SMTP id i1mr54071013wjb.21.1366814886854; Wed, 24 Apr 2013 07:48:06 -0700 (PDT) Received: from localhost (dhcp-077-249-018-128.chello.nl. [77.249.18.128]) by mx.google.com with ESMTPSA id ej8sm32833776wib.9.2013.04.24.07.48.05 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 24 Apr 2013 07:48:06 -0700 (PDT) From: Vitalie Spinu Organization: EUR References: <87ehe0ayf9.fsf@gmail.com> Date: Wed, 24 Apr 2013 16:48:04 +0200 In-Reply-To: (Andreas Schwab's message of "Wed, 24 Apr 2013 16:21:28 +0200") Message-ID: <877gjsast7.fsf@gmail.com> User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) >> Andreas Schwab >> on Wed, 24 Apr 2013 16:21:28 +0200 wrote: > Vitalie Spinu writes: >> Now (string-to-number "junk") returns 0. > It always did, as documented. That presumably means that read-number never worked as originally expected. The comment in source file says that read-number should be used for "n" interactive spec, but "n" spec works as expected, so read-number is not used there. Wouldn't it be more natural for string-to-number to return nil rather than 0 in a non-number case? Vitalie From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number toblame) Resent-From: "Drew Adams" Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 15:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: "'Vitalie Spinu'" , "'Andreas Schwab'" Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.13668167335156 (code B ref 14254); Wed, 24 Apr 2013 15:19:02 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 15:18:53 +0000 Received: from localhost ([127.0.0.1]:41139 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV1TA-0001L4-Nj for submit@debbugs.gnu.org; Wed, 24 Apr 2013 11:18:53 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:24174) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV1T7-0001Kk-Ni for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 11:18:50 -0400 Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by userp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r3OFDiUl005120 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 24 Apr 2013 15:13:45 GMT Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r3OFDhqg009716 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 24 Apr 2013 15:13:44 GMT Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r3OFDg3E007490; Wed, 24 Apr 2013 15:13:42 GMT Received: from dradamslap1 (/130.35.178.8) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 24 Apr 2013 08:13:42 -0700 From: "Drew Adams" References: <87ehe0ayf9.fsf@gmail.com> <877gjsast7.fsf@gmail.com> Date: Wed, 24 Apr 2013 08:13:41 -0700 Message-ID: <0751605D820C43538A0D17CED57E237E@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <877gjsast7.fsf@gmail.com> Thread-Index: Ac5A/HWkVBGpALH/RAKpDPJCrgMTbAAAYlXw X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Spam-Score: -1.5 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.2 (----) > >> Now (string-to-number "junk") returns 0. > > > It always did, as documented. > > That presumably means that read-number never worked as originally > expected. The comment in source file says that read-number should be > used for "n" interactive spec, but "n" spec works as expected, so > read-number is not used there. > > Wouldn't it be more natural for string-to-number to return nil rather > than 0 in a non-number case? See my last reply. It's not about `string-to-number'. It's about `read-number'. And no, it has always worked as expected, up through Emacs 24.2. It was broken in 24.3, by changing (read str) to (string-to-number str). From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Glenn Morris Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 17:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Vitalie Spinu Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.13668248652282 (code B ref 14254); Wed, 24 Apr 2013 17:35:01 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 17:34:25 +0000 Received: from localhost ([127.0.0.1]:41319 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV3aK-0000al-PC for submit@debbugs.gnu.org; Wed, 24 Apr 2013 13:34:25 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:53771) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV3aI-0000ad-Mc for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 13:34:23 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1UV3VO-0003FI-DB; Wed, 24 Apr 2013 13:29:18 -0400 From: Glenn Morris References: <87ehe0ayf9.fsf@gmail.com> X-Spook: satellite imagery SAFE USCODE propaganda SCUD missile X-Ran: 1P205$00RBR4g|g47fmsPa;sT'TcU (Vitalie Spinu's message of "Wed, 24 Apr 2013 14:46:50 +0200") Message-ID: User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.8 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.7 (-----) Vitalie Spinu wrote: > This doesn't happen because read-number relies on string-to-number to > throw an error, which presumably was happening some time ago. No, it used to use "read", prior to http://lists.gnu.org/archive/html/emacs-diffs/2012-07/msg00477.html Replace `read' with `string-to-number' for consistency with `number-to-string'. I don't know why that mattered, it seems to bear no relation to the rest of the change. Going back to "read" again will fix this. Done in emacs-24. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 24 13:37:23 2013 Received: (at control) by debbugs.gnu.org; 24 Apr 2013 17:37:23 +0000 Received: from localhost ([127.0.0.1]:41324 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV3dC-0000j1-Cw for submit@debbugs.gnu.org; Wed, 24 Apr 2013 13:37:22 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:53903) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV3dA-0000in-3T for control@debbugs.gnu.org; Wed, 24 Apr 2013 13:37:20 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1UV3YG-0003nr-Mm for control@debbugs.gnu.org; Wed, 24 Apr 2013 13:32:16 -0400 Date: Wed, 24 Apr 2013 13:32:16 -0400 Message-Id: Subject: control message for bug 14254 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) close 14254 24.4 From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Juri Linkov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2013 21:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Vitalie Spinu Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136683768012644 (code B ref 14254); Wed, 24 Apr 2013 21:08:01 +0000 Received: (at 14254) by debbugs.gnu.org; 24 Apr 2013 21:08:00 +0000 Received: from localhost ([127.0.0.1]:41634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV6v2-0003Hs-31 for submit@debbugs.gnu.org; Wed, 24 Apr 2013 17:08:00 -0400 Received: from ps18281.dreamhost.com ([69.163.218.105]:36296 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UV6uz-0003Hk-Ke for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 17:07:58 -0400 Received: from localhost (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id ABA0F258B9E91C; Wed, 24 Apr 2013 14:02:51 -0700 (PDT) From: Juri Linkov Organization: JURTA References: <87ehe0ayf9.fsf@gmail.com> Date: Wed, 24 Apr 2013 23:57:18 +0300 In-Reply-To: <87ehe0ayf9.fsf@gmail.com> (Vitalie Spinu's message of "Wed, 24 Apr 2013 14:46:50 +0200") Message-ID: <87bo93abt8.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.8 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > Try (read-number "Number: ") and insert some non-numeric junk. The > expected behavior is for the read-number to recognize the faulty string > and ask again, like documented in (elisp) Interactive Codes: > > `n' > A number, read with the minibuffer. If the input is not a number, > the user has to try again. `call-interactively' doesn't use `read-number'. It duplicates code from `read-number' with a similar loop to re-read non-numbers. However, it uses `read' instead of `string-to-number'. So I agree it's better to revert the regression and to use `read' in both `read-number' and `call-interactively' for consistency. BTW, while comparing `read-number' and `call-interactively' I noticed a difference between them. Try to evaluate: (defun read-num (n) (interactive "nNumber: ") (message "Number: %s" n)) then `M-x read-num RET non-number RET' clears the prompt to the empty string. This is because `callint_message' is a global variable whose value gets cleared while reading a number from the minibuffer recursively. It should be re-initialized before re-reading the next number. Since this bug is not a regression, I propose to install this patch to trunk: === modified file 'src/callint.c' --- src/callint.c 2013-02-27 07:42:43 +0000 +++ src/callint.c 2013-04-24 20:54:52 +0000 @@ -692,6 +692,11 @@ (at your option) any later version. { message1 ("Please enter a number."); sit_for (make_number (1), 0, 0); + /* Re-initialize callint_message for next iteration. */ + if (strchr (SSDATA (visargs[0]), '%')) + callint_message = Fformat (i, visargs); + else + callint_message = visargs[0]; } first = 0; From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 Apr 2013 03:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 14254@debbugs.gnu.org, Vitalie Spinu Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.13668611421300 (code B ref 14254); Thu, 25 Apr 2013 03:40:01 +0000 Received: (at 14254) by debbugs.gnu.org; 25 Apr 2013 03:39:02 +0000 Received: from localhost ([127.0.0.1]:42009 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVD1S-0000Ks-6v for submit@debbugs.gnu.org; Wed, 24 Apr 2013 23:39:02 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.182]:51153) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVD1Q-0000KP-WC for 14254@debbugs.gnu.org; Wed, 24 Apr 2013 23:39:01 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFFpYYW/2dsb2JhbABEvw4Xc4IfAQVWIxALNBIUGA0kiCTBLZEKA6R6gV6DEw X-IPAS-Result: Av4EABK/CFFFpYYW/2dsb2JhbABEvw4Xc4IfAQVWIxALNBIUGA0kiCTBLZEKA6R6gV6DEw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="8242200" Received: from 69-165-134-22.dsl.teksavvy.com (HELO ceviche.home) ([69.165.134.22]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 24 Apr 2013 23:33:50 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 454AD660E8; Wed, 24 Apr 2013 23:33:54 -0400 (EDT) From: Stefan Monnier Message-ID: References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> Date: Wed, 24 Apr 2013 23:33:54 -0400 In-Reply-To: <87bo93abt8.fsf@mail.jurta.org> (Juri Linkov's message of "Wed, 24 Apr 2013 23:57:18 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > `call-interactively' doesn't use `read-number'. It duplicates code > from `read-number' with a similar loop to re-read non-numbers. Could you try and see if/how the C code could be changed to just call the Elisp function? Stefan From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Juri Linkov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 Apr 2013 20:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: 14254@debbugs.gnu.org, Vitalie Spinu Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136692329723013 (code B ref 14254); Thu, 25 Apr 2013 20:55:01 +0000 Received: (at 14254) by debbugs.gnu.org; 25 Apr 2013 20:54:57 +0000 Received: from localhost ([127.0.0.1]:43608 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVTBw-0005z7-Rt for submit@debbugs.gnu.org; Thu, 25 Apr 2013 16:54:57 -0400 Received: from ps18281.dreamhost.com ([69.163.218.105]:41182 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVTBu-0005yz-7S for 14254@debbugs.gnu.org; Thu, 25 Apr 2013 16:54:55 -0400 Received: from localhost (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id 4C5EB258B9E93C; Thu, 25 Apr 2013 13:49:42 -0700 (PDT) From: Juri Linkov Organization: JURTA References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> Date: Thu, 25 Apr 2013 23:44:45 +0300 In-Reply-To: (Stefan Monnier's message of "Wed, 24 Apr 2013 23:33:54 -0400") Message-ID: <87ppxi49xd.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >> `call-interactively' doesn't use `read-number'. It duplicates code >> from `read-number' with a similar loop to re-read non-numbers. > > Could you try and see if/how the C code could be changed to just call > the Elisp function? I tried and see no problems with this patch: === modified file 'src/callint.c' --- src/callint.c 2013-02-27 07:42:43 +0000 +++ src/callint.c 2013-04-25 20:41:12 +0000 @@ -34,6 +34,7 @@ (at your option) any later version. static Lisp_Object Qenable_recursive_minibuffers; static Lisp_Object Qhandle_shift_selection; +static Lisp_Object Qread_number; Lisp_Object Qmouse_leave_buffer_hook; @@ -683,29 +684,7 @@ (at your option) any later version. if (!NILP (prefix_arg)) goto have_prefix_arg; case 'n': /* Read number from minibuffer. */ - { - bool first = 1; - do - { - Lisp_Object str; - if (! first) - { - message1 ("Please enter a number."); - sit_for (make_number (1), 0, 0); - } - first = 0; - - str = Fread_from_minibuffer (callint_message, - Qnil, Qnil, Qnil, Qnil, Qnil, - Qnil); - if (! STRINGP (str) || SCHARS (str) == 0) - args[i] = Qnil; - else - args[i] = Fread (str); - } - while (! NUMBERP (args[i])); - } - visargs[i] = args[i]; + args[i] = call1 (Qread_number, callint_message); break; case 'P': /* Prefix arg in raw form. Does no I/O. */ @@ -903,6 +882,7 @@ (at your option) any later version. DEFSYM (Qminus, "-"); DEFSYM (Qplus, "+"); DEFSYM (Qhandle_shift_selection, "handle-shift-selection"); + DEFSYM (Qread_number, "read-number"); DEFSYM (Qcall_interactively, "call-interactively"); DEFSYM (Qcommand_debug_status, "command-debug-status"); DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); === modified file 'lisp/subr.el' --- lisp/subr.el 2013-04-18 00:12:33 +0000 +++ lisp/subr.el 2013-04-25 20:41:35 +0000 @@ -2200,11 +2200,11 @@ (defun read-passwd (prompt &optional con ;; And of course, don't keep the sensitive data around. (erase-buffer)))))))) -;; This should be used by `call-interactively' for `n' specs. (defun read-number (prompt &optional default) "Read a numeric value in the minibuffer, prompting with PROMPT. DEFAULT specifies a default value to return if the user just types RET. -The value of DEFAULT is inserted into PROMPT." +The value of DEFAULT is inserted into PROMPT. +This function is used by the `interactive' code letter `n'." (let ((n nil) (default1 (if (consp default) (car default) default))) (when default1 From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 Apr 2013 01:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 14254@debbugs.gnu.org, Vitalie Spinu Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.13669407808256 (code B ref 14254); Fri, 26 Apr 2013 01:47:01 +0000 Received: (at 14254) by debbugs.gnu.org; 26 Apr 2013 01:46:20 +0000 Received: from localhost ([127.0.0.1]:43908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVXjw-000295-7N for submit@debbugs.gnu.org; Thu, 25 Apr 2013 21:46:20 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.182]:17685) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVXjt-00028x-VW for 14254@debbugs.gnu.org; Thu, 25 Apr 2013 21:46:18 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFFpYYW/2dsb2JhbABEvw4Xc4IfAQVWIxALNBIUGA0kiCTBLZEKA6R6gV6DEw X-IPAS-Result: Av4EABK/CFFFpYYW/2dsb2JhbABEvw4Xc4IfAQVWIxALNBIUGA0kiCTBLZEKA6R6gV6DEw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="8332840" Received: from 69-165-134-22.dsl.teksavvy.com (HELO pastel.home) ([69.165.134.22]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 25 Apr 2013 21:46:14 -0400 Received: by pastel.home (Postfix, from userid 20848) id 4615667A35; Thu, 25 Apr 2013 21:46:12 -0400 (EDT) From: Stefan Monnier Message-ID: References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> <87ppxi49xd.fsf@mail.jurta.org> Date: Thu, 25 Apr 2013 21:46:12 -0400 In-Reply-To: <87ppxi49xd.fsf@mail.jurta.org> (Juri Linkov's message of "Thu, 25 Apr 2013 23:44:45 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >>> `call-interactively' doesn't use `read-number'. It duplicates code >>> from `read-number' with a similar loop to re-read non-numbers. >> Could you try and see if/how the C code could be changed to just call >> the Elisp function? > I tried and see no problems with this patch: Thank you, looks good: please install, Stefan From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Juri Linkov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 May 2013 08:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136791642222811 (code B ref 14254); Tue, 07 May 2013 08:48:02 +0000 Received: (at 14254) by debbugs.gnu.org; 7 May 2013 08:47:02 +0000 Received: from localhost ([127.0.0.1]:60579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZdY5-0005vi-17 for submit@debbugs.gnu.org; Tue, 07 May 2013 04:47:02 -0400 Received: from ps18281.dreamhost.com ([69.163.218.105]:55444 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZdY2-0005vW-GQ for 14254@debbugs.gnu.org; Tue, 07 May 2013 04:46:59 -0400 Received: from localhost (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id 6414E258B9E93C; Tue, 7 May 2013 01:45:55 -0700 (PDT) From: Juri Linkov Organization: JURTA References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> <87ppxi49xd.fsf@mail.jurta.org> Date: Tue, 07 May 2013 11:42:41 +0300 In-Reply-To: <87ppxi49xd.fsf@mail.jurta.org> (Juri Linkov's message of "Thu, 25 Apr 2013 23:44:45 +0300") Message-ID: <877gjbgozi.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >>> `call-interactively' doesn't use `read-number'. It duplicates code >>> from `read-number' with a similar loop to re-read non-numbers. >> >> Could you try and see if/how the C code could be changed to just call >> the Elisp function? > > === modified file 'src/callint.c' > --- src/callint.c 2013-02-27 07:42:43 +0000 > +++ src/callint.c 2013-04-25 20:41:12 +0000 > [...] > - visargs[i] = args[i]; > + args[i] = call1 (Qread_number, callint_message); > break; I should have mentioned that original code contained the line visargs[i] = args[i]; but I omitted it in the change since it has no effect because this code at the end of `Fcall_interactively' for (i = 1; i < nargs; i++) { if (varies[i] > 0) visargs[i] = Fcons (intern (callint_argfuns[varies[i]]), Qnil); else visargs[i] = quotify_arg (args[i]); } overwrites elements of `visargs' anyway. I don't understand why `Fcall_interactively' contains many lines of such useless code as visargs[i] = last_minibuf_string; If the intention was to collect strings in `visargs' and use them later then old code for numbers (currently still useless) was wrong, it should convert numbers to strings with something like visargs[i] = Fnumber_to_string(args[i]); From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 May 2013 13:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136793395231151 (code B ref 14254); Tue, 07 May 2013 13:40:02 +0000 Received: (at 14254) by debbugs.gnu.org; 7 May 2013 13:39:12 +0000 Received: from localhost ([127.0.0.1]:60833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZi6p-00086L-LU for submit@debbugs.gnu.org; Tue, 07 May 2013 09:39:12 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.182]:18429) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZi6m-00086A-UU for 14254@debbugs.gnu.org; Tue, 07 May 2013 09:39:09 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFG4rwb8/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GsR+QDo0fg2sDklqSIIFegxOBUw X-IPAS-Result: Av4EABK/CFG4rwb8/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GsR+QDo0fg2sDklqSIIFegxOBUw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="11457594" Received: from 184-175-6-252.dsl.teksavvy.com (HELO pastel.home) ([184.175.6.252]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 07 May 2013 09:38:00 -0400 Received: by pastel.home (Postfix, from userid 20848) id 0C83067A76; Tue, 7 May 2013 09:38:03 -0400 (EDT) From: Stefan Monnier Message-ID: References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> <87ppxi49xd.fsf@mail.jurta.org> <877gjbgozi.fsf@mail.jurta.org> Date: Tue, 07 May 2013 09:38:02 -0400 In-Reply-To: <877gjbgozi.fsf@mail.jurta.org> (Juri Linkov's message of "Tue, 07 May 2013 11:42:41 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > I should have mentioned that original code contained the line > visargs[i] = args[i]; > but I omitted it in the change since it has no effect > because this code at the end of `Fcall_interactively' > for (i = 1; i < nargs; i++) > { > if (varies[i] > 0) > visargs[i] = Fcons (intern (callint_argfuns[varies[i]]), Qnil); > else > visargs[i] = quotify_arg (args[i]); > } Here's what's going on: visargs is used in two different ways, just in order to avoid allocating a third array: - inside the loop, visargs keeps a representation of the arguments, which is used when the prompt of an argument contains a % (in which case it's passed to `format'). This is a rarely used feature which can be seen in: % grep '(interactive ".*%' lisp/**/*.el lisp/abbrev.el: (interactive "sDefine global abbrev: \nsExpansion for %s: ") lisp/abbrev.el: (interactive "sDefine mode abbrev: \nsExpansion for %s: ") lisp/dired-x.el: (interactive "FRelSymLink: \nFRelSymLink %s: \np") lisp/mail/mailabbrev.el: (interactive "sDefine mail alias: \nsDefine %s as mail alias for: ") lisp/mail/mailalias.el: (interactive "sDefine mail alias: \nsDefine %s as mail alias for: ") lisp/net/ange-ftp.el: (interactive "fCopy file: \nFCopy %s to file: \np") lisp/net/ange-ftp.el: (interactive "fRename file: \nFRename %s to file: \np") lisp/subr.el: (interactive "KSet key globally: \nCSet key %s to command: ") lisp/subr.el: (interactive "KSet key locally: \nCSet key %s locally to command: ") % This is the reason why it's called "visargs" because it contains a representation of the argument which should be appropriate for display (e.g. it keeps a key-description instead of a key). FWIW, I think this is a misfeature. Better force people to use a Lisp form for the interactive spec when they need access to previous args while building subsequent args. - after the loop, this is not needed any more, but the same array is reused to build the arguments to pass to `Flist' to make the entry to add in command-history. > I don't understand why `Fcall_interactively' contains many lines of > such useless code as > visargs[i] = last_minibuf_string; > If the intention was to collect strings in `visargs' and use them later > then old code for numbers (currently still useless) was wrong, > it should convert numbers to strings with something like > visargs[i] = Fnumber_to_string(args[i]); I don't understand all those "visargs[i] = last_minibuf_string;" either, because visargs doesn't need to contain only strings, since format's %s will handle non-strings. Stefan From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Juri Linkov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 May 2013 20:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.13679599746029 (code B ref 14254); Tue, 07 May 2013 20:53:02 +0000 Received: (at 14254) by debbugs.gnu.org; 7 May 2013 20:52:54 +0000 Received: from localhost ([127.0.0.1]:33193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZosX-0001ZC-Aj for submit@debbugs.gnu.org; Tue, 07 May 2013 16:52:53 -0400 Received: from ps18281.dreamhost.com ([69.163.218.105]:42695 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZosV-0001Z0-1B for 14254@debbugs.gnu.org; Tue, 07 May 2013 16:52:52 -0400 Received: from localhost (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id E17B2258B9E91C; Tue, 7 May 2013 13:51:44 -0700 (PDT) From: Juri Linkov Organization: JURTA References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> <87ppxi49xd.fsf@mail.jurta.org> <877gjbgozi.fsf@mail.jurta.org> Date: Tue, 07 May 2013 23:51:01 +0300 In-Reply-To: (Stefan Monnier's message of "Tue, 07 May 2013 09:38:02 -0400") Message-ID: <87haie7buy.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > Here's what's going on: > visargs is used in two different ways, just in order to avoid allocating > a third array: > - inside the loop, visargs keeps a representation of the arguments, > which is used when the prompt of an argument contains a % (in which > case it's passed to `format'). Thanks for the explanation. So I added visargs[i] for numbers. IIUC, converting to the string with `Fnumber_to_string' is not needed, but I still added it for consistency with other interactive code letters like `Fchar_to_string' for `c'. Also I don't know what compiler bug is stimulated by passing args[i] directly, so I just copied code from the code letter `c'. Now it should work for this test case: (defun test (n s) (interactive "nNumber: \nsString for %s: ")) From unknown Wed Jun 18 00:30:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14254: 24.3; read-number fails to recognize faulty numbers (string-to-number to blame) Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 May 2013 21:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14254 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 14254@debbugs.gnu.org Received: via spool by 14254-submit@debbugs.gnu.org id=B14254.136796235710764 (code B ref 14254); Tue, 07 May 2013 21:33:02 +0000 Received: (at 14254) by debbugs.gnu.org; 7 May 2013 21:32:37 +0000 Received: from localhost ([127.0.0.1]:33201 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZpUy-0002nZ-RM for submit@debbugs.gnu.org; Tue, 07 May 2013 17:32:37 -0400 Received: from relais.videotron.ca ([24.201.245.36]:13739) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UZpUw-0002nQ-Fy for 14254@debbugs.gnu.org; Tue, 07 May 2013 17:32:35 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from ceviche.home ([24.201.208.110]) by VL-VM-MR002.ip.videotron.ca (Oracle Communications Messaging Exchange Server 7u4-22.01 64bit (built Apr 21 2011)) with ESMTP id <0MMG00CM56GH0920@VL-VM-MR002.ip.videotron.ca> for 14254@debbugs.gnu.org; Tue, 07 May 2013 17:31:29 -0400 (EDT) Received: by ceviche.home (Postfix, from userid 20848) id 4878066107; Tue, 07 May 2013 17:31:29 -0400 (EDT) From: Stefan Monnier Message-id: References: <87ehe0ayf9.fsf@gmail.com> <87bo93abt8.fsf@mail.jurta.org> <87ppxi49xd.fsf@mail.jurta.org> <877gjbgozi.fsf@mail.jurta.org> <87haie7buy.fsf@mail.jurta.org> Date: Tue, 07 May 2013 17:31:29 -0400 In-reply-to: <87haie7buy.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Also I don't know what compiler bug is stimulated by passing > args[i] directly, so I just copied code from the code letter `c'. This workaround has been in the file since 1991 (original commit), so I hope noone uses this compiler nowadays. Stefan