# HG changeset patch # User jwe # Date 850970968 0 # Node ID 9705ea40f0a27afdaa5e6948008aeb0cd3a9bc47 # Parent 36a4daa9e3c7335abf5364777f14be4428533777 [project @ 1996-12-19 04:49:09 by jwe] diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,5 +1,7 @@ Wed Dec 18 16:18:58 1996 John W. Eaton + * Range.cc (operator -): New function. + * lo-ieee.cc: Include on all systems that have it. Fri Dec 13 02:01:32 1996 John W. Eaton diff --git a/liboctave/Range.cc b/liboctave/Range.cc --- a/liboctave/Range.cc +++ b/liboctave/Range.cc @@ -150,6 +150,12 @@ return is; } +Range +operator - (const Range& r) +{ + return Range (-r.base (), -r.limit (), -r.inc ()); +} + // C See Knuth, Art Of Computer Programming, Vol. 1, Problem 1.2.4-5. // C // C===Tolerant FLOOR function. diff --git a/liboctave/Range.h b/liboctave/Range.h --- a/liboctave/Range.h +++ b/liboctave/Range.h @@ -85,6 +85,8 @@ int nelem_internal (void) const; }; +extern Range operator - (const Range& r); + #endif /* diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ Wed Dec 18 20:17:23 1996 John W. Eaton + * file-io.cc (Ffgetl, Ffgets): Also return number of characters read. + + * ov-range.cc (octave_range::not): New function. + * ov-range.h (octave_range::uminus): New function. + * BaseSLList.cc: Include error.h. (BaseSLList::error): Call ::error() to process error message. diff --git a/src/file-io.cc b/src/file-io.cc --- a/src/file-io.cc +++ b/src/file-io.cc @@ -182,11 +182,14 @@ } DEFUN (fgetl, args, , - "STRING = fgetl (FILENUM [, LENGTH])\n\ + "[STRING, LENGTH] = fgetl (FILENUM [, LENGTH])\n\ \n\ read a string from a file") { - octave_value retval = -1.0; + octave_value_list retval; + + retval(1) = 0.0; + retval(0) = -1.0; int nargin = args.length (); @@ -204,7 +207,10 @@ string tmp = os->getl (len_arg, err); if (! err) - retval = tmp; + { + retval(1) = (double) tmp.length (); + retval(0) = tmp; + } } else gripe_invalid_file_id ("fgetl"); @@ -216,11 +222,14 @@ } DEFUN (fgets, args, , - "STRING = fgets (FILENUM [, LENGTH])\n\ + "[STRING, LENGTH] = fgets (FILENUM [, LENGTH])\n\ \n\ read a string from a file") { - octave_value retval = -1.0; + octave_value_list retval; + + retval(1) = 0.0; + retval(0) = -1.0; int nargin = args.length (); @@ -238,7 +247,10 @@ string tmp = os->gets (len_arg, err); if (! err) - retval = tmp; + { + retval(1) = (double) tmp.length (); + retval(0) = tmp; + } } else gripe_invalid_file_id ("fgets"); @@ -338,7 +350,9 @@ If fopen fails, FILENUM is set to -1 and ERRMSG contains a\n\ system-dependent error message") { - octave_value_list retval = -1.0; + octave_value_list retval; + + retval(0) = -1.0; int nargin = args.length (); diff --git a/src/ov-range.cc b/src/ov-range.cc --- a/src/ov-range.cc +++ b/src/ov-range.cc @@ -174,6 +174,13 @@ } octave_value +octave_range::not (void) const +{ + Matrix tmp (range.matrix_value ()); + return (! tmp); +} + +octave_value octave_range::transpose (void) const { Matrix tmp (range.matrix_value ()); diff --git a/src/ov-range.h b/src/ov-range.h --- a/src/ov-range.h +++ b/src/ov-range.h @@ -137,6 +137,10 @@ Range range_value (void) const { return range; } + octave_value not (void) const; + + octave_value uminus (void) const { return octave_value (- range); } + octave_value transpose (void) const; octave_value hermitian (void) const;