- fixed problem with importing (main) when (main main) is available.

- fixed decoding of library names containing funny characters.
This commit is contained in:
Abdulaziz Ghuloum 2008-10-23 13:26:07 -04:00
parent 32a260ebb0
commit 5ed3f80901
2 changed files with 16 additions and 16 deletions

View File

@ -1 +1 @@
1646 1647

View File

@ -98,7 +98,7 @@
((<= 0 n 9) (display n p)) ((<= 0 n 9) (display n p))
(else (write-char (else (write-char
(integer->char (integer->char
(+ (char->integer #\A) (+ (char->integer #\a)
(- n 10))) (- n 10)))
p)))) p))))
(define (main*? x) (define (main*? x)
@ -106,26 +106,26 @@
(string=? (substring x 0 4) "main") (string=? (substring x 0 4) "main")
(for-all (lambda (x) (char=? x #\_)) (for-all (lambda (x) (char=? x #\_))
(string->list (substring x 4 (string-length x)))))) (string->list (substring x 4 (string-length x))))))
(let f ((x (car ls)) (ls (cdr ls))) (let f ((x (car ls)) (ls (cdr ls)) (fst #t))
(write-char #\/ p) (write-char #\/ p)
(let ([name (symbol->string x)]) (let ([name (symbol->string x)])
(for-each (for-each
(lambda (c) (lambda (n)
(cond (let ([c (integer->char n)])
((or (char<=? #\a c #\z) (cond
(char<=? #\A c #\Z) ((or (char<=? #\a c #\z)
(char<=? #\0 c #\9) (char<=? #\A c #\Z)
(memv c '(#\- #\. #\_ #\~))) (char<=? #\0 c #\9)
(write-char c p)) (memv c '(#\- #\+ #\_)))
(else (write-char c p))
(write-char #\% p) (else
(let ((n (char->integer c))) (write-char #\% p)
(display-hex (quotient n 16)) (display-hex (quotient n 16))
(display-hex (remainder n 16)))))) (display-hex (remainder n 16))))))
(string->list name)) (bytevector->u8-list (string->utf8 name)))
(if (null? ls) (if (null? ls)
(when (main*? name) (write-char #\_ p)) (when (and (not fst) (main*? name)) (write-char #\_ p))
(f (car ls) (cdr ls))))) (f (car ls) (cdr ls) #f))))
(extract))) (extract)))
(define file-locator (define file-locator