~ chicken-core (chicken-5) 658955c86d2e7083e6184246f77088cfb354152c
commit 658955c86d2e7083e6184246f77088cfb354152c
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Jun 18 15:20:58 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sat Jun 18 17:08:49 2011 +0200
fixed dropping of device name for windows flavor of normalize-pathname (reported by Jim)
diff --git a/files.scm b/files.scm
index 5496e949..63501674 100644
--- a/files.scm
+++ b/files.scm
@@ -368,9 +368,12 @@ EOF
(when (fx> i prev)
(set! parts (addpart (##sys#substring path prev i) parts)))
(if (null? parts)
- (if abspath
- (##sys#string-append (string sep) ".")
- (##sys#string-append "." (string sep)) )
+ (let ((r (if abspath
+ (##sys#string-append (string sep) ".")
+ (##sys#string-append "." (string sep)) )))
+ (if drive
+ (##sys#string-append drive r)
+ r))
(let ((out (open-output-string))
(parts (reverse parts)))
(display (car parts) out)
diff --git a/tests/path-tests.scm b/tests/path-tests.scm
index a1d5ee64..9bb90d7e 100644
--- a/tests/path-tests.scm
+++ b/tests/path-tests.scm
@@ -54,6 +54,7 @@
(test "a/b" (normalize-pathname "a/b/c/d/../.." 'unix))
(test "a/b/" (normalize-pathname "a/b/c/d/../../" 'unix))
(test "../../foo" (normalize-pathname "../../foo" 'unix))
+(test "c:\\." (normalize-pathname "c:\\" 'windows))
(define home (get-environment-variable "HOME"))
Trap