~ubuntu-branches/debian/experimental/arduino/experimental

« back to all changes in this revision

Viewing changes to hardware/arduino/cores/arduino/WString.cpp

  • Committer: Package Import Robot
  • Author(s): Scott Howard
  • Date: 2012-03-11 18:19:42 UTC
  • mfrom: (1.1.5) (5.1.14 sid)
  • Revision ID: package-import@ubuntu.com-20120311181942-be2clnbz1gcehixb
Tags: 1:1.0.1~rc1+dfsg-1
New upstream release, experimental.

Show diffs side-by-side

added added

removed removed

Lines of Context:
498
498
        return lastIndexOf(theChar, len - 1);
499
499
}
500
500
 
501
 
int String::lastIndexOf(char ch, int fromIndex) const
 
501
int String::lastIndexOf(char ch, unsigned int fromIndex) const
502
502
{
503
 
        if (fromIndex >= len || fromIndex < 0) return -1;
 
503
        if (fromIndex >= len) return -1;
504
504
        char tempchar = buffer[fromIndex + 1];
505
505
        buffer[fromIndex + 1] = '\0';
506
506
        char* temp = strrchr( buffer, ch );
514
514
        return lastIndexOf(s2, len - s2.len);
515
515
}
516
516
 
517
 
int String::lastIndexOf(const String &s2, int fromIndex) const
 
517
int String::lastIndexOf(const String &s2, unsigned int fromIndex) const
518
518
{
519
 
        if (s2.len == 0 || len == 0 || s2.len > len || fromIndex < 0) return -1;
 
519
        if (s2.len == 0 || len == 0 || s2.len > len) return -1;
520
520
        if (fromIndex >= len) fromIndex = len - 1;
521
521
        int found = -1;
522
522
        for (char *p = buffer; p <= buffer + fromIndex; p++) {
523
523
                p = strstr(p, s2.buffer);
524
524
                if (!p) break;
525
 
                if (p - buffer <= fromIndex) found = p - buffer;
 
525
                if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer;
526
526
        }
527
527
        return found;
528
528
}
593
593
                if (size == len) return;
594
594
                if (size > capacity && !changeBuffer(size)) return; // XXX: tell user!
595
595
                int index = len - 1;
596
 
                while ((index = lastIndexOf(find, index)) >= 0) {
 
596
                while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) {
597
597
                        readFrom = buffer + index + find.len;
598
598
                        memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
599
599
                        len += diff;