# HG changeset patch # User jwe # Date 1033581743 0 # Node ID 9a1bdd7fff3e7e3bbd17bd57fd2d817f6ad0c05f # Parent b8bae1ba46513e85705fc051f48a52ff14ad9dd1 [project @ 2002-10-02 18:02:23 by jwe] diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,7 @@ +2002-10-02 John W. Eaton + + * dMatrix.cc (Matrix::read): Clean up error handling logic. + 2002-09-30 John W. Eaton * file-ops.cc (file_ops::mkdir): Handle one-arg mkdir here. diff --git a/liboctave/dMatrix.cc b/liboctave/dMatrix.cc --- a/liboctave/dMatrix.cc +++ b/liboctave/dMatrix.cc @@ -2479,64 +2479,55 @@ break; } - if (is) + double tmp = 0.0; + + ok = do_read (is, dt, flt_fmt, swap_bytes, do_float_conversion, tmp); + + if (ok) { - double tmp = 0.0; - - ok = do_read (is, dt, flt_fmt, swap_bytes, - do_float_conversion, tmp); - - if (ok) + if (is) { - if (is) + if (count == max_size) { - if (count == max_size) - { - max_size *= 2; - - if (nr > 0) - resize (nr, max_size / nr, 0.0); - else - resize (max_size, 1, 0.0); - - data = fortran_vec (); - } - - data[count++] = tmp; + max_size *= 2; + + if (nr > 0) + resize (nr, max_size / nr, 0.0); + else + resize (max_size, 1, 0.0); + + data = fortran_vec (); } - if (ok && skip != 0) - is.seekg (skip, std::ios::cur); - - if (! ok || is.eof ()) + data[count++] = tmp; + } + + if (skip != 0) + is.seekg (skip, std::ios::cur); + + if (is.eof ()) + { + if (nr > 0) { - if (is.eof ()) + if (count > nr) { - if (nr > 0) - { - if (count > nr) - { - final_nr = nr; - final_nc = (count - 1) / nr + 1; - } - else - { - final_nr = count; - final_nc = 1; - } - } - else - { - final_nr = count; - final_nc = 1; - } + final_nr = nr; + final_nc = (count - 1) / nr + 1; + } + else + { + final_nr = count; + final_nc = 1; } - - break; } + else + { + final_nr = count; + final_nc = 1; + } + + break; } - else - break; } else {