anchor.diff:       (unwind-protect
             (progn ,@body)
          (unless ,keep
  +	 (close ,stream)
            (delete-file (pathname ,stream))))))
  
positive.code:   ((string :initarg :string))
    (:report (lambda (condition stream)
               (with-slots (string) condition
                 (format stream "invalid temporary file name template ~S, must contain a percent ~
                                 sign that is to be replaced by a random string" string)))))
  
  (defun generate-random-pathname (template random-string-generator)
    (let ((percent-position (or (position #\% template)
  
negative.code:       (when (plusp (length string))
          (cl-fad:pathname-as-directory string))))
  
    #+win32
    (define-condition missing-temp-environment-variable (error)
      ()
      (:report (lambda (condition stream)
                 (declare (ignore condition))
                 (format stream "the TEMP environment variable has not been found, cannot continue"))))
  
    #+win32
    (defun get-default-temporary-directory ()
      (or (directory-from-environment "TEMP")
          (error 'missing-temp-environment-variable)))
  
    #-win32
    (defun get-default-temporary-directory ()
      (or (directory-from-environment "TMPDIR")
          #-clisp
  