| 791 | //----------------------------------------------------------------------------- |
| 792 | |
| 793 | String operator+(const String &a, const String &b) |
| 794 | { |
| 795 | PROFILE_SCOPE( String_String_plus_String ); |
| 796 | |
| 797 | if( a.isEmpty() ) |
| 798 | return b; |
| 799 | else if( b.isEmpty() ) |
| 800 | return a; |
| 801 | |
| 802 | U32 lena = a.length(); |
| 803 | U32 lenb = b.length(); |
| 804 | |
| 805 | String::StringData* sub = String::StringData::Create(NULL, lena + lenb); |
| 806 | |
| 807 | String::copy(sub->utf8(),a._string->utf8(),lena); |
| 808 | String::copy(sub->utf8() + lena,b._string->utf8(),lenb + 1); |
| 809 | |
| 810 | return String(sub); |
| 811 | } |
| 812 | |
| 813 | String operator+(const String &a, StringChar c) |
| 814 | { |