Index: icu46/source/io/uprintf.h |
=================================================================== |
--- icu46/source/io/uprintf.h (revision 0) |
+++ icu46/source/io/uprintf.h (revision 0) |
@@ -0,0 +1,101 @@ |
+/* |
+****************************************************************************** |
+* |
+* Copyright (C) 1998-2006, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+* |
+****************************************************************************** |
+* |
+* File uprintf.h |
+* |
+* Modification History: |
+* |
+* Date Name Description |
+* 11/19/98 stephen Creation. |
+* 03/12/99 stephen Modified for new C API. |
+****************************************************************************** |
+*/ |
+ |
+#ifndef UPRINTF_H |
+#define UPRINTF_H |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_FORMATTING |
+ |
+#include "unicode/ustdio.h" |
+#include "ufmt_cmn.h" |
+#include "locbund.h" |
+ |
+/** |
+ * Struct encapsulating a single uprintf format specification. |
+ */ |
+typedef struct u_printf_spec_info { |
+ int32_t fPrecision; /* Precision */ |
+ int32_t fWidth; /* Width */ |
+ |
+ UChar fOrigSpec; /* Conversion specification */ |
+ UChar fSpec; /* Conversion specification */ |
+ UChar fPadChar; /* Padding character */ |
+ |
+ UBool fAlt; /* # flag */ |
+ UBool fSpace; /* Space flag */ |
+ UBool fLeft; /* - flag */ |
+ UBool fShowSign; /* + flag */ |
+ UBool fZero; /* 0 flag */ |
+ |
+ UBool fIsLongDouble; /* L flag */ |
+ UBool fIsShort; /* h flag */ |
+ UBool fIsLong; /* l flag */ |
+ UBool fIsLongLong; /* ll flag */ |
+} u_printf_spec_info; |
+ |
+typedef int32_t U_EXPORT2 |
+u_printf_write_stream(void *context, |
+ const UChar *str, |
+ int32_t count); |
+ |
+typedef int32_t U_EXPORT2 |
+u_printf_pad_and_justify_stream(void *context, |
+ const u_printf_spec_info *info, |
+ const UChar *result, |
+ int32_t resultLen); |
+ |
+typedef struct u_printf_stream_handler { |
+ u_printf_write_stream *write; |
+ u_printf_pad_and_justify_stream *pad_and_justify; |
+} u_printf_stream_handler; |
+ |
+/* Used by sprintf */ |
+typedef struct u_localized_print_string { |
+ UChar *str; /* Place to write the string */ |
+ int32_t available;/* Number of codeunits available to write to */ |
+ int32_t len; /* Maximum number of code units that can be written to output */ |
+ |
+ ULocaleBundle fBundle; /* formatters */ |
+} u_localized_print_string; |
+ |
+#define UP_PERCENT 0x0025 |
+ |
+/** |
+ * Parse a single u_printf format string. |
+ * @param fmt A pointer to a '%' character in a u_printf format specification. |
+ * @param spec A pointer to a <TT>u_printf_spec</TT> to receive the parsed |
+ * format specifier. |
+ * @param locStringContext If present, will make sure that it will only write |
+ * to the buffer when space is available. It's done this way because |
+ * va_list sometimes can't be passed by pointer. |
+ * @return The number of characters contained in this specifier. |
+ */ |
+U_CFUNC int32_t |
+u_printf_parse(const u_printf_stream_handler *streamHandler, |
+ const UChar *fmt, |
+ void *context, |
+ u_localized_print_string *locStringContext, |
+ ULocaleBundle *formatBundle, |
+ int32_t *written, |
+ va_list ap); |
+ |
+#endif /* #if !UCONFIG_NO_FORMATTING */ |
+ |
+#endif |
Property changes on: icu46/source/io/uprintf.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |