diff options
| -rw-r--r-- | src/fbasicstring.h | 28 | ||||
| -rw-r--r-- | src/list.h | 18 | ||||
| -rw-r--r-- | src/unit/fstring.unit | 9 |
3 files changed, 41 insertions, 14 deletions
diff --git a/src/fbasicstring.h b/src/fbasicstring.h index cac7dd7..a532d69 100644 --- a/src/fbasicstring.h +++ b/src/fbasicstring.h | |||
| @@ -999,7 +999,7 @@ namespace Bu | |||
| 999 | * Plus equals operator for FString. | 999 | * Plus equals operator for FString. |
| 1000 | *@param pData (const chr *) The data to append to your FString. | 1000 | *@param pData (const chr *) The data to append to your FString. |
| 1001 | */ | 1001 | */ |
| 1002 | MyType &operator +=( const chr *pData ) | 1002 | MyType &operator+=( const chr *pData ) |
| 1003 | { | 1003 | { |
| 1004 | append( pData ); | 1004 | append( pData ); |
| 1005 | 1005 | ||
| @@ -1010,7 +1010,7 @@ namespace Bu | |||
| 1010 | * Plus equals operator for FString. | 1010 | * Plus equals operator for FString. |
| 1011 | *@param pData (const MyType &) The FString to append to your FString. | 1011 | *@param pData (const MyType &) The FString to append to your FString. |
| 1012 | */ | 1012 | */ |
| 1013 | MyType &operator +=( const MyType &rSrc ) | 1013 | MyType &operator+=( const MyType &rSrc ) |
| 1014 | { | 1014 | { |
| 1015 | if( rSrc.nLength == 0 ) | 1015 | if( rSrc.nLength == 0 ) |
| 1016 | return (*this); | 1016 | return (*this); |
| @@ -1024,7 +1024,7 @@ namespace Bu | |||
| 1024 | * Plus equals operator for FString. | 1024 | * Plus equals operator for FString. |
| 1025 | *@param pData (const chr) The character to append to your FString. | 1025 | *@param pData (const chr) The character to append to your FString. |
| 1026 | */ | 1026 | */ |
| 1027 | MyType &operator +=( const chr cData ) | 1027 | MyType &operator+=( const chr cData ) |
| 1028 | { | 1028 | { |
| 1029 | if( pLast && pLast->nLength < nMinSize ) | 1029 | if( pLast && pLast->nLength < nMinSize ) |
| 1030 | { | 1030 | { |
| @@ -1046,7 +1046,7 @@ namespace Bu | |||
| 1046 | *@param pData (const chr *) The character array to append to your | 1046 | *@param pData (const chr *) The character array to append to your |
| 1047 | * FString. | 1047 | * FString. |
| 1048 | */ | 1048 | */ |
| 1049 | MyType &operator =( const chr *pData ) | 1049 | MyType &operator=( const chr *pData ) |
| 1050 | { | 1050 | { |
| 1051 | clear(); | 1051 | clear(); |
| 1052 | append( pData ); | 1052 | append( pData ); |
| @@ -1054,7 +1054,7 @@ namespace Bu | |||
| 1054 | return (*this); | 1054 | return (*this); |
| 1055 | } | 1055 | } |
| 1056 | 1056 | ||
| 1057 | MyType &operator =( const std::basic_string<chr> &rData ) | 1057 | MyType &operator=( const std::basic_string<chr> &rData ) |
| 1058 | { | 1058 | { |
| 1059 | clear(); | 1059 | clear(); |
| 1060 | append( rData.c_str(), rData.size() ); | 1060 | append( rData.c_str(), rData.size() ); |
| @@ -1062,21 +1062,21 @@ namespace Bu | |||
| 1062 | return (*this); | 1062 | return (*this); |
| 1063 | } | 1063 | } |
| 1064 | 1064 | ||
| 1065 | MyType operator +( const MyType &rRight ) | 1065 | MyType operator+( const MyType &rRight ) const |
| 1066 | { | 1066 | { |
| 1067 | MyType ret( *this ); | 1067 | MyType ret( *this ); |
| 1068 | ret.append( rRight ); | 1068 | ret.append( rRight ); |
| 1069 | return ret; | 1069 | return ret; |
| 1070 | } | 1070 | } |
| 1071 | 1071 | ||
| 1072 | MyType operator +( const chr *pRight ) | 1072 | MyType operator+( const chr *pRight ) const |
| 1073 | { | 1073 | { |
| 1074 | MyType ret( *this ); | 1074 | MyType ret( *this ); |
| 1075 | ret.append( pRight ); | 1075 | ret.append( pRight ); |
| 1076 | return ret; | 1076 | return ret; |
| 1077 | } | 1077 | } |
| 1078 | 1078 | ||
| 1079 | MyType operator +( chr *pRight ) | 1079 | MyType operator+( chr *pRight ) const |
| 1080 | { | 1080 | { |
| 1081 | MyType ret( *this ); | 1081 | MyType ret( *this ); |
| 1082 | ret.append( pRight ); | 1082 | ret.append( pRight ); |
| @@ -1171,7 +1171,7 @@ namespace Bu | |||
| 1171 | * Assignment operator. | 1171 | * Assignment operator. |
| 1172 | *@param rSrc (const MyType &) The FString to set your FString to. | 1172 | *@param rSrc (const MyType &) The FString to set your FString to. |
| 1173 | */ | 1173 | */ |
| 1174 | MyType &operator =( const MyType &rSrc ) | 1174 | MyType &operator=( const MyType &rSrc ) |
| 1175 | { | 1175 | { |
| 1176 | copyFrom( rSrc ); | 1176 | copyFrom( rSrc ); |
| 1177 | 1177 | ||
| @@ -1183,7 +1183,7 @@ namespace Bu | |||
| 1183 | *@param pData (const chr *) The character array to compare your FString | 1183 | *@param pData (const chr *) The character array to compare your FString |
| 1184 | * to. | 1184 | * to. |
| 1185 | */ | 1185 | */ |
| 1186 | bool operator ==( const chr *pData ) const | 1186 | bool operator==( const chr *pData ) const |
| 1187 | { | 1187 | { |
| 1188 | if( pFirst == NULL ) { | 1188 | if( pFirst == NULL ) { |
| 1189 | if( pData == NULL ) | 1189 | if( pData == NULL ) |
| @@ -1212,7 +1212,7 @@ namespace Bu | |||
| 1212 | * Equals comparison operator. | 1212 | * Equals comparison operator. |
| 1213 | *@param pData (const MyType &) The FString to compare your FString to. | 1213 | *@param pData (const MyType &) The FString to compare your FString to. |
| 1214 | */ | 1214 | */ |
| 1215 | bool operator ==( const MyType &pData ) const | 1215 | bool operator==( const MyType &pData ) const |
| 1216 | { | 1216 | { |
| 1217 | if( pFirst == pData.pFirst ) | 1217 | if( pFirst == pData.pFirst ) |
| 1218 | return true; | 1218 | return true; |
| @@ -1239,7 +1239,7 @@ namespace Bu | |||
| 1239 | *@param pData (const chr *) The character array to compare your FString | 1239 | *@param pData (const chr *) The character array to compare your FString |
| 1240 | * to. | 1240 | * to. |
| 1241 | */ | 1241 | */ |
| 1242 | bool operator !=(const chr *pData ) const | 1242 | bool operator!=(const chr *pData ) const |
| 1243 | { | 1243 | { |
| 1244 | return !(*this == pData); | 1244 | return !(*this == pData); |
| 1245 | } | 1245 | } |
| @@ -1248,7 +1248,7 @@ namespace Bu | |||
| 1248 | * Not equals comparison operator. | 1248 | * Not equals comparison operator. |
| 1249 | *@param pData (const MyType &) The FString to compare your FString to. | 1249 | *@param pData (const MyType &) The FString to compare your FString to. |
| 1250 | */ | 1250 | */ |
| 1251 | bool operator !=(const MyType &pData ) const | 1251 | bool operator!=(const MyType &pData ) const |
| 1252 | { | 1252 | { |
| 1253 | return !(*this == pData); | 1253 | return !(*this == pData); |
| 1254 | } | 1254 | } |
| @@ -1759,7 +1759,7 @@ namespace Bu | |||
| 1759 | mutable chunkalloc aChunk; | 1759 | mutable chunkalloc aChunk; |
| 1760 | }; | 1760 | }; |
| 1761 | 1761 | ||
| 1762 | template<class T> FBasicString<T> operator +( const T *pLeft, const FBasicString<T> &rRight ) | 1762 | template<class T> FBasicString<T> operator+( const T *pLeft, const FBasicString<T> &rRight ) |
| 1763 | { | 1763 | { |
| 1764 | Bu::FBasicString<T> ret( pLeft ); | 1764 | Bu::FBasicString<T> ret( pLeft ); |
| 1765 | ret.append( rRight ); | 1765 | ret.append( rRight ); |
| @@ -669,6 +669,24 @@ namespace Bu | |||
| 669 | long nSize; | 669 | long nSize; |
| 670 | cmpfunc cmp; | 670 | cmpfunc cmp; |
| 671 | }; | 671 | }; |
| 672 | |||
| 673 | class Formatter; | ||
| 674 | Formatter &operator<<( Formatter &rOut, char *sStr ); | ||
| 675 | Formatter &operator<<( Formatter &rOut, signed char c ); | ||
| 676 | template<typename value> | ||
| 677 | Formatter &operator<<( Formatter &f, const Bu::List<value> &l ) | ||
| 678 | { | ||
| 679 | f << '['; | ||
| 680 | for( typename Bu::List<value>::const_iterator i = l.begin(); i; i++ ) | ||
| 681 | { | ||
| 682 | if( i != l.begin() ) | ||
| 683 | f << ", "; | ||
| 684 | f << *i; | ||
| 685 | } | ||
| 686 | f << ']'; | ||
| 687 | |||
| 688 | return f; | ||
| 689 | } | ||
| 672 | } | 690 | } |
| 673 | 691 | ||
| 674 | #endif | 692 | #endif |
diff --git a/src/unit/fstring.unit b/src/unit/fstring.unit index a0d62da..fbebd39 100644 --- a/src/unit/fstring.unit +++ b/src/unit/fstring.unit | |||
| @@ -129,6 +129,15 @@ | |||
| 129 | unitTest( c == "Hello/Dude" ); | 129 | unitTest( c == "Hello/Dude" ); |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | {%add7} | ||
| 133 | { | ||
| 134 | const Bu::FString a("hello "); | ||
| 135 | Bu::FString b(" how "); | ||
| 136 | unitTest( a == "hello " ); | ||
| 137 | unitTest( a + "dude" == "hello dude" ); | ||
| 138 | unitTest( a + "dude" + b + "are you?" == "hello dude how are you?" ); | ||
| 139 | } | ||
| 140 | |||
| 132 | {%subStr1} | 141 | {%subStr1} |
| 133 | { | 142 | { |
| 134 | Bu::FString a("abcdefghijklmnop"); | 143 | Bu::FString a("abcdefghijklmnop"); |
