diff --git a/gui-lib/mrlib/syntax-browser.rkt b/gui-lib/mrlib/syntax-browser.rkt index 677bc77d..b08da8b4 100644 --- a/gui-lib/mrlib/syntax-browser.rkt +++ b/gui-lib/mrlib/syntax-browser.rkt @@ -11,6 +11,7 @@ needed to really make this work: racket/class racket/gui/base racket/match + (prefix-in - racket/base) "include-bitmap.rkt") (define orig-output-port (current-output-port)) @@ -46,7 +47,7 @@ needed to really make this work: (class snip-class% (define/override (read stream) (make-object syntax-snip% - (unmarshall-syntax (read (open-input-string (send stream get-bytes)))))) + (unmarshall-syntax (-read (open-input-bytes (send stream get-bytes)))))) (super-new))) (define snip-class (new syntax-snipclass%)) diff --git a/gui-test/mrlib/tests/syntax-browser.rkt b/gui-test/mrlib/tests/syntax-browser.rkt new file mode 100644 index 00000000..9b05d4ed --- /dev/null +++ b/gui-test/mrlib/tests/syntax-browser.rkt @@ -0,0 +1,15 @@ +#lang racket/gui +(require mrlib/syntax-browser rackunit) + +(let () + (struct m ([x #:mutable])) + (define v (m 0)) + (define stx (datum->syntax #'here v)) + (set-m-x! v stx) + (define t (new text%)) + (send t insert (render-syntax/snip stx)) + (define bp (open-output-bytes)) + (send t save-port bp) + (define t2 (new text%)) + (send t2 insert-port (open-input-bytes (get-output-bytes bp))) + (check-regexp-match #rx"syntax-snip" (~s (send t2 find-first-snip)))) \ No newline at end of file