1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-25 19:11:56 +00:00

* admin/grammars/bovine-grammar.el: Avoid using old-style backquotes.

This commit is contained in:
David Engster 2011-10-31 09:00:32 +08:00 committed by Chong Yidong
parent 84bd6e9e02
commit 72b8747b4f
2 changed files with 23 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2011-10-31 David Engster <deng@randomsample.de>
* grammars/bovine-grammar.el: Avoid using old-style backquotes.
2011-10-28 Eli Zaretskii <eliz@gnu.org>
* nt/README-ftp-server: Mention UNICOWS.DLL as prerequisite for

View File

@ -109,6 +109,14 @@ NAME, ALIASCLASS, DEFINITION and ATTRIBUTES."
;; Cache of macro definitions currently in use.
(defvar bovine--grammar-macros nil)
;; Detect if we have an Emacs with newstyle unquotes allowed outside
;; of backquote.
;; This should probably be changed to a test to (= emacs-major-version 24)
;; when it is released, but at the moment it might be possible that people
;; are using an older snapshot.
(defvar bovine--grammar-newstyle-unquote
(equal '(, test) (read ",test")))
(defun bovine-grammar-expand-form (form quotemode &optional inplace)
"Expand FORM into a new one suitable to the bovine parser.
FORM is a list in which we are substituting.
@ -142,6 +150,17 @@ expanded from elsewhere."
(while form
(setq first (car form)
form (cdr form))
;; Hack for dealing with new reading of unquotes outside of
;; backquote (introduced in rev. 102591 in emacs-bzr).
(when (and bovine--grammar-newstyle-unquote
(listp first)
(or (equal (car first) '\,)
(equal (car first) '\,@)))
(if (listp (cadr first))
(setq form (append (cdr first) form)
first (car first))
(setq first (intern (concat (symbol-name (car first))
(symbol-name (cadr first)))))))
(cond
((eq first nil)
(when (and (not inlist) (not inplace))