This variable is not used at present, but it is defined in hopes that
a future Emacs interpreter will be able to use it.")
+(defvar cl-unload-hook '(cl-cannot-unload)
+ "Prevent unloading the feature `cl', since it does not work.")
+(defun cl-cannot-unload ()
+ (error "Cannot unload the feature `cl'"))
;;; Predicates.
(defun cl-set-substring (str start end val)
(if end (if (< end 0) (incf end (length str)))
(setq end (length str)))
- (if (< start 0) (incf start str))
+ (if (< start 0) (incf start (length str)))
(concat (and (> start 0) (substring str 0 start))
val
(and (< end (length str)) (substring str end))))
one value."
(apply function expression))
+(defalias 'multiple-value-call 'apply
+ "Apply FUNCTION to ARGUMENTS, taking multiple values into account.
+This implementation only handles the case where there is only one argument.")
+
(defsubst nth-value (n expression)
"Evaluate EXPRESSION to get multiple values and return the Nth one.
This handles multiple values in Common Lisp style, but it does not work
"Non-nil means don't make CL functions autoload.")
;;; Autoload the other portions of the package.
-;; We want to replace the basic versions of dolist, dotimes below.
+;; We want to replace the basic versions of dolist, dotimes, declare below.
(fmakunbound 'dolist)
(fmakunbound 'dotimes)
+(fmakunbound 'declare)
(mapcar (function
(lambda (set)
(let ((file (if cl-fake-autoloads "<none>" (car set))))
(defun cl-hack-byte-compiler ()
(if (and (not cl-hacked-flag) (fboundp 'byte-compile-file-form))
(progn
- (cl-compile-time-init) ; in cl-macs.el
- (setq cl-hacked-flag t))))
+ (setq cl-hacked-flag t) ; Do it first, to prevent recursion.
+ (cl-compile-time-init)))) ; In cl-macs.el.
;;; Try it now in case the compiler has already been loaded.
(cl-hack-byte-compiler)
(run-hooks 'cl-load-hook)
+;;; arch-tag: 5f07fa74-f153-4524-9303-21f5be125851
;;; cl.el ends here