diff lisp/cl-extra.el @ 5339:ba62563ec7c7

Accept more complex TYPEs in #'concatenate, cl-extra.el lisp/ChangeLog addition: 2011-01-15 Aidan Kehoe <kehoea@parhasard.net> * cl-extra.el (concatenate): Accept more complicated TYPEs in this function, handing the sequences over to #'coerce if we don't understand them here. * cl-macs.el (inline): Don't proclaim #'concatenate as inline, its compiler macro is more useful than doing that. tests/ChangeLog addition: 2011-01-15 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el (list): Test #'concatenate, especially with more complicated TYPEs, which were previously not accepted by the function.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 15 Jan 2011 15:45:46 +0000
parents f6471e4ae703
children 38e24b8be4ea a9094f28f9a9
line wrap: on
line diff
--- a/lisp/cl-extra.el	Fri Jan 14 23:35:29 2011 +0000
+++ b/lisp/cl-extra.el	Sat Jan 15 15:45:46 2011 +0000
@@ -421,9 +421,9 @@
   (case type
     (vector (apply 'vconcat seqs))
     (string (apply 'concat seqs))
-    (list   (apply 'append (append seqs '(nil))))
+    (list   (reduce 'append seqs :from-end t :initial-value nil))
     (bit-vector (apply 'bvconcat seqs))
-    (t (error 'invalid-argument "Not a sequence type name" type))))
+    (t (coerce (reduce 'append seqs :from-end t :initial-value nil) type))))
 
 ;;; List functions.