diff --git a/collects/mred/wxme/cache-image.ss b/collects/mred/wxme/cache-image.ss new file mode 100644 index 0000000000..91de65f56e --- /dev/null +++ b/collects/mred/wxme/cache-image.ss @@ -0,0 +1,30 @@ + +(module cache-image mzscheme + (require (lib "class.ss")) + + (provide reader + (struct cache-image (argb width height pin-x pin-y))) + + (define-struct cache-image (argb width height pin-x pin-y)) + + (define reader + (new + (class object% + (define/public (read-header vers stream) + (void)) + (define/public (read-snip text? cvers stream) + (let ([content (send stream read-bytes "content")]) + (if text? + #"." + (let ([l (read (open-input-bytes content))]) + (make-cache-image (car l) + (cadr l) + (/ (vector-length (car l)) (cadr l) 4) + (caddr l) + (cadddr l)))))) + (super-new))))) + + + + + \ No newline at end of file diff --git a/collects/mred/wxme/number.ss b/collects/mred/wxme/number.ss index c67f3fbd1b..1ad38dfd13 100644 --- a/collects/mred/wxme/number.ss +++ b/collects/mred/wxme/number.ss @@ -14,7 +14,9 @@ [decimal-prefix (send stream read-bytes "decimal prefix")] [fraction-bytes (send stream read-bytes "fraction")] [expansions (send stream read-bytes "expansions")]) - number)) + (if text? + number + (lambda (src line col pos) (string->number (bytes->string/latin-1 number)))))) (super-new))))) diff --git a/collects/mred/wxmecompat.ss b/collects/mred/wxmecompat.ss index b13c0817b1..496c3bbd28 100644 --- a/collects/mred/wxmecompat.ss +++ b/collects/mred/wxmecompat.ss @@ -36,4 +36,4 @@ (register-lib-mapping! "(lib \"cache-image-snip.ss\" \"mrlib\")" - "(lib \"image.ss\" \"mred\" \"wxme\")")) + "(lib \"cache-image.ss\" \"mred\" \"wxme\")")) diff --git a/collects/mred/wxmefile.ss b/collects/mred/wxmefile.ss deleted file mode 100644 index 54c071ca60..0000000000 --- a/collects/mred/wxmefile.ss +++ /dev/null @@ -1,6 +0,0 @@ - -(module wxmefile mzscheme - (require "wxme/wxme.ss") - (provide (all-from-except "wxme/wxme.ss" - wxme:read - wxme:read-syntax)))