From f330897ca1e4b6aed2f9b5e7f34fba068d0e815b Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Wed, 21 Dec 2011 11:26:46 -0700
Subject: [PATCH] fix for `scribble --text' and tables

original commit: dcedd6e2be5b58bf5f26e1a5c7f5305502d889f8
---
 collects/scribble/text-render.rkt | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/collects/scribble/text-render.rkt b/collects/scribble/text-render.rkt
index 7cd34bf6..472a550e 100644
--- a/collects/scribble/text-render.rkt
+++ b/collects/scribble/text-render.rkt
@@ -99,12 +99,13 @@
                                       (if (eq? i 'cont)
                                           0
                                           (apply max d (map string-length i)))))
-                                  (apply map list strs))])
+                                  (apply map list strs))]
+                     [x-length (lambda (col) (if (eq? col 'cont) 0 (length col)))])
                 (for/fold ([indent? #f]) ([row (in-list strs)])
-                  (let ([h (apply max 0 (map length row))])
+                  (let ([h (apply max 0 (map x-length row))])
                     (let ([row* (for/list ([i (in-range h)])
                                   (for/list ([col (in-list row)])
-                                    (if (i . < . (length col))
+                                    (if (i . < . (x-length col))
                                         (list-ref col i)
                                         "")))])
                       (for/fold ([indent? indent?]) ([sub-row (in-list row*)])
@@ -116,7 +117,7 @@
                                          ""
                                          col)])
                             (display col)
-                            (display (make-string (- w (string-length col)) #\space)))
+                            (display (make-string (max 0 (- w (string-length col))) #\space)))
                           #t)
                         (newline)
                         #t)))