#define EXTENDED_FUNCTIONALITY #include "cpputils.h" #include "cstring.h" #include "ustring.h" /****************************************************** * Simple utility to set output buffer parameters ******************************************************/ void T_fillOutputParams(const UnicodeString* temp, UChar* result, const int32_t resultLength, int32_t* resultLengthOut, UErrorCode* status) { const int32_t actual = temp->size(); const bool_t overflowed = actual >= resultLength; const int32_t returnedSize = icu_min(actual, resultLength-1); if ((temp->size() < resultLength) && (result != temp->getUChars()) && (returnedSize > 0)) { u_strcpy(result, temp->getUChars()); } if (resultLength > 0) { result[returnedSize] = 0; } if (resultLengthOut) { *resultLengthOut = actual; if (U_SUCCESS(*status) && overflowed) { *status = U_BUFFER_OVERFLOW_ERROR; } } }