improved the module langauge's name printing
svn: r17895
This commit is contained in:
parent
0e6c28e4b1
commit
6f17b84706
|
@ -62,14 +62,24 @@
|
||||||
|
|
||||||
(inherit get-language-name)
|
(inherit get-language-name)
|
||||||
(define/public (get-users-language-name defs-text)
|
(define/public (get-users-language-name defs-text)
|
||||||
(let* ([i (open-input-text-editor defs-text)]
|
(let ([defs-port (open-input-text-editor defs-text)])
|
||||||
[l (with-handlers ((exn:fail? (λ (x) '?)))
|
(with-handlers ((exn:fail? (λ (x) (void))))
|
||||||
(read-language i (lambda () '?)))])
|
(let/ec k
|
||||||
(if (eq? '? l)
|
(let ([orig-security (current-security-guard)])
|
||||||
(get-language-name)
|
(parameterize ([current-security-guard
|
||||||
(regexp-replace #rx".*#(?:!|lang ) *"
|
(make-security-guard
|
||||||
(send defs-text get-text 0 (file-position i))
|
orig-security
|
||||||
""))))
|
(lambda (what path modes) #t)
|
||||||
|
(lambda (what host port mode) (k (void))))])
|
||||||
|
(read-language defs-port (λ () (void)))
|
||||||
|
(void)))))
|
||||||
|
(let* ([str (send defs-text get-text 0 (file-position defs-port))]
|
||||||
|
[pos (regexp-match-positions #rx"#(?:!|lang )" str)])
|
||||||
|
(cond
|
||||||
|
[(not pos)
|
||||||
|
(get-language-name)]
|
||||||
|
[else
|
||||||
|
(substring str (cdr (car pos)) (string-length str))]))))
|
||||||
|
|
||||||
(define/override (use-namespace-require/copy?) #f)
|
(define/override (use-namespace-require/copy?) #f)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user