U_CAPI int32_t U_EXPORT2 /* U_CAPI ... U_EXPORT2 added by Peter Kirk 17 Nov 2001 */ u_vfprintf( UFILE *f, const char *patternSpecification, va_list ap) { int32_t count; UChar *pattern; UChar buffer[UFMT_DEFAULT_BUFFER_SIZE]; int32_t size = (int32_t)strlen(patternSpecification) + 1; /* convert from the default codepage to Unicode */ if (size >= MAX_UCHAR_BUFFER_SIZE(buffer)) { pattern = (UChar *)uprv_malloc(size * sizeof(UChar)); if(pattern == 0) { return 0; } } else { pattern = buffer; } u_charsToUChars(patternSpecification, pattern, size); /* do the work */ count = u_vfprintf_u(f, pattern, ap); /* clean up */ if (pattern != buffer) { uprv_free(pattern); } return count; }
U_CAPI int32_t U_EXPORT2 u_printf_u(const UChar *patternSpecification, ...) { va_list ap; int32_t count; va_start(ap, patternSpecification); count = u_vfprintf_u(u_get_stdout(), patternSpecification, ap); va_end(ap); return count; }
U_CAPI int32_t U_EXPORT2 u_fprintf_u(UFILE * f, const UChar * patternSpecification, ...) { va_list ap; int32_t count; va_start(ap, patternSpecification); count = u_vfprintf_u(f, patternSpecification, ap); va_end(ap); return count; }