ICU-59117.0.1.tar.gz
[apple/icu.git] / icuSources / io / unicode / ustdio.h
index e29ad22b49654ebf7dfb47686c2a8cdbaa1afa51..a2ad3c2442765b6e697d834e3807d9cf7020f397 100644 (file)
@@ -1,7 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1998-2013, International Business Machines
+*   Copyright (C) 1998-2015, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -31,6 +33,8 @@
 #include "unicode/localpointer.h"
 #include "unicode/unum.h"
 
+#if !UCONFIG_NO_CONVERSION
+
 /*
     TODO
  The following is a small list as to what is currently wrong/suggestions for
@@ -241,6 +245,29 @@ u_fopen(const char    *filename,
     const char    *locale,
     const char    *codepage);
 
+/**
+ * Open a UFILE with a UChar* filename
+ * A UFILE is a wrapper around a FILE* that is locale and codepage aware.
+ * That is, data written to a UFILE will be formatted using the conventions
+ * specified by that UFILE's Locale; this data will be in the character set
+ * specified by that UFILE's codepage.
+ * @param filename The name of the file to open.
+ * @param perm The read/write permission for the UFILE; one of "r", "w", "rw"
+ * @param locale The locale whose conventions will be used to format
+ * and parse output. If this parameter is NULL, the default locale will
+ * be used.
+ * @param codepage The codepage in which data will be written to and
+ * read from the file. If this paramter is NULL the system default codepage
+ * will be used.
+ * @return A new UFILE, or NULL if an error occurred.
+ * @stable ICU 54
+ */
+U_STABLE UFILE* U_EXPORT2
+u_fopen_u(const UChar    *filename,
+    const char    *perm,
+    const char    *locale,
+    const char    *codepage);
+
 /**
  * Open a UFILE on top of an existing FILE* stream. The FILE* stream
  * ownership remains with the caller. To have the UFILE take over
@@ -328,7 +355,7 @@ U_DEFINE_LOCAL_OPEN_POINTER(LocalUFILEPointer, UFILE, u_fclose);
 
 U_NAMESPACE_END
 
-#endif
+#endif // U_SHOW_CPLUSPLUS_API
 
 /**
  * Tests if the UFILE is at the end of the file stream.
@@ -439,15 +466,13 @@ u_fsetcodepage(const char   *codepage,
 U_STABLE UConverter* U_EXPORT2 u_fgetConverter(UFILE *f);
 
 #if !UCONFIG_NO_FORMATTING
-#ifndef U_HIDE_DRAFT_API
 /**
  * Returns an alias to the number formatter being used for this file.
  * @param f The UFILE to get the value from
  * @return alias to the number formatter (The formatter <EM>must not</EM> be modified or closed)
- * @draft ICU 51
+ * @stable ICU 51
 */
- U_DRAFT const UNumberFormat* U_EXPORT2 u_fgetNumberFormat(UFILE *f);
-#endif /* U_HIDE_DRAFT_API */
+ U_STABLE const UNumberFormat* U_EXPORT2 u_fgetNumberFormat(UFILE *f);
 
 /* Output functions */
 
@@ -985,6 +1010,8 @@ u_vsscanf_u(const UChar *buffer,
         const UChar     *patternSpecification,
         va_list         ap);
 
+
+#endif
 #endif
 #endif