# HG changeset patch # User John W. Eaton # Date 1204170478 18000 # Node ID 2c4b0cbda85aa48fa98cde1028c84e4e1ff1ea02 # Parent a2950622f070e8ff747fca0a2fe6685cda9fdb11 oct-stream.cc (do_read): stop reading if seek fails diff -r a2950622f070 -r 2c4b0cbda85a src/ChangeLog --- a/src/ChangeLog Wed Feb 27 04:33:39 2008 -0500 +++ b/src/ChangeLog Wed Feb 27 22:47:58 2008 -0500 @@ -1,3 +1,7 @@ +2008-02-27 John W. Eaton + + * oct-stream.cc (do_read): Stop reading if seek fails. + 2008-02-26 John W. Eaton * ov-base-int.cc (octave_base_int_helper, diff -r a2950622f070 -r 2c4b0cbda85a src/oct-stream.cc --- a/src/oct-stream.cc Wed Feb 27 04:33:39 2008 -0500 +++ b/src/oct-stream.cc Wed Feb 27 22:47:58 2008 -0500 @@ -3139,13 +3139,15 @@ elts_read++; } + int seek_status = 0; + if (skip != 0 && elts_read == block_size) { - strm.seek (skip, SEEK_CUR); + seek_status = strm.seek (skip, SEEK_CUR); elts_read = 0; } - if (is.eof ()) + if (is.eof () || seek_status < 0) { if (nr > 0) {