#include "ptl.h" Ptl_String *Ptl_initStringL(wchar_t *src, size_t length) { Ptl_String *dest = Ptl_alloc(sizeof(Ptl_String)); dest->length = length; dest->alloc = length+1; dest->data = Ptl_alloc(sizeof(UChar) * (length+1)); memcpy(dest->data, src, length); dest->data[length+1] = '\0'; } Ptl_String *Ptl_initString(wchar_t *str) { return Ptl_initStringL(str, wcslen(str)); } void Ptl_copyString(Ptl_String *dest, Ptl_String *src) { memcpy(dest->data, src->data, src->length); dest->data[src->length] = '\0'; } Ptl_String *Ptl_dupString(Ptl_String *src) { Ptl_String *dest = Ptl_alloc(sizeof(Ptl_String)); dest->length = src->length; dest->alloc = src->length+1; dest->data = Ptl_alloc(sizeof(UChar) * (src->length+1)); Ptl_copyString(dest, src); return dest; }