-(defun make-url (page-name &key (base-dir *base-url*) (vars nil))
- (concatenate 'string base-dir page-name
- (if vars
- (string-trim-last-character
- (concatenate 'string "?"
- (mapcar-append-string
- #'(lambda (var)
- (when (and (car var) (cadr var))
- (concatenate 'string
- (car var) "=" (cadr var) "&")))
- vars)))
- "")))
+(defun make-url (page-name &key (base-dir *base-url*) (format :html) (vars nil))
+ (let ((amp (case format
+ (:html
+ "&")
+ ((:xml :ie-xml)
+ "&"))))
+ (concatenate 'string
+ base-dir page-name
+ (if vars
+ (let ((first-var (first vars)))
+ (concatenate 'string
+ "?" (car first-var) "=" (cadr first-var)
+ (mapcar-append-string
+ #'(lambda (var)
+ (when (and (car var) (cadr var))
+ (concatenate 'string
+ amp (car var) "=" (cadr var))))
+ (rest vars))))
+ ""))))