)\r
{\r
const char16_t *restrict psrc = &c16;\r
+ char buf[s ? 0 : MB_CUR_MAX];\r
+ s = s ? s : buf;\r
\r
if(!l->_Codec->__c16stombs) {\r
// Codec doesn't support direct conversion - translate via UCS-4\r
if((c16 & 0xFC00) == 0xDC00) {\r
// Trailing surrogate\r
char32_t c32 = (ps->_Surrogate & 0x3FF) << 10 | (c16 & 0x3FF);\r
+ ps->_Surrogate = 0;\r
return c32rtomb_l(s, c32, ps, l);\r
} else {\r
// Not a trailing surrogate - encoding error\r