;;;; win32.stk -- Win32 File sytem operations ;;;; ;;;; Copyright © 1999 Erick Gallesio - I3S-CNRS/ESSI ;;;; ;;;; Permission to use, copy, modify, distribute,and license this ;;;; software and its documentation for any purpose is hereby granted, ;;;; provided that existing copyright notices are retained in all ;;;; copies and that this notice is included verbatim in any ;;;; distributions. No written agreement, license, or royalty fee is ;;;; required for any of the authorized uses. ;;;; This software is provided ``AS IS'' without express or implied ;;;; warranty. ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 12-Aug-1999 19:35 ;;;; Last file update: 3-Sep-1999 19:56 (eg) (require "regexp") (define (decompose-file-name str) (let* ((str (regexp-replace-all "\\\\" str "/")) (pat "^([A-Za-z]:|)(/|)(.*)") (repl "\\2 \"\\1\"\"\\3\"") (s (regexp-replace pat str repl)) (p (open-input-string s))) (let ((abs (read-char p)) (drv (read p)) (rest (read p))) (append (list (if (char=? abs #\space) "." "/")) (if (string=? drv "") '() (list drv)) (split-string rest "/"))))) (define (dirname str) (regexp-replace "^([A-Za-z]:|)?(.*)[/\\](.+)$" str "\\1\\2")) (define (basename str) (regexp-replace "^([A-Za-z]:|)?(.*)[/\\](.*)$" str "\\3")) (provide "win32")