Changeset 607 for CMT/HEAD/source/cmt_string.cxx
- Timestamp:
- Apr 3, 2012, 3:54:50 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
CMT/HEAD/source/cmt_string.cxx
r527 r607 244 244 void cmt_string::resize (int n) 245 245 { 246 _size = n; 246 247 allocate (n + 1); 248 _data[n] = 0; 247 249 } 248 250 … … 544 546 if ((_data == 0) || 545 547 (pos < 0) || 546 (pos >= _size)) 548 (pos >= _size) || 549 length == 0) 547 550 { 548 551 return ((cmt_string) ""); … … 550 553 else 551 554 { 555 // cerr << "|cmt_string::substr>: `" << *this << "' pos: " << pos << " length: " << length; 556 557 if ((pos + length) >= _size || 558 length < 0) 559 { 560 // cmt_string result (&_data[pos]); 561 //cerr << " |---> `" << result << "'" << endl; 562 // return (result); 563 return (&_data[pos]); 564 } 565 else 566 { 567 cmt_string result; 568 result.resize (length); 569 for (int i = 0; i < length; i++) 570 result[i] = _data[pos + i]; 571 //cerr << " |---> `" << result << "'" << endl; 572 return (result); 573 } 574 575 /* 552 576 cmt_string result (&_data[pos]); 553 577 result.erase (length); 578 cerr << " |---> `" << result << "'" << endl; 554 579 return (result); 580 */ 555 581 } 556 582 } … … 574 600 if ((_data == 0) || 575 601 (pos < 0) || 576 (pos >= _size)) 602 (pos >= _size) || 603 length == 0) 577 604 { 578 605 dest = ""; … … 580 607 else 581 608 { 609 // cerr << "|void cmt_string::substr>: `" << *this << "' pos: " << pos << " length: " << length; 610 611 if ((pos + length) >= _size || 612 length < 0) 613 { 614 dest = (const char*) &_data[pos]; 615 } 616 else 617 { 618 dest.resize (length); 619 for (int i = 0; i < length; i++) 620 dest[i] = _data[pos + i]; 621 } 622 623 /* 582 624 dest = (const char*) &_data[pos]; 583 625 dest.erase (length); 626 */ 627 // cerr << " |---> `" << dest << "'" << endl; 584 628 } 585 629 }
Note: See TracChangeset
for help on using the changeset viewer.