racket/collects/wxme/text.ss
2008-02-23 09:42:03 +00:00

26 lines
868 B
Scheme

(module text mzscheme
(require mzlib/class
"wxme.ss"
"editor.ss"
"private/readable-editor.ss")
(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)))))