X-Git-Url: http://git.kpe.io/?p=lml2.git;a=blobdiff_plain;f=files.lisp;h=db1a9b1827d2d76a33865d8fd4288cf8a9aa4d00;hp=9045cb4fc5a87728f124b0149680bae8c3899309;hb=9829ac27ac1f612c99b259b0b1daefffb269691c;hpb=a5621a5bf235313916f437a55d9998418ee26f5a diff --git a/files.lisp b/files.lisp index 9045cb4..db1a9b1 100644 --- a/files.lisp +++ b/files.lisp @@ -2,16 +2,14 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: files.cl +;;;; Name: files.lisp ;;;; Purpose: File and directory functions for LML ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Aug 2002 ;;;; -;;;; This file, part of LML2, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; This file, part of LML2, is Copyright (c) 2000-2003 by Kevin Rosenberg. +;;;; Rights of modification and redistribution are in the LICENSE file. ;;;; -;;;; LML2 users are granted the rights to distribute and use this software -;;;; as governed by the terms of the GNU General Public License v2 -;;;; (http://www.gnu.org/licenses/gpl.html) ;;;; ************************************************************************* (in-package #:lml2) @@ -21,24 +19,26 @@ (defvar *sources-dir* nil) ) -(defmacro lml-file-name (file &optional (type :source)) - (let ((f file)) - (when (and (consp f) (eql (car f) 'cl:quote)) - (setq f (cadr f))) - (when (symbolp f) - (setq f (string-downcase (symbol-name f)))) - (when (stringp f) - (unless (position #\. f) - (setq f (concatenate 'string f ".html")))) - (if *sources-dir* - (make-pathname :defaults (ecase type - (:source *sources-dir*) - (:output *output-dir*)) - :name `,(pathname-name f) - :type `,(pathname-type f)) +(defun lml-file-name (f &optional (type :source)) + (when (and (consp f) (eql (car f) 'cl:quote)) + (setq f (cadr f))) + (when (symbolp f) + (setq f (string-downcase (symbol-name f)))) + (when (stringp f) + (unless (position #\. f) + (setq f (concatenate 'string f ".html")))) + (if (or (and (eq type :source) *sources-dir*) + (and (eq type :output) *output-dir*)) + (merge-pathnames + (make-pathname :name (pathname-name f) + :type (pathname-type f) + :directory (pathname-directory f)) + (ecase type + (:source *sources-dir*) + (:output *output-dir*))) (if (stringp f) (parse-namestring f) - f)))) + f))) (defmacro with-dir ((output &key sources) &body body) (let ((output-dir (gensym)) @@ -76,5 +76,5 @@ (defun lml-load (file) (lml-load-path (eval `(lml-file-name ,file :source)))) -(defun include-file (file) +(defun insert-file (file) (print-file-contents file *html-stream*))