fix wxme reader to preserve line-counting mode

Closes PR 11141
This commit is contained in:
Matthew Flatt 2010-08-30 16:33:03 -06:00
parent 036ed57000
commit 2e29c09f96

View File

@ -662,16 +662,20 @@
(define/kw (wxme-port->text-port port #:optional [close? #t])
(wxme-convert-port port close? #f))
(define (do-read port who read)
(define (do-read orig-port who read)
(let ([port (if (gui-available?)
;; GUI mode, since GRacket is available:
(let ([text% (dynamic-require 'mred 'text%)]
[open-input-text-editor (dynamic-require 'mred 'open-input-text-editor)])
(let ([t (new text%)])
(send t insert-port port 'standard)
(open-input-text-editor t 0 'end values (object-name port) #t)))
(send t insert-port orig-port 'standard)
(open-input-text-editor t 0 'end values (object-name orig-port) #t)))
;; Non-GUI mode:
(decode who port (lambda (x) x) #f #f))])
(decode who orig-port (lambda (x) x) #f #f))])
;; Turn on line counting if it was on before:
(let-values ([(line col pos) (port-next-location orig-port)])
(when line (port-count-lines! port)))
;; Read:
(let ([v (read port)])
(let ([v2 (let loop ()
(let ([v2 (read port)])