utString& utString::operator=(const char *s) { if (p != s) { // this should work with overlapping memory char *copy = strdup_never_null(s); lmSafeFree(NULL, p); p = copy; } return *this; }
utString::utString(const char *s) : p(strdup_never_null(s)) { }
utString::utString(const utString& s) : p(strdup_never_null(s.p)) { }
utString::utString() : p(strdup_never_null("")) { }
void utString::clear() { lmSafeFree(NULL, p); p = strdup_never_null(""); }
void utString::clear() { je_free(p); p = strdup_never_null(""); }
String::String(const char* s) : p(strdup_never_null(s)) { _return_value = '\0'; }
String::String() : p( strdup_never_null("") ) { _return_value = '\0'; }