Skip to content

Commit 5484aa6

Browse files
committed
change 18386a9 to use a different strategy to get the end point of the #lang line
1 parent 18386a9 commit 5484aa6

File tree

1 file changed

+5
-66
lines changed

1 file changed

+5
-66
lines changed

drracket/drracket/private/rep.rkt

Lines changed: 5 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2419,69 +2419,8 @@ TODO
24192419
(check-equal? (simplify-history-element in #t)
24202420
(old-conversion-code in))))
24212421

2422-
(define (fetch-hash-lang-str text)
2423-
(define special-tp (open-input-text-editor text))
2424-
(define (special-filter f bytes)
2425-
;; @ is not accepted anywhere in the regexp below
2426-
(bytes-set! bytes 0 (char->integer #\@))
2427-
1)
2428-
(define tp (special-filter-input-port special-tp special-filter))
2429-
(port-count-lines! tp)
2430-
(skip-past-comments tp)
2431-
(define-values (_1 _2 pos-before) (port-next-location tp))
2432-
(cond
2433-
[(regexp-match? #rx"^#lang [a-zA-Z0-9+_/-]+" tp)
2434-
(define c (peek-char tp))
2435-
(cond
2436-
[(eof-object? c)
2437-
(define-values (line col pos-after) (port-next-location tp))
2438-
(send text get-text (- pos-before 1) pos-after)]
2439-
[(char-whitespace? c)
2440-
(define-values (line col pos-after) (port-next-location tp))
2441-
(send text get-text (- pos-before 1) (- pos-after 1))]
2442-
[else #f])]
2443-
[else #f]))
2444-
2445-
(module+ test
2446-
(check-equal? (let ([t (new text%)])
2447-
(send t insert "blah")
2448-
(fetch-hash-lang-str t))
2449-
#f)
2450-
(check-equal? (let ([t (new text%)])
2451-
(send t insert "#lang racket")
2452-
(fetch-hash-lang-str t))
2453-
"#lang racket")
2454-
(check-equal? (let ([t (new text%)])
2455-
(send t insert " #lang racket")
2456-
(fetch-hash-lang-str t))
2457-
"#lang racket")
2458-
(check-equal? (let ([t (new text%)])
2459-
(send t insert "#lang racket ")
2460-
(fetch-hash-lang-str t))
2461-
"#lang racket")
2462-
(check-equal? (let ([t (new text%)])
2463-
(send t insert "#lang racket\n")
2464-
(fetch-hash-lang-str t))
2465-
"#lang racket")
2466-
(check-equal? (let ([t (new text%)])
2467-
(send t insert "#lang racket fjd ej ej")
2468-
(fetch-hash-lang-str t))
2469-
"#lang racket")
2470-
(check-equal? (let ([t (new text%)])
2471-
(send t insert ";; a\n#lang racket fjd ej ej")
2472-
(fetch-hash-lang-str t))
2473-
"#lang racket")
2474-
(check-equal? (let ([t (new text%)])
2475-
(send t insert ";; a")
2476-
(define es (new editor-snip%))
2477-
(send t insert es)
2478-
(send t insert "\n#lang racket")
2479-
(fetch-hash-lang-str t))
2480-
"#lang racket")
2481-
(check-equal? (let ([t (new text%)])
2482-
(send t insert "#lang rac")
2483-
(define es (new editor-snip%))
2484-
(send t insert es)
2485-
(send t insert "ket\n")
2486-
(fetch-hash-lang-str t))
2487-
#f))
2422+
(define (fetch-hash-lang-str definitions-text)
2423+
(define the-irl (send definitions-text get-irl))
2424+
(define-values (before after)
2425+
(get-read-language-port-start+end (send definitions-text get-irl)))
2426+
(and after (send definitions-text get-text 0 after)))

0 commit comments

Comments
 (0)