diff options
author | Daniel Llorens <daniel.llorens@bluewin.ch> | 2015-02-18 09:32:30 +0100 |
---|---|---|
committer | Daniel Llorens <daniel.llorens@bluewin.ch> | 2015-02-18 09:32:30 +0100 |
commit | eb3d623da57e6d31a58d95f932345fb761f9b701 (patch) | |
tree | 64e5c4e28ada352275d003340df60a16e08c7338 | |
parent | c4c21de44f0108c5721fe0991da3a050d3c12677 (diff) | |
download | guile-eb3d623da57e6d31a58d95f932345fb761f9b701.tar.gz |
Non-vector 1D arrays print as #1()
* libguile/arrays.c (scm_i_print_array): Print the dimension whenever
the array is a true scm_tc7_array.
* test-suite/tests/arrays.test: Check that non-vector 1D arrays print as
expected.
-rw-r--r-- | libguile/arrays.c | 5 | ||||
-rw-r--r-- | test-suite/tests/arrays.test | 14 |
2 files changed, 16 insertions, 3 deletions
diff --git a/libguile/arrays.c b/libguile/arrays.c index 9e5715cf1..4c1b824f2 100644 --- a/libguile/arrays.c +++ b/libguile/arrays.c @@ -1,5 +1,6 @@ /* Copyright (C) 1995,1996,1997,1998,2000,2001,2002,2003,2004,2005, - * 2006, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. + * 2006, 2009, 2010, 2011, 2012, 2013, 2014, 2015 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 License @@ -760,7 +761,7 @@ scm_i_print_array (SCM array, SCM port, scm_print_state *pstate) scm_array_get_handle (array, &h); scm_putc_unlocked ('#', port); - if (h.ndims != 1 || h.dims[0].lbnd != 0) + if (SCM_I_ARRAYP (array)) scm_intprint (h.ndims, 10, port); if (h.element_type != SCM_ARRAY_ELEMENT_TYPE_SCM) scm_write (scm_array_handle_element_type (&h), port); diff --git a/test-suite/tests/arrays.test b/test-suite/tests/arrays.test index 66316fef6..e76c699e9 100644 --- a/test-suite/tests/arrays.test +++ b/test-suite/tests/arrays.test @@ -1,6 +1,7 @@ ;;;; arrays.test --- tests guile's uniform arrays -*- scheme -*- ;;;; -;;;; Copyright 2004, 2006, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. +;;;; Copyright 2004, 2006, 2009, 2010, 2011, 2012, 2013, 2014, 2015 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 @@ -817,3 +818,14 @@ #u32(2 3))) (pass-if (equal? (array-ref (array-row #2u32((0 1) (2 3)) 1) 0) 2))) + +;;; +;;; printing arrays +;;; + +(with-test-prefix/c&e "printing arrays" + (pass-if-equal "writing 1D arrays that aren't vectors" + "#1(b c)" + (format #f "~a" (make-shared-array #(a b c) + (lambda (i) (list (+ i 1))) + 2)))) |