Mercurial > hg > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
7707:446dec9d1de5 | 7708:b42abee70a98 |
---|---|
1494 octave_value skip = 0; | 1494 octave_value skip = 0; |
1495 octave_value arch = "unknown"; | 1495 octave_value arch = "unknown"; |
1496 | 1496 |
1497 int idx = 1; | 1497 int idx = 1; |
1498 | 1498 |
1499 if (nargin > 1 && ! args(idx).is_string ()) | 1499 if (nargin > idx && ! args(idx).is_string ()) |
1500 size = args(idx++); | 1500 size = args(idx++); |
1501 | 1501 |
1502 if (nargin > idx) | 1502 if (nargin > idx) |
1503 prec = args(idx++); | 1503 prec = args(idx++); |
1504 | 1504 |
1505 if (nargin > idx) | 1505 if (nargin > idx) |
1506 skip = args(idx++); | 1506 skip = args(idx++); |
1507 | 1507 |
1508 if (nargin > idx) | 1508 if (nargin > idx) |
1509 arch = args(idx++); | 1509 arch = args(idx++); |
1510 else if (skip.is_string ()) | |
1511 { | |
1512 arch = skip; | |
1513 skip = 0; | |
1514 } | |
1510 | 1515 |
1511 octave_idx_type count = -1; | 1516 octave_idx_type count = -1; |
1512 | 1517 |
1513 octave_value tmp = do_fread (os, size, prec, skip, arch, count); | 1518 octave_value tmp = do_fread (os, size, prec, skip, arch, count); |
1514 | 1519 |
1596 { | 1601 { |
1597 octave_stream os = octave_stream_list::lookup (args(0), "fwrite"); | 1602 octave_stream os = octave_stream_list::lookup (args(0), "fwrite"); |
1598 | 1603 |
1599 if (! error_state) | 1604 if (! error_state) |
1600 { | 1605 { |
1601 octave_value data = args(1); | 1606 octave_value prec = "uchar"; |
1602 | 1607 octave_value skip = 0; |
1603 octave_value prec = (nargin > 2) | 1608 octave_value arch = "unknown"; |
1604 ? args(2) : octave_value ("uchar"); | 1609 |
1605 | 1610 int idx = 1; |
1606 octave_value skip = (nargin > 3) | 1611 |
1607 ? args(3) : octave_value (0.0); | 1612 octave_value data = args(idx++); |
1608 | 1613 |
1609 octave_value arch = (nargin > 4) | 1614 if (nargin > idx) |
1610 ? args(4) : octave_value ("unknown"); | 1615 prec = args(idx++); |
1616 | |
1617 if (nargin > idx) | |
1618 skip = args(idx++); | |
1619 | |
1620 if (nargin > idx) | |
1621 arch = args(idx++); | |
1622 else if (skip.is_string ()) | |
1623 { | |
1624 arch = skip; | |
1625 skip = 0; | |
1626 } | |
1611 | 1627 |
1612 double status = do_fwrite (os, data, prec, skip, arch); | 1628 double status = do_fwrite (os, data, prec, skip, arch); |
1613 | 1629 |
1614 retval = status; | 1630 retval = status; |
1615 } | 1631 } |