/*---------------------------------------------------------------------- | NPT_String::operator+(const NPT_String& , const char*) +---------------------------------------------------------------------*/ NPT_String operator+(const char* s1, const NPT_String& s2) { // shortcut if (s1 == NULL) return NPT_String(s2); // measure strings NPT_Size s1_length = NPT_String::StringLength(s1); NPT_Size s2_length = s2.GetLength(); // allocate space for the new string NPT_String result; char* start = result.PrepareToWrite(s1_length+s2_length); // concatenate the two strings into the result NPT_String::CopyBuffer(start, s1, s1_length); NPT_String::CopyString(start+s1_length, s2.GetChars()); return result; }