X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-clfns.el;h=191db6d716af35cab4a48b546095bd7add0ac6ec;hb=9b741e050b400987d68ff761c6cc3276c932839c;hp=123b9b1512ac6d3f6b698b5821db25fd32c48b11;hpb=d36c88ea61b26c5fbe9f511266bcfdde52b7b838;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-clfns.el b/lisp/gnus-clfns.el index 123b9b1..191db6d 100644 --- a/lisp/gnus-clfns.el +++ b/lisp/gnus-clfns.el @@ -1,5 +1,6 @@ ;;; 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 ;; Keywords: cl, compile @@ -47,12 +48,16 @@ (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)))))) @@ -365,7 +370,8 @@ You can use the `digit-argument' 1, 2 or 3 instead of\ ((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) @@ -387,7 +393,8 @@ You can use the `digit-argument' 1, 2 or 3 instead of\ (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))