~ chicken-core (chicken-5) 300a05e65b3f9d300a8a67a0011e8fa65fed9e40
commit 300a05e65b3f9d300a8a67a0011e8fa65fed9e40 Merge: 8a516a04 053c315e Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Aug 31 10:25:14 2010 -0400 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Tue Aug 31 10:25:14 2010 -0400 merged experimental into total-irregex-reconstruction diff --cc files.scm index 630808a4,591467e0..943a6de4 --- a/files.scm +++ b/files.scm @@@ -275,69 -243,53 +244,59 @@@ EO (##sys#check-string pn 'decompose-pathname) (if (fx= 0 (##sys#size pn)) (values #f #f #f) - (let ([ms (string-match rx1 pn)]) + (let ([ms (irregex-search rx1 pn)]) (if ms - (values (strip-pds (cadr ms)) (caddr ms) (car (cddddr ms))) - (let ([ms (string-match rx2 pn)]) + (values + (strip-pds (irregex-match-substring ms 1)) + (irregex-match-substring ms 2) + (irregex-match-substring ms 4)) + (let ([ms (irregex-search rx2 pn)]) (if ms - (values (strip-pds (cadr ms)) (caddr ms) #f) + (values + (strip-pds (irregex-match-substring ms 1)) + (irregex-match-substring ms 2) + #f) (values (strip-pds pn) #f #f) ) ) ) ) ) ) ) ) - (define pathname-directory) - (define pathname-file) - (define pathname-extension) - (define pathname-strip-directory) - (define pathname-strip-extension) - (define pathname-replace-directory) - (define pathname-replace-file) - (define pathname-replace-extension) - (let ([decompose-pathname decompose-pathname]) - - (set! pathname-directory - (lambda (pn) - (let-values ([(dir file ext) (decompose-pathname pn)]) - dir) ) ) - - (set! pathname-file - (lambda (pn) - (let-values ([(dir file ext) (decompose-pathname pn)]) - file) ) ) - - (set! pathname-extension - (lambda (pn) - (let-values ([(dir file ext) (decompose-pathname pn)]) - ext) ) ) - - (set! pathname-strip-directory - (lambda (pn) - (let-values ([(dir file ext) (decompose-pathname pn)]) - (make-pathname #f file ext) ) ) ) - - (set! pathname-strip-extension - (lambda (pn) - (let-values ([(dir file ext) (decompose-pathname pn)]) - (make-pathname dir file) ) ) ) - - (set! pathname-replace-directory - (lambda (pn dir) - (let-values ([(_ file ext) (decompose-pathname pn)]) - (make-pathname dir file ext) ) ) ) - - (set! pathname-replace-file - (lambda (pn file) - (let-values ([(dir _ ext) (decompose-pathname pn)]) - (make-pathname dir file ext) ) ) ) - - (set! pathname-replace-extension - (lambda (pn ext) - (let-values ([(dir file _) (decompose-pathname pn)]) - (make-pathname dir file ext) ) ) ) ) + (define pathname-directory + (lambda (pn) + (let-values ([(dir file ext) (decompose-pathname pn)]) + dir) ) ) + + (define pathname-file + (lambda (pn) + (let-values ([(dir file ext) (decompose-pathname pn)]) + file) ) ) + + (define pathname-extension + (lambda (pn) + (let-values ([(dir file ext) (decompose-pathname pn)]) + ext) ) ) + + (define pathname-strip-directory + (lambda (pn) + (let-values ([(dir file ext) (decompose-pathname pn)]) + (make-pathname #f file ext) ) ) ) + + (define pathname-strip-extension + (lambda (pn) + (let-values ([(dir file ext) (decompose-pathname pn)]) + (make-pathname dir file) ) ) ) + + (define pathname-replace-directory + (lambda (pn dir) + (let-values ([(_ file ext) (decompose-pathname pn)]) + (make-pathname dir file ext) ) ) ) + + (define pathname-replace-file + (lambda (pn file) + (let-values ([(dir _ ext) (decompose-pathname pn)]) + (make-pathname dir file ext) ) ) ) + + (define pathname-replace-extension + (lambda (pn ext) + (let-values ([(dir file _) (decompose-pathname pn)]) + (make-pathname dir file ext) ) ) ) (define create-temporary-file) (define create-temporary-directory)Trap