fix bug in exe creation where 'lib runtime-paths could be mis-parsed as mzlib paths
svn: r11966
This commit is contained in:
parent
bda26f5eaa
commit
89f2315374
|
@ -820,10 +820,18 @@
|
|||
(get-lib-search-dirs)))]
|
||||
[(and (list? p)
|
||||
(eq? 'lib (car p)))
|
||||
(let ([p (if (and (null? (cddr p))
|
||||
(regexp-match #rx"^[^/]*[.]" (cadr p)))
|
||||
p
|
||||
(let ([s (regexp-split #rx"/" (cadr p))])
|
||||
(if (null? (cdr s))
|
||||
`(lib ,(cadr p) "main.ss")
|
||||
(let ([s (reverse s)])
|
||||
`(list ,(car s) ,@(reverse (cdr s)))))))])
|
||||
(build-path (if (null? (cddr p))
|
||||
(collection-path "mzlib")
|
||||
(apply collection-path (cddr p)))
|
||||
(cadr p))]
|
||||
(cadr p)))]
|
||||
[else p])])
|
||||
(and p
|
||||
(path->bytes
|
||||
|
|
9
collects/tests/mzscheme/embed-me1b.ss
Normal file
9
collects/tests/mzscheme/embed-me1b.ss
Normal file
|
@ -0,0 +1,9 @@
|
|||
#lang scheme/base
|
||||
|
||||
(require scheme/runtime-path
|
||||
(for-syntax scheme/base))
|
||||
(define-runtime-path file '(lib "icons/file.gif"))
|
||||
(with-output-to-file "stdout"
|
||||
(lambda () (printf "This is 1b~n"))
|
||||
#:exists 'append)
|
||||
|
9
collects/tests/mzscheme/embed-me1c.ss
Normal file
9
collects/tests/mzscheme/embed-me1c.ss
Normal file
|
@ -0,0 +1,9 @@
|
|||
#lang scheme/base
|
||||
|
||||
(require scheme/runtime-path
|
||||
(for-syntax scheme/base))
|
||||
(define-runtime-path file '(lib "etc.ss")) ; in mzlib
|
||||
(with-output-to-file "stdout"
|
||||
(lambda () (printf "This is 1c~n"))
|
||||
#:exists 'append)
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
(define dest (if mred? mr-dest mz-dest))
|
||||
(define (flags s)
|
||||
(string-append "-" s))
|
||||
(define (one-mz-test filename expect)
|
||||
(define (one-mz-test filename expect literal?)
|
||||
;; Try simple mode: one module, launched from cmd line:
|
||||
(prepare dest filename)
|
||||
(make-embedding-executable
|
||||
|
@ -129,6 +129,7 @@
|
|||
(w/prefix #f)
|
||||
(w/prefix 'before:))
|
||||
|
||||
(when literal?
|
||||
;; Try full path, and use literal S-exp to start
|
||||
(printf ">>>literal sexp\n")
|
||||
(prepare dest filename)
|
||||
|
@ -207,10 +208,12 @@
|
|||
"This is the literal expression 4.\n"
|
||||
"... and more!\n"
|
||||
expect)
|
||||
mred?))
|
||||
mred?)))
|
||||
|
||||
(one-mz-test "embed-me1.ss" "This is 1\n")
|
||||
(one-mz-test "embed-me2.ss" "This is 1\nThis is 2: #t\n")
|
||||
(one-mz-test "embed-me1.ss" "This is 1\n" #t)
|
||||
(one-mz-test "embed-me1b.ss" "This is 1b\n" #f)
|
||||
(one-mz-test "embed-me1c.ss" "This is 1c\n" #f)
|
||||
(one-mz-test "embed-me2.ss" "This is 1\nThis is 2: #t\n" #t)
|
||||
|
||||
;; Try unicode expr and cmdline:
|
||||
(prepare dest "unicode")
|
||||
|
|
Loading…
Reference in New Issue
Block a user