diff --git a/collects/wxme/wxme.rkt b/collects/wxme/wxme.rkt index 6c699fba37..91599890e8 100644 --- a/collects/wxme/wxme.rkt +++ b/collects/wxme/wxme.rkt @@ -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)])