From unknown Fri Aug 15 15:58:18 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#2967: smart quotes in .emacs Reply-To: "Kit O'Connell" , 2967@debbugs.gnu.org Resent-From: "Kit O'Connell" Original-Sender: todfox@gmail.com Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sun, 12 Apr 2009 13:00:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: report 2967 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by submit@emacsbugs.donarmstrong.com id=B.12395408388048 (code B ref -1); Sun, 12 Apr 2009 13:00:03 +0000 Received: (at submit) by emacsbugs.donarmstrong.com; 12 Apr 2009 12:53:58 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=0.0 required=4.0 tests=none autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n3CCrs27008042 for ; Sun, 12 Apr 2009 05:53:56 -0700 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LszC6-0001Ln-Gv for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2009 08:53:54 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LszC5-0001Lb-VR for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2009 08:53:54 -0400 Received: from [199.232.76.173] (port=57830 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LszC5-0001LY-Rw for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2009 08:53:53 -0400 Received: from yx-out-1718.google.com ([74.125.44.152]:62077) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LszC5-0001CZ-FW for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2009 08:53:53 -0400 Received: by yx-out-1718.google.com with SMTP id 3so1322252yxi.66 for ; Sun, 12 Apr 2009 05:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:from:date :x-google-sender-auth:message-id:subject:to:content-type :content-transfer-encoding; bh=G54MkddttWtwJ8eIOKHc06BACMxIc+5NWx3cOt1qhQw=; b=h6NT7Q7EnBpFfsK69LyiwDi2MqDwEa04WdQaFlElHeKRtSrIO2qk05Hl45/B2nFET/ yq61us8gUKR1loixQ0B1Q6S+Av9MXR0uUUxcFIuvsiRpzmW2isVNYbNnV4G04WfLNf7/ xESrWeReeKicg22mLwo9x1xMpy8yEiIeuRfDs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type:content-transfer-encoding; b=bINhayAzOzH/KeUfpleoUkE1wm0OtpYzsHgBfrzY0m0ENntdVWEquHqm3sPAYIWVMK zk5KkVCpwkoMZ5Yocn746ZaPi8gr3eSxtqIKj7RE+Nu7E/PB5UsCjzAqTL89i0f8s+9h kZVpFmyeQgJJ7cLtfeW0SUTNIlZh4fAsceQ9A= MIME-Version: 1.0 Sender: todfox@gmail.com Received: by 10.151.102.21 with SMTP id e21mr3109046ybm.85.1239540832217; Sun, 12 Apr 2009 05:53:52 -0700 (PDT) From: "Kit O'Connell" Date: Sun, 12 Apr 2009 07:53:37 -0500 X-Google-Sender-Auth: 36d1644648cd86f6 Message-ID: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Hi, I was troubleshooting a friend's .emacs issues with the help of some internet assistance. When I copy/pasted people's suggested .emacs entries, some smart quotes got into the file, causing error messages. You can see the whole process of how this happened here: http://dreamcafe.com/words/2009/04/11/help-us-dr-internet-emacs-edition/#comment-5222 I think it would be good if emacs looked for smart quotes in .emacs files and gave a warning or notice if it detected them. This would help troubleshooting. Kit From cyd@stupidchicken.com Sun Apr 12 08:29:24 2009 Received: (at control) by emacsbugs.donarmstrong.com; 12 Apr 2009 15:29:25 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-2.0 required=4.0 tests=VALID_BTS_CONTROL autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n3CFTMUi018803 for ; Sun, 12 Apr 2009 08:29:23 -0700 Received: by cyd.mit.edu (Postfix, from userid 1000) id 5F5A057E21A; Sun, 12 Apr 2009 11:31:07 -0400 (EDT) From: Chong Yidong To: control@debbugs.gnu.org Subject: severity 2967 wishlist Date: Sun, 12 Apr 2009 11:31:07 -0400 Message-ID: <87k55p6g90.fsf@cyd.mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii severity 2967 wishlist thanks From unknown Fri Aug 15 15:58:18 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#2967: smart quotes in .emacs Reply-To: Stefan Monnier , 2967@debbugs.gnu.org Resent-From: Stefan Monnier Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Mon, 13 Apr 2009 12:30:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 2967 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 2967-submit@emacsbugs.donarmstrong.com id=B2967.12396254006915 (code B ref 2967); Mon, 13 Apr 2009 12:30:04 +0000 Received: (at 2967) by emacsbugs.donarmstrong.com; 13 Apr 2009 12:23:20 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-0.5 required=4.0 tests=HAS_BUG_NUMBER,XIRONPORT autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from ironport2-out.teksavvy.com (ironport2-out.teksavvy.com [206.248.154.182]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n3DCNC0h006902 for <2967@emacsbugs.donarmstrong.com>; Mon, 13 Apr 2009 05:23:14 -0700 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiAFAE3L4klLd+7D/2dsb2JhbACBUshhg3wGhRY X-IronPort-AV: E=Sophos;i="4.40,179,1238990400"; d="scan'208";a="36943740" Received: from 75-119-238-195.dsl.teksavvy.com (HELO pastel.home) ([75.119.238.195]) by ironport2-out.teksavvy.com with ESMTP; 13 Apr 2009 08:23:06 -0400 Received: by pastel.home (Postfix, from userid 20848) id 7F6ED7FE7; Mon, 13 Apr 2009 08:23:06 -0400 (EDT) From: Stefan Monnier To: "Kit O'Connell" Cc: 2967@debbugs.gnu.org Message-ID: References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> Date: Mon, 13 Apr 2009 08:23:06 -0400 In-Reply-To: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> (Kit O'Connell's message of "Sun, 12 Apr 2009 07:53:37 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii > I was troubleshooting a friend's .emacs issues with the help of some > internet assistance. When I copy/pasted people's suggested .emacs > entries, some smart quotes got into the file, causing error messages. Please explain what you mean by "smart quotes" and describe the error messages you got (and when you got them, and if they seemed to have any actual effect). Stefan From unknown Fri Aug 15 15:58:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#2967: smart quotes in .emacs Resent-From: Glenn Morris Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 10 Aug 2012 20:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 2967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: 2967@debbugs.gnu.org Received: via spool by 2967-submit@debbugs.gnu.org id=B2967.134462924229492 (code B ref 2967); Fri, 10 Aug 2012 20:08:01 +0000 Received: (at 2967) by debbugs.gnu.org; 10 Aug 2012 20:07:22 +0000 Received: from localhost ([127.0.0.1]:47532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzvUP-0007fa-Nx for submit@debbugs.gnu.org; Fri, 10 Aug 2012 16:07:22 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:59717) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzvUM-0007fP-Uj for 2967@debbugs.gnu.org; Fri, 10 Aug 2012 16:07:19 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1SzvML-0002Q1-Cj; Fri, 10 Aug 2012 15:59:01 -0400 From: Glenn Morris References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> X-Spook: AVIP satellite imagery Bin Laden rail gun MD4 JPL X-Ran: m*JA4n0rH,A5(w,F9n[s21bfQ9GrX.^_%Z^P32c"j(g`f'C>4(Hb9Rm3mj6v:Dc%[jd_Dy X-Hue: white X-Attribution: GM Date: Fri, 10 Aug 2012 15:59:01 -0400 In-Reply-To: (Stefan Monnier's message of "Mon, 13 Apr 2009 08:23:06 -0400") 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: -6.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: -6.9 (------) Stefan Monnier wrote: >> I was troubleshooting a friend's .emacs issues with the help of some >> internet assistance. When I copy/pasted people's suggested .emacs >> entries, some smart quotes got into the file, causing error messages. > > Please explain what you mean by "smart quotes" and describe the error > messages you got (and when you got them, and if they seemed to have any > actual effect). I assume the OP means something like: (set 'foo t) where the quote character is actually U+2019 "RIGHT SINGLE QUOTATION MARK" rather than a plain old-ASCII apostrophe. This leads to errors like: Symbol's value as variable is void: 'foo Recent example: http://lists.gnu.org/archive/html/help-gnu-emacs/2012-08/msg00117.html From unknown Fri Aug 15 15:58:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#2967: smart quotes in .emacs Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Jun 2017 03:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 2967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Glenn Morris Cc: 2967@debbugs.gnu.org, Alan Mackenzie , Stefan Monnier Received: via spool by 2967-submit@debbugs.gnu.org id=B2967.14968071183945 (code B ref 2967); Wed, 07 Jun 2017 03:46:01 +0000 Received: (at 2967) by debbugs.gnu.org; 7 Jun 2017 03:45:18 +0000 Received: from localhost ([127.0.0.1]:60131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIRuI-00011Z-Kb for submit@debbugs.gnu.org; Tue, 06 Jun 2017 23:45:18 -0400 Received: from mail-io0-f172.google.com ([209.85.223.172]:36073) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIRuH-00011N-16 for 2967@debbugs.gnu.org; Tue, 06 Jun 2017 23:45:17 -0400 Received: by mail-io0-f172.google.com with SMTP id y77so1864109ioe.3 for <2967@debbugs.gnu.org>; Tue, 06 Jun 2017 20:45:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=mx7ETZlEZKbQLIX0uL1XoinrxV/tLqS4sKv9vDLklNU=; b=rm1r86IVaegHosZ4HszV0kSBc9Wa/YRlBBUM/mx0vyLjoLBw0q9u6uUcykTKyF056p teXbx+cyp98SqLh5BYJp8rmlHkHDE7HrWGpqb5q6QvLeon02f8nqCAdKjGiuipe17G0T PoiHm1WDu2ka+cboZoaEgkoubFkImFwqSFAq+ewCNHgbUYZm0jYsVKuUrOoWr67aRA9a FhuVRFVoE9981WrBQY50eJukHAECzQLz7ZTWHNwi+hPXe0bC953CswL8wJqri6sYQ+Rf tfeVqQAZnVghONK//dsSfrCpc66WHr8fM41qeoDB8+cuAIYPIVtVAfFQxTh+Lky1FB/c f8gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version :content-transfer-encoding; bh=mx7ETZlEZKbQLIX0uL1XoinrxV/tLqS4sKv9vDLklNU=; b=ff2nZBQucKYJn+s/AvV0Qj2BxUnmdQ/4cYZGp1eWpNlbq4Wk05bu3NVP8HiUo8vT7c L+8Xbb1QlHeQNrZ8u5yHiM2x2kUHsq5iHe6XCF1lVGvQlrl34bhvPvtDq3rQ7b5mXZn4 9jKq/2RXVTemkZlKacxOMq2IeoGDbG+Q9oS6n/262YYsLQDcdddbIt35uNJbpDn4O7UX ZwUxKa08tuCVbQD18tRO1TOrB+sNEKQaqpambj9nPSHvu1YdmBGBznj7gWVX+y9/vF38 +fOlvwGdLZMpfyA8Wk2vXlPU3c8YHPMCSWiHfau/1+MVRM6cKUlV09GV7OWG/8XbeIaZ PFEw== X-Gm-Message-State: AODbwcC7Etkgb+ExaLQRTbW7DC29Iio0kni9U9ygSPg0erlDaMmX8Mmb 3BGE4Xff+87P7A== X-Received: by 10.107.10.160 with SMTP id 32mr24702059iok.103.1496807111282; Tue, 06 Jun 2017 20:45:11 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id e81sm181451ite.6.2017.06.06.20.45.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 Jun 2017 20:45:10 -0700 (PDT) From: npostavs@users.sourceforge.net References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> Date: Tue, 06 Jun 2017 23:46:48 -0400 In-Reply-To: (Glenn Morris's message of "Fri, 10 Aug 2012 15:59:01 -0400") Message-ID: <87ink8xxw7.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Glenn Morris writes: > I assume the OP means something like: > > (set 'foo t) > > where the quote character is actually U+2019 "RIGHT SINGLE QUOTATION MARK" > rather than a plain old-ASCII apostrophe. > > This leads to errors like: > > Symbol's value as variable is void: 'foo Adding Alan to Cc, I think this is relevant also to the scenario in Bug#23425. I propose making these funny quotes give a read syntax error in symbol name contexts. Theoretically this breaks backwards compability with code that uses variables containing them, but probably no such code exists. Something like this (not sure if this is the best way to test for them): --- i/src/lread.c +++ w/src/lread.c @@ -3349,6 +3349,15 @@ read1 (Lisp_Object readcharfun, int *pch, bool first= _in_list) ? multibyte_chars_in_text ((unsigned char *) read_buffer, nbytes) : nbytes); + if (!quoted && multibyte) + { + switch (STRING_CHAR ((unsigned char *) read_buffer)) + { + case 0x2018: /* LEFT SINGLE QUOTATION MARK */ + case 0x2019: /* RIGHT SINGLE QUOTATION MARK */ + invalid_syntax ("strange quote"); + } + } Lisp_Object name =3D ((uninterned_symbol && ! NILP (Vpurify_flag) ? make_pure_string : make_specified_string) (read_buffer, nchars, nbytes, multibyte)); We then get the following error from evaluating (read (format-message "'foo= ")): Debugger entered--Lisp error: (invalid-read-syntax "strange quote") read("=E2=80=99foo") eval((read (format-message "'foo")) nil) From unknown Fri Aug 15 15:58:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#2967: smart quotes in .emacs Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Jun 2017 05:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 2967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: npostavs@users.sourceforge.net Cc: 2967@debbugs.gnu.org, rgm@gnu.org, monnier@iro.umontreal.ca, acm@muc.de Reply-To: Eli Zaretskii Received: via spool by 2967-submit@debbugs.gnu.org id=B2967.149681219619059 (code B ref 2967); Wed, 07 Jun 2017 05:10:02 +0000 Received: (at 2967) by debbugs.gnu.org; 7 Jun 2017 05:09:56 +0000 Received: from localhost ([127.0.0.1]:60193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dITEC-0004xL-8J for submit@debbugs.gnu.org; Wed, 07 Jun 2017 01:09:56 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dITEA-0004x9-TI for 2967@debbugs.gnu.org; Wed, 07 Jun 2017 01:09:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dITE2-0005Gb-Ko for 2967@debbugs.gnu.org; Wed, 07 Jun 2017 01:09:49 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43108) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dITDt-0005Ab-Cj; Wed, 07 Jun 2017 01:09:37 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3578 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dITDr-0003dz-S7; Wed, 07 Jun 2017 01:09:36 -0400 Date: Wed, 07 Jun 2017 08:09:30 +0300 Message-Id: <83vao88jud.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87ink8xxw7.fsf@users.sourceforge.net> (npostavs@users.sourceforge.net) References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> <87ink8xxw7.fsf@users.sourceforge.net> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: npostavs@users.sourceforge.net > Date: Tue, 06 Jun 2017 23:46:48 -0400 > Cc: 2967@debbugs.gnu.org, Alan Mackenzie , > Stefan Monnier > > --- i/src/lread.c > +++ w/src/lread.c > @@ -3349,6 +3349,15 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) > ? multibyte_chars_in_text ((unsigned char *) read_buffer, > nbytes) > : nbytes); > + if (!quoted && multibyte) > + { > + switch (STRING_CHAR ((unsigned char *) read_buffer)) > + { > + case 0x2018: /* LEFT SINGLE QUOTATION MARK */ > + case 0x2019: /* RIGHT SINGLE QUOTATION MARK */ > + invalid_syntax ("strange quote"); > + } > + } > Lisp_Object name = ((uninterned_symbol && ! NILP (Vpurify_flag) > ? make_pure_string : make_specified_string) > (read_buffer, nchars, nbytes, multibyte)); > > We then get the following error from evaluating (read (format-message "'foo")): > > Debugger entered--Lisp error: (invalid-read-syntax "strange quote") > read("’foo") > eval((read (format-message "'foo")) nil) Please include the character itself in the error message text. Also, are we sure these two are the only ones we want to catch in this manner? Finally, if this is accepted, let's have a test for this, and maybe also some documentation, at least in NEWS. Thanks. From unknown Fri Aug 15 15:58:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#2967: smart quotes in .emacs Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Jul 2017 00:49:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 2967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 2967@debbugs.gnu.org, rgm@gnu.org, monnier@iro.umontreal.ca, acm@muc.de Received: via spool by 2967-submit@debbugs.gnu.org id=B2967.150025249421258 (code B ref 2967); Mon, 17 Jul 2017 00:49:01 +0000 Received: (at 2967) by debbugs.gnu.org; 17 Jul 2017 00:48:14 +0000 Received: from localhost ([127.0.0.1]:42904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWuCs-0005Wj-29 for submit@debbugs.gnu.org; Sun, 16 Jul 2017 20:48:14 -0400 Received: from mail-io0-f178.google.com ([209.85.223.178]:34673) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWuCq-0005WR-24; Sun, 16 Jul 2017 20:48:12 -0400 Received: by mail-io0-f178.google.com with SMTP id r36so35806528ioi.1; Sun, 16 Jul 2017 17:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=x0hTc/usTeLjyBEcWGDlfrbIj1x5eZn8SQ2bun7aQ8g=; b=Z0YdLqhtMOvCupn9+RoDIJMon3UuQHzddKtW3+CrSZfL8tWxE5NlqnGPZ7bU+S6s5q KTdDgTskzmyueocGmYBSmOWB0QKVFRD1lKbkU3FEAN3VqWFXZFRCd3TBSezUubsnZ4ZA w2ccg2ntRx1ZtBW3Q8whKfdDyZCq9jdxYepY3SX4LqCKgqYv5ad4bwnLWoaAe+gr1BFH EXmVVzDcpdd8EExsgZ/p1bAuWtQyAcrQ0p9hwyBedJ+IkWjoSNkojG8BNlE9FsRp4Kgp 8QrGOLudD3ao2HEY5bE5t2Fl3Cadp6pvLnNdU0Rf+6/Gtw45ilzwCCPnv2EUm5Zob24L CLeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=x0hTc/usTeLjyBEcWGDlfrbIj1x5eZn8SQ2bun7aQ8g=; b=e9rpQqQaw3JfIGYTQHgnPi5edfDDS9YemUM6HCiTP9wlL7F81E7Pks2sd1tc7PStCR kcyuoBGl/knk9Y9jbMkX4f/FDysqF1zl428ha0eiB7AaesGNZAtBpFwTBC28sPafrgsZ pxG6HLX6SX2aRix+XNjcIaQTkqUY5Yp0G15VhGFALglY3qeGo+XkYqACp9q4Xj915D9B hx1x8Gv9wxWO+QNXbF5teG8S+QZy310Z3E+2LuKVRPeSnMgUd+xM50mec6S0MaFC3Pee I+HJwcZGrd6l7F+xoa04Ei8o4zTG2mIv0DR0skcir5cfcDJ4tS3wa8rEN4wgLTJjQqq/ /Y7g== X-Gm-Message-State: AIVw111Mwi3A2EoNSPyYrVZ16BgYlY8bARXzUF3os3y3tw+2EQr1t4gB QZgIazsHpn/7CxIz X-Received: by 10.107.178.23 with SMTP id b23mr17254146iof.79.1500252486521; Sun, 16 Jul 2017 17:48:06 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id 125sm4920977itz.7.2017.07.16.17.48.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 16 Jul 2017 17:48:05 -0700 (PDT) From: npostavs@users.sourceforge.net References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> <87ink8xxw7.fsf@users.sourceforge.net> <83vao88jud.fsf@gnu.org> Date: Sun, 16 Jul 2017 20:49:39 -0400 In-Reply-To: <83vao88jud.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 07 Jun 2017 08:09:30 +0300") Message-ID: <87shhvc2fw.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.1 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) --=-=-= Content-Type: text/plain tags 2967 + patch quit Eli Zaretskii writes: > Please include the character itself in the error message text. > > Also, are we sure these two are the only ones we want to catch in this > manner? I added some more likely looking ones from https://en.wikipedia.org/wiki/Quotation_mark_glyphs. > Finally, if this is accepted, let's have a test for this, and maybe > also some documentation, at least in NEWS. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=v2-0001-Signal-error-for-symbol-names-with-strange-quotes.patch Content-Transfer-Encoding: quoted-printable Content-Description: patch >From 438030f42698f347e38a9dea1561eedadd7e2edc Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Wed, 7 Jun 2017 19:59:09 -0400 Subject: [PATCH v2] Signal error for symbol names with strange quotes (Bug#2967) * src/lread.c (read1): Signal an error when a symbol starts with a non-escaped quote-like character. * test/src/lread-tests.el (lread-tests--funny-quote-symbols): New test. * etc/NEWS: Announce change. --- etc/NEWS | 4 ++++ src/lread.c | 18 ++++++++++++++++++ test/src/lread-tests.el | 17 +++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index edb71118ef..d297d049d1 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1110,6 +1110,10 @@ instead of its first. renamed to 'lread--old-style-backquotes'. No user code should use this variable. =20 +** To avoid confusion caused by "smart quotes", the reader no longer +accepts Lisp symbols which begin with the following quotation +characters: =E2=80=98=E2=80=99=E2=80=9B=E2=80=9C=E2=80=9D=E2=80=9F=E3=80= =9E=EF=BC=82=EF=BC=87, unless they are escaped with backslash. + +++ ** Module functions are now implemented slightly differently; in particular, the function 'internal--module-call' has been removed. diff --git a/src/lread.c b/src/lread.c index 901e40b348..dbaadce4b4 100644 --- a/src/lread.c +++ b/src/lread.c @@ -3479,6 +3479,24 @@ read1 (Lisp_Object readcharfun, int *pch, bool first= _in_list) if (! NILP (result)) return unbind_to (count, result); } + if (!quoted && multibyte) + { + int ch =3D STRING_CHAR ((unsigned char *) read_buffer); + switch (ch) + { + case 0x2018: /* LEFT SINGLE QUOTATION MARK */ + case 0x2019: /* RIGHT SINGLE QUOTATION MARK */ + case 0x201B: /* SINGLE HIGH-REVERSED-9 QUOTATION MARK */ + case 0x201C: /* LEFT DOUBLE QUOTATION MARK */ + case 0x201D: /* RIGHT DOUBLE QUOTATION MARK */ + case 0x201F: /* DOUBLE HIGH-REVERSED-9 QUOTATION MARK */ + case 0x301E: /* DOUBLE PRIME QUOTATION MARK */ + case 0xFF02: /* FULLWIDTH QUOTATION MARK */ + case 0xFF07: /* FULLWIDTH APOSTROPHE */ + xsignal2 (Qinvalid_read_syntax, build_string ("strange quo= te"), + CALLN (Fstring, make_number (ch))); + } + } { Lisp_Object result; ptrdiff_t nbytes =3D p - read_buffer; diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el index a0a317feee..dd5a2003b4 100644 --- a/test/src/lread-tests.el +++ b/test/src/lread-tests.el @@ -142,6 +142,23 @@ (ert-deftest lread-tests--unescaped-char-literals () "unescaped character literals " "`?\"', `?(', `?)', `?;', `?[', `?]' detected!"= ))))) =20 +(ert-deftest lread-tests--funny-quote-symbols () + "Check that 'smart quotes' or similar trigger errors in symbol names." + (dolist (quote-char + '(#x2018 ;; LEFT SINGLE QUOTATION MARK + #x2019 ;; RIGHT SINGLE QUOTATION MARK + #x201B ;; SINGLE HIGH-REVERSED-9 QUOTATION MARK + #x201C ;; LEFT DOUBLE QUOTATION MARK + #x201D ;; RIGHT DOUBLE QUOTATION MARK + #x201F ;; DOUBLE HIGH-REVERSED-9 QUOTATION MARK + #x301E ;; DOUBLE PRIME QUOTATION MARK + #xFF02 ;; FULLWIDTH QUOTATION MARK + #xFF07 ;; FULLWIDTH APOSTROPHE + )) + (let ((str (format "%cfoo" quote-char))) + (should-error (read str) :type 'invalid-read-syntax) + (should (eq (read (concat "\\" str)) (intern str)))))) + (ert-deftest lread-test-bug26837 () "Test for http://debbugs.gnu.org/26837 ." (let ((load-path (cons --=20 2.11.1 --=-=-=-- From unknown Fri Aug 15 15:58:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#2967: smart quotes in .emacs Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Jul 2017 09:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 2967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: npostavs@users.sourceforge.net Cc: 2967@debbugs.gnu.org, rgm@gnu.org, monnier@iro.umontreal.ca, acm@muc.de Reply-To: Eli Zaretskii Received: via spool by 2967-submit@debbugs.gnu.org id=B2967.150071528329824 (code B ref 2967); Sat, 22 Jul 2017 09:22:01 +0000 Received: (at 2967) by debbugs.gnu.org; 22 Jul 2017 09:21:23 +0000 Received: from localhost ([127.0.0.1]:51893 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYqbC-0007ky-Mp for submit@debbugs.gnu.org; Sat, 22 Jul 2017 05:21:22 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43503) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYqbA-0007kl-VK for 2967@debbugs.gnu.org; Sat, 22 Jul 2017 05:21:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dYqb4-0001Ld-Py for 2967@debbugs.gnu.org; Sat, 22 Jul 2017 05:21:15 -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,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42573) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dYqaw-0001K4-U8; Sat, 22 Jul 2017 05:21:06 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3412 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dYqau-0004YO-AW; Sat, 22 Jul 2017 05:21:05 -0400 Date: Sat, 22 Jul 2017 12:20:59 +0300 Message-Id: <83wp70969w.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87shhvc2fw.fsf@users.sourceforge.net> (npostavs@users.sourceforge.net) References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> <87ink8xxw7.fsf@users.sourceforge.net> <83vao88jud.fsf@gnu.org> <87shhvc2fw.fsf@users.sourceforge.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -7.8 (-------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -7.8 (-------) > From: npostavs@users.sourceforge.net > Cc: 2967@debbugs.gnu.org, rgm@gnu.org, monnier@iro.umontreal.ca, acm@muc.de > Date: Sun, 16 Jul 2017 20:49:39 -0400 > > > Please include the character itself in the error message text. > > > > Also, are we sure these two are the only ones we want to catch in this > > manner? > > I added some more likely looking ones from > https://en.wikipedia.org/wiki/Quotation_mark_glyphs. > > > Finally, if this is accepted, let's have a test for this, and maybe > > also some documentation, at least in NEWS. > > > >From 438030f42698f347e38a9dea1561eedadd7e2edc Mon Sep 17 00:00:00 2001 > From: Noam Postavsky > Date: Wed, 7 Jun 2017 19:59:09 -0400 > Subject: [PATCH v2] Signal error for symbol names with strange quotes > (Bug#2967) > > * src/lread.c (read1): Signal an error when a symbol starts with a > non-escaped quote-like character. > * test/src/lread-tests.el (lread-tests--funny-quote-symbols): New > test. > * etc/NEWS: Announce change. Thanks, this LGTM. Please push. From unknown Fri Aug 15 15:58:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#2967: smart quotes in .emacs Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Jul 2017 14:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 2967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 2967@debbugs.gnu.org, rgm@gnu.org, monnier@iro.umontreal.ca, acm@muc.de Received: via spool by 2967-submit@debbugs.gnu.org id=B2967.15007343987810 (code B ref 2967); Sat, 22 Jul 2017 14:40:02 +0000 Received: (at 2967) by debbugs.gnu.org; 22 Jul 2017 14:39:58 +0000 Received: from localhost ([127.0.0.1]:52512 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYvZW-00021o-BR for submit@debbugs.gnu.org; Sat, 22 Jul 2017 10:39:58 -0400 Received: from mail-it0-f67.google.com ([209.85.214.67]:33880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYvZU-00021V-6w; Sat, 22 Jul 2017 10:39:56 -0400 Received: by mail-it0-f67.google.com with SMTP id t78so3224325ita.1; Sat, 22 Jul 2017 07:39:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=XPbD01aOB7ojS/Y36PI3+ZwqRngy38z/83/3fyTkj5o=; b=jx4f0UgIQkGdqro1Y8VGLb0kaYKrS2YgmeWCYY8aE9vO0cTvwBVrMfHHsSIgXttQ9A miPOcCRdp0f/XWFbSb3yn5OjhzWmAjurzsAxVR12cdBUhJ9vXeCt4+lxU2ZgieHme3NJ 4xtx/CKPSVH0WnrQLN7TSUJgcHpEGhHU0bbVd8VMfcuL94K8tzdCMZ5DpPzw2rpnrKI5 FmbgAP+qHT3NXUZZJZsQGcI7abIrb49hlSdxJlrblcYzCK7J3s0SsIDzsxb6pzYvjWsN IlHbMsXgyLR2cgAhFckG09Bkx6+J3RJ4pcfjv1pss33QOfofjYplLZRPyJSVMjHZq23X atVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=XPbD01aOB7ojS/Y36PI3+ZwqRngy38z/83/3fyTkj5o=; b=kT/MduvWLIUewFkoTiOvZOfOA1KO2r5z1jE42zjJWv2QcGP0rErDZmxR0J6vrbvLeN 6hNuk3T/d+mf3wnlh9h8NoMQV9LwXKozRomOVFzdtsFYm3aoWlPzDjZYJYfZSnAH7MYY o0cr1AkmX4XQ0A2fSaGr+wQgZcMxG+YplYzaVTi5AQ21gJ9GeAwvqgtNnvgHhAzMTLGO xmdFVs0f2AoWaZJqJEba0dWVK69jLA/NXniNAi1jN3shc5D1V3TdK4KX+iGRYzE8E3gR oF850t2AxpFOK397U9NMj4ShV+Bwt1OK0byGfsnpAYkKoRxfnczwf83nRkVs9kfJnGpR UGNw== X-Gm-Message-State: AIVw113jxhTVLChBozEu2z+2fKYdQmDrngMNxrVUNn1TCk4Uta2O0qUU dSWArHIjVUGZCAYR X-Received: by 10.36.167.12 with SMTP id a12mr2224858itf.91.1500734390641; Sat, 22 Jul 2017 07:39:50 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id n4sm3602580ioi.33.2017.07.22.07.39.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 22 Jul 2017 07:39:46 -0700 (PDT) From: npostavs@users.sourceforge.net References: <498421570904120553o69ee009dj544e0866b434b8a3@mail.gmail.com> <87ink8xxw7.fsf@users.sourceforge.net> <83vao88jud.fsf@gnu.org> <87shhvc2fw.fsf@users.sourceforge.net> <83wp70969w.fsf@gnu.org> Date: Sat, 22 Jul 2017 10:41:22 -0400 In-Reply-To: <83wp70969w.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 22 Jul 2017 12:20:59 +0300") Message-ID: <87zibw8rfx.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) tags 2967 fixed close 2967 26.1 quit Eli Zaretskii writes: > Thanks, this LGTM. Please push. Done. [1: 8b18911a5c]: 2017-07-22 08:47:31 -0400 Signal error for symbol names with strange quotes (Bug#2967) http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=8b18911a5c7c6c8a15b3cff12a4376ba68205e1c