;;; gnus-clfns.el --- compiler macros for emulating cl functions
-;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
;; Author: Kastsumi Yamaoka <yamaoka@jpl.org>
;; Keywords: cl, compile
(or n (setq n 1))
(and (< n m)
(progn
- (if (> n 0) (setcdr (nthcdr (- (1- m) n) x) nil))
+ (if (> n 0)
+ (progn
+ (setq x (copy-sequence x))
+ (setcdr (nthcdr (- (1- m) n) x) nil)))
x)))))
`(let* ((x ,x)
(m (length x)))
(and (< 1 m)
(progn
+ (setq x (copy-sequence x))
(setcdr (nthcdr (- m 2) x) nil)
x))))))
((and (memq fn clfns)
(listp form))
(push fn fns)))
- (setq forms (append form forms))))
+ (when (listp form)
+ (setq forms (append form forms)))))
(when fns
(if buffer
(set-buffer buffer)
(progn
(insert fill-prefix
(mapconcat (lambda (fn) (format "%s" fn))
- (nreverse fns) " "))
+ (nreverse fns) " ")
+ "\n")
(point)))
(fill-region (point-min) (point-max))
(goto-char (point-min))