;;; cl.el --- Common Lisp extensions for Emacs -*-byte-compile-dynamic: t;-*-
-;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
+;; 2006, 2007 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Version: 2.02
an element already on the list.
\nKeywords supported: :test :test-not :key
\n(fn X PLACE [KEYWORD VALUE]...)"
- (if (symbolp place) (list 'setq place (list* 'adjoin x place keys))
+ (if (symbolp place)
+ (if (null keys)
+ `(let ((x ,x))
+ (if (memql x ,place) ,place (setq ,place (cons x ,place))))
+ (list 'setq place (list* 'adjoin x place keys)))
(list* 'callf2 'adjoin x place keys)))
(defun cl-set-elt (seq n val)
;;; Miscellaneous.
-(put 'cl-assertion-failed 'error-conditions '(error))
-(put 'cl-assertion-failed 'error-message "Assertion failed")
-
(defvar cl-fake-autoloads nil
"Non-nil means don't make CL functions autoload.")