1 
2 // Null ptr and buffer overflow safe C string primitives.
3 
ssfix(const wchar_t * s)4 inline const wchar_t* ssfix(const wchar_t* s) { return s?s:L""; }
ssfix(const char * s)5 inline const char* ssfix(const char* s) { return s?s:""; }
sslen(const wchar_t * s)6 inline size_t sslen(const wchar_t* s) { return s?wcslen(s):0; }
sslen(const char * s)7 inline size_t sslen(const char* s) { return s?strlen(s):0; }
8 wchar_t* ssalloc(size_t count);
9 wchar_t* ssdup(const wchar_t* s);
10 wchar_t* ssdupn(const wchar_t* s,size_t len);
11 int sscmpi(const wchar_t* s1,const wchar_t* s2);
12 wchar_t* ssrchr(const wchar_t* s,wchar_t c);
13 void ssvformat(wchar_t* dest,size_t maxDestChars,const wchar_t* format,va_list args);
14 void ssformat(wchar_t* dest,size_t maxDestChars,const wchar_t* format,...);
15 wchar_t* ssvformatalloc(const wchar_t* format,va_list args);
16