diff --git a/pkgs/racket-test-core/tests/racket/pretty.rktl b/pkgs/racket-test-core/tests/racket/pretty.rktl index e991e47b65..35cbfb644f 100644 --- a/pkgs/racket-test-core/tests/racket/pretty.rktl +++ b/pkgs/racket-test-core/tests/racket/pretty.rktl @@ -525,6 +525,13 @@ (pp v)) (test "(a 1)\n" get-output-string o)) +;; ---------------------------------------- +;; check that `pretty-print-newline` works on any output port + +(let ([o (open-output-bytes)]) + (pretty-print-newline o 17) + (test "\n" get-output-string o)) + ;; ---------------------------------------- (report-errs) diff --git a/racket/collects/racket/pretty.rkt b/racket/collects/racket/pretty.rkt index 850f509453..6b8bcc3756 100644 --- a/racket/collects/racket/pretty.rkt +++ b/racket/collects/racket/pretty.rkt @@ -373,8 +373,14 @@ (define orig-write (port-write-handler (open-output-string))) (define (pretty-print-newline pport width) - (let-values ([(l col p) (port-next-location pport)]) - ((printing-port-print-line pport) #t (or col 0) width))) + (cond + [(printing-port? pport) + (let-values ([(l col p) (port-next-location pport)]) + ((printing-port-print-line pport) #t (or col 0) width))] + [(output-port? pport) + (newline pport)] + [else + (raise-argument-error 'pretty-print-newline "output-port?" pport)])) (define (tentative-pretty-print-port-transfer a-pport pport) (let ([content ((get a-pport print-port-info-get-content))])