Mercurial > hg > octave-nkf
diff src/file-io.cc @ 7708:b42abee70a98
fread, fwrite: allow SKIP arg to be omitted
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 14 Apr 2008 13:13:25 -0400 |
parents | eb7bdde776f2 |
children | b68e44c90afe |
line wrap: on
line diff
--- a/src/file-io.cc +++ b/src/file-io.cc @@ -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);