diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2011-03-30 22:33:41 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2011-03-30 22:33:41 +0000 |
| commit | 4b9289cfb260f4bcecaf23a810584ef6ef8e8501 (patch) | |
| tree | 79136af08c7e42ba3322f0d73e9779e4354b318a /src/string.cpp | |
| parent | c7636dc954eddfe58f7959392602fbc9072d77e7 (diff) | |
| download | libbu++-4b9289cfb260f4bcecaf23a810584ef6ef8e8501.tar.gz libbu++-4b9289cfb260f4bcecaf23a810584ef6ef8e8501.tar.bz2 libbu++-4b9289cfb260f4bcecaf23a810584ef6ef8e8501.tar.xz libbu++-4b9289cfb260f4bcecaf23a810584ef6ef8e8501.zip | |
Ok, string stuff is working much, much better, a load of new unit tests have
been added, and I deleted a whole slew of stupid old tests that I don't need.
Diffstat (limited to '')
| -rw-r--r-- | src/string.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/string.cpp b/src/string.cpp index 5834da1..edc45f9 100644 --- a/src/string.cpp +++ b/src/string.cpp | |||
| @@ -443,7 +443,7 @@ Bu::String Bu::String::replace( const Bu::String &fnd, | |||
| 443 | const_iterator o = begin(); | 443 | const_iterator o = begin(); |
| 444 | while( true ) | 444 | while( true ) |
| 445 | { | 445 | { |
| 446 | const_iterator i = o.find( fnd ); | 446 | const_iterator i = o.find( fnd, fnd.getSize() ); |
| 447 | if( !i ) | 447 | if( !i ) |
| 448 | { | 448 | { |
| 449 | out.append( o ); | 449 | out.append( o ); |
| @@ -994,7 +994,7 @@ Bu::String::const_iterator Bu::String::find( const String &rStr, | |||
| 994 | if( !iStart ) iStart = begin(); | 994 | if( !iStart ) iStart = begin(); |
| 995 | for( ; iStart; iStart++ ) | 995 | for( ; iStart; iStart++ ) |
| 996 | { | 996 | { |
| 997 | if( iStart.compare( rStr, rStr.getSize() ) ) | 997 | if( iStart.compare( rStr ) ) |
| 998 | return iStart; | 998 | return iStart; |
| 999 | } | 999 | } |
| 1000 | return end(); | 1000 | return end(); |
| @@ -1133,6 +1133,36 @@ void Bu::String::trimBack( long iAmnt ) | |||
| 1133 | core->nLength -= iAmnt; | 1133 | core->nLength -= iAmnt; |
| 1134 | } | 1134 | } |
| 1135 | 1135 | ||
| 1136 | Bu::String Bu::String::trimWhitespace() const | ||
| 1137 | { | ||
| 1138 | if( core->nLength == 0 ) | ||
| 1139 | return ""; | ||
| 1140 | const_iterator i = begin(); | ||
| 1141 | for( ; i && (*i == ' ' || *i == '\t' || *i == '\n' || *i == '\r'); i++ ) { } | ||
| 1142 | if( !i ) | ||
| 1143 | return ""; | ||
| 1144 | |||
| 1145 | const_iterator e = i; | ||
| 1146 | for( ; e; e++ ) | ||
| 1147 | { | ||
| 1148 | if( *e == ' ' || *e == '\t' || *e == '\n' || *e == '\r' ) | ||
| 1149 | { | ||
| 1150 | const_iterator t = e; | ||
| 1151 | for( ; t && (*t == ' ' || *t == '\t' || *t == '\n' || *t == '\r'); t++ ) { } | ||
| 1152 | if( t ) | ||
| 1153 | { | ||
| 1154 | e = t; | ||
| 1155 | } | ||
| 1156 | else | ||
| 1157 | { | ||
| 1158 | break; | ||
| 1159 | } | ||
| 1160 | } | ||
| 1161 | } | ||
| 1162 | |||
| 1163 | return Bu::String( i, e ); | ||
| 1164 | } | ||
| 1165 | |||
| 1136 | Bu::String::iterator Bu::String::begin() | 1166 | Bu::String::iterator Bu::String::begin() |
| 1137 | { | 1167 | { |
| 1138 | if( core->nLength == 0 ) | 1168 | if( core->nLength == 0 ) |
