diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fstring.h | 18 | ||||
| -rw-r--r-- | src/unit/fstring.cpp | 21 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/fstring.h b/src/fstring.h index b4cae3a..620b312 100644 --- a/src/fstring.h +++ b/src/fstring.h | |||
| @@ -390,6 +390,24 @@ namespace Bu | |||
| 390 | return pFirst->pData; | 390 | return pFirst->pData; |
| 391 | } | 391 | } |
| 392 | 392 | ||
| 393 | MyType getSubStr( long iStart, long iSize=-1 ) const | ||
| 394 | { | ||
| 395 | if( iStart < 0 ) | ||
| 396 | iStart = 0; | ||
| 397 | if( iStart >= nLength ) | ||
| 398 | return ""; | ||
| 399 | if( iSize < 0 ) | ||
| 400 | iSize = nLength; | ||
| 401 | if( iStart+iSize > nLength ) | ||
| 402 | iSize = nLength-iStart; | ||
| 403 | if( iSize == 0 ) | ||
| 404 | return ""; | ||
| 405 | |||
| 406 | flatten(); | ||
| 407 | MyType ret( pFirst->pData+iStart, iSize ); | ||
| 408 | return ret; | ||
| 409 | } | ||
| 410 | |||
| 393 | /** | 411 | /** |
| 394 | * (std::string compatability) Get a pointer to the string array. | 412 | * (std::string compatability) Get a pointer to the string array. |
| 395 | *@returns (chr *) The string data. | 413 | *@returns (chr *) The string data. |
diff --git a/src/unit/fstring.cpp b/src/unit/fstring.cpp index ea3342a..7be03a7 100644 --- a/src/unit/fstring.cpp +++ b/src/unit/fstring.cpp | |||
| @@ -24,6 +24,8 @@ public: | |||
| 24 | addTest( Unit::add2 ); | 24 | addTest( Unit::add2 ); |
| 25 | addTest( Unit::add3 ); | 25 | addTest( Unit::add3 ); |
| 26 | addTest( Unit::add4 ); | 26 | addTest( Unit::add4 ); |
| 27 | addTest( Unit::add5 ); | ||
| 28 | addTest( Unit::subStr1 ); | ||
| 27 | } | 29 | } |
| 28 | 30 | ||
| 29 | virtual ~Unit() | 31 | virtual ~Unit() |
| @@ -128,6 +130,25 @@ public: | |||
| 128 | 130 | ||
| 129 | unitTest( c == "hi there, yeah!" ); | 131 | unitTest( c == "hi there, yeah!" ); |
| 130 | } | 132 | } |
| 133 | |||
| 134 | void add5() | ||
| 135 | { | ||
| 136 | Bu::FString b; | ||
| 137 | Bu::FString c = "sup?"; | ||
| 138 | b += "hey, " + c; | ||
| 139 | |||
| 140 | unitTest( b == "hey, sup?" ); | ||
| 141 | } | ||
| 142 | |||
| 143 | void subStr1() | ||
| 144 | { | ||
| 145 | Bu::FString a("abcdefghijklmnop"); | ||
| 146 | unitTest( a.getSubStr( 5, 3 ) == "fgh" ); | ||
| 147 | unitTest( a.getSubStr( 10 ) == "klmnop" ); | ||
| 148 | unitTest( a.getSubStr( 40 ) == "" ); | ||
| 149 | unitTest( a.getSubStr( -10 ) == "abcdefghijklmnop" ); | ||
| 150 | unitTest( a.getSubStr( -15, 4 ) == "abcd" ); | ||
| 151 | } | ||
| 131 | }; | 152 | }; |
| 132 | 153 | ||
| 133 | int main( int argc, char *argv[] ) | 154 | int main( int argc, char *argv[] ) |
