# HG changeset patch # User jwe # Date 1109117938 0 # Node ID 8ca032643f554541dbe9d1bd2efed1f18b6e3961 # Parent 7c3b22bafedc0e97cad97ac836c37597c4e14ee1 [project @ 2005-02-23 00:18:58 by jwe] diff -r 7c3b22bafedc -r 8ca032643f55 src/ChangeLog --- a/src/ChangeLog Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ChangeLog Wed Feb 23 00:18:58 2005 +0000 @@ -1,5 +1,13 @@ 2005-02-22 John W. Eaton + * ov-base-int.cc (octave_baes_int_matrix::load_binary): + Handle arrays with only one dimension. + * ov-bool-mat.cc (octave_bool_matrix::load_binary): Likewise. + * ov-cell.cc (octave_cell::load_binary): Likewise. + * ov-cell.cc (octave_complex_matrix::load_binary): Likewise. + * ov-re-mat.cc (octave_matrix::load_binary): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::load_binary): Likewise. + * ov-mapper.cc (octave_mapper::subsref): Return retval after calling next_subsref. diff -r 7c3b22bafedc -r 8ca032643f55 src/ov-base-int.cc --- a/src/ov-base-int.cc Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ov-base-int.cc Wed Feb 23 00:18:58 2005 +0000 @@ -173,6 +173,18 @@ dv(i) = di; } + // Convert an array with a single dimension to be a row vector. + // Octave should never write files like this, other software + // might. + + if (mdims == 1) + { + mdims = 2; + dv.resize (mdims); + dv(1) = dv(0); + dv(0) = 1; + } + T m (dv); if (! is.read (X_CAST (char *, m.data ()), m.byte_size ())) diff -r 7c3b22bafedc -r 8ca032643f55 src/ov-bool-mat.cc --- a/src/ov-bool-mat.cc Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ov-bool-mat.cc Wed Feb 23 00:18:58 2005 +0000 @@ -334,6 +334,18 @@ dv(i) = di; } + // Convert an array with a single dimension to be a row vector. + // Octave should never write files like this, other software + // might. + + if (mdims == 1) + { + mdims = 2; + dv.resize (mdims); + dv(1) = dv(0); + dv(0) = 1; + } + int nel = dv.numel (); OCTAVE_LOCAL_BUFFER (char, htmp, nel); if (! is.read (htmp, nel)) diff -r 7c3b22bafedc -r 8ca032643f55 src/ov-cell.cc --- a/src/ov-cell.cc Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ov-cell.cc Wed Feb 23 00:18:58 2005 +0000 @@ -668,6 +668,18 @@ dv(i) = di; } + // Convert an array with a single dimension to be a row vector. + // Octave should never write files like this, other software + // might. + + if (mdims == 1) + { + mdims = 2; + dv.resize (mdims); + dv(1) = dv(0); + dv(0) = 1; + } + int nel = dv.numel (); Cell tmp(dv); diff -r 7c3b22bafedc -r 8ca032643f55 src/ov-cx-mat.cc --- a/src/ov-cx-mat.cc Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ov-cx-mat.cc Wed Feb 23 00:18:58 2005 +0000 @@ -421,6 +421,18 @@ dv(i) = di; } + // Convert an array with a single dimension to be a row vector. + // Octave should never write files like this, other software + // might. + + if (mdims == 1) + { + mdims = 2; + dv.resize (mdims); + dv(1) = dv(0); + dv(0) = 1; + } + if (! is.read (X_CAST (char *, &tmp), 1)) return false; diff -r 7c3b22bafedc -r 8ca032643f55 src/ov-re-mat.cc --- a/src/ov-re-mat.cc Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ov-re-mat.cc Wed Feb 23 00:18:58 2005 +0000 @@ -475,6 +475,18 @@ dv(i) = di; } + // Convert an array with a single dimension to be a row vector. + // Octave should never write files like this, other software + // might. + + if (mdims == 1) + { + mdims = 2; + dv.resize (mdims); + dv(1) = dv(0); + dv(0) = 1; + } + if (! is.read (X_CAST (char *, &tmp), 1)) return false; diff -r 7c3b22bafedc -r 8ca032643f55 src/ov-str-mat.cc --- a/src/ov-str-mat.cc Tue Feb 22 17:42:16 2005 +0000 +++ b/src/ov-str-mat.cc Wed Feb 23 00:18:58 2005 +0000 @@ -475,6 +475,18 @@ dv(i) = di; } + // Convert an array with a single dimension to be a row vector. + // Octave should never write files like this, other software + // might. + + if (mdims == 1) + { + mdims = 2; + dv.resize (mdims); + dv(1) = dv(0); + dv(0) = 1; + } + charNDArray m(dv); char *tmp = m.fortran_vec (); is.read (tmp, dv.numel ());