# HG changeset patch # User John W. Eaton # Date 1208193205 14400 # Node ID b42abee70a989b05a6387199a779e801994591ae # Parent 446dec9d1de52fc939c45b8184a42c452063410d fread, fwrite: allow SKIP arg to be omitted diff -r 446dec9d1de5 -r b42abee70a98 src/ChangeLog --- a/src/ChangeLog Wed Apr 09 13:31:12 2008 -0400 +++ b/src/ChangeLog Mon Apr 14 13:13:25 2008 -0400 @@ -1,3 +1,8 @@ +2008-04-14 John W. Eaton + + * file-io.cc (Ffread): Allow SKIP arg to be omitted. + (Ffwrite): Likewise. Handle args in a way consistent with Ffread. + 2008-04-09 Michael Goffioul * DLD-FUNCTIONS/dispatch.cc: Replace system("echo '...'>...") calls diff -r 446dec9d1de5 -r b42abee70a98 src/file-io.cc --- a/src/file-io.cc Wed Apr 09 13:31:12 2008 -0400 +++ b/src/file-io.cc Mon Apr 14 13:13:25 2008 -0400 @@ -1496,7 +1496,7 @@ int idx = 1; - if (nargin > 1 && ! args(idx).is_string ()) + if (nargin > idx && ! args(idx).is_string ()) size = args(idx++); if (nargin > idx) @@ -1507,6 +1507,11 @@ if (nargin > idx) arch = args(idx++); + else if (skip.is_string ()) + { + arch = skip; + skip = 0; + } octave_idx_type count = -1; @@ -1598,16 +1603,27 @@ if (! error_state) { - octave_value data = args(1); + octave_value prec = "uchar"; + octave_value skip = 0; + octave_value arch = "unknown"; - octave_value prec = (nargin > 2) - ? args(2) : octave_value ("uchar"); + int idx = 1; + + octave_value data = args(idx++); + + if (nargin > idx) + prec = args(idx++); - octave_value skip = (nargin > 3) - ? args(3) : octave_value (0.0); + if (nargin > idx) + skip = args(idx++); - octave_value arch = (nargin > 4) - ? args(4) : octave_value ("unknown"); + if (nargin > idx) + arch = args(idx++); + else if (skip.is_string ()) + { + arch = skip; + skip = 0; + } double status = do_fwrite (os, data, prec, skip, arch);