racket/collects/wxme/text.rkt
2011-07-02 10:37:53 -04:00

25 lines
870 B
Racket

(module text mzscheme
(require mzlib/class
"wxme.rkt"
"editor.rkt"
"private/readable-editor.rkt")
(provide reader
text-editor%)
(define text-editor% (class readable-editor% (super-new)))
(define reader
(new (class editor-reader%
(inherit read-editor-snip)
(define/override (read-snip text? vers stream)
(read-editor-snip text? vers stream #f text-editor%))
(define/override (generate-special editor src line col pos)
(let ([port (send editor get-content-port)])
(let loop ([accum null])
(let ([s (read-bytes 4096 port)])
(if (eof-object? s)
(bytes->string/utf-8 (apply bytes-append (reverse accum)))
(loop (cons s accum)))))))
(super-new)))))