all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Eggert <eggert@cs.ucla.edu>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: emacs-devel@gnu.org
Subject: Re: emacs-24.0.92 and backquote
Date: Sat, 10 Dec 2011 18:20:55 -0800	[thread overview]
Message-ID: <4EE41387.8030309@cs.ucla.edu> (raw)
In-Reply-To: <CMM.0.95.0.1323561659.beebe@psi.math.utah.edu>

On 12/10/11 16:00, Nelson H. F. Beebe wrote:
> Can any of you offer suggestions as to what is expected here, or have
> I possibly exposed a bug in the new emacs-24 code?

In Emacs Lisp one used to write (` EXPR) rather than `EXPR.  The
latter is the normal style in other Lisps, and was adopted by Emacs as
the "new-style backquotes" around Emacs 20, but the old style was
still supported for a while (and still is, to some extent).
Bug#6490 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6490> contains
more info about this.  Old-style backquotes apparently stopped working
to some extent in Emacs 20 and were marked officially obsolete in
Emacs 22.1, and are scheduled to be removed in Emacs 25.

The info about the old syntax was removed from the documentation in
March 2009 in bzr 95128
<http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/95128>.
Emacs 24 still accepts this old syntax, so perhaps it should still be
documented?  Here's the text that was removed:

   In old Emacs versions, before version 19.29, @samp{`} used a
   different syntax which required an extra level of parentheses
   around the entire backquote construct.  Likewise, each @samp{,} or
   @samp{,@@} substitution required an extra level of parentheses
   surrounding both the @samp{,} or @samp{,@@} and the following
   expression.  The old syntax required whitespace between the
   @samp{`}, @samp{,} or @samp{,@@} and the following expression.

   This syntax is still accepted, for compatibility with old Emacs
   versions, but support for it will be removed in the future.


Anyway, to get back to your example, it uses the syntax (`(EXPR)) that
was formerly invalid, but was silently accepted as if it were the
old-style (` (EXPR)), i.e., the new-style `(EXPR).  I think support
for this invalid usage was removed around bzr 100605
<http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/100605>, dated
June of this year, and that's what is causing your problem.

The simplest fix for your example is to change it to use the old syntax:

--- ltxmenu.el	2004-07-28 16:58:31.000000000 -0700
+++ ltxmenu-fix.el	2011-12-10 18:16:56.652363670 -0800
@@ -533,7 +533,7 @@
 ;;; of its components have been defined above.
 
 (setq internal-x-LaTeX-menu-of-menus
-      (`("LaTeX main menu"		;this menu title is never displayed
+      (` ("LaTeX main menu"		;this menu title is never displayed
 	(, internal-x-LaTeX-menu-startup)
 	(, internal-x-LaTeX-menu-accents)
 	(, internal-x-LaTeX-menu-insertion)

But that will stop working in Emacs 25.
Instead, I'd change to the new syntax:

--- ltxmenu.el	2004-07-28 16:58:31.000000000 -0700
+++ ltxmenu-fix.el	2011-12-10 18:18:28.883204171 -0800
@@ -533,22 +533,22 @@
 ;;; of its components have been defined above.
 
 (setq internal-x-LaTeX-menu-of-menus
-      (`("LaTeX main menu"		;this menu title is never displayed
-	(, internal-x-LaTeX-menu-startup)
-	(, internal-x-LaTeX-menu-accents)
-	(, internal-x-LaTeX-menu-insertion)
-	(, internal-x-LaTeX-menu-begin-end)
-	(, internal-x-LaTeX-menu-begin-end-1)
-	(, internal-x-LaTeX-menu-begin-end-2)
-	(, internal-x-LaTeX-menu-begin-end-3)
-	(, internal-x-LaTeX-menu-begin-end-4)
-	(, internal-x-LaTeX-menu-checking)
-	(, internal-x-LaTeX-menu-comment)
-	(, internal-x-LaTeX-menu-cross-reference)
-	(, internal-x-LaTeX-menu-font)
-	(, internal-x-LaTeX-menu-index)
-	(, internal-x-LaTeX-menu-miscellaneous)
-	)))
+      `("LaTeX main menu"		;this menu title is never displayed
+	,internal-x-LaTeX-menu-startup
+	,internal-x-LaTeX-menu-accents
+	,internal-x-LaTeX-menu-insertion
+	,internal-x-LaTeX-menu-begin-end
+	,internal-x-LaTeX-menu-begin-end-1
+	,internal-x-LaTeX-menu-begin-end-2
+	,internal-x-LaTeX-menu-begin-end-3
+	,internal-x-LaTeX-menu-begin-end-4
+	,internal-x-LaTeX-menu-checking
+	,internal-x-LaTeX-menu-comment
+	,internal-x-LaTeX-menu-cross-reference
+	,internal-x-LaTeX-menu-font
+	,internal-x-LaTeX-menu-index
+	,internal-x-LaTeX-menu-miscellaneous
+	))
 
 ;;; NB: All internal-x-LaTeX-xxx commands that are called from the
 ;;; menus MUST call (interactive) (so commandp is true).




  reply	other threads:[~2011-12-11  2:20 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-11  0:00 emacs-24.0.92 and backquote Nelson H. F. Beebe
2011-12-11  2:20 ` Paul Eggert [this message]
2011-12-11  5:58   ` Jambunathan K
  -- strict thread matches above, loose matches on Subject: below --
2011-12-13  2:05 Nelson H. F. Beebe
2011-12-13  3:32 ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EE41387.8030309@cs.ucla.edu \
    --to=eggert@cs.ucla.edu \
    --cc=beebe@math.utah.edu \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.