guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Truncated print


From: Andy Wingo
Subject: Re: Truncated print
Date: Tue, 05 Jan 2010 10:01:00 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux)

Hi :)

On Tue 05 Jan 2010 01:28, address@hidden (Ludovic Courtès) writes:

>> On Sun 03 Jan 2010 00:52, address@hidden (Ludovic Courtès) writes:
>
> [...]
>
>>>> +(truncated-print "The quick brown fox" #:width 10) (newline)
>>>> address@hidden "The quick brown..."
>>>
>>> I think it’d be nice to default to ‘HORIZONTAL ELLIPSIS’ (U+2026).
>>> Perhaps the ellipsis string could be a keyword parameter?
>
> What do you think?

I think that it sounds like you are interested in this :-) I would be
happy with doing nothing, but happier still if someone fixed this for
me. :)

I'm attaching the patch I had, when I found out the issues I wrote in my
mail.

Happy hacking,

Andy

Modified module/ice-9/pretty-print.scm
diff --git a/module/ice-9/pretty-print.scm b/module/ice-9/pretty-print.scm
index 9a0edbd..1507b4d 100644
--- a/module/ice-9/pretty-print.scm
+++ b/module/ice-9/pretty-print.scm
@@ -1,6 +1,6 @@
-;;;; -*-scheme-*-
+;;;; -*- mode: scheme; coding: utf-8 -*-
 ;;;;
-;;;;   Copyright (C) 2001, 2004, 2006, 2009 Free Software Foundation, Inc.
+;;;;   Copyright (C) 2001, 2004, 2006, 2009, 2010 Free Software Foundation, 
Inc.
 ;;;; 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -285,7 +285,7 @@ into @var{width} characters. By default, @var{x} will be 
printed using
 @var{display?} keyword argument.
 
 The default behaviour is to print depth-first, meaning that the entire
-remaining width will be available to each sub-expressoin of @var{x} --
+remaining width will be available to each sub-expression of @var{x} --
 e.g., if @var{x} is a vector, each member of @var{x}. One can attempt to
 \"ration\" the available width, trying to allocate it equally to each
 sub-expression, via the @var{breadth-first?} keyword argument."
@@ -300,8 +300,8 @@ sub-expression, via the @var{breadth-first?} keyword 
argument."
        ((= i len)) ; catches 0-length case
        ((= i (1- len))
         (print (ref x i) (if (zero? i) width (1- width))))
-       ((<= width 4)
-        (display "..."))
+       ((<= width 2)
+        (display "…"))
        (else
         (let ((str (with-output-to-string
                      (lambda ()
@@ -309,7 +309,7 @@ sub-expression, via the @var{breadth-first?} keyword 
argument."
                               (if breadth-first?
                                   (max 1
                                        (1- (floor (/ width (- len i)))))
-                                  (- width 4)))))))
+                                  (- width 2)))))))
           (display str)
           (lp (next x) (- width 1 (string-length str)) (1+ i)))))))
 
@@ -348,8 +348,8 @@ sub-expression, via the @var{breadth-first?} keyword 
argument."
                  width
                  (+ (string-length (caar fixes))
                     (string-length (cdar fixes))
-                    3)))
-        (format #f "~a~a...~a"
+                    1)))
+        (format #f "~a~a…~a"
                 (caar fixes)
                 (substring str (string-length (caar fixes))
                            (- width (string-length (cdar fixes)) 3))
@@ -363,7 +363,7 @@ sub-expression, via the @var{breadth-first?} keyword 
argument."
       (error "expected a positive width" width))
      ((list? x)
       (cond
-       ((>= width 5)
+       ((>= width 3)
         (display "(")
         (print-sequence x (- width 2) (length x) (lambda (x i) (car x)) cdr)
         (display ")"))
@@ -371,7 +371,7 @@ sub-expression, via the @var{breadth-first?} keyword 
argument."
         (display "#"))))
      ((vector? x)
       (cond
-       ((>= width 6)
+       ((>= width 4)
         (display "#(")
         (print-sequence x (- width 3) (vector-length x) vector-ref identity)
         (display ")"))
@@ -379,7 +379,7 @@ sub-expression, via the @var{breadth-first?} keyword 
argument."
         (display "#"))))
      ((uniform-vector? x)
       (cond
-       ((>= width 9)
+       ((>= width 7)
         (format #t  "#~a(" (uniform-vector-element-type x))
         (print-sequence x (- width 6) (uniform-vector-length x)
                         uniform-vector-ref identity)

-- 
http://wingolog.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]