From 9abd03f2a69e166b8bf7d39941472a3f0b991f19 Mon Sep 17 00:00:00 2001 From: Robin Templeton Date: Fri, 18 Jul 2014 15:06:16 -0400 Subject: [PATCH] fix push/pop --- lisp/subr.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/subr.el b/lisp/subr.el index 26d3a41ba6..0c1198a975 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -148,6 +148,7 @@ except that PLACE is only evaluated once (after NEWELT)." (list 'setq place (list 'cons newelt place)) (require 'macroexp) + (require 'gv) (eval `(let ((newelt ',newelt) (place ',place)) (macroexp-let2 macroexp-copyable-p v newelt @@ -168,8 +169,10 @@ change the list." ,(if (symbolp place) ;; So we can use `pop' in the bootstrap before `gv' can be used. (list 'prog1 place (list 'setq place (list 'cdr place))) - (gv-letplace (getter setter) place - `(prog1 ,getter ,(funcall setter `(cdr ,getter))))))) + (require 'gv) + (eval `(let ((place ',place)) + (gv-letplace (getter setter) place + `(prog1 ,getter ,(funcall setter `(cdr ,getter))))))))) (defmacro when (cond &rest body) "If COND yields non-nil, do BODY, else return nil. -- 2.20.1