changeset 105060:78c0a7ca3aaf

(push, pop, dolist, dotimes, declare): Don't overwrite CL's extended definitions, in case we reload subr.el after having loaded CL. (eval-next-after-load): Mark as obsolete.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 17 Sep 2009 15:58:35 +0000
parents 63f1a5200812
children 633effc81f3d
files lisp/ChangeLog lisp/subr.el
diffstat 2 files changed, 22 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Sep 17 10:31:15 2009 +0000
+++ b/lisp/ChangeLog	Thu Sep 17 15:58:35 2009 +0000
@@ -1,3 +1,10 @@
+2009-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* subr.el (push, pop, dolist, dotimes, declare): Don't overwrite CL's
+	extended definitions, in case we reload subr.el after having
+	loaded CL.
+	(eval-next-after-load): Mark as obsolete.
+
 2009-09-17  Juri Linkov  <juri@jurta.org>
 
 	* menu-bar.el (menu-bar-search-menu, menu-bar-edit-menu)
--- a/lisp/subr.el	Thu Sep 17 10:31:15 2009 +0000
+++ b/lisp/subr.el	Thu Sep 17 15:58:35 2009 +0000
@@ -119,13 +119,17 @@
   ;; depend on backquote.el.
   (list 'function (cons 'lambda cdr)))
 
+(unless (featurep 'cl)
+  ;; If we reload subr.el after having loaded CL, be careful not to
+  ;; overwrite CL's extended definition of `dolist', `dotimes',
+  ;; `declare', `push' and `pop'.
 (defmacro push (newelt listname)
   "Add NEWELT to the list stored in the symbol LISTNAME.
 This is equivalent to (setq LISTNAME (cons NEWELT LISTNAME)).
 LISTNAME must be a symbol."
   (declare (debug (form sexp)))
   (list 'setq listname
-	(list 'cons newelt listname)))
+        (list 'cons newelt listname)))
 
 (defmacro pop (listname)
   "Return the first element of LISTNAME's value, and remove it from the list.
@@ -134,8 +138,8 @@
 change the list."
   (declare (debug (sexp)))
   (list 'car
-	(list 'prog1 listname
-	      (list 'setq listname (list 'cdr listname)))))
+        (list 'prog1 listname
+              (list 'setq listname (list 'cdr listname))))))
 
 (defmacro when (cond &rest body)
   "If COND yields non-nil, do BODY, else return nil.
@@ -155,6 +159,10 @@
   (declare (indent 1) (debug t))
   (cons 'if (cons cond (cons nil body))))
 
+(unless (featurep 'cl)
+  ;; If we reload subr.el after having loaded CL, be careful not to
+  ;; overwrite CL's extended definition of `dolist', `dotimes',
+  ;; `declare', `push' and `pop'.
 (defvar --dolist-tail-- nil
   "Temporary variable used in `dolist' expansion.")
 
@@ -206,7 +214,7 @@
   "Do not evaluate any arguments and return nil.
 Treated as a declaration when used at the right place in a
 `defmacro' form.  \(See Info anchor `(elisp)Definition of declare'.)"
-  nil)
+  nil))
 
 (defmacro ignore-errors (&rest body)
   "Execute BODY; if an error occurs, return nil.
@@ -726,8 +734,8 @@
 
 ;;;; The global keymap tree.
 
-;;; global-map, esc-map, and ctl-x-map have their values set up in
-;;; keymap.c; we just give them docstrings here.
+;; global-map, esc-map, and ctl-x-map have their values set up in
+;; keymap.c; we just give them docstrings here.
 
 (defvar global-map nil
   "Default global keymap mapping Emacs keyboard input into commands.
@@ -1702,6 +1710,7 @@
 This makes or adds to an entry on `after-load-alist'.
 FILE should be the name of a library, with no directory name."
   (eval-after-load file (read)))
+(make-obsolete 'eval-next-after-load `eval-after-load "23.2")
 
 ;;;; Process stuff.