[Cl-darcs-cvs] r123 - cl-darcs/trunk

mhenoch at common-lisp.net mhenoch at common-lisp.net
Fri Aug 24 04:42:52 UTC 2007


Author: mhenoch
Date: Fri Aug 24 00:42:52 2007
New Revision: 123

Modified:
   cl-darcs/trunk/util.lisp
Log:
Add PATHNAME-SANE-P and use it.


Modified: cl-darcs/trunk/util.lisp
==============================================================================
--- cl-darcs/trunk/util.lisp	(original)
+++ cl-darcs/trunk/util.lisp	Fri Aug 24 00:42:52 2007
@@ -1,4 +1,4 @@
-;;; Copyright (C) 2006 Magnus Henoch
+;;; Copyright (C) 2006, 2007 Magnus Henoch
 ;;;
 ;;; This program is free software; you can redistribute it and/or
 ;;; modify it under the terms of the GNU General Public License as
@@ -225,10 +225,18 @@
 	 (make-pathname :directory (cons :relative directory)
 			:name filename-without-dot :type type))))))
 
+(defun pathname-sane-p (pathname)
+  "Return true if PATHNAME is a relative path going strictly down."
+  (let ((directory (pathname-directory pathname)))
+    (and (listp directory)
+	 (eql (car directory) :relative)
+	 (every #'stringp (cdr directory)))))
+
 (defun pathname-to-string (pathname)
   "Convert PATHNAME to a string usable in darcs patch files.
 PATHNAME is assumed to be a relative pathname going strictly down,
 as returned by SANITIZE-FILENAME."
+  (assert (pathname-sane-p pathname))
   (apply #'concatenate 'string
 	 "./"
 	 (append



More information about the Cl-darcs-cvs mailing list