Fix: join fails on empty list
authorDavid Vázquez <davazp@gmail.com>
Fri, 3 May 2013 11:36:01 +0000 (12:36 +0100)
committerDavid Vázquez <davazp@gmail.com>
Fri, 3 May 2013 11:36:01 +0000 (12:36 +0100)
src/utils.lisp

index 73fc551..20aa855 100644 (file)
 
 ;;; Concatenate a list of strings, with a separator
 (defun join (list &optional (separator ""))
-  (!reduce (lambda (s o) (concat s separator o))  
-           (cdr list) 
-           :initial-value (car list))) 
+  (if (null list)
+      ""
+      (!reduce (lambda (s o) (concat s separator o))  
+               (cdr list) 
+               :initial-value (car list)))) 
 
 (defun join-trailing (list &optional (separator ""))
   (if (null list)