/********************************************************************** * Copyright (C) 1999-2001, International Business Machines * Corporation and others. All Rights Reserved. **********************************************************************/ #include "unicode/utypes.h" #include "unicode/unistr.h" #include "cpputils.h" /** Simple utility to fill a UChar array from a UnicodeString */ U_CAPI int32_t U_EXPORT2 uprv_fillOutputString(const UnicodeString &temp, UChar *dest, int32_t destCapacity, UErrorCode *status) { int32_t length = temp.length(); if (destCapacity > 0) { // copy the contents; extract() will check if it needs to copy anything at all temp.extract(0, destCapacity, dest, 0); // zero-terminate the dest buffer if possible if (length < destCapacity) { dest[length] = 0; } } // set the error code according to the necessary buffer length if (length > destCapacity && U_SUCCESS(*status)) { *status = U_BUFFER_OVERFLOW_ERROR; } // return the full string length return length; }