Mercurial > hg > octave-nkf
comparison src/oct-stream.cc @ 4420:3dfdbcaf4582
[project @ 2003-05-28 18:24:42 by jwe]
author | jwe |
---|---|
date | Wed, 28 May 2003 18:24:42 +0000 |
parents | 1cae4472c624 |
children | 82f8aae8cf20 |
comparison
equal
deleted
inserted
replaced
4419:8eb47d7ff594 | 4420:3dfdbcaf4582 |
---|---|
1339 { \ | 1339 { \ |
1340 if (data_index == max_size) \ | 1340 if (data_index == max_size) \ |
1341 { \ | 1341 { \ |
1342 max_size *= 2; \ | 1342 max_size *= 2; \ |
1343 \ | 1343 \ |
1344 if (nr > 0) \ | 1344 if (all_char_conv) \ |
1345 mval.resize (nr, max_size / nr, 0.0); \ | 1345 { \ |
1346 if (one_elt_size_spec) \ | |
1347 mval.resize (1, max_size, 0.0); \ | |
1348 else if (nr > 0) \ | |
1349 mval.resize (nr, max_size / nr, 0.0); \ | |
1350 else \ | |
1351 panic_impossible (); \ | |
1352 } \ | |
1353 else if (nr > 0) \ | |
1354 { \ | |
1355 if (nc <= 0) \ | |
1356 mval.resize (nr, max_size / nr, 0.0); \ | |
1357 else \ | |
1358 panic_impossible (); \ | |
1359 } \ | |
1346 else \ | 1360 else \ |
1347 { \ | 1361 mval.resize (max_size, 1, 0.0); \ |
1348 if (all_char_conv && one_elt_size_spec) \ | |
1349 mval.resize (1, max_size, 0.0); \ | |
1350 else \ | |
1351 mval.resize (max_size, 1, 0.0); \ | |
1352 } \ | |
1353 \ | 1362 \ |
1354 data = mval.fortran_vec (); \ | 1363 data = mval.fortran_vec (); \ |
1355 } \ | 1364 } \ |
1356 \ | 1365 \ |
1357 data[data_index++] = tmp[i++]; \ | 1366 data[data_index++] = tmp[i++]; \ |
1394 int final_nr = 0; | 1403 int final_nr = 0; |
1395 int final_nc = 0; | 1404 int final_nc = 0; |
1396 | 1405 |
1397 if (all_char_conv) | 1406 if (all_char_conv) |
1398 { | 1407 { |
1408 // Any of these could be resized later (if we have %s | |
1409 // conversions, we may read more than one element for each | |
1410 // conversion). | |
1411 | |
1399 if (one_elt_size_spec) | 1412 if (one_elt_size_spec) |
1400 { | 1413 { |
1401 max_size = 512; | 1414 max_size = 512; |
1402 mval.resize (1, max_size, 0.0); | 1415 mval.resize (1, max_size, 0.0); |
1403 data = mval.fortran_vec (); | |
1404 | 1416 |
1405 if (nr > 0) | 1417 if (nr > 0) |
1406 max_conv = nr; | 1418 max_conv = nr; |
1407 } | 1419 } |
1408 else if (nr > 0 && nc > 0) | 1420 else if (nr > 0) |
1409 { | 1421 { |
1422 if (nc > 0) | |
1423 { | |
1424 mval.resize (nr, nc, 0.0); | |
1425 max_size = max_conv = nr * nc; | |
1426 } | |
1427 else | |
1428 { | |
1429 mval.resize (nr, 32, 0.0); | |
1430 max_size = nr * 32; | |
1431 } | |
1432 } | |
1433 else | |
1434 panic_impossible (); | |
1435 } | |
1436 else if (nr > 0) | |
1437 { | |
1438 if (nc > 0) | |
1439 { | |
1440 // Will not resize later. | |
1410 mval.resize (nr, nc, 0.0); | 1441 mval.resize (nr, nc, 0.0); |
1411 data = mval.fortran_vec (); | |
1412 max_size = max_conv = nr * nc; | |
1413 } | |
1414 } | |
1415 else if (nr > 0) | |
1416 { | |
1417 if (nc > 0) | |
1418 { | |
1419 mval.resize (nr, nc, 0.0); | |
1420 data = mval.fortran_vec (); | |
1421 max_size = nr * nc; | 1442 max_size = nr * nc; |
1422 | |
1423 max_conv = max_size; | 1443 max_conv = max_size; |
1424 } | 1444 } |
1425 else | 1445 else |
1426 { | 1446 { |
1447 // Maybe resize later. | |
1427 mval.resize (nr, 32, 0.0); | 1448 mval.resize (nr, 32, 0.0); |
1428 data = mval.fortran_vec (); | |
1429 max_size = nr * 32; | 1449 max_size = nr * 32; |
1430 } | 1450 } |
1431 } | 1451 } |
1432 else | 1452 else |
1433 { | 1453 { |
1454 // Maybe resize later. | |
1434 mval.resize (32, 1, 0.0); | 1455 mval.resize (32, 1, 0.0); |
1435 data = mval.fortran_vec (); | |
1436 max_size = 32; | 1456 max_size = 32; |
1437 } | 1457 } |
1458 | |
1459 data = mval.fortran_vec (); | |
1438 | 1460 |
1439 if (isp) | 1461 if (isp) |
1440 { | 1462 { |
1441 std::istream& is = *isp; | 1463 std::istream& is = *isp; |
1442 | 1464 |
1467 } | 1489 } |
1468 else if (data_index == max_size) | 1490 else if (data_index == max_size) |
1469 { | 1491 { |
1470 max_size *= 2; | 1492 max_size *= 2; |
1471 | 1493 |
1472 if (nr > 0) | 1494 if (all_char_conv) |
1473 mval.resize (nr, max_size / nr, 0.0); | 1495 { |
1496 if (one_elt_size_spec) | |
1497 mval.resize (1, max_size, 0.0); | |
1498 else if (nr > 0) | |
1499 mval.resize (nr, max_size / nr, 0.0); | |
1500 else | |
1501 panic_impossible (); | |
1502 } | |
1503 else if (nr > 0) | |
1504 { | |
1505 if (nc <= 0) | |
1506 mval.resize (nr, max_size / nr, 0.0); | |
1507 else | |
1508 panic_impossible (); | |
1509 } | |
1474 else | 1510 else |
1475 { | 1511 mval.resize (max_size, 1, 0.0); |
1476 if (all_char_conv && one_elt_size_spec) | |
1477 mval.resize (1, max_size, 0.0); | |
1478 else | |
1479 mval.resize (max_size, 1, 0.0); | |
1480 } | |
1481 | 1512 |
1482 data = mval.fortran_vec (); | 1513 data = mval.fortran_vec (); |
1483 } | 1514 } |
1484 | 1515 |
1485 const char *fmt = elt->text; | 1516 const char *fmt = elt->text; |