# HG changeset patch # User jwe # Date 1181766353 0 # Node ID b319df52ba87295141fe19d5276cd4de7b7a642e # Parent 3b4a5f838de7888fd09e0e1da18146fd0511ad86 [project @ 2007-06-13 20:25:53 by jwe] diff -r 3b4a5f838de7 -r b319df52ba87 scripts/ChangeLog --- a/scripts/ChangeLog Wed Jun 13 15:40:07 2007 +0000 +++ b/scripts/ChangeLog Wed Jun 13 20:25:53 2007 +0000 @@ -1,12 +1,6 @@ -2007-06-12 David Bateman - - * general/Makefile.in (SOURCES): Include __spline__.m, interp3.m - and interpn.m. - -2007-06-12 David Bateman - - * pkg/pkg.m (pkg:load_package_dirs): Check for field "loaded" in - structure before using it. +2007-06-13 John W. Eaton + + * miscellaneous/mkoctfile.m: Quote args too. 2007-06-13 Michael Goffioul @@ -19,6 +13,14 @@ 2007-06-12 David Bateman + * general/Makefile.in (SOURCES): Include __spline__.m, interp3.m + and interpn.m. + + * pkg/pkg.m (pkg:load_package_dirs): Check for field "loaded" in + structure before using it. + +2007-06-12 David Bateman + * general/interp1.m: Change examples to use new graphics interface. * general/__splinen__.m: New support function for N-dimensional spline interpolation. diff -r 3b4a5f838de7 -r b319df52ba87 scripts/miscellaneous/mkoctfile.m --- a/scripts/miscellaneous/mkoctfile.m Wed Jun 13 15:40:07 2007 +0000 +++ b/scripts/miscellaneous/mkoctfile.m Wed Jun 13 20:25:53 2007 +0000 @@ -128,7 +128,7 @@ cmd = strcat ("\"", shell_script, "\""); for i = 1:nargin - cmd = strcat (cmd, " ", varargin{i}); + cmd = strcat (cmd, " \"", varargin{i}, "\""); endfor status = system (cmd); diff -r 3b4a5f838de7 -r b319df52ba87 src/ChangeLog --- a/src/ChangeLog Wed Jun 13 15:40:07 2007 +0000 +++ b/src/ChangeLog Wed Jun 13 20:25:53 2007 +0000 @@ -1,3 +1,11 @@ +2007-06-13 John W. Eaton + + * ov-re-mat.cc (octave_matrix::load_ascii): + Do a better job of handling read errors and empty matrices. + * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. + * ov-bool-mat.cc (octave_bool_matrix::load_ascii): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. + 2007-06-13 David Bateman * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't treat as single diff -r 3b4a5f838de7 -r b319df52ba87 src/ov-bool-mat.cc --- a/src/ov-bool-mat.cc Wed Jun 13 15:40:07 2007 +0000 +++ b/src/ov-bool-mat.cc Wed Jun 13 20:25:53 2007 +0000 @@ -204,24 +204,40 @@ for (int i = 0; i < mdims; i++) is >> dv(i); - NDArray tmp(dv); - is >> tmp; + if (is) + { + boolNDArray btmp (dv); + + if (btmp.is_empty ()) + matrix = btmp; + else + { + NDArray tmp(dv); + is >> tmp; - if (!is) + if (is) + { + for (octave_idx_type i = 0; i < btmp.nelem (); i++) + btmp.elem (i) = (tmp.elem (i) != 0.); + + matrix = btmp; + } + else + { + error ("load: failed to load matrix constant"); + success = false; + } + } + } + else { - error ("load: failed to load matrix constant"); + error ("load: failed to extract dimensions"); success = false; } - - boolNDArray btmp (dv); - for (octave_idx_type i = 0; i < btmp.nelem (); i++) - btmp.elem (i) = (tmp.elem (i) != 0.); - - matrix = btmp; } else { - error ("load: failed to extract number of rows and columns"); + error ("load: failed to extract number of dimensions"); success = false; } } @@ -236,18 +252,20 @@ { Matrix tmp (nr, nc); is >> tmp; - if (!is) + if (is) + { + boolMatrix btmp (nr, nc); + for (octave_idx_type j = 0; j < nc; j++) + for (octave_idx_type i = 0; i < nr; i++) + btmp.elem (i,j) = (tmp.elem (i, j) != 0.); + + matrix = btmp; + } + else { error ("load: failed to load matrix constant"); success = false; } - - boolMatrix btmp (nr, nc); - for (octave_idx_type j = 0; j < nc; j++) - for (octave_idx_type i = 0; i < nr; i++) - btmp.elem (i,j) = (tmp.elem (i, j) != 0.); - - matrix = btmp; } else if (nr == 0 || nc == 0) matrix = boolMatrix (nr, nc); diff -r 3b4a5f838de7 -r b319df52ba87 src/ov-cx-mat.cc --- a/src/ov-cx-mat.cc Wed Jun 13 15:40:07 2007 +0000 +++ b/src/ov-cx-mat.cc Wed Jun 13 20:25:53 2007 +0000 @@ -261,19 +261,34 @@ for (int i = 0; i < mdims; i++) is >> dv(i); - ComplexNDArray tmp(dv); - is >> tmp; + if (is) + { + ComplexNDArray tmp(dv); + + if (tmp.is_empty ()) + matrix = tmp; + else + { + is >> tmp; - if (!is) + if (is) + matrix = tmp; + else + { + error ("load: failed to load matrix constant"); + success = false; + } + } + } + else { - error ("load: failed to load matrix constant"); + error ("load: failed to read dimensions"); success = false; } - matrix = tmp; } else { - error ("load: failed to extract number of rows and columns"); + error ("load: failed to extract number of dimensions"); success = false; } } @@ -288,12 +303,13 @@ { ComplexMatrix tmp (nr, nc); is >> tmp; - if (!is) + if (is) + matrix = tmp; + else { error ("load: failed to load matrix constant"); success = false; } - matrix = tmp; } else if (nr == 0 || nc == 0) matrix = ComplexMatrix (nr, nc); diff -r 3b4a5f838de7 -r b319df52ba87 src/ov-re-mat.cc --- a/src/ov-re-mat.cc Wed Jun 13 15:40:07 2007 +0000 +++ b/src/ov-re-mat.cc Wed Jun 13 20:25:53 2007 +0000 @@ -316,19 +316,34 @@ for (int i = 0; i < mdims; i++) is >> dv(i); - NDArray tmp(dv); - is >> tmp; + if (is) + { + NDArray tmp(dv); + + if (tmp.is_empty ()) + matrix = tmp; + else + { + is >> tmp; - if (!is) + if (is) + matrix = tmp; + else + { + error ("load: failed to load matrix constant"); + success = false; + } + } + } + else { - error ("load: failed to load matrix constant"); + error ("load: failed to read dimensions"); success = false; } - matrix = tmp; } else { - error ("load: failed to extract number of rows and columns"); + error ("load: failed to extract number of dimensions"); success = false; } } diff -r 3b4a5f838de7 -r b319df52ba87 src/ov-str-mat.cc --- a/src/ov-str-mat.cc Wed Jun 13 15:40:07 2007 +0000 +++ b/src/ov-str-mat.cc Wed Jun 13 20:25:53 2007 +0000 @@ -333,20 +333,34 @@ for (int i = 0; i < mdims; i++) is >> dv(i); - charNDArray tmp(dv); - char *ftmp = tmp.fortran_vec (); + if (is) + { + charNDArray tmp(dv); + + if (tmp.is_empty ()) + matrix = tmp; + else + { + char *ftmp = tmp.fortran_vec (); - // Skip the return line - if (! is.read (ftmp, 1)) - return false; + // Skip the return line + if (! is.read (ftmp, 1)) + return false; - if (! is.read (ftmp, dv.numel ()) || !is) + if (! is.read (ftmp, dv.numel ()) || !is) + { + error ("load: failed to load string constant"); + success = false; + } + else + matrix = tmp; + } + } + else { - error ("load: failed to load string constant"); + error ("load: failed to read dimensions"); success = false; } - else - matrix = tmp; } else {