fix bug in detecting the name of the language

(encoding problems)

Also, Rackety
This commit is contained in:
Robby Findler 2012-10-22 11:49:14 -05:00
parent 7355c59fb1
commit b61f1789c7

View File

@ -145,15 +145,17 @@
(inherit get-language-name)
(define/public (get-users-language-name defs-text)
(let* ([defs-port (open-input-text-editor defs-text)]
[read-successfully?
(define defs-port (open-input-text-editor defs-text))
(port-count-lines! defs-port)
(define read-successfully?
(with-handlers ((exn:fail? (λ (x) #f)))
(read-language defs-port (λ () #f))
#t)])
#t))
(cond
[read-successfully?
(let* ([str (send defs-text get-text 0 (file-position defs-port))]
[pos (regexp-match-positions #rx"#(?:!|lang )" str)])
(define-values (_line _col port-pos) (port-next-location defs-port))
(define str (send defs-text get-text 0 (- port-pos 1)))
(define pos (regexp-match-positions #rx"#(?:!|lang )" str))
(cond
[(not pos)
(get-language-name)]
@ -165,9 +167,9 @@
;; so be it.
(regexp-replace* #rx"[\r\n]+"
(substring str (cdr (car pos)) (string-length str))
" ")]))]
" ")])]
[else
(get-language-name)])))
(get-language-name)]))
(define/override (use-namespace-require/copy?) #f)