#include <j2k/Fred/String/String.hpp>Go to the source code of this file.
Functions | |
| JString | operator+ (const JString &S1, const JString &S2) |
| JString | operator+ (const JString &S1, const char *s2) |
| JString | operator+ (const char *s1, const JString &S2) |
| JString | operator+ (const JString &S1, char c) |
| JString | operator+ (char c, const JString &S2) |
|
||||||||||||
|
Definition at line 268 of file StrAdd.cpp. 00268 {
00269 JString* s = new JString(); // JStringData = &strNull
00270 char s1[2] = { c, '\0' };
00271
00272 if ( c == '\0' || c == (char)NULL ) { // No addition needed
00273 s->pData = S2.pData; // s1 is NULL, assign S2
00274 } else if ( S2.pData == strNull ) {
00275 s->pData = new JStringData( c ); // Only s1 is not NULL
00276 } else { // Normal Addition, None are NULL
00277 s->Add( s1, S2.pData->data, 1, S2.pData->length );
00278 }
00279
00280 assert( s->pData->data[s->pData->length] == '\0');
00281
00282 return *s;
00283 }
|
|
||||||||||||
|
Definition at line 251 of file StrAdd.cpp. 00251 {
00252 JString* s = new JString(); // JStringData = &strNull
00253 char s2[2] = { c, '\0' };
00254
00255 if ( c == '\0' || c == (char)NULL ) { // No addition needed
00256 s->pData = S1.pData;
00257 } else if ( S1.pData == strNull ) {
00258 s->pData = new JStringData( c ); // Only s2 is not NULL
00259 } else { // Normal Addition, None are NULL
00260 S1.pData->data[ S1.pData->length ] = '\0'; // Safety feature
00261 s->Add( S1.pData->data, s2, S1.pData->length, 1 );
00262 }
00263
00264 assert( s->pData->data[s->pData->length] == '\0');
00265 return *s;
00266 }
|
|
||||||||||||
|
Definition at line 234 of file StrAdd.cpp. 00234 {
00235 JString* s = new JString(); // JStringData = &strNull
00236
00237 if ( s1 == NULL || *s1 == (char)NULL ) { // No addition needed
00238 s->pData = S2.pData; // s1 is NULL, assign S2
00239 } else if ( S2.pData == strNull ) {
00240 s->pData = new JStringData( s1 ); // Only s1 is not NULL
00241 } else { // Normal Addition, None are NULL
00242 ULONG Len = strlen( s1 );
00243 s->Add( s1, S2.pData->data, Len, S2.pData->length );
00244 }
00245
00246 assert( s->pData->data[s->pData->length] == '\0');
00247
00248 return *s;
00249 }
|
|
||||||||||||
|
Definition at line 216 of file StrAdd.cpp. 00216 {
00217 JString* s = new JString(); // JStringData = &strNull
00218
00219 if ( s2 == NULL || *s2 == (char)NULL ) { // No addition needed
00220 s->pData = S1.pData;
00221 } else if ( S1.pData == strNull ) {
00222 s->pData = new JStringData( s2 ); // Only s2 is not NULL
00223 } else { // Normal Addition, None are NULL
00224 S1.pData->data[ S1.pData->length ] = '\0'; // Safety feature
00225
00226 ULONG Len = strlen( s2 );
00227 s->Add( S1.pData->data, s2, S1.pData->length, Len );
00228 }
00229
00230 assert( s->pData->data[s->pData->length] == '\0');
00231 return *s;
00232 }
|
|
||||||||||||
|
Definition at line 186 of file StrAdd.cpp. 00186 {
00187 JString* s = new JString(); // JStringData = &strNull
00188
00189 if ( S1.pData == strNull ) {
00190 // S1.pData->Dec(); // Not Needed, NO decrement on Null
00191 s->pData = S2.pData; // S1 is NULL, assign S2.
00192
00193 S2.pData->Inc();
00194
00195 // Inc() & Dec() checks for strNull and don't increase or decrease it
00196
00197 } else if ( S2.pData == strNull ) {
00198 // S2.pData->Dec(); // Not Needed, NO decrement on Null
00199 s->pData = S1.pData; // S2 is NULL, assign S1.
00200 S1.pData->Inc();
00201 } else { // Normal Addition, None are NULL
00202
00203 // Will change this == 's',
00204 // it works since 's' call it's own function !
00205 S1.pData->data[ S1.pData->length ] = '\0'; // Safety feature
00206 S2.pData->data[ S2.pData->length ] = '\0'; // Safety feature
00207
00208 s->Add( S1.pData->data, S2.pData->data,
00209 S1.pData->length, S2.pData->length );
00210 }
00211
00212 assert( s->pData->data[s->pData->length] == '\0');
00213 return *s;
00214 }
|
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001