From aa5bd0564c72b04d85c2f11d1f82fb8ed43f65cc Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 26 Mar 2019 14:34:26 -0700 Subject: [PATCH] stronger --- quad/qtest/markdown.rkt | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/quad/qtest/markdown.rkt b/quad/qtest/markdown.rkt index 0460ec30..5a8b74b9 100644 --- a/quad/qtest/markdown.rkt +++ b/quad/qtest/markdown.rkt @@ -131,15 +131,22 @@ (define current-doc (make-parameter #f)) -(define (make-size-promise q [str #f]) - (match (quad-elems q) - [(? pair? elems) - (delay - (define doc (current-doc)) - (font-size doc (quad-ref q 'font-size)) - (font doc (path->string (quad-ref q font-path-key default-font-face))) - (list (string-width doc (or str (unsafe-car elems))) (quad-ref q 'line-height)))] - [_ (delay (list 0 (current-line-height (current-doc))))])) +(define (make-size-promise q [str-arg #f]) + (delay + (define doc (current-doc)) + (define str + (cond + [str-arg] + [(pair? (quad-elems q)) (unsafe-car (quad-elems q))] + [else #false])) + (define string-size + (cond + [str + (font-size doc (quad-ref q 'font-size default-font-size)) + (font doc (path->string (quad-ref q font-path-key default-font-face))) + (string-width doc str)] + [else 0])) + (list string-size (quad-ref q 'line-height (current-line-height doc))))) (define (->string-quad q) (cond