home *** CD-ROM | disk | FTP | other *** search
- /*
- *******************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright International Business Machines Corporation, 1998, 1999 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *******************************************************************************
- *
- * File date.c
- *
- * Modification History:
- *
- * Date Name Description
- * 06/14/99 stephen Creation.
- *******************************************************************************
- */
-
- #include "uprint.h"
-
- #include "ucnv.h"
- #include "ustring.h"
-
- #define BUF_SIZE 128
-
- /* Print a ustring to the specified FILE* in the default codepage */
- void
- uprint(const UChar *s,
- FILE *f,
- UErrorCode *status)
- {
- /* converter */
- UConverter *converter;
- char buf [BUF_SIZE];
- int32_t sourceLen;
- const UChar *mySource;
- const UChar *mySourceEnd;
- char *myTarget;
- int32_t arraySize;
-
- if(s == 0) return;
-
- /* set up the conversion parameters */
- sourceLen = u_strlen(s);
- mySource = s;
- mySourceEnd = mySource + sourceLen;
- myTarget = buf;
- arraySize = BUF_SIZE;
-
- /* open a default converter */
- converter = ucnv_open(0, status);
-
- /* if we failed, clean up and exit */
- if(U_FAILURE(*status)) goto finish;
-
- /* perform the conversion */
- do {
- /* reset the error code */
- *status = U_ZERO_ERROR;
-
- /* perform the conversion */
- ucnv_fromUnicode(converter, &myTarget, myTarget + arraySize,
- &mySource, mySourceEnd, NULL,
- TRUE, status);
-
- /* Write the converted data to the FILE* */
- fwrite(buf, sizeof(char), myTarget - buf, f);
-
- /* update the conversion parameters*/
- myTarget = buf;
- arraySize = BUF_SIZE;
- }
- while(*status == U_INDEX_OUTOFBOUNDS_ERROR);
-
- finish:
-
- /* close the converter */
- ucnv_close(converter);
- }
-