Name: capi-base-utils
Summary: Base Utils
Version: 1.2.5
-Release: 1
+Release: 2
Group: Base
License: Apache-2.0 and ICU
Source0: %{name}-%{version}.tar.gz
Summary: The Base Utils Library (Development)
Group: Base
Requires: %{name} = %{version}-%{release}
+Provides: capi-base-utils-devel-profile_ivi
+Provides: capi-base-utils-devel-profile_tv
+Provides: capi-base-utils-devel-profile_wearable
%description devel
The base utils library for internationalization and localization (Development)
+%package devel-support-deprecated
+License: Apache-2.0 and ICU
+Summary: The Base Utils Library (Development)
+Group: Base
+Requires: capi-base-utils-devel = %{version}-%{release}
+Provides: capi-base-utils-devel-profile_common
+Provides: capi-base-utils-devel-profile_mobile
+
+%description devel-support-deprecated
+The base utils library for internationalization and localization (Development)
+with support of deprecated APIs for mobile/common/common-iot profiles in
+Tizen 3.
+
+
%prep
%setup -q
%build
#export CFLAGS="$CFLAGS -Wall -Werror -Wno-unused-function"
+
+#internally, using headers with additional deprecated API does not affect those who do not want deprecated APIs.
+cp src/include/deprecated/utils_i18n_timezone.h src/include/
+cp src/include/deprecated/utils_i18n_usearch.h src/include/
+cp src/include/deprecated/utils_i18n_ustring.h src/include/
+
cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
-DPKG_NAME=%{name} -DPKG_VERSION=%{version} \
-%if "%{profile}" == "wearable"
- -DTIZEN_WEARABLE=YES \
-%endif
-%if "%{profile}" == "mobile"
- -DTIZEN_MOBILE=YES \
-%endif
-%if "%{profile}" == "common"
- -DTIZEN_MOBILE=YES \
-%endif
-%if "%{profile}" == "common_iot"
- -DTIZEN_MOBILE=YES \
-%endif
-
make %{?jobs:-j%jobs}
%postun -p /sbin/ldconfig
+%post devel
+ln -s %{_includedir}/base/cleaned/utils_i18n_timezone.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_usearch.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_ustring.h %{_includedir}/base/
+
+%postun devel
+rm %{_includedir}/base/utils_i18n_timezone.h
+rm %{_includedir}/base/utils_i18n_usearch.h
+rm %{_includedir}/base/utils_i18n_ustring.h
+
+%post devel-support-deprecated
+rm %{_includedir}/base/utils_i18n_timezone.h
+rm %{_includedir}/base/utils_i18n_usearch.h
+rm %{_includedir}/base/utils_i18n_ustring.h
+ln -s %{_includedir}/base/deprecated/utils_i18n_timezone.h %{_includedir}/base/
+ln -s %{_includedir}/base/deprecated/utils_i18n_usearch.h %{_includedir}/base/
+ln -s %{_includedir}/base/deprecated/utils_i18n_ustring.h %{_includedir}/base/
+
+%postun devel-support-deprecated
+rm %{_includedir}/base/utils_i18n_timezone.h
+rm %{_includedir}/base/utils_i18n_usearch.h
+rm %{_includedir}/base/utils_i18n_ustring.h
+ln -s %{_includedir}/base/cleaned/utils_i18n_timezone.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_usearch.h %{_includedir}/base/
+ln -s %{_includedir}/base/cleaned/utils_i18n_ustring.h %{_includedir}/base/
+
%files
%manifest capi-base-utils.manifest
%{_libdir}/libbase-utils-i18n.so*
%files devel
%defattr(-,root,root,-)
%{_includedir}/base/utils_i18n*.h
+%{_includedir}/base/cleaned/utils_i18n*.h
%{_libdir}/pkgconfig/*.pc
+
+%files devel-support-deprecated
+%defattr(-,root,root,-)
+%{_includedir}/base/deprecated/utils_i18n*.h
SET(dependents "icu-i18n")
PKG_CHECK_MODULES(baseutils REQUIRED ${dependents})
-IF (TIZEN_WEARABLE)
-SET(INC_DIR "include/wearable")
-ELSEIF (TIZEN_MOBILE)
-SET(INC_DIR "include/mobile")
-ELSE (TIZEN_WEARABLE)
-SET(INC_DIR "include/wearable")
-ENDIF (TIZEN_WEARABLE)
+SET(INC_DIR "include")
INCLUDE_DIRECTORIES(
${baseutils_INCLUDE_DIRS}
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_uchar.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ucollator.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_unormalization.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_usearch.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ustring.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/cleaned/utils_i18n_usearch.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/cleaned)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/deprecated/utils_i18n_usearch.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/deprecated)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/cleaned/utils_i18n_ustring.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/cleaned)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/deprecated/utils_i18n_ustring.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/deprecated)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ucalendar.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_udate.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_udatepg.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ulocale.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_unumber.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_timezone.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/cleaned/utils_i18n_timezone.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/cleaned)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/deprecated/utils_i18n_timezone.h DESTINATION ${INCLUDE_INSTALL_DIR}/base/deprecated)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_uenumeration.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_uset.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_ubrk.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_field_position.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n_parse_position.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${INC_DIR}/utils_i18n.h DESTINATION ${INCLUDE_INSTALL_DIR}/base)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pc_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
\ No newline at end of file
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pc_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_FORMAT_H__
-#define __UTILS_I18N_FORMAT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_format.h
- * @version 0.1
- * @brief utils_i18n_format
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_FORMAT_MODULE Format
- * @brief The Format module represents the base module for all formats.
- * @section CAPI_BASE_UTILS_I18N_FORMAT_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_FORMAT_MODULE_OVERVIEW Overview
- * @details The Format module specifies the protocol for classes which convert other objects or values,\n
- * such as numeric values and dates, and their string representations.\n
- * In some cases these representations may be localized or contain localized characters or strings.\n
- * Please note, that there is no function for creating an #i18n_format_h object as this module uses a mechanism
- * similar to inheritance, known in object-oriented languages. All of the functions that take the
- * #i18n_format_h handle as a parameter can actually take the handle to the more specific format object related
- * to the corresponding derived classes.
- * Please also note that at this point the only derived class that is supported by the base-utils i18n module is the
- * ICU's MeasureFormat class, which is why it is possible to use handles of type #i18n_measure_format_h
- * in place of the parameters of type #i18n_format_h.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Destroys the format object.
- * @since_tizen 3.0
- *
- * @param[in] format The format object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_format_destroy(i18n_format_h format);
-
-/**
- * @brief Creates a polymorphic clone of the given @a format object.
- * @since_tizen 3.0
- * @remarks The cloned object should be released by the caller with the
- * i18n_format_destroy() function.
- *
- * @param[in] format The format object to be cloned
- * @param[out] clone The clone of the given @a format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_clone(i18n_format_h format, i18n_format_h *clone);
-
-/**
- * @brief Formats an object to produce a string.
- * @since_tizen 3.0
- * @remarks The @a append_to parameter should be released by the caller with the
- * free() function.
- *
- * @param[in] format The format object
- * @param[in] formattable The object to format
- * @param[out] append_to An input/output parameter to receive the result.
- * The result is appended to the existing contents.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_format(i18n_format_h format, i18n_formattable_h formattable, char **append_to);
-
-/**
- * @brief Formats an object to produce a string.
- * @since_tizen 3.0
- * @remarks The @a append_to parameter should be released by the caller with the
- * free() function.
- *
- * @param[in] format The format object
- * @param[in] formattable The object to format
- * @param[out] append_to Input/output parameter to receive the result.
- * The result is appended to the existing contents.
- * @param[out] field_position On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_format_with_field_position(i18n_format_h format, i18n_formattable_h formattable, char **append_to, i18n_field_position_h field_position);
-
-/**
- * @brief Parses a string to produce an object.
- * @since_tizen 3.0
- * @remarks The obtained @a result formattable object should be released by the caller with the
- * i18n_formattable_destroy() function.
- *
- * @param[in] format The format object
- * @param[in] source The string to be parsed into an object
- * @param[out] result The formattable object to be set to the parse result.
- * If parse fails, return contents are undefined.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_format_parse_object(i18n_format_h format, const char *source, i18n_formattable_h *result);
-
-/**
- * @brief Parses a string to produce an object.
- * @since_tizen 3.0
- * @remarks The obtained @a result formattable object should be released by the caller with the
- * i18n_formattable_destroy() function.
- *
- * @param[in] format The format object
- * @param[in] source The string to be parsed into an object
- * @param[out] parse_position The position to start parsing at. Upon return this parameter is set
- * to the position after the last character successfully parsed. If the source
- * is not parsed successfully, this parameter will remain unchanged.
- * @param[out] result The formattable object to be set to the parse result.
- * If parse fails, return contents are undefined.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_format_parse_object_with_parse_position(i18n_format_h format, const char *source, i18n_parse_position_h parse_position, i18n_formattable_h *result);
-
-/**
- * @brief Gets the locale for the given format object.
- * @details You can choose between valid and actual locale.
- * @since_tizen 3.0
- * @remarks Both @a language and @a country should be released by the caller with the free() function.
- *
- * @param[in] format The format object
- * @param[in] type The type of the locale we're looking for (valid or actual)
- * @param[out] language The obtained locale's ISO-639 language code
- * @param[out] country The obtained locale's ISO-3166 country code
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_format_get_locale(i18n_format_h format,
- i18n_ulocale_data_locale_type_e type, char **language, char **country);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_FORMAT_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_MEASURE_UNIT_H__
-#define __UTILS_I18N_MEASURE_UNIT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_measure_unit.h
- * @version 0.1
- * @brief utils_i18n_measure_unit
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE MeasureUnit
- * @brief The MeasureUnit unit such as length, mass, volume, currency, etc. coupled with a numeric amount to produce a Measure.
- * @section CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE_OVERVIEW Overview
- * @details
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE
- * @{
- */
-
-/**
- * @brief Creates the default measure unit object.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- * #i18n_measure_unit_destroy() function.
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- * #i18n_measure_unit_destroy() function.
- *
- * @param[in] measure_unit The measure unit object to be cloned.
- * @param[out] clone The clone of the given @a measure_unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_clone(i18n_measure_unit_h measure_unit, i18n_measure_unit_h *clone);
-
-/**
- * @brief Destroys the measure unit object
- * @since_tizen 3.0
- *
- * @param[in] measure_unit The measure unit object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_unit_destroy(i18n_measure_unit_h measure_unit);
-
-/**
- * @brief Destroys the given array of the measure unit objects
- * @since_tizen 3.0
- *
- * @param[in] array The array of measure unit objects to destroy
- * @param[in] array_size The capacity of the @a dest_array
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_unit_array_destroy(i18n_measure_unit_h *array, int32_t array_size);
-
-/**
- * @brief Gets the measure unit object type.
- * @since_tizen 3.0
- * @remarks The obtained type should be released by the caller with the free() function.
- *
- * @param[in] measure_unit The measure unit object
- * @param[out] type The measure unit object type
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_get_type(i18n_measure_unit_h measure_unit, char **type);
-
-/**
- * @brief Gets the measure unit object sub type.
- * @since_tizen 3.0
- * @remarks The obtained subtype should be released by the caller with the free() function.
- *
- * @param[in] measure_unit The measure unit object
- * @param[out] subtype The measure unit object subtype
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_get_subtype(i18n_measure_unit_h measure_unit, char **subtype);
-
-/**
- * @brief Gets the available units.
- * @details The function creates the array with the results.
- * If there are more units available than the given @a max_count
- * then the returned array is truncated to the first @a max_count units
- * and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @since_tizen 3.0
- * @remarks The obtained array of measure unit objects should be released by the caller
- * with the #i18n_measure_unit_array_destroy() function.
- *
- * @param[in] max_count The maximal number of units that will be obtained
- * @param[out] out_array The output array
- * @param[out] available The actual number of available units
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_BUFFER_OVERFLOW Buffer overflow
- */
-int i18n_measure_unit_get_available(int32_t max_count, i18n_measure_unit_h **out_array, int32_t *available);
-
-/**
- * @brief Gets the available units for a specific type.
- * @details The function creates the array with the results.
- * If there are more units available than the given @a max_count
- * then the returned array is truncated to the first @a max_count units
- * and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @since_tizen 3.0
- * @remarks The obtained array of measure unit objects should be released by the caller
- * with the #i18n_measure_unit_array_destroy() function.
- *
- * @param[in] max_count The maximal number of units that will be obtained
- * @param[in] type The type of the obtained units
- * @param[out] out_array The output array
- * @param[out] available The actual number of available units
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_BUFFER_OVERFLOW Buffer overflow
- */
-int i18n_measure_unit_get_available_with_type(int32_t max_count, const char *type,
- i18n_measure_unit_h **out_array, int32_t *available);
-
-/**
- * @brief Invokes the given callback function for every available measure unit type.
- * @since_tizen 3.0
- *
- * @param[in] cb The callback function invoked for every available measure unit type
- * @param[in] user_data The user data passed to the callback function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_unit_foreach_available_type(i18n_measure_unit_types_cb cb, void *user_data);
-
-/**
- * @brief Gets unit of acceleration: g-force.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_g_force(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of acceleration: meter-per-second-squared.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_meter_per_second_squared(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: arc-minute.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_arc_minute(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: arc-second.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_arc_second(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: degree.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_degree(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: radian.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_radian(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: acre.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_acre(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of angle: hectare.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hectare(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-centimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_centimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-meter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_meter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit area: square-yard.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_square_yard(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of consumption: liter-per-kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_liter_per_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of consumption: mile-per-gallon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_mile_per_gallon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: bit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_bit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: byte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_byte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: gigabit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigabit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: gigabyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigabyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: kilobit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilobit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: kilobyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilobyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: megabit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megabit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: megabyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megabyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: terabit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_terabit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of digital: terabyte.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_terabyte(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: day.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_day(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: microsecond.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_microsecond(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: millisecond.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millisecond(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: minute.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_minute(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: month.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_month(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: nanosecond.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_nanosecond(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: second.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_second(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: week.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_week(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of duration: year.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_year(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: ampere.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ampere(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: milliampere.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milliampere(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: ohm.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ohm(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of electric: volt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_volt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: calorie.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_calorie(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: foodcalorie.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_foodcalorie(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: joule.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_joule(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: kilocalorie.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilocalorie(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: kilojoule.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilojoule(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of energy: kilowatt-hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilowatt_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: gigahertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigahertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: hertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: kilohertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilohertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of frequency: megahertz.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megahertz(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: astronomical-unit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_astronomical_unit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: centimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_centimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: decimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_decimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: fathom.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_fathom(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: furlong.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_furlong(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: light-year.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_light_year(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: meter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_meter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: micrometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_micrometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: millimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: nanometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_nanometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: nautical-mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_nautical_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: parsec.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_parsec(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: picometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_picometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: yard.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_yard(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of length: lux.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_lux(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: carat.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_carat(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: gram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: kilogram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilogram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: metric-ton.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_metric_ton(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: microgram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_microgram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: milligram.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milligram(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: ounce.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ounce(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: ounce-troy.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ounce_troy(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: pound.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_pound(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: stone.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_stone(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of mass: ton.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_ton(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: gigawatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gigawatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: horsepower.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_horsepower(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: kilowatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilowatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: megawatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megawatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: milliwatt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milliwatt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of power: watt.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_watt(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: hectopascal.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hectopascal(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: inch-hg.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_inch_hg(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: millibar.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millibar(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: millimeter-of-mercury.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_millimeter_of_mercury(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of pressure: pound-per-square-inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_pound_per_square_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of proportion: karat.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_karat(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of speed: kilometer-per-hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kilometer_per_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of speed: meter-per-second.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_meter_per_second(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of speed: mile-per-hour.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_mile_per_hour(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of temperature: celsius.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_celsius(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of temperature: fahrenheit.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_fahrenheit(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of temperature: kelvin.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_kelvin(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: acre-foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_acre_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: bushel.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_bushel(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: centiliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_centiliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-centimeter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_centimeter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-foot.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_foot(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-inch.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_inch(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-kilometer.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_kilometer(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-meter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_meter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-mile.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_mile(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cubic-yard.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cubic_yard(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: cup.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_cup(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: deciliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_deciliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: fluid-ounce.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_fluid_ounce(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: gallon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_gallon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: hectoliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_hectoliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: liter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_liter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: megaliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_megaliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: milliliter.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_milliliter(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: pint.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_pint(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: quart.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_quart(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: tablespoon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_tablespoon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @brief Gets unit of volume: teaspoon.
- * @since_tizen 3.0
- * @remarks The returned @a measure_unit should be freed by the caller
- * with i18n_measure_unit_destroy().
- *
- * @param[out] measure_unit The created measure unit object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_unit_create_teaspoon(i18n_measure_unit_h *measure_unit);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_MEASURE_UNIT_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_PARSE_POSITION_H__
-#define __UTILS_I18N_PARSE_POSITION_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_parse_position.h
- * @version 0.1
- * @brief utils_i18n_parse_position
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE ParsePosition
- * @brief Parse Position is a simple object used by the Format and its subtypes
- * to keep track of the current position during parsing.
- * @section CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE_OVERVIEW Overview
- * @details The i18n_format_parse_object() function in the Format types requires
- * a Parse Position object as an argument.
- * By design, as you parse through a string with different formats, you can use
- * the same Parse Position, since the index parameter records the current position.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Creates a parse position object.
- * @details The index is set to position 0.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- * i18n_parse_position_destroy() function.
- *
- * @param[out] parse_position The created parse position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_parse_position_create(i18n_parse_position_h *parse_position);
-
-/**
- * @brief Creates a parse position object with the given initial index.
- * @since_tizen 3.0
- * @remarks The created object should be released by the caller with the
- * i18n_parse_position_destroy() function.
- *
- * @param[in] new_index The new text offset
- * @param[out] parse_position The parse position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_parse_position_create_with_index(int32_t new_index, i18n_parse_position_h *parse_position);
-
-/**
- * @brief Destroys the parse position object.
- * @since_tizen 3.0
- *
- * @param[in] parse_position The parse position object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_destroy(i18n_parse_position_h parse_position);
-
-/**
- * @brief Creates a clone of the given @a parse_position object.
- * @since_tizen 3.0
- * @remarks The @a clone object should be released by the caller with the
- * i18n_parse_position_destroy() function.
- *
- * @param[in] parse_position The parse position object to be cloned
- * @param[out] clone The created parse position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_parse_position_clone(i18n_parse_position_h parse_position, i18n_parse_position_h *clone);
-
-/**
- * @brief Retrieves the current parse position.
- * @details On input to a parse function, this is the index of the character
- * at which parsing will begin; on output, it is the index of the character
- * following the last character parsed.
- * @since_tizen 3.0
- *
- * @param[in] parse_position The parse position object
- * @param[out] index The current index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_get_index(i18n_parse_position_h parse_position, int32_t *index);
-
-/**
- * @brief Sets the current parse position.
- * @since_tizen 3.0
- *
- * @param[in] parse_position The parse position object
- * @param[in] index The new index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_set_index(i18n_parse_position_h parse_position, int32_t index);
-
-/**
- * @brief Sets the index at which a parse error occurred.
- * @details Formatters should set this before returning an error code
- * from their parse_object() function. The default value is -1
- * if this is not set.
- * @since_tizen 3.0
- *
- * @param[in] parse_position The parse position object
- * @param[in] error_index The error index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_set_error_index(i18n_parse_position_h parse_position, int32_t error_index);
-
-/**
- * @brief Retrieves the index at which an error occurred, or -1 if the error index
- * has not been set.
- * @since_tizen 3.0
- *
- * @param[in] parse_position The parse position object
- * @param[out] error_index The index at which an error occurred
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_parse_position_get_error_index(i18n_parse_position_h parse_position, int32_t *error_index);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_PARSE_POSITION_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright (C) 1996-2013, International Business Machines Corporation and others.
- * All Rights Reserved.
- */
-
-#ifndef __UTILS_I18N_UBRK_PRODUCT_H__
-#define __UTILS_I18N_UBRK_PRODUCT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ubrk.h
- * @version 0.1
- * @brief utils_i18n_ubrk
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UBRK_MODULE Ubrk
- * @brief Ubrk defines methods for finding the location of boundaries in text.
- *
- * @section CAPI_BASE_UTILS_I18N_UBRK_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UBRK_MODULE_OVERVIEW Overview
- * @details Pointer to a #i18n_ubreak_iterator_h maintains a current position and scans over text returning the index of characters where boundaries occur.
- *
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UBRK_MODULE
- * @{
- */
-
-/**
- * @brief Opens a new #i18n_ubreak_iterator_h for locating text boundaries for a specified locale.
- * @details A #i18n_ubreak_iterator_h may be used for detecting character, line, word,
- * and sentence breaks in text.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] type The type of #i18n_ubreak_iterator_h to open: one of #I18N_UBRK_CHARACTER, #I18N_UBRK_WORD,
- * #I18N_UBRK_LINE, #I18N_UBRK_SENTENCE
- * @param[in] locale The locale specifying the text-breaking conventions.
- * If @c NULL, the default locale will be used.
- * @param[in] text The text to be iterated over. May be @c NULL, then the iterator will be created without any text.
- * The text can be set later with i18n_ubrk_set_text() function.
- * @param[in] text_length The number of characters in text, or -1 if NULL-terminated.
- * @param[out] break_iter A pointer to the #i18n_ubreak_iterator_h for the specified locale.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_create_rules()
- */
-int i18n_ubrk_create(i18n_ubreak_iterator_type_e type, const char *locale, const i18n_uchar *text, int32_t text_length, i18n_ubreak_iterator_h *break_iter);
-
-/**
- * @brief Opens a new #i18n_ubreak_iterator_h for locating text boundaries using specified breaking rules.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] rules A set of rules specifying the text breaking conventions.
- * @param[in] rules_length The number of characters in rules, or -1 if NULL-terminated.
- * @param[in] text The text to be iterated over. May be @c NULL, in which case i18n_ubrk_set_text() is
- * used to specify the text to be iterated.
- * @param[in] text_length The number of characters in text, or -1 if NULL-terminated.
- * @param[out] break_iter A pointer to the #i18n_ubreak_iterator_h for the specified rules.
- * @param[out] parse_err Receives position and context information for any syntax errors
- * detected while parsing the rules.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_create()
- */
-int i18n_ubrk_create_rules(const i18n_uchar *rules, int32_t rules_length, const i18n_uchar *text, int32_t text_length, i18n_ubreak_iterator_h *break_iter, i18n_uparse_error_s *parse_err);
-
-/**
- * @brief Thread safe cloning operation.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] break_iter iterator to be cloned. Must not be @c NULL.
- * @param[in] stack_buffer (Deprecated Since 3.0. Use NULL instead.) User allocated space for the new clone. If @c NULL new memory will be allocated.
- * If buffer is not large enough, new memory will be allocated.
- * Clients can use the #I18N_U_BRK_SAFECLONE_BUFFERSIZE. This will probably be enough to avoid memory allocations.
- * @param[in] p_buffer_size (Deprecated Since 3.0. Use NULL instead.) A pointer to size of allocated space.
- * If <code>*p_buffer_size == 0</code>, a sufficient size for use in cloning will
- * be returned ('pre-flighting')
- * If *p_buffer_size is not enough for a stack-based safe clone,
- * new memory will be allocated.
- * @param[out] break_iter_clone A pointer to the cloned #i18n_ubreak_iterator_h.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ubrk_safe_clone(const i18n_ubreak_iterator_h break_iter, void *stack_buffer, int32_t *p_buffer_size, i18n_ubreak_iterator_h *break_iter_clone);
-
-/**
- * @brief Closes a #i18n_ubreak_iterator_h.
- * @details Once closed, a #i18n_ubreak_iterator_h may no longer be used.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to close. Must not be @c NULL.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
-*/
-int i18n_ubrk_destroy(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets an existing iterator to point to a new piece of text.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- * @param[in] break_iter The iterator to use. Must not be @c NULL.
- * @param[in] text The text to be set. Must not be @c NULL.
- * @param[in] text_length The length of the text.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ubrk_set_text(i18n_ubreak_iterator_h break_iter, const i18n_uchar *text, int32_t text_length);
-
-/**
- * @brief Determines the most recently-returned text boundary.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index most recently returned by, i18n_ubrk_next(), i18n_ubrk_previous(),
- * i18n_ubrk_first(), or i18n_ubrk_last().
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ubrk_current(const i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Advances the iterator to the boundary following the current boundary.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index of the next text boundary, or #I18N_UBRK_DONE
- * if all text boundaries have been returned.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_previous()
- */
-int32_t i18n_ubrk_next(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to the boundary preceding the current boundary.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index of the preceding text boundary, or #I18N_UBRK_DONE
- * if all text boundaries have been returned.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_next()
- */
-int32_t i18n_ubrk_previous(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to zero, the start of the text being scanned.
- * * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The new iterator position (zero).
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_last()
- */
-int32_t i18n_ubrk_first(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to the index immediately <EM>beyond</EM> the last character in the text being scanned.
- * @details This is not the same as the last character.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character offset immediately <EM>beyond</EM> the last character in the
- * text being scanned.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_first()
- */
-int32_t i18n_ubrk_last(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Sets the iterator position to the first boundary preceding the specified @c offset.
- * @details The new position is always smaller than @c offset, or #I18N_UBRK_DONE.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @param[in] offset The offset to begin scanning.
- * @return The text boundary preceding offset, or #I18N_UBRK_DONE.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_following()
- */
-int32_t i18n_ubrk_preceding(i18n_ubreak_iterator_h break_iter, int32_t offset);
-
-/**
- * @brief Advances the iterator to the first boundary following the specified @c offset.
- * @details The value returned is always greater than @c offset, or #I18N_UBRK_DONE.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @param[in] offset The offset to begin scanning.
- * @return The text boundary following offset, or #I18N_UBRK_DONE.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_preceding()
- */
-int32_t i18n_ubrk_following(i18n_ubreak_iterator_h break_iter, int32_t offset);
-
-/**
- * @brief Gets a locale for which text breaking information is available.
- * @details A #i18n_ubreak_iterator_h in a locale returned by this function will perform the correct
- * text breaking for the locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] index The index of the desired locale.
- * @return A locale for which number text breaking information is available, or @c 0 if none.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ubrk_count_available()
- */
-const char *i18n_ubrk_get_available(int32_t index);
-
-/**
- * @brief Determines how many locales have text breaking information available.
- * @details This function is most useful as determining the loop ending condition for
- * calls to i18n_ubrk_get_available().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @return The number of locales for which text breaking information is available.
- * @exception #I18N_ERROR_NONE Successful
- * @see i18n_ubrk_get_available()
- */
-int32_t i18n_ubrk_count_available(void);
-
-/**
- * @brief Returns true if the specfied position is a boundary position.
- * @details As a side effect, leaves the iterator pointing to the first boundary position at
- * or after @c offset.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are
- * described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @param[in] offset The offset to check.
- * @return True if "offset" is a boundary position.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_ubrk_is_boundary(i18n_ubreak_iterator_h break_iter, int32_t offset);
-
-/**
- * @brief Returns the status from the break rule that determined the most recently
- * returned break position.
- * @details The values appear in the rule source
- * within brackets, {123}, for example. For rules that do not specify a
- * status, a default value of 0 is returned.
- * <p>
- * For word break iterators, the possible values are defined in enum #i18n_uchar_u_word_break_values_e.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The status from the break rule that determined the most recently returned break position.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ubrk_get_rule_status(i18n_ubreak_iterator_h break_iter);
-
-/**
- * @brief Gets the statuses from the break rules that determined the most recently
- * returned break position.
- * @details The values appear in the rule source within brackets, {123}, for example. The default status value for rules
- * that do not explicitly provide one is zero.
- * <p>
- * For word break iterators, the possible values are defined in enum #i18n_uchar_u_word_break_values_e.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and in #i18n_error_code_e description.
- *
- * @since_tizen 2.3.1
- * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @param[out] fill_in_vec An array to be filled in with the status values.
- * @param[in] capacity The length of the supplied vector. A length of zero causes
- * the function to return the number of status values, in the
- * normal way, without attempting to store any values.
- * @return The number of rule status values from rules that determined
- * the most recent boundary returned by the break iterator.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ubrk_get_rule_status_vec(i18n_ubreak_iterator_h break_iter, int32_t *fill_in_vec, int32_t capacity);
-
-/**
- * @brief Returns the locale of the break iterator. You can choose between the valid and
- * the actual locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and in #i18n_error_code_e description.
- *
- * @since_tizen 2.3.1
- * @param[in] break_iter Break iterator. Must not be @c NULL.
- * @param[in] type Locale type (valid or actual).
- * @return locale string
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ubrk_get_locale_by_type(const i18n_ubreak_iterator_h break_iter, i18n_ulocale_data_locale_type_e type);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UCALENDAR_H__
-#define __UTILS_I18N_UCALENDAR_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ucalendar.h
- * @version 0.1
- * @brief utils_i18n_ucalendar
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE Ucalendar
- * @brief The Ucalendar is used for converting between an udate module and a set of integer fields
- * such as #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_HOUR, and so on.
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_OVERVIEW Overview
- * @details The Ucalendar is used for converting between an udate module and a set of integer fields
- * such as #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_HOUR, and so on.
- * (An udate module represents a specific instant in time with millisecond precision. See udate for
- * information about the udate.)
- *
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Converts the given date and time to the corresponding UTC time(number of seconds that have elapsed since January 1, 1970), considering the given time zone
- * @code
-
- #define ms2sec(ms) (long long int)(ms)/1000.0
-
- // get time in sec from input date and time
- long long int _time_convert_itol(char *tzid, int y, int mon, int d, int h, int min, int s)
- {
- long long int lli;
- i18n_ucalendar_h ucal;
- i18n_udate date;
- int ret = I18N_ERROR_NONE;
- int year, month, day, hour, minute, second;
- int len;
-
- i18n_uchar *_tzid = NULL;
-
- if (tzid == NULL) {
- tzid = "Etc/GMT";
- }
- _tzid = (i18n_uchar*)calloc(strlen(tzid) + 1, sizeof(i18n_uchar));
- if (_tzid == NULL) {
- return -1;
- }
- // converts 'tzid' to unicode string
- i18n_ustring_copy_ua(_tzid, tzid);
-
- // gets length of '_tzid'
- len = i18n_ustring_get_length(_tzid);
- // creates i18n_ucalendar_h
- ret = i18n_ucalendar_create(_tzid, len, "en_US", I18N_UCALENDAR_TRADITIONAL, &ucal);
- if (ret) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_ucalendar_create failed.\n");
- return -1;
- }
-
- // sets i18n_ucalendar_h's date
- i18n_ucalendar_set_date_time(ucal, y, mon-1, d, h, min, s);
-
- // gets the current value of a field from i18n_ucalendar_h
- i18n_ucalendar_get(ucal, I18N_UCALENDAR_YEAR, &year);
- i18n_ucalendar_get(ucal, I18N_UCALENDAR_MONTH, &month);
- i18n_ucalendar_get(ucal, I18N_UCALENDAR_DATE, &day);
- i18n_ucalendar_get(ucal, I18N_UCALENDAR_HOUR, &hour);
- i18n_ucalendar_get(ucal, I18N_UCALENDAR_MINUTE, &minute);
- i18n_ucalendar_get(ucal, I18N_UCALENDAR_SECOND, &second);
- dlog_print(DLOG_INFO, LOG_TAG, "Date from ucal, year:%d month:%d day:%d hour:%d minute:%d second:%d.\n",year, month, day, hour, minute, second);
-
- // gets i18n_ucalendar's current time and converts it from milliseconds to seconds
- i18n_ucalendar_get_milliseconds(ucal, &date);
- lli = ms2sec(date);
- // destroys i18n_ucalendar_h
- i18n_ucalendar_destroy(ucal);
- if (_tzid) {
- free(_tzid);
- }
-
- return lli;
- }
- * @endcode
- *
- * @section CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE_SAMPLE_CODE_2 Sample Code 2
- * @brief Describes an example that uses _time_convert_itol from 'Sample Code 2'
- * @code
- // converts the given time to UTC time(number of seconds that have elapsed since January 1, 1970)
- long long int time = _time_convert_itol("Etc/GMT", 2014, 5, 28, 15, 14, 0);
- dlog_print(DLOG_INFO, LOG_TAG, "Time Zone: %s\t, %d/%d/%d/%d/%d/%d\n", "Etc/GMT", 2014, 5, 28, 15, 14, 0);
- dlog_print(DLOG_INFO, LOG_TAG, "_time_convert_itol test : %lld\n", time);
- * @endcode
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE
- * @{
- */
-
-/**
- * @brief Sets the default time zone.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] zone_id null-terminated time zone ID
- *
- * @return An #i18n_error_code_e error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set_default_timezone(const i18n_uchar *zone_id);
-
-/**
- * @brief Gets the current date and time.
- * @details The value returned is represented as milliseconds from the epoch.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[out] date The current date and time
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_now(i18n_udate *date);
-
-/**
- * @brief Creates an #i18n_ucalendar_h.
- * An #i18n_ucalendar_h may be used to convert a millisecond value to a year,
- * month, and day.
- * @details Note: When an unknown TimeZone ID is specified, the #i18n_ucalendar_h returned
- * by the function is initialized with GMT ("Etc/GMT") without any
- * errors/warnings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a calendar using i18n_ucalendar_destroy().
- *
- * @param[in] zone_id The desired TimeZone ID \n
- * If @c 0, use the default time zone.
- * @param[in] len The length of the zone ID,
- * otherwise @c -1 if null-terminated
- * @param[in] locale The desired locale
- * If @c NULL, the default locale will be used.
- * @param[in] type The type of #I18N_UCALENDAR_DEFAULT to create \n
- * This can be #I18N_UCALENDAR_GREGORIAN to create the Gregorian
- * calendar for the locale, or #I18N_UCALENDAR_DEFAULT to create the default calendar for the locale (the
- * default calendar may also be Gregorian).
- * @param[out] calendar A pointer to an #i18n_ucalendar_h,
- * otherwise @c 0 if an error occurs
- *
- * @return An #i18n_error_code_e error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_ucalendar_create(const i18n_uchar *zone_id, int32_t len, const char *locale, i18n_ucalendar_type_e type, i18n_ucalendar_h *calendar);
-
-/**
- * @brief Destroys an #i18n_ucalendar_h.
- * @details Once destroyed, an #i18n_ucalendar_h may no longer be used.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to destroy
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_destroy(i18n_ucalendar_h calendar);
-
-/**
- * @brief Creates a copy of a #i18n_ucalendar_h.
- * This function performs a deep copy.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] cal The #i18n_ucalendar_h to copy
- * @param[out] identical_to_cal A pointer to a #i18n_ucalendar_h identical to @a cal.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_clone(const i18n_ucalendar_h cal, i18n_ucalendar_h *identical_to_cal);
-
-/**
- * @brief Gets the display name for a calendar's TimeZone.
- * @details A display name is suitable for presentation to a user.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[in] type The desired display name format \n
- * One of #I18N_UCALENDAR_STANDARD, #I18N_UCALENDAR_SHORT_STANDARD, #I18N_UCALENDAR_DST, or #I18N_UCALENDAR_SHORT_DST
- * @param[in] locale The desired locale for the display name
- * @param[out] result A pointer to a buffer to receive the formatted number
- * @param[in] result_len The maximum size of the result
- * @param[out] buf_size_needed The total buffer size needed \n
- * If greater than @a result_len, the output is truncated
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_timezone_displayname(const i18n_ucalendar_h calendar, i18n_ucalendar_displayname_type_e type, const char *locale, i18n_uchar *result, int32_t result_len, int32_t *buf_size_needed);
-
-/**
- * @brief Determines if an #i18n_ucalendar_h is currently in daylight savings time.
- * @details Daylight savings time is not used in all parts of the world.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[out] is_in If @c true @a calendar is currently in daylight savings time,
- * otherwise @c false
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_is_in_daylight_time(const i18n_ucalendar_h calendar, i18n_ubool *is_in);
-
-/**
- * @brief Sets the value of a field in a #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] cal The #i18n_ucalendar_h to modify
- * @param[in] field The field to set \n
- * One of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR,
- * #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH,
- * #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK,
- * #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR,
- * #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND,
- * #I18N_UCALENDAR_MILLISECOND, #I18N_UCALENDAR_ZONE_OFFSET, #I18N_UCALENDAR_DST_OFFSET.
- * @param[in] val The desired value of @a field.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set(i18n_ucalendar_h cal, i18n_ucalendar_date_fields_e field, int32_t val);
-
-/**
- * @brief Sets a numeric attribute associated with an #i18n_ucalendar_h.
- * @details Numeric attributes include the first day of the week, or the minimal number
- * of days in the first week of the month.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to modify
- * @param[in] attr The desired attribute \n
- * One of #I18N_UCALENDAR_LENIENT, #I18N_UCALENDAR_FIRST_DAY_OF_WEEK,
- * or #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK.
- *
- * @param[in] val The new value of @a attr
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set_attribute(i18n_ucalendar_h calendar, i18n_ucalendar_attribute_e attr, int32_t val);
-
-/**
- * @brief Gets a numeric attribute associated with an i18n_ucalendar.
- * @details Numeric attributes include the first day of the week, or the minimal numbers of days
- * in the first week of the month.
- *
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The i18n_ucalendar to query
- * @param[in] attr The desired attribute \n
- * One of #I18N_UCALENDAR_LENIENT, #I18N_UCALENDAR_FIRST_DAY_OF_WEEK,
- * or #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK.
- *
- * @param[out] val The value of @a attr
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_attribute(i18n_ucalendar_h calendar, i18n_ucalendar_attribute_e attr, int32_t *val);
-
-/**
- * @brief Gets a calendar's current time in milliseconds.
- * @details The time is represented as milliseconds from the epoch.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[out] date The calendar's current time in milliseconds
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_set_milliseconds()
- * @see i18n_ucalendar_set_date_time()
- */
-int i18n_ucalendar_get_milliseconds(const i18n_ucalendar_h calendar, i18n_udate *date);
-
-/**
- * @brief Sets a calendar's current time in milliseconds.
- * @details The time is represented as milliseconds from the epoch.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to set
- * @param[in] milliseconds The desired date and time
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_get_milliseconds()
- * @see i18n_ucalendar_set_date_time()
- */
-int i18n_ucalendar_set_milliseconds(i18n_ucalendar_h calendar, i18n_udate milliseconds);
-
-/**
- * @brief Sets a calendar's current date.
- * @details The date is represented as a series of 32-bit integers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to set
- * @param[in] year The desired year
- * @param[in] month The desired month\n
- * One of #I18N_UCALENDAR_JANUARY, #I18N_UCALENDAR_FEBRUARY, #I18N_UCALENDAR_MARCH, #I18N_UCALENDAR_APRIL, #I18N_UCALENDAR_MAY,
- * #I18N_UCALENDAR_JUNE, #I18N_UCALENDAR_JULY, #I18N_UCALENDAR_AUGUST, #I18N_UCALENDAR_SEPTEMBER, #I18N_UCALENDAR_OCTOBER, #I18N_UCALENDAR_NOVEMBER, or #I18N_UCALENDAR_DECEMBER
- * @param[in] date The desired day of the month
- * @param[in] hour The desired hour of the day
- * @param[in] min The desired minute
- * @param[in] sec The desired second
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_get_milliseconds()
- * @see i18n_ucalendar_set_milliseconds()
- */
-int i18n_ucalendar_set_date_time(i18n_ucalendar_h calendar, int32_t year, int32_t month, int32_t date, int32_t hour, int32_t min, int32_t sec);
-
-/**
- * @brief Returns @c true if two #i18n_ucalendar_h calendars are equivalent.
- * @details Equivalent #i18n_ucalendar_h calendars will behave identically, but they may be set to
- * different times.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar1 The first of the calendars to compare
- * @param[in] calendar2 The second of the calendars to compare
- * @param[out] equiv If @c true @a cal1 and @a cal2 are equivalent, otherwise @c false
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_is_equivalent_to(const i18n_ucalendar_h calendar1, const i18n_ucalendar_h calendar2, i18n_ubool *equiv);
-
-/**
- * @brief Adds a specified signed amount to a particular field in a #i18n_ucalendar_h.
- * @details This can modify more significant fields in the calendar.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to which to add
- * @param[in] field The field to which to add the signed value\n One of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH,
- * #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK,
- * #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND,
- * #I18N_UCALENDAR_MILLISECOND.
- * @param[in] amount The signed amount to add to the field \n
- * If the amount causes the value to exceed to maximum or minimum values for that field,
- * other fields are modified to preserve the magnitude of the change.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
-
- */
-int i18n_ucalendar_add(i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, int32_t amount);
-
-/**
- * @brief Gets the current value of a field from an #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] calendar The #i18n_ucalendar_h to query
- * @param[in] field The desired field\n One of I18N_UCALENDAR_ERA, I18N_UCALENDAR_YEAR, I18N_UCALENDAR_MONTH,
- * #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK,
- * #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND,
- * #I18N_UCALENDAR_MILLISECOND, #I18N_UCALENDAR_ZONE_OFFSET, or #I18N_UCALENDAR_DST_OFFSET.
- * @param[out] val The value of the desired field.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get(const i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, int32_t *val);
-
-
-/* Newly Added APIs */
-
-
-
-/**
- * @brief Returns the difference between the target time and the time this calendar object is currently set to.
- * @details If the target time is after the current calendar setting, the the returned value will be positive.
- * The field parameter specifies the units of the return value.
- * For example, if field is I18N_UCALENDAR_MONTH and i18n_ucalendar_get_field_difference returns 3,
- * then the target time is 3 to less than 4 months after the current calendar setting. <br>
- * As a side effect of this call, this calendar is advanced toward target by the given amount.
- * That is, calling this function has the side effect of calling i18n_ucalendar_add on this calendar with the
- * specified field and an amount equal to the return value from this function. <br>
- * A typical way of using this function is to call it first with the largest field of interest, then with progressively smaller fields.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The i18n_ucalendar_h to compare and update.
- * @param[in] target The target date to compare to the current calendar setting.
- * @param[in] field One of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH,
- * #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE,
- * #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK, #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH,
- * #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE,
- * #I18N_UCALENDAR_SECOND, #I18N_UCALENDAR_MILLISECOND.
- * <strong>Please note</strong> that the returned value type is int32_t. In case of #I18N_UCALENDAR_MILLISECOND, maximal
- * difference between dates may be equal to the maximal value of the int32_t, which is 2147483647 (about one month difference).
- * If the difference is bigger, then the #I18N_ERROR_INVALID_PARAMETER error will be returned.
- * @param[out] status A pointer to an i18n_error_code_e to receive any errors
- *
- * @return The date difference for the specified field.
- */
-int32_t i18n_ucalendar_get_field_difference(i18n_ucalendar_h calendar, i18n_udate target, i18n_ucalendar_date_fields_e field, i18n_error_code_e *status);
-
-/**
- * @brief Creates an enumeration over system time zone IDs with the given filter conditions.
- * @since_tizen 2.3.1
- *
- * @param[in] zone_type The system time zone type.
- * @param[in] region The ISO 3166 two-letter country code or UN M.49 three-digit
- * area code. When @c NULL, no filtering done by region.
- * @param[in] raw_offset An offset from GMT in milliseconds, ignoring the effect
- * of daylight savings time, if any. When @c NULL, no filtering done by zone offset.
- *
- * @param[out] enumeration A Pointer to the enumeration object that the caller must dispose of using
- * i18n_uenumeration_destroy(), or@c NULL upon failure.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_timezone_id_enumeration_create(i18n_system_timezone_type_e zone_type, const char *region, const int32_t *raw_offset, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Creates an enumeration over all time zones.
- * @since_tizen 2.3.1
- *
- * @param[out] enumeration A pointer to the enumeration object that the caller must dispose of using
- * i18n_uenumeration_destroy(), or @c NULL upon failure.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_timezones_create(i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Creates an enumeration over all time zones associated with the given country.
- * @details Some zones are affiliated with no country (e.g., "UTC"); these may also be retrieved, as a group.
- * @since_tizen 2.3.1
- *
- * @param[in] country The ISO 3166 two-letter country code, or @c NULL to retrieve zones not affiliated with any country
- *
- * @param[out] enumeration A pointer to the enumeration object that the caller must dispose of using
- * i18n_uenumeration_destroy(), or @c NULL upon failure.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_country_timezones_create(const char *country, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Returns the default time zone.
- * @details The default is determined initially by querying the host operating system.
- * It may be changed with i18n_ucalendar_set_default_timezone()
- * or with the C++ TimeZone API.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[out] result A buffer to receive the result, or @c NULL
- * @param[in] result_capacity The capacity of the @c result buffer
- *
- * @return The @c result string length, not including the terminating @c NULL.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid parameter
- */
-int32_t i18n_ucalendar_get_default_timezone(i18n_uchar *result, int32_t result_capacity);
-
-/**
- * @brief Sets the TimeZone used by a #i18n_ucalendar_h.
- * @details A #i18n_ucalendar_h uses a timezone for converting from Greenwich time to local time.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to set.
- * @param[in] zone_id The desired TimeZone ID. If NULL, use the default time zone.
- * @param[in] length The length of @c zone_id, or -1 if NULL-terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_set_timezone(i18n_ucalendar_h calendar, const i18n_uchar *zone_id, int32_t length);
-
-/**
- * @brief Gets the ID of the calendar's time zone.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[out] result Receives the calendar's time zone ID.
- * @param[in] result_length The maximum size of the @c result.
- *
- * @return The total buffer size needed; if greater than @c result_length, the output was truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ucalendar_get_timezone_id(const i18n_ucalendar_h calendar, i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Sets the Gregorian Calendar change date.
- * @details This is the point when the switch from Julian dates to Gregorian dates
- * occurred. Default is 00:00:00 local time, October 15, 1582.
- * Previous to this time and date will be Julian dates.
- * This function works only for Gregorian calendars. If the #i18n_ucalendar_h
- * is not an instance of a Gregorian calendar, then a
- * #I18N_ERROR_NOT_SUPPORTED error code is set.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The calendar object.
- * @param[in] date The given Gregorian cutover date.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_get_gregorian_change()
- */
-int i18n_ucalendar_set_gregorian_change(i18n_ucalendar_h calendar, i18n_udate date);
-
-/**
- * @brief Gets the Gregorian Calendar change date.
- * @details This is the point when the switch from Julian dates to Gregorian dates
- * occurred. Default is 00:00:00 local time, October 15, 1582.
- * Previous to this time and date will be Julian dates.
- * This function works only for Gregorian calendars. If the #i18n_ucalendar_h
- * is not an instance of a Gregorian calendar, then a
- * #I18N_ERROR_NOT_SUPPORTED error code is set.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The calendar object.
- * @param[out] date A pointer to the Gregorian cutover time for this calendar.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_set_gregorian_change()
- */
-int i18n_ucalendar_get_gregorian_change(const i18n_ucalendar_h calendar, i18n_udate *date);
-
-/**
- * @brief Gets a locale for which calendars are available.
- * @details A #i18n_ucalendar_h in a locale returned by this function will contain
- * the correct day and month names for the locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_index The index of the desired locale.
- *
- * @return A locale for which calendars are available, or 0 if none.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid parameter
- * @see i18n_ucalendar_count_available()
- */
-const char *i18n_ucalendar_get_available(int32_t locale_index);
-
-/**
- * @brief Determines how many locales have calendars available.
- * @details This function is most useful as determining the loop ending condition for calls to i18n_ucalendar_get_available().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return The number of locales for which calendars are available.
- * @exception #I18N_ERROR_NONE Successful
- * @see i18n_ucalendar_get_available()
- */
-int32_t i18n_ucalendar_count_available(void);
-
-/**
- * @brief Sets a calendar's current date.
- * @details The date is represented as a series of 32-bit integers.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to set.
- * @param[in] year The desired year.
- * @param[in] month The desired month; one of #I18N_UCALENDAR_JANUARY, #I18N_UCALENDAR_FEBRUARY, #I18N_UCALENDAR_MARCH,
- * #I18N_UCALENDAR_APRIL, #I18N_UCALENDAR_MAY, #I18N_UCALENDAR_JUNE, #I18N_UCALENDAR_JULY, #I18N_UCALENDAR_AUGUST,
- * #I18N_UCALENDAR_SEPTEMBER, #I18N_UCALENDAR_OCTOBER, #I18N_UCALENDAR_NOVEMBER, #I18N_UCALENDAR_DECEMBER
- * @param[in] date The desired day of the month.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_add()
- * @see i18n_ucalendar_set_milliseconds()
- * @see i18n_ucalendar_set_milliseconds()
- * @see i18n_ucalendar_set_date_time()
- */
-int i18n_ucalendar_set_date(i18n_ucalendar_h calendar, int32_t year, int32_t month, int32_t date);
-
-/**
- * @brief Adds a specified signed amount to a particular field in a #i18n_ucalendar_h.
- * @details This will not modify more significant fields in the calendar.
- * Rolling by a positive value always means moving forward in time
- * (unless the limit of the field is reached, in which case it may pin or wrap),
- * so for Gregorian calendar, starting with 100 BC and
- * rolling the year by +1 results in 99 BC.
- * When eras have a definite beginning and end (as in the Chinese calendar,
- * or as in most eras in the Japanese calendar) then rolling the year past either
- * limit of the era will cause the year to wrap around. When eras only have a limit at one end,
- * then attempting to roll the year past that limit will result in pinning the year at that limit.
- * Note that for most calendars in which era 0 years move forward in time (such as Buddhist, Hebrew, or Islamic),
- * it is possible for add or roll to result in negative years for era 0 (that is the
- * only way to represent years before the calendar epoch).
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to which to add.
- * @param[in] field The field to which to add the signed value; one of #I18N_UCALENDAR_ERA,
- * #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_WEEK_OF_YEAR,
- * #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_DAY_OF_YEAR,
- * #I18N_UCALENDAR_DAY_OF_WEEK, #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, #I18N_UCALENDAR_AM_PM,
- * #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY, #I18N_UCALENDAR_MINUTE,
- * #I18N_UCALENDAR_SECOND, #I18N_UCALENDAR_MILLISECOND.
- * @param[in] amount The signed amount to add to the @c field. If the amount causes the
- * value to exceed to maximum or minimum values for that field, the field is pinned
- * to a permissible value.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @remarks #I18N_UCALENDAR_ZONE_OFFSET and #I18N_UCALENDAR_DST_OFFSET are not supported by this function.
- * @see i18n_ucalendar_add()
- */
-int i18n_ucalendar_roll(i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, int32_t amount);
-
-/**
- * @brief Determines if a field in a #i18n_ucalendar_h is set.
- * @details All fields are represented as 32-bit integers.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] field The desired field.
- *
- * @return @c true if field is set, @c false otherwise.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucalendar_get()
- * @see i18n_ucalendar_set()
- * @see i18n_ucalendar_clear_field()
- * @see i18n_ucalendar_clear()
- *
- */
-i18n_ubool i18n_ucalendar_is_set(const i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field);
-
-/**
- * @brief Clears a field in a #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h containing the field to clear.
- * @param[in] field The field to clear.
- *
- * @return Error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_get()
- * @see i18n_ucalendar_set()
- * @see i18n_ucalendar_is_set()
- * @see i18n_ucalendar_clear()
- *
- */
-int i18n_ucalendar_clear_field(i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field);
-
-/**
- * @brief Clears all fields in a #i18n_ucalendar_h.
- * @details All fields are represented as 32-bit integers.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar #i18n_ucalendar_h to clear.
- *
- * @return Error code
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ucalendar_is_set()
- * @see i18n_ucalendar_clear_field()
- *
- */
-int i18n_ucalendar_clear(i18n_ucalendar_h calendar);
-
-/**
- * @brief Determines a limit for a field in an #i18n_ucalendar_h.
- * @details A limit is a maximum or minimum value for a field.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] field The desired field; one of #I18N_UCALENDAR_ERA, #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH,
- * #I18N_UCALENDAR_WEEK_OF_YEAR, #I18N_UCALENDAR_WEEK_OF_MONTH, #I18N_UCALENDAR_DATE,
- * #I18N_UCALENDAR_DAY_OF_YEAR, #I18N_UCALENDAR_DAY_OF_WEEK, #I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH,
- * #I18N_UCALENDAR_AM_PM, #I18N_UCALENDAR_HOUR, #I18N_UCALENDAR_HOUR_OF_DAY,
- * #I18N_UCALENDAR_MINUTE, #I18N_UCALENDAR_SECOND, #I18N_UCALENDAR_MILLISECOND,
- * #I18N_UCALENDAR_ZONE_OFFSET, #I18N_UCALENDAR_DST_OFFSET, #I18N_UCALENDAR_YEAR_WOY,
- * #I18N_UCALENDAR_DOW_LOCAL, #I18N_UCALENDAR_EXTENDED_YEAR, #I18N_UCALENDAR_JULIAN_DAY,
- * #I18N_UCALENDAR_MILLISECONDS_IN_DAY, #I18N_UCALENDAR_IS_LEAP_MONTH.
- * @param[in] type The desired critical point; one of #I18N_UCALENDAR_MINIMUM, #I18N_UCALENDAR_MAXIMUM,
- * #I18N_UCALENDAR_GREATEST_MINIMUM, #I18N_UCALENDAR_LEAST_MAXIMUM,
- * #I18N_UCALENDAR_ACTUAL_MINIMUM, #I18N_UCALENDAR_ACTUAL_MAXIMUM.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @return The requested value.
- */
-int32_t i18n_ucalendar_get_limit(const i18n_ucalendar_h calendar, i18n_ucalendar_date_fields_e field, i18n_ucalendar_limit_type_e type);
-
-/**
- * @brief Gets the locale for this @c calendar object.
- * @details You can choose between valid and actual locale.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The calendar object
- * @param[in] type Type of the locale we're looking for (valid or actual)
- *
- * @return The requested value.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ucalendar_get_locale_by_type(const i18n_ucalendar_h calendar, i18n_ulocale_data_locale_type_e type);
-
-/**
- * @brief Returns the timezone data version currently used by ICU.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @return The version string, such as "2007f".
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_ucalendar_get_tz_data_version(void);
-
-/**
- * @brief Returns the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] id The input timezone ID to be canonicalized.
- * @param[in] length The length of the @c id, or @c -1 if NULL-terminated.
- * @param[out] result The buffer receives the canonical system timezone ID or the custom timezone ID in normalized format.
- * @param[in] result_capacity The capacity of the @c result buffer.
- * @param[out] is_system_id Receives if the given @c id is a known system timezone ID.
- *
- * @return The result string length, not including the terminating NULL.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ucalendar_get_canonical_timezone_id(const i18n_uchar *id, int32_t length, i18n_uchar *result, int32_t result_capacity, i18n_ubool *is_system_id);
-
-/**
- * @brief Gets the resource keyword value string designating the calendar type for the #i18n_ucalendar_h.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- *
- * @return The resource keyword value string.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ucalendar_get_type(const i18n_ucalendar_h calendar);
-
-/**
- * @brief Given a key and a locale, returns an array of string values in a preferred order that would make a difference.
- * @details These are all and only those values where the open (creation) of the service with the
- * locale formed from the input locale plus input keyword and that value
- * has different behavior than creation with the input locale alone.
- * @since_tizen 2.3.1
- *
- * @param[in] key One of the keys supported by this service. For now, only "calendar" is supported.
- * @param[in] locale The locale
- * @param[in] commonly_used If set to @c true it will return only commonly used values with
- * the given locale in preferred order. Otherwise, it will return all the available
- * values for the locale.
- *
- * @param[out] enumeration A pointer to the string enumeration over keyword values for the given key and the locale.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_keyword_values_for_locale(const char *key, const char *locale, i18n_ubool commonly_used, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Returns whether the given day of the week is a weekday, a weekend day,
- * or a day that transitions from one to the other, for the locale and calendar system
- * associated with this @c #i18n_ucalendar_h (the locale's region is often the most determinant factor).
- * @details If a transition occurs at midnight, then the days before and after the
- * transition will have the type #I18N_UCALENDAR_WEEKDAY or #I18N_UCALENDAR_WEEKEND.
- * If a transition occurs at a time other than midnight, then the day of the
- * transition will have the type #I18N_UCALENDAR_WEEKEND_ONSET or #I18N_UCALENDAR_WEEKEND_CEASE.
- * In this case, the function i18n_ucalendar_get_weekend_transition() will
- * return the point of transition.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] day_of_week The day of the week whose type is desired (#I18N_UCALENDAR_SUNDAY..#I18N_UCALENDAR_SATURDAY).
- *
- * @param [out] weekday A pointer to the #i18n_ucalendar_weekday_type_e for the day of the week.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucalendar_get_day_of_week_type(const i18n_ucalendar_h calendar, i18n_ucalendar_days_of_week_e day_of_week, i18n_ucalendar_weekday_type_e *weekday);
-
-/**
- * @brief Returns the time during the day at which the weekend begins or ends in this calendar system.
- * @details If i18n_ucalendar_get_day_of_week_type() returns #I18N_UCALENDAR_WEEKEND_ONSET
- * for the specified @c day_of_week, return the time at which the weekend begins. If
- * i18n_ucalendar_get_day_of_week_type() returns #I18N_UCALENDAR_WEEKEND_CEASE for
- * the specified @c day_of_week, return the time at which the weekend ends. If
- * i18n_ucalendar_get_day_of_week_type() returns some other #i18n_ucalendar_weekday_type_e
- * for the specified @c day_of_week, it is an error condition (#I18N_ERROR_INVALID_PARAMETER).
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] day_of_week The day of the week whose type is desired (#I18N_UCALENDAR_SUNDAY..#I18N_UCALENDAR_SATURDAY).
- *
- * @return The milliseconds after midnight at which the weekend begins or ends.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ucalendar_get_weekend_transition(const i18n_ucalendar_h calendar, i18n_ucalendar_days_of_week_e day_of_week);
-
-/**
- * @brief Returns @c true if the given #i18n_udate is in the weekend in this calendar system.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] date The #i18n_udate in question.
- *
- * @return @c true if the given #i18n_udate is in the weekend in this calendar system, @c false otherwise.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_ucalendar_is_weekend(i18n_ucalendar_h calendar, i18n_udate date);
-
-/**
- * @brief Get the #i18n_udate for the next/previous time zone transition relative
- * to the calendar's current date, in the time zone to which the calendar is currently set.
- * @details If there is no known time zone transition of the requested type relative
- * to the calendar's date, the function returns @c false.
- * @remarks The specific error code can be obtained using the get_last_result()
- * method. Error codes are described in Exceptions section and
- * #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] calendar The #i18n_ucalendar_h to query.
- * @param[in] type The type of transition desired.
- * @param[out] transition A pointer to a #i18n_udate to be set to the transition time.
- * If the function returns @c false, the value set is unspecified.
- *
- * @return @c true if the given #i18n_udate is in the weekend in this calendar system, @c false otherwise.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_ucalendar_get_timezone_transition_date(const i18n_ucalendar_h calendar, i18n_utimezone_transition_type_e type, i18n_udate *transition);
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __I18N_UCALENDAR_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UCHAR_H__
-#define __UTILS_I18N_UCHAR_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_uchar.h
- * @version 0.1
- * @brief utils_i18n
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE Uchar
- * @brief The Uchar module provides low-level access to the Unicode Character Database.
- *
- * @section CAPI_BASE_UTILS_I18N_UCHAR_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UCHAR_MODULE_OVERVIEW Overview
- * @details The Uchar module provides low-level access to the Unicode Character Database.
- *
- * @section CAPI_BASE_UTILS_I18N_UCHAR_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets the property value of 'east asian width' among an enumerated property,
- * and the unicode allocation block that contains the character.
- * @code
- int ret = I18N_ERROR_NONE;
- i18n_uchar32 code_point = 0;
- int property_value = 0;
- i18n_uchar_u_east_asian_width_e east_asian_width = I18N_UCHAR_U_EA_NEUTRAL;
- i18n_uchar_ublock_code_e block_code = I18N_UCHAR_UBLOCK_NO_BLOCK;
-
- // How to get the east asian width type for 's'
- code_point = 0x73; // 's'
- ret = i18n_uchar_get_int_property_value(code_point, I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
- } else {
- east_asian_width = (i18n_uchar_u_east_asian_width_e)property_value;
- dlog_print(DLOG_INFO, LOG_TAG, "East Asian Width Type for ( %.4x ) is ( %d )\n", code_point, east_asian_width);
- // East Asian Width Type for ( 0073 ) is ( 4 ) which is I18N_UCHAR_U_EA_NARROW
- }
-
- // How to get the block code for 's'
- ret = i18n_uchar_get_ublock_code(code_point, &block_code);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
- } else {
- dlog_print(DLOG_INFO, LOG_TAG, "block name for ( %.4x ) is ( %d )\n", code_point, block_code);
- // block code for ( 0073 ) is ( 1 ) which is I18N_UCHAR_UBLOCK_BASIC_LATIN
- }
-
- // How to get the east asian width type for 'sung' as ideographs
- code_point = 0x661F; // 'sung' as ideographs
- ret = i18n_uchar_get_int_property_value(code_point, I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
- } else {
- east_asian_width = (i18n_uchar_u_east_asian_width_e)property_value;
- dlog_print(DLOG_INFO, LOG_TAG, "East Asian Width Type for ( %.4x ) is ( %d )\n", code_point, east_asian_width);
- // East Asian Width Type for ( 661f ) is ( 5 ) which is I18N_UCHAR_U_EA_WIDE
- }
-
- // How to get the block code for 'sung' as ideographs
- ret = i18n_uchar_get_ublock_code(code_point, &block_code);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
- } else {
- dlog_print(DLOG_INFO, LOG_TAG, "block name for ( %.4x ) is ( %d )\n", code_point, block_code);
- // block code for ( 661f ) is ( 71 ) which is I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS
- }
-
- // How to get the east asian width type for 'sung' as hangul
- code_point = 0xC131; // 'sung' as hangul
- ret = i18n_uchar_get_int_property_value(code_point, I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
- } else {
- east_asian_width = (i18n_uchar_u_east_asian_width_e)property_value;
- dlog_print(DLOG_INFO, LOG_TAG, "East Asian Width Type for ( %.4x ) is ( %d )\n", code_point, east_asian_width);
- // East Asian Width Type for ( c131 ) is ( 5 ) which is I18N_UCHAR_U_EA_WIDE
- }
-
- // How to get the block code for 'sung' as hangul
- ret = i18n_uchar_get_ublock_code(code_point, &block_code);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "Error occured!!\n");
- } else {
- dlog_print(DLOG_INFO, LOG_TAG, "block name for ( %.4x ) is ( %d )\n", code_point, block_code);
- // block code for ( c131 ) is ( 74 ) which is I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES
- }
-
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
- * @{
- */
-
-/**
- * @brief Gets the property value for an enumerated property for a code point.
- * @details
- * <code>
- * int property_value;\n
- * #i18n_uchar_u_east_asian_width_e east_asian_width;\n
- * #i18n_uchar_get_int_property_value (c, #I18N_UCHAR_EAST_ASIAN_WIDTH, &property_value);\n
- * east_asian_width = (#i18n_uchar_u_east_asian_width_e)property_value;\n
- *
- * int property_value;\n
- * bool is_ideographic;\n
- * #i18n_uchar_get_int_property_value(c, #I18N_UCHAR_IDEOGRAPHIC, &property_value);\n
- * is_ideographic = (bool)property_value;\n
- * </code>
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] c The code point to test.
- * @param[in] which The #i18n_uchar_uproperty_e selector constant, identifies which property to check \n
- * Must be #I18N_UCHAR_BINARY_START<=which<#I18N_UCHAR_BINARY_LIMIT
- * or #I18N_UCHAR_INT_START<=which<#I18N_UCHAR_INT_LIMIT
- * or #I18N_UCHAR_MASK_START<=which<#I18N_UCHAR_MASK_LIMIT.
- * @param[out] property_val The numeric value that is directly the property value or,
- * for enumerated properties, corresponds to the numeric value of the enumerated
- * constant of the respective property value enumeration type (cast to enum type if necessary)\n
- * Returns @c 0 or @c 1 (for false/true) for binary Unicode properties\n
- * Returns a bit-mask for mask properties \n
- * Returns @c 0 if 'which' is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uchar_get_int_property_value(i18n_uchar32 c, i18n_uchar_uproperty_e which, int32_t *property_val);
-
-/**
- * @brief Gets the Unicode allocation block that contains the character.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] c The code point to test
- * @param[out] block_val The block value for the code point
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uchar_get_ublock_code(i18n_uchar32 c, i18n_uchar_ublock_code_e *block_val);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UCHAR_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UCOLLATOR_H__
-#define __UTILS_I18N_UCOLLATOR_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ucollator.h
- * @version 0.1
- * @brief utils_i18n_ucollator
- */
-
-#ifdef __cplusplus
-extern "C" {
-# endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE Ucollator
- * @brief The Ucollator module performs locale-sensitive string comparison.
- *
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_OVERVIEW Overview
- * @details The Ucollator module performs locale-sensitive string comparison. It builds searching and sorting routines for natural language text and provides correct sorting orders for most locales supported.
- *
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Converts two different byte strings to two different unicode strings and compares the unicode strings to check if the strings are equal to each other.
- * @code
- i18n_uchar uchar_src[64] = {0,};
- i18n_uchar uchar_target[64] = {0,};
- char *src = "tizen";
- char *target = "bada";
- int uchar_src_len = 0;
- int uchar_target_len = 0;
- i18n_ucollator_h coll = NULL;
- i18n_ubool result = NULL;
-
- i18n_ustring_from_UTF8( uchar_src, 64, NULL, src, -1 );
- i18n_ustring_from_UTF8( uchar_target, 64, NULL, target, -1 );
-
- // creates a collator
- i18n_ucollator_create( "en_US", &coll );
-
- // sets strength for coll
- i18n_ucollator_set_strength( coll, I18N_UCOLLATOR_PRIMARY );
-
- // compares uchar_src with uchar_target
- i18n_ustring_get_length( uchar_src, &uchar_src_len );
- i18n_ustring_get_length( uchar_target, &uchar_target_len );
- i18n_ucollator_equal( coll, uchar_src, uchar_src_len, uchar_target, uchar_target_len, &result );
- dlog_print(DLOG_INFO, LOG_TAG, "%s %s %s\n", src, result == 1 ? "is equal to" : "is not equal to", target ); // tizen is not equal to bada
-
- // destroys the collator
- i18n_ucollator_destroy( coll );
- * @endcode
- * @section CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE_SAMPLE_CODE_2 Sample Code 2
- * @brief Sorts in ascending order on the given data using string_ucollator
- * @code
- i18n_ucollator_h coll = NULL;
- char *src[3] = { "cat", "banana", "airplane" };
- char *tmp = NULL;
- i18n_uchar buf_01[16] = {0,};
- i18n_uchar buf_02[16] = {0,};
- i18n_ucollator_result_e result = I18N_UCOLLATOR_EQUAL;
- int i = 0, j = 0;
- int ret = I18N_ERROR_NONE;
- int buf_01_len = 0, buf_02_len = 0;
-
- for (i = 0; i < sizeof(src) / sizeof(src[0]); i++) {
- dlog_print(DLOG_INFO, LOG_TAG, "%s\n", src[i]);
- } // cat banana airplane
-
- // creates a collator
- ret = i18n_ucollator_create("en_US", &coll);
-
- // compares and sorts in ascending order
- if (ret == I18N_ERROR_NONE) {
- i18n_ucollator_set_strength(coll, I18N_UCOLLATOR_TERTIARY);
- for (i = 0; i < 2; i++) {
- for (j = 0; j < 2 - i; j++) {
- i18n_ustring_copy_ua(buf_01, src[j]);
- i18n_ustring_copy_ua(buf_02, src[j+1]);
- i18n_ustring_get_length(buf_01, &buf_01_len);
- i18n_ustring_get_length(buf_02, &buf_02_len);
- // compares buf_01 with buf_02
- i18n_ucollator_str_collator(coll, buf_01, buf_01_len, buf_02, buf_02_len, &result);
- if (result == I18N_UCOLLATOR_GREATER) {
- tmp = src[j];
- src[j] = src[j+1];
- src[j+1] = tmp;
- }
- }
- }
- }
- // destroys the collator
- i18n_ucollator_destroy( coll ); // deallocate memory for collator
-
- for (i = 0; i < sizeof(src) / sizeof(src[0]); i++) {
- dlog_print(DLOG_INFO, LOG_TAG, "%s\n", src[i]);
- } // ariplane banana cat
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE
- * @{
- */
-
-/**
- * @brief Creates a i18n_ucollator_h for comparing strings.
- * @details For some languages, multiple collation types are available;
- * for example, "de@collation=phonebook".
- * Collation attributes can be specified via locale keywords as well,
- * in the old locale extension syntax ("el@colCaseFirst=upper")
- * or in language tag syntax ("el-u-kf-upper").
- * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
- *
- * The i18n_ucollator_h is used in all the calls to the Collation service.\n
- * After finished, collator must be disposed off by calling {@link #i18n_ucollator_destroy()}.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a collator using i18n_ucollator_destroy().
- *
- * @param[in] locale The locale containing the required collation rules\n
- * Special values for locales can be passed in - if @c NULL is passed for the locale, the default locale collation rules will be used \n
- * If empty string ("") or "root" is passed, UCA rules will be used.
- * @param[out] collator i18n_ucollator_h, otherwise @c 0 if an error occurs
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_destroy()
- */
-int i18n_ucollator_create(const char *locale, i18n_ucollator_h *collator);
-
-/**
- * @brief Closes a i18n_ucollator_h.
- * @details Once closed, a string_ucollator_h should not be used. Every an open collator should be closed. Otherwise, a memory leak will result.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_ucollator_h to close
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_create()
- */
-int i18n_ucollator_destroy(i18n_ucollator_h collator);
-
-/**
- * @brief Compares two strings.
- * @details The strings will be compared using the options already specified.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_ucollator_h containing the comparison rules
- * @param[in] src The source string
- * @param[in] src_len The length of the source, otherwise @c -1 if null-terminated
- * @param[in] target The target string.
- * @param[in] target_len The length of the target, otherwise @c -1 if null-terminated
- * @param[out] result The result of comparing the strings \n
- * One of #I18N_UCOLLATOR_EQUAL, #I18N_UCOLLATOR_GREATER, or #I18N_UCOLLATOR_LESS
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_equal()
- */
-int i18n_ucollator_str_collator(const i18n_ucollator_h collator, const i18n_uchar *src, int32_t src_len, const i18n_uchar *target, int32_t target_len, i18n_ucollator_result_e *result);
-
-/**
- * @brief Compares two strings for equality.
- * @details This function is equivalent to {@link #i18n_ucollator_str_collator()}.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_ucollator_h containing the comparison rules
- * @param[in] src The source string
- * @param[in] src_len The length of the source, otherwise @c -1 if null-terminated
- * @param[in] target The target string
- * @param[in] target_len The length of the target, otherwise @c -1 if null-terminated
- * @param[out] equal If @c true source is equal to target, otherwise @c false
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ucollator_str_collator()
- */
-int i18n_ucollator_equal(const i18n_ucollator_h collator, const i18n_uchar *src, int32_t src_len, const i18n_uchar *target, int32_t target_len, i18n_ubool *equal);
-
-/**
- * @brief Sets the collation strength used in a collator.
- * @details The strength influences how strings are compared.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_collator_h to set.
- * @param[in] strength The desired collation strength.\n
- * One of #i18n_ucollator_strength_e
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucollator_set_strength(i18n_ucollator_h collator, i18n_ucollator_strength_e strength);
-
-/**
- * @brief Sets a universal attribute setter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] collator The i18n_collator_h containing attributes to be changed
- * @param[in] attr The attribute type
- * @param[in] val The attribute value
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ucollator_set_attribute(i18n_ucollator_h collator, i18n_ucollator_attribute_e attr, i18n_ucollator_attribute_value_e val);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UCOLLATOR_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UDATE_H__
-#define __UTILS_I18N_UDATE_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_udate.h
- * @version 0.1
- * @brief utils_i18n_udate
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UDATE_MODULE Udate
- * @brief The Udate module consists of functions that convert dates and time from their
- * internal representations to textual form and back again in a language-independent
- * manner.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATE_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UDATE_MODULE_OVERVIEW Overview
- * @details The Udate module consists of functions that convert dates and time from their
- * internal representations to textual form and back again in a language-independent
- * manner. Converting from the internal representation (milliseconds since midnight,
- * January 1, 1970) to text is known as "formatting," and converting from text to
- * milliseconds is known as "parsing". We currently define only one concrete handle
- * #i18n_udate_format_h, which can handle pretty much all normal date formatting and parsing
- * actions.\n
- * The Udate module helps you format and parse dates for any locale. Your code can be
- * completely independent of the locale conventions for months, days of the week,
- * or even the calendar format: lunar vs. solar.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATE_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets the best pattern according to a given locale and formats a current date and time using a locale_udate_format_h
- * @code
- i18n_udatepg_h pattern_generator = NULL;
- char *locale = I18N_ULOCALE_US;
-
- dlog_print(DLOG_INFO, LOG_TAG, "pattern_generator\n");
-
- if(!pattern_generator) {
- // create a pattern generator according to a given locale
- i18n_udatepg_create(locale, &pattern_generator);
- }
-
- if(!pattern_generator) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udatepg_create fail");
- return ;
- }
-
- i18n_uchar bestPattern[64] = {0,};
- char bestPatternString[64] = {0,};
- int bestPatternLength, len;
- const char *custom_format = "yyyy.MM.dd G 'at' HH:mm:ss zzz";
- i18n_uchar uch_custom_format[64];
- int ret = I18N_ERROR_NONE;
-
- dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern\n");
-
- i18n_ustring_copy_ua(uch_custom_format, custom_format);
- len = i18n_ustring_get_length(uch_custom_format);
-
- // gets the best pattern that matches the given custom_format
- i18n_udatepg_get_best_pattern(pattern_generator, uch_custom_format, len, bestPattern, 64, &bestPatternLength);
-
- i18n_ustring_copy_au_n(bestPatternString, bestPattern, 64);
- // gets "MM/dd/yyyy G h:mm:ss a zzz" as the best pattern
- dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern(char[]) : %s \n", bestPatternString);
-
- // closes a generator
- i18n_udatepg_destroy(pattern_generator);
-
- i18n_udate_format_h formatter_KR = NULL;
- i18n_udate_format_h formatter_LA = NULL;
- i18n_udate_format_h formatter_SaoPaulo = NULL;
- i18n_uchar formatted[64] = {0,};
- char result[64] = {0,};
- int formattedLength;
- i18n_udate date;
- const char *timezone_KR = "GMT+9:00"; // TimeZone for Korea/Seoul
- const char *timezone_LA = "America/Los_Angeles";
- const char *timezone_SaoPaulo = "America/Sao_Paulo"; // Brazil/East
- i18n_uchar utf16_timezone_KR[64] = {0,};
- i18n_uchar utf16_timezone_LA[64] = {0,};
- i18n_uchar utf16_timezone_SaoPaulo[64] = {0,};
-
- i18n_ustring_copy_ua_n(utf16_timezone_KR, timezone_KR, strlen(timezone_KR));
- i18n_ustring_copy_ua_n(utf16_timezone_LA, timezone_LA, strlen(timezone_LA));
- i18n_ustring_copy_ua_n(utf16_timezone_SaoPaulo, timezone_SaoPaulo, strlen(timezone_SaoPaulo));
-
- // creates new i18n_udate_format_h to format dates and times
- ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_KR, -1, bestPattern, -1, &formatter_KR);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
- }
- if (!formatter_KR) {
- dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
- }
- ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_LA, -1, bestPattern, -1, &formatter_LA);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
- }
- if (!formatter_LA) {
- dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
- }
- ret = i18n_udate_create(I18N_UDATE_PATTERN , I18N_UDATE_PATTERN , locale, utf16_timezone_SaoPaulo, -1, bestPattern, -1, &formatter_SaoPaulo);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
- }
- if (!formatter_SaoPaulo) {
- dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
- }
-
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_format_date\n");
-
- // gets the current date and time
- i18n_ucalendar_get_now(&date);
-
- // formats a date using i18n_udate_format_h
- i18n_udate_format_date(formatter_KR, date, formatted, 64, NULL, &formattedLength);
- i18n_ustring_copy_au_n(result, formatted, 64);
- //ex) KOREA/Seoul - Current date : Wednesday, June 18, 2014 1:34:54 PM GMT+09:00
- dlog_print(DLOG_INFO, LOG_TAG, "KOREA/Seoul - Current date : %s\n",result);
-
- // formats a date using i18n_udate_format
- i18n_udate_format_date(formatter_LA, date, formatted, 64, NULL, &formattedLength);
- i18n_ustring_copy_au_n(result, formatted, 64);
- //ex) America/LOS Angeles - Current date : Tuesday, June 17, 2014 9:34:54 PM Pacific Daylight Time
- dlog_print(DLOG_INFO, LOG_TAG, "America/LOS Angeles - Current date : %s\n",result);
-
- // formats a date using i18n_udate_format_h
- i18n_udate_format_date(formatter_SaoPaulo, date, formatted, 64, NULL, &formattedLength);
- i18n_ustring_copy_au_n(result, formatted, 64);
- //ex) Brazil/Sao Paulo - Current date : 6 18, 2014 AD, 1:34:54 PM GMT-2
- dlog_print(DLOG_INFO, LOG_TAG, "Brazil/Sao Paulo - Current date : %s\n",result);
-
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_destroy\n");
- // destroy an i18n_udate_format_h
- i18n_udate_destroy(formatter_KR);
- i18n_udate_destroy(formatter_LA);
- i18n_udate_destroy(formatter_SaoPaulo);
- * @endcode
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATE_MODULE
- * @{
- */
-
-/**
- * @brief Creates a new #i18n_udate_format_h for formatting and parsing dates and times.
- * @details A #i18n_udate_format_h may be used to format dates in calls to {@link i18n_udate_create()}.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a format using i18n_udate_destroy().\n
- * If @a pattern parameter is used, pass in #I18N_UDATE_PATTERN for @a time_style and @a date_style. \n
- * #I18N_UDATE_PATTERN can only be used in this case, and has to be set for both @a time_style and @a date_style.
- *
- * @param[in] time_style The style used to format times\n One of #I18N_UDATE_FULL, #I18N_UDATE_LONG,
- * #I18N_UDATE_MEDIUM, #I18N_UDATE_SHORT, #I18N_UDATE_DEFAULT, #I18N_UDATE_PATTERN (see remarks) or #I18N_UDATE_NONE (relative time styles
- * are not currently supported).
- * @param[in] date_style The style used to format dates\n One of #I18N_UDATE_FULL, #I18N_UDATE_LONG,
- * #I18N_UDATE_MEDIUM, #I18N_UDATE_SHORT, #I18N_UDATE_DEFAULT, #I18N_UDATE_RELATIVE, #I18N_UDATE_LONG_RELATIVE,
- * #I18N_UDATE_MEDIUM_RELATIVE, #I18N_UDATE_SHORT_RELATIVE, #I18N_UDATE_PATTERN (see remarks) or #I18N_UDATE_NONE
- * @param[in] locale The locale specifying the formatting conventions.
- * @param[in] tz_id A timezone ID specifying the timezone to use\n If @c 0, use the default timezone.
- * @param[in] tz_id_len The length of @a tz_id, otherwise @c -1 if NULL-terminated.
- * @param[in] pattern A pattern specifying the format to use. The pattern is generated by Udatepg module.\n
- * When the pattern parameter is used, pass in #I18N_UDATE_PATTERN for both time_style and date_style.\n
- * See remarks for additional conditions.
- * @param[in] pattern_len The number of characters in the pattern, or otherwise @c -1 if NULL-terminated.
- * @param[out] format A pointer to an #i18n_udate_format_h to use for formatting dates and times, otherwise @c 0 if an error occurs.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_create(i18n_udate_format_style_e time_style, i18n_udate_format_style_e date_style, const char *locale, const i18n_uchar *tz_id, int32_t tz_id_len, const i18n_uchar *pattern, int pattern_len, i18n_udate_format_h *format);
-
-/**
- * @brief Destroys an #i18n_udate_format_h.
- * @details Once destroyed, an #i18n_udate_format_h may no longer be used.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] format The formatter to destroy.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_destroy(i18n_udate_format_h format);
-
-/**
- * @brief Formats a date using an #i18n_udate_format_h.
- * @details The date will be formatted using the conventions specified in {@link i18n_udate_create()}
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] format The formatter to use.
- * @param[in] date_to_format The date to format.
- * @param[out] result A pointer to a buffer to receive the formatted number.
- * @param[in] result_len The maximum size of the result.
- * @param[in] pos A pointer to an i18n_ufield_position\n
- * On input, position->field is read\n
- * On output, position->beginIndex and position->endIndex indicate
- * the beginning and ending indices of field number position->field, if such a field exists\n
- * This parameter may be @c NULL, in which case no field
- * position data is returned.
- * @param[out] buf_size_needed The total buffer size needed\n
- * If greater than @a result_len, the output was truncated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_format_date(const i18n_udate_format_h format, i18n_udate date_to_format, i18n_uchar *result, int32_t result_len, i18n_ufield_position_h pos, int32_t *buf_size_needed);
-
-
-/* Newly Added APIs */
-
-/**
- * @brief Maps from an #i18n_udate_format_h to the corresponding #i18n_ucalendar_date_fields_e.
- * @details Note: since the mapping is many-to-one, there is no inverse mapping.
- * @since_tizen 2.3.1
- *
- * @param[in] field The #i18n_udate_format_h to map.
- * #I18N_UDATE_FORMAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD, #I18N_UDATE_FORMAT_TIMEZONE_ISO_FIELD,
- * #I18N_UDATE_FORMAT_TIMEZONE_ISO_LOCAL_FIELD and #I18N_UDATE_FORMAT_FIELD_COUNT are not supported.
- * @param[out] date_field_type A pointer to the #i18n_ucalendar_date_fields_e.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_to_calendar_date_field(i18n_udate_format_field_e field, i18n_ucalendar_date_fields_e *date_field_type);
-
-/**
- * @brief Creates a copy of an #i18n_udate_format_h.
- * @details This function performs a deep copy.
- * @since_tizen 2.3.1
- *
- * @param[in] format The format to copy.
- * @param[out] format_clone A pointer to clone of @c format.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_clone(const i18n_udate_format_h format, i18n_udate_format_h *format_clone);
-
-/**
- * @brief Parses a string into an date/time using an #i18n_udate_format_h.
- * @details The date will be parsed using the conventions specified in {@link i18n_udate_create()}.<br>
- * Note that the normal date formats associated with some calendars - such as the Chinese lunar calendar - do not specify enough fields to enable dates to be parsed unambiguously.
- * In the case of the Chinese lunar calendar, while the year within the current 60-year cycle is specified,
- * the number of such cycles since the start date of the calendar (in the #I18N_UCALENDAR_ERA field of the i18n_ucalendar_h) is not normally part of the format,
- * and parsing may assume the wrong era.
- * For such cases it is recommended that clients parse using i18n_udate_parse_calendar() with the calendar passed in set to the current date,
- * or to a date within the era/cycle that should be assumed if absent in the format.
- * @since_tizen 2.3.1
- *
- * @param[in] format The formatter to use.
- * @param[in] text The text to parse.
- * @param[in] text_length The length of text, or -1 if NULL-terminated.
- * @param[in] parse_pos If not 0, on input a pointer to an integer specifying the offset at which to begin parsing.
- * If not 0, on output the offset at which parsing ended.
- * @param[out] parsed_date A pointer to the value of the parsed date/time.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_format_date()
- */
-int i18n_udate_parse(const i18n_udate_format_h format, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos, i18n_udate *parsed_date);
-
-/**
- * @brief Parses a string into an date/time using an #i18n_udate_format_h.
- * @details The date will be parsed using the conventions specified in {@link i18n_udate_create()}.
- * @since_tizen 2.3.1
- *
- * @param[in] format The formatter to use.
- * @param[in,out] calendar A pointer to calendar set on input to the date and time to be used for missing values in the date/time string being parsed,
- * and set on output to the parsed date/time.
- * When the calendar type is different from the internal calendar held by the #i18n_udate_format_h instance,
- * the internal calendar will be cloned to a work calendar set to the same milliseconds and time zone as this calendar parameter,
- * field values will be parsed based on the work calendar, then the result (milliseconds and time zone) will be set in this calendar.
- * @param[in] text The text to parse.
- * @param[in] text_length The length of text, or -1 if NULL-terminated.
- * @param[in] parse_pos If not 0, on input a pointer to an integer specifying the offset at which to begin parsing.
- * If not 0, on output the offset at which parsing ended.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_format_date()
- */
-int i18n_udate_parse_calendar(const i18n_udate_format_h format, i18n_ucalendar_h *calendar, const i18n_uchar *text,
- int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Determines if an #i18n_udate_format_h will perform lenient parsing.
- * @details With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match the pattern.
- * With strict parsing, inputs must match the pattern.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to query.
- *
- * @return true if format is set to perform lenient parsing, false otherwise.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_lenient()
- */
-i18n_ubool i18n_udate_is_lenient(const i18n_udate_format_h format);
-
-/**
- * @brief Specifies whether an #i18n_udate_format_h will perform lenient parsing.
- * @details With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match the pattern.
- * With strict parsing, inputs must match the pattern.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to set.
- * @param[in] is_lenient true if fmt should perform lenient parsing, false otherwise.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_is_lenient()
- */
-int i18n_udate_set_lenient(i18n_udate_format_h format, i18n_ubool is_lenient);
-
-/**
- * @brief Gets the #i18n_ucalendar_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_ucalendar_h to convert a raw value to, for example, the day of the week.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to query.
- * @param[out] calendar A pointer to the #i18n_ucalendar_h used by format.
- *
- * @return Error code.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_calendar()
- */
-int i18n_udate_get_calendar(const i18n_udate_format_h format, i18n_ucalendar_h *calendar);
-
-/**
- * @brief Sets the #i18n_ucalendar_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_ucalendar_h to convert a raw value to, for example, the day of the week.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h.
- * @param[in] calendar_to_set An #i18n_ucalendar_h to be used by the format.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_calendar()
- */
-int i18n_udate_set_calendar(i18n_udate_format_h format, const i18n_ucalendar_h calendar_to_set);
-
-/**
- * @brief Gets the #i18n_unumber_format_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_unumber_format_h to format numbers within a date, for example the day number.
- * @since_tizen 2.3.1
- *
- * @param[in] format The formatter to query.
- * @param[out] number_format A pointer to the #i18n_unumber_format_h used by @a format to format numbers.
- *
- * @return Error code.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_number_format()
- */
-int i18n_udate_get_number_format(const i18n_udate_format_h format, i18n_unumber_format_h *number_format);
-
-/**
- * @brief Sets the #i18n_unumber_format_h associated with an #i18n_udate_format_h.
- * @details An #i18n_udate_format_h uses an #i18n_unumber_format_h to format numbers within a date, for example the day number.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to set.
- * @param[in] number_format_to_set An #i18n_unumber_format_h to be used by @a format to format numbers.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_number_format()
- */
-int i18n_udate_set_number_format(i18n_udate_format_h format, const i18n_unumber_format_h number_format_to_set);
-
-/**
- * @brief Gets a locale for which date/time formatting patterns are available.
- * @details An #i18n_udate_format_h in a locale returned by this function will perform the correct formatting and parsing for the locale.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_index The index of the desired locale.
- *
- * @return A locale for which date/time formatting patterns are available, or 0 if none.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
-
- * @see i18n_udate_count_available()
- */
-const char *i18n_udate_get_available(int32_t locale_index);
-
-/**
- * @brief Determines how many locales have date/time formatting patterns available.
- * @details This function is the most useful for determining the loop ending condition for calls to {@link #i18n_udate_get_available()}.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return The number of locales for which date/time formatting patterns are available.
- *
- * @exception #I18N_ERROR_NONE Successful
- *
- * @see i18n_udate_get_available()
- */
-int32_t i18n_udate_count_available(void);
-
-/**
- * @brief Gets the year relative to which all 2-digit years are interpreted.
- * @details For example, if the 2-digit start year is 2100, the year 99 will be interpreted as 2199.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to get.
- * @param[out] year A pointer to the year relative to which all 2-digit years are interpreted.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_set_2digit_year_start()
- */
-int i18n_udate_get_2digit_year_start(const i18n_udate_format_h format, i18n_udate *year);
-
-/**
- * @brief Sets the year relative to which all 2-digit years will be interpreted.
- * @details For example, if the 2-digit start year is 2100, the year 99 will be interpreted as 2199.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to map.
- * @param[in] date The year relative to which all 2-digit years will be interpreted.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_2digit_year_start()
- */
-int i18n_udate_set_2digit_year_start(i18n_udate_format_h format, i18n_udate date);
-
-/**
- * @brief Extracts the pattern from an #i18n_udate_format_h.
- * @details The pattern will follow the pattern syntax rules.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to query.
- * @param[in] localized true if the pattern should be localized, false otherwise.
- * @param[out] result A pointer to a buffer to receive the pattern.
- * @param[in] result_length The maximum size of result.
- *
- * @return The total buffer size needed; if greater than result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_apply_pattern()
- */
-int32_t i18n_udate_to_pattern(const i18n_udate_format_h format, i18n_ubool localized, i18n_uchar *result,
- int32_t result_length);
-
-/**
- * @brief Sets the pattern used by an #i18n_udate_format_h.
- * @details The pattern should follow the pattern syntax rules.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to set.
- * @param[in] localized true if the pattern is localized, false otherwise.
- * @param[in] pattern The new pattern.
- * @param[in] pattern_length The length of pattern, or -1 if NULL-terminated.
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_to_pattern()
- */
-int i18n_udate_apply_pattern(i18n_udate_format_h format, i18n_ubool localized, const i18n_uchar *pattern,
- int32_t pattern_length);
-
-/**
- * @brief Gets the symbols associated with an #i18n_udate_format_h.
- * @details The symbols are what an #i18n_udate_format_h uses to represent locale-specific data, for example month or day names.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to query.
- * @param[in] type The type of symbols to get.
- * All the types defined in the #i18n_udate_format_symbol_type_e enumeration are supported.
- * @param[in] symbol_index The desired symbol of type type.
- * @param[out] result A pointer to a buffer to receive the pattern.
- * @param[in] result_length The maximum size of the result buffer.
- *
- * @return The total buffer size needed; if greater than result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_count_symbols()
- * @see #i18n_udate_set_symbols()
- */
-int32_t i18n_udate_get_symbols(const i18n_udate_format_h format, i18n_udate_format_symbol_type_e type, int32_t symbol_index,
- i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Counts the number of particular symbols for an #i18n_udate_format_h.
- * @details This function is most useful for determining the loop termination condition for calls to {@link #i18n_udate_get_symbols()}.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to query.
- * @param[in] type The type of symbols to count.
- * If wrong type is passed, 0 will be returned.
- *
- * @return The number of symbols of type @a type.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_get_symbols()
- * @see #i18n_udate_set_symbols()
- */
-int32_t i18n_udate_count_symbols(const i18n_udate_format_h format, i18n_udate_format_symbol_type_e type);
-
-/**
- * @brief Sets the symbols associated with an #i18n_udate_format_h.
- * @details The symbols are what an #i18n_udate_format_h uses to represent locale-specific data, for example month or day names.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to set.
- * @param[in] type The type of symbols to set.
- * All the types defined in the #i18n_udate_format_symbol_type_e enumeration are supported.
- * If a type not defined in the enumeration is passed, then the #I18N_ERROR_NOT_SUPPORTED error is returned.
- * @param[in] symbol_index The index of the symbol to set of type type.
- * @param[in] value The new value.
- * @param[in] value_length The length of @a value, or @c -1 if NULL-terminated.
- *
- * @return Error code. Error codes not listed below are described in the #i18n_error_code_e enumeration.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udate_count_symbols()
- * @see #i18n_udate_get_symbols()
- */
-int i18n_udate_set_symbols(i18n_udate_format_h format, i18n_udate_format_symbol_type_e type, int32_t symbol_index,
- i18n_uchar *value, int32_t value_length);
-
-/**
- * @brief Gets the locale for this date format object.
- * @details You can choose between valid and actual locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to get the locale from.
- * @param[in] type The type of the locale we're looking for (valid or actual).
- *
- * @return The locale name.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_udate_get_locale_by_type(const i18n_udate_format_h format, i18n_ulocale_data_locale_type_e type);
-
-/**
- * @brief Sets a particular #i18n_udisplay_context_e value in the formatter, such as #I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_STANDALONE.
- * @remarks I18N_UDISPLAY_CONTEXT_STANDARD_NAMES and I18N_UDISPLAY_CONTEXT_DIALECT_NAMES are not supported.
- *
- * @since_tizen 2.3.1
- *
- * @param[in] format The #i18n_udate_format_h to set a #i18n_udisplay_context_e value.
- * @param[in] value The #i18n_udisplay_context_e value to set.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udate_set_context(i18n_udate_format_h format, i18n_udisplay_context_e value);
-
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_UDATE_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UDATEPG_H__
-#define __UTILS_I18N_UDATEPG_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_udatepg.h
- * @version 0.1
- * @brief utils_i18n_udatepg
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE Udatepg
- * @brief The Udatepg module provides flexible generation of date format patterns, like "yy-MM-dd". The user can build up the generator by adding successive patterns.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATEPG_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UDATEPG_MODULE_OVERVIEW Overview
- * @details The Udatepg module provides flexible generation of date format patterns,
- * like "yy-MM-dd". The user can build up the generator by adding successive patterns.
- * Once that is done, a query can be made using a "skeleton", which is a pattern that
- * just includes the desired fields and lengths(Since Tizen 3.0 constants for skeletons are available -
- * see #I18N_UDATE_YEAR and many, many others). The generator will return the
- * "best fit" pattern corresponding to that skeleton.\n
- * The main method people will use is i18n_udatepg_get_best_pattern(), since normally
- * #i18n_udatepg_h is pre-built with data from a particular locale.
- * However, generators can be built directly from other data as well.
- *
- * All input handlers must not be @c NULL.
- *
- * @section CAPI_BASE_UTILS_I18N_UDATEPG_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets the best pattern according to a given locale and formats a current date and time using an i18n_udate_format_h
- * @code
- i18n_udatepg_h pattern_generator = NULL;
- char *locale = I18N_ULOCALE_US;
-
- dlog_print(DLOG_INFO, LOG_TAG, "pattern_generator\n");
-
- if(!pattern_generator) {
- // create a pattern generator according to a given locale
- i18n_udatepg_create(locale, &pattern_generator);
- }
-
- if(!pattern_generator) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udatepg_create fail");
- return ;
- }
-
- i18n_uchar bestPattern[64] = {0,};
- char bestPatternString[64] = {0,};
- int bestPatternLength, len;
- const char *custom_format = "yyyy.MM.dd G 'at' HH:mm:ss zzz";
- i18n_uchar uch_custom_format[64];
- int ret = I18N_ERROR_NONE;
-
- dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern\n");
-
- i18n_ustring_copy_ua(uch_custom_format, custom_format);
- len = i18n_ustring_get_length(uch_custom_format);
-
- // gets the best pattern that matches the given custom_format
- i18n_udatepg_get_best_pattern(pattern_generator, uch_custom_format, len, bestPattern, 64, &bestPatternLength);
-
- i18n_ustring_copy_au_n(bestPatternString, bestPattern, 64);
- // gets "MM/dd/yyyy G h:mm:ss a zzz" as the best pattern
- dlog_print(DLOG_INFO, LOG_TAG, "getBestPattern(char[]) : %s \n", bestPatternString);
-
- // closes a generator
- i18n_udatepg_destroy(pattern_generator);
-
- i18n_udate_format_h formatter_KR = NULL;
- i18n_udate_format_h formatter_LA = NULL;
- i18n_udate_format_h formatter_SaoPaulo = NULL;
- i18n_uchar formatted[64] = {0,};
- char result[64] = {0,};
- int formattedLength;
- i18n_udate date;
- const char *timezone_KR = "GMT+9:00"; // TimeZone for Korea/Seoul
- const char *timezone_LA = "America/Los_Angeles";
- const char *timezone_SaoPaulo = "America/Sao_Paulo"; // Brazil/East
- i18n_uchar utf16_timezone_KR[64] = {0,};
- i18n_uchar utf16_timezone_LA[64] = {0,};
- i18n_uchar utf16_timezone_SaoPaulo[64] = {0,};
-
- i18n_ustring_copy_ua_n(utf16_timezone_KR, timezone_KR, strlen(timezone_KR));
- i18n_ustring_copy_ua_n(utf16_timezone_LA, timezone_LA, strlen(timezone_LA));
- i18n_ustring_copy_ua_n(utf16_timezone_SaoPaulo, timezone_SaoPaulo, strlen(timezone_SaoPaulo));
-
- // creates new i18n_udate_format to format dates and times
- ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_KR, -1, bestPattern, -1, &formatter_KR);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
- }
- if (!formatter_KR) {
- dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
- }
- ret = i18n_udate_create(I18N_UDATE_FULL , I18N_UDATE_FULL , locale, utf16_timezone_LA, -1, bestPattern, -1, &formatter_LA);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
- }
- if (!formatter_LA) {
- dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
- }
- ret = i18n_udate_create(I18N_UDATE_PATTERN , I18N_UDATE_PATTERN , locale, utf16_timezone_SaoPaulo, -1, bestPattern, -1, &formatter_SaoPaulo);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_create failed !!! \n");
- }
- if (!formatter_SaoPaulo) {
- dlog_print(DLOG_INFO, LOG_TAG, "formatter is NULL\n");
- }
-
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_format_date\n");
-
- // gets the current date and time
- i18n_ucalendar_get_now(&date);
-
- // formats a date using i18n_udate_format
- i18n_udate_format_date(formatter_KR, date, formatted, 64, NULL, &formattedLength);
- i18n_ustring_copy_au_n(result, formatted, 64);
- //ex) KOREA/Seoul - Current date : Wednesday, June 18, 2014 1:34:54 PM GMT+09:00
- dlog_print(DLOG_INFO, LOG_TAG, "KOREA/Seoul - Current date : %s\n",result);
-
- // formats a date using i18n_udate_format
- i18n_udate_format_date(formatter_LA, date, formatted, 64, NULL, &formattedLength);
- i18n_ustring_copy_au_n(result, formatted, 64);
- //ex) America/LOS Angeles - Current date : Tuesday, June 17, 2014 9:34:54 PM Pacific Daylight Time
- dlog_print(DLOG_INFO, LOG_TAG, "America/LOS Angeles - Current date : %s\n",result);
-
- // formats a date using i18n_udate_format
- i18n_udate_format_date(formatter_SaoPaulo, date, formatted, 64, NULL, &formattedLength);
- i18n_ustring_copy_au_n(result, formatted, 64);
- //ex) Brazil/Sao Paulo - Current date : 6 18, 2014 AD, 1:34:54 PM GMT-2
- dlog_print(DLOG_INFO, LOG_TAG, "Brazil/Sao Paulo - Current date : %s\n",result);
-
- dlog_print(DLOG_INFO, LOG_TAG, "i18n_udate_destroy\n");
- // destroy an #i18n_udate_format_h
- i18n_udate_destroy(formatter_KR);
- i18n_udate_destroy(formatter_LA);
- i18n_udate_destroy(formatter_SaoPaulo);
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Opens a generator according to a given locale.
- * @remarks Must release @a dtpg using i18n_udatepg_destroy().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale If @c NULL - default locale will be used.
- * @param[out] dtpg A pointer to #i18n_udatepg_h. Must not be @c NULL.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_create(const char *locale, i18n_udatepg_h *dtpg);
-
-/**
- * @brief Destroys a generator.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] dtpg A pointer to #i18n_udatepg_h. Must not be @c NULL.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_destroy(i18n_udatepg_h dtpg);
-
-/**
- * @brief Gets the best pattern matching the input skeleton.
- * @details It is guaranteed to have all of the fields in the skeleton.
- * @remarks This function uses a non-const #i18n_udatepg_h:
- * It uses a stateful pattern parser which is set up for each generator object,
- * rather than creating one for each function call.
- * Consecutive calls to this function do not affect each other,
- * but this function cannot be used concurrently on a single generator object.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] dtpg A pointer to #i18n_udatepg_h. Must not be @c NULL.
- * @param[in] skeleton The skeleton is a pattern containing only the variable fields.\n
- * For example, "MMMdd" and "mmhh" are skeletons. Must not be @c NULL.
- * @param[in] len The length of the @a skeleton, >= 0.
- * @param[out] best_pattern The best pattern found from the given @a skeleton.
- * @param[in] capacity The capacity of @a best_pattern, >= 0
- * @param[out] best_pattern_len The length of @a best_pattern.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int i18n_udatepg_get_best_pattern(i18n_udatepg_h dtpg, const i18n_uchar *skeleton, int32_t len, i18n_uchar *best_pattern, int32_t capacity, int32_t *best_pattern_len);
-
-
-/* Newly Added APIs */
-
-
-/**
- * @brief Creates an empty generator, to be constructed with i18n_udatepg_add_pattern() etc.
- * @since_tizen 2.3.1
- *
- * @param[out] dtpg A pointer to the #i18n_udatepg_h handle.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_create_empty(i18n_udatepg_h *dtpg);
-
-/**
- * @brief Creates a copy of a generator.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle to be copied. Must not be @c NULL.
- * @param[out] dtpg_clone A pointer to clone of @c dtpg handle.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_clone(const i18n_udatepg_h dtpg, i18n_udatepg_h *dtpg_clone);
-
-/**
- * @brief Gets the best pattern matching the input @a skeleton.
- * @details It is guaranteed to have all of the fields in the @a skeleton.
- *
- * Note that this function uses a non-const #i18n_udatepg_h:
- * It uses a stateful pattern parser which is set up for each generator object,
- * rather than creating one for each function call.
- * Consecutive calls to this function do not affect each other,
- * but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] skeleton The @c skeleton is a pattern containing only the variable fields;
- * for example, "MMMdd" and "mmhh" are skeletons. Must not be @c NULL.
- * @param[in] length The length of @c skeleton, >= 0.
- * @param[in] options Options for forcing the length of specified fields in the
- * returned pattern to match those in the @c skeleton (when this
- * would not happen otherwise). For default behavior, use
- * #I18N_UDATEPG_MATCH_NO_OPTIONS.
- * @param[out] best_pattern The best pattern found from the given @c skeleton.
- * @param[in] capacity The capacity of @c best_pattern, >= 0.
- *
- * @return The length of @c best_pattern.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_get_best_pattern_with_options(i18n_udatepg_h dtpg, const i18n_uchar *skeleton, int32_t length,
- i18n_udatepg_date_time_pattern_match_options_e options, i18n_uchar *best_pattern, int32_t capacity);
-
-/**
- * @brief Gets a unique skeleton from a given pattern. For example, both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd".
- * @details Note that this function uses a non-const #i18n_udatepg_h:
- * It uses a stateful pattern parser which is set up for each generator object,
- * rather than creating one for each function call.
- * Consecutive calls to this function do not affect each other,
- * but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] pattern Input pattern, such as "dd/MMM". Must not be @c NULL.
- * @param[in] length The length of @c pattern, >= 0.
- * @param[out] skeleton Such as "MMMdd".
- * @param[in] capacity The capacity of @c skeleton, >= 0.
- *
- * @return The length of @c skeleton.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_get_skeleton(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t length, i18n_uchar *skeleton, int32_t capacity);
-
-/**
- * @brief Gets a unique base skeleton from a given pattern.
- * @details This is the same as the skeleton, except that differences in length are minimized so
- * as to only preserve the difference between string and numeric form. So
- * for example, both "MMM-dd" and "d/MMM" produce the skeleton "MMMd"(notice the single d).<br>
- * Note that this function uses a non-const #i18n_udatepg_h :
- * It uses a stateful pattern parser which is set up for each generator object,
- * rather than creating one for each function call.
- * Consecutive calls to this function do not affect each other,
- * but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] pattern Input pattern, such as "dd/MMM". Must not be @c NULL.
- * @param[in] length The length of @c pattern, >= 0.
- * @param[out] base_skeleton Such as "Md".
- * @param[in] capacity The capacity of base @c skeleton, >= 0.
- *
- * @return The length of @c base_skeleton.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_get_base_skeleton(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t length, i18n_uchar *base_skeleton, int32_t capacity);
-
-/**
- * @brief Adds a pattern to the generator.
- * @details If the pattern has the same skeleton as an existing pattern,
- * and the override parameter is set, then the previous
- * value is overridden. Otherwise, the previous value is retained.
- * In either case, the conflicting status is set and previous value is stored in conflicting pattern. <br>
- * Note that single-field patterns (like "MMM") are automatically added, and don't need to be added explicitly!
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] pattern Input pattern, such as "dd/MMM". Must not be @c NULL.
- * @param[in] pattern_length The length of @c pattern, >= 0.
- * @param[in] override when existing values are to be overridden use true,
- * otherwise use false.
- * @param[out] conflicting_pattern Previous pattern with the same skeleton.
- * @param[in] capacity The capacity of @c conflicting_pattern.
- * @param[out] conflict_status A pointer to the conflicting status
- * The value could be #I18N_UDATEPG_NO_CONFLICT, #I18N_UDATEPG_BASE_CONFLICT or #I18N_UDATEPG_CONFLICT.
- *
- * @return Length of @c conflicting_pattern. -1 if @c conflict_status is #I18N_UDATEPG_NO_CONFLICT
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_add_pattern(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t pattern_length, i18n_ubool override, i18n_uchar *conflicting_pattern, int32_t capacity, i18n_udatepg_date_time_pattern_conflict_e *conflict_status);
-
-/**
- * @brief An append_item_format is a pattern used to append a field if there is no good match.
- * @details For example, suppose that the input skeleton is "GyyyyMMMd",
- * and there is no matching pattern internally, but there is a pattern
- * matching "yyyyMMMd", say "d-MM-yyyy". Then that pattern is used, plus the G.
- * The way these two are conjoined is by using the append_item_format for G (era).
- * So if that value is, say "{0}, {1}" then the final resulting
- * pattern is "d-MM-yyyy, G". <br>
- * There are actually three available variables : {0} is the pattern so far,
- * {1} is the element we are adding, and {2} is the name of the element. <br>
- * This reflects the way that the CLDR data is organized.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] field One of #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[in] value Pattern, such as "{0}, {1}". Must not be @c NULL.
- * @param[in] length The length of @c value, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_append_item_format()
- */
-int i18n_udatepg_set_append_item_format(i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field, const i18n_uchar *value, int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_append_item_format().
- * @details Values below 0 or at or above #I18N_UDATEPG_FIELD_COUNT are illegal arguments.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] field One of #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[out] pattern_length A pointer that will receive the length of append item format @a value.
- *
- * @return The append_item_format for @a field
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_append_item_format()
- */
-const i18n_uchar *i18n_udatepg_get_append_item_format(const i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field, int32_t *pattern_length);
-
-/**
- * @brief Sets the name of field, e.g. "era" in English for ERA.
- * @details These are only used if the corresponding append_item_format is used, and if it contains a {2} variable.
- * This reflects the way that the CLDR data is organized.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udatepg_h handle. Must not be @c NULL.
- * @param[in] field #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[in] value Name for the @c field. Must not be @c NULL.
- * @param[in] length The length of @c value, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_append_item_name()
- */
-int i18n_udatepg_set_append_item_name(i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field, const i18n_uchar *value,
- int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_append_item_name().
- * @details Values below 0 or at or above #I18N_UDATEPG_FIELD_COUNT are illegal arguments.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] field #i18n_udatepg_date_time_pattern_field_e, such as #I18N_UDATEPG_ERA_FIELD.
- * @param[out] pattern_length A pointer that will receive the length of the name for @c field.
- *
- * @return The name for @c field
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_append_item_name()
- */
-const i18n_uchar *i18n_udatepg_get_append_item_name(const i18n_udatepg_h dtpg, i18n_udatepg_date_time_pattern_field_e field,
- int32_t *pattern_length);
-
-/**
- * @brief The date time format is a message format pattern used to compose date and time patterns.
- * @brief The default value is "{0} {1}", where {0} will be replaced by the date pattern and {1} will be replaced by the time pattern.
- * This is used when the input skeleton contains both date and time fields,
- * but there is not a close match among the added patterns.
- * For example, suppose that this object was created by adding "dd-MMM" and "hh:mm",
- * and its date time format is the default "{0} {1}". Then if the input skeleton is "MMMdhmm",
- * there is not an exact match, so the input skeleton is broken up into two components "MMMd" and "hmm".
- * There are close matches for those two skeletons, so the result is put together with this pattern, resulting in "d-MMM h:mm".
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] date_time_format A message format pattern, here {0} will be replaced by the date pattern
- * and {1} will be replaced by the time pattern. Must not be @c NULL.
- * @param[in] length The length of @c date_time_format, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_date_time_format()
- */
-int i18n_udatepg_set_date_time_format(const i18n_udatepg_h dtpg, const i18n_uchar *date_time_format, int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_date_time_format().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] pattern_length A pointer that will receive the length of the @a date_time_format.
- *
- * @return A date_time_format
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_date_time_format()
- */
-const i18n_uchar *i18n_udatepg_get_date_time_format(const i18n_udatepg_h dtpg, int32_t *pattern_length);
-
-/**
- * @brief The decimal value is used in formatting fractions of seconds.
- * @details If the skeleton contains fractional seconds, then this is used with the fractional seconds.
- * For example, suppose that the input pattern is "hhmmssSSSS",
- * and the best matching pattern internally is "H:mm:ss", and the decimal string is ",".
- * Then the resulting pattern is modified to be "H:mm:ss,SSSS"
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] decimal Decimal. Must not be @c NULL.
- * @param[in] length The length of @c decimal, >= 0.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_get_decimal()
- */
-int i18n_udatepg_set_decimal(i18n_udatepg_h dtpg, const i18n_uchar *decimal, int32_t length);
-
-/**
- * @brief Getter corresponding to i18n_udatepg_set_decimal().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] pattern_length A pointer that will receive the length of the @a decimal string.
- *
- * @return Corresponding to the decimal point.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_udatepg_set_decimal()
- */
-const i18n_uchar *i18n_udatepg_get_decimal(const i18n_udatepg_h dtpg, int32_t *pattern_length);
-
-/**
- * @brief Adjusts the field types (width and subtype) of a @a pattern to match what is in a @a skeleton.
- * @details That is, if you supply a @a pattern like "d-M H:m", and a @a skeleton of "MMMMddhhmm",
- * then the input pattern is adjusted to be "dd-MMMM hh:mm".
- * This is used internally to get the best match for the input @a skeleton, but can also be used externally.<br>
- * Note that this function uses a non-const #i18n_udatepg_h:
- * It uses a stateful pattern parser which is set up for each generator object,
- * rather than creating one for each function call. Consecutive calls to this function do not affect each other,
- * but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] pattern Input pattern. Must not be @c NULL.
- * @param[in] pattern_length The length of input @a pattern, >= 0.
- * @param[in] skeleton The skeleton. Must not be @c NULL.
- * @param[in] skeleton_length The length of input @a skeleton, >= 0.
- * @param[out] dest Pattern adjusted to match the @a skeleton fields widths and subtypes.
- * @param[in] dest_capacity The capacity of @a dest, >= 0.
- *
- * @return The length of @a dest.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_replace_field_types(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t pattern_length,
- const i18n_uchar *skeleton, int32_t skeleton_length, i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Adjusts the field types (width and subtype) of a pattern to match what is in a @a skeleton.
- * @details That is, if you supply a @a pattern like "d-M H:m", and a @a skeleton of "MMMMddhhmm",
- * then the input @a pattern is adjusted to be "dd-MMMM hh:mm".
- * This is used internally to get the best match for the input @a skeleton, but can also be used externally.<br>
- * Note that this function uses a non-const #i18n_udatepg_h:
- * It uses a stateful pattern parser which is set up for each generator object,
- * rather than creating one for each function call. Consecutive calls to this function do not affect each other,
- * but this function cannot be used concurrently on a single generator object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] pattern Input pattern. Must not be @c NULL.
- * @param[in] pattern_length The length of input @a pattern, >= 0.
- * @param[in] skeleton The skeleton. Must not be @c NULL.
- * @param[in] skeleton_length The length of input @a skeleton, >= 0.
- * @param[in] options Options controlling whether the length of specified
- * fields in the @a pattern are adjusted to match those in the @a skeleton
- * (when this would not happen otherwise).
- * For default behavior, use #I18N_UDATEPG_MATCH_NO_OPTIONS.
- * @param[out] dest Pattern adjusted to match the @a skeleton fields widths and subtypes.
- * @param[in] dest_capacity The capacity of @a dest, >= 0.
- *
- * @return The length of @a dest.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_udatepg_replace_field_types_with_options(i18n_udatepg_h dtpg, const i18n_uchar *pattern, int32_t pattern_length,
- const i18n_uchar *skeleton, int32_t skeleton_length, i18n_udatepg_date_time_pattern_match_options_e options,
- i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Creates an #i18n_uenumeration_h for list of all the skeletons in canonical form.
- * @details Call i18n_udatepg_get_pattern_for_skeleton() to get the corresponding pattern.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] enumeration A pointer to the #i18n_uenumeration_h for list of all the skeletons. The caller must destroy the object.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_skeletons_create(const i18n_udatepg_h dtpg, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Creates an #i18n_uenumeration_h for list of all the base skeletons in canonical form.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg An #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[out] enumeration A pointer to the #i18n_uenumeration_h for list of all the base skeletons. The caller must destroy the object.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_udatepg_base_skeletons_create(const i18n_udatepg_h dtpg, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Gets the pattern corresponding to a given skeleton.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] dtpg The #i18n_udate_format_h handle. Must not be @c NULL.
- * @param[in] skeleton The skeleton. Must not be @c NULL.
- * @param[in] skeleton_length The length of @a skeleton, >= 0.
- * @param[out] pattern_length The pointer to the length of return pattern
- *
- * @return Pattern corresponding to a given skeleton
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const i18n_uchar *i18n_udatepg_get_pattern_for_skeleton(const i18n_udatepg_h dtpg, const i18n_uchar *skeleton, int32_t skeleton_length, int32_t *pattern_length);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UDATEPG_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UENUMERATION_PRODUCT_H__
-#define __UTILS_I18N_UENUMERATION_PRODUCT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_uenumeration.h
- * @version 0.1
- * @brief utils_i18n_uenumeration
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE UEnumeration
- * @brief UEnumeration defines functions for handling String Enumeration.
- *
- * @section CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE_OVERVIEW Overview
- * @details The UEnumeration module allows to create String Enumeration
- * from chars and uchars.
- *
-*/
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE
- * @{
- */
-
-/**
- * @brief Disposes of resources in use by the iterator.
- * @details If @c enumeration is <code>NULL</code>, does nothing. After this call, any <code>char*</code> or <code>i18n_uchar*</code> returned
- * by i18n_uenumeration_unext() or i18n_uenumeration_next() is invalid.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration An #i18n_uenumeration_h to destroy
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uenumeration_destroy(i18n_uenumeration_h enumeration);
-
-/**
- * @brief Returns the number of elements that the iterator traverses.
- * @details If the iterator is out-of-sync with its service, error code is set to #I18N_ERROR_ENUM_OUT_OF_SYNC.
- * This is a convenience function. It can end up being very expensive as all the items might have to be pre-fetched
- * (depending on the type of data being traversed).
- * Use with caution and only when necessary.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration An #i18n_uenumeration_h to count
- *
- * @return The number of elements in the iterator
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_ENUM_OUT_OF_SYNC The iterator is out of sync
- */
-int32_t i18n_uenumeration_count(i18n_uenumeration_h enumeration);
-
-/**
- * @brief Returns the next element in the iterator's list.
- * @details If there are no more elements, returns <code>NULL</code>.
- * If the iterator is out-of-sync with its service, error code is set to #I18N_ERROR_ENUM_OUT_OF_SYNC and <code>NULL</code> is returned.
- * If the native service string is a <code>char*</code> string, it is converted to <code>i18n_uchar*</code> with the invariant converter.
- * The result is terminated by <code>(i18n_uchar)0</code>.
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration An #i18n_uenumeration_h
- * @param[out] result_length A pointer to receive the length of the result (not including the terminating \\0).
- * If the pointer is <code>NULL</code> it is ignored.
- *
- * @return A pointer to the string. The string will be zero-terminated.
- * The return pointer is owned by this iterator and must not be deleted by the caller.
- * The pointer is valid until the next call to any i18n_uenumeration_... method, including i18n_uenumeration_next() or i18n_uenumeration_unext().
- * When all strings have been traversed, returns <code>NULL</code>.
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_ENUM_OUT_OF_SYNC The iterator is out of sync
- */
-const i18n_uchar *i18n_uenumeration_unext(i18n_uenumeration_h enumeration, int32_t *result_length);
-
-/**
- * @brief Returns the next element in the iterator's list.
- * @details If there are no more elements, returns NULL. If the iterator is out-of-sync with its service,
- * the #I18N_ERROR_ENUM_OUT_OF_SYNC error code is set and <code>NULL</code> is returned.
- * If the native service string is a <code>i18n_uchar*</code> string, it is converted to <code>char*</code> with the invariant converter.
- * The result is terminated by <code>(char)0</code>. If the conversion fails (because a character cannot be converted)
- * then the error code is set to #I18N_ERROR_INVARIANT_CONVERSION and the return value is undefined (but non-NULL).
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exceptions section.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration An #i18n_uenumeration_h
- * @param[out] result_length A pointer to receive the length of the result (not including the terminating \\0).
- * If the pointer is <code>NULL</code> it is ignored.
- *
- * @return A pointer to the string. The string will be zero-terminated.
- * The return pointer is owned by this iterator and must not be deleted by the caller.
- * The pointer is valid until the next call to any i18n_uenumeration_... method, including i18n_uenumeration_next() or i18n_uenumeration_unext().
- * When all strings have been traversed, returns <code>NULL</code>.
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_ENUM_OUT_OF_SYNC The iterator is out of sync
- * @exception #I18N_ERROR_INVARIANT_CONVERSION The underlying native string is <code>i18n_uchar*</code> and conversion to <code>char*</code> with the invariant converter fails.
- * This error pertains only to current string, so iteration might be able to continue successfully.
- */
-const char *i18n_uenumeration_next(i18n_uenumeration_h enumeration, int32_t *result_length);
-
-/**
- * @brief Resets the iterator to the current list of service IDs.
- * @details This re-establishes sync with the service and rewinds the iterator to start at the first element.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] enumeration An #i18n_uenumeration_h
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uenumeration_reset(i18n_uenumeration_h enumeration);
-
-/**
- * @brief Given an array of <code>const i18n_uchar*</code> strings, return an #i18n_uenumeration_h.
- * @details String pointers from 0..count-1 must not be <code>NULL</code>.
- * Do not free or modify either the string array or the characters it points to until this object has been destroyed with i18n_uenumeration_destroy().
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] strings An array of const <code>i18n_uchar*</code> strings (each null terminated). All storage is owned by the caller.
- * @param[in] count The length of the array
- * @param[out] enumeration A pointer to the new #i18n_uenumeration_h. Caller is responsible for calling i18n_uenumeration_destroy() to free memory.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uenumeration_destroy()
- */
-int i18n_uenumeration_uchar_strings_enumeration_create(const i18n_uchar *const strings[], int32_t count, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Given an array of <code>const char*</code> strings (invariant chars only), return an #i18n_uenumeration_h.
- * @details String pointers from 0..count-1 must not be <code>NULL</code>.
- * Do not free or modify either the string array or the characters it points to until this object has been destroyed with i18n_uenumeration_destroy().
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] strings A array of <code>char*</code> strings (each null terminated). All storage is owned by the caller.
- * @param[in] count The length of the array
- * @param[out] enumeration A pointer to the new #i18n_uenumeration_h. Caller is responsible for calling i18n_uenumeration_destroy() to free memory
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uenumeration_destroy()
- */
-int i18n_uenumeration_char_strings_enumeration_create(const char *const strings[], int32_t count, i18n_uenumeration_h *enumeration);
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_UENUMERATION_PRODUCT_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright (C) 1997-2013, International Business Machines
- * Corporation and others. All Rights Reserved.
- */
-
-#ifndef __UTILS_I18N_ULOCALE_H__
-#define __UTILS_I18N_ULOCALE_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_ulocale.h
- * @version 0.1
- * @brief utils_i18n_ulocale
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE Ulocale
- * @brief A Locale represents a specific geographical, political, or cultural region.
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_OVERVIEW Overview
- * @details A Locale represents a specific geographical, political, or cultural region.
- * An operation that requires a Locale to perform its task is called locale-sensitive
- * and uses the Locale to tailor information for the user. For example, displaying
- * a number is a locale-sensitive operation. The number should be formatted according
- * to the customs/conventions of the user's native country, region, or culture.
- * In the C APIs, a locale is simply a const char string.
- *
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets a default locale and a full name for the locale
- * @code
- const char *locale;
- const char *in_locale_id = "en_US";
- char language[64] = {0,};
- i18n_uchar result_w[64] = {0,};
- char result[64] = {0,};
- int language_capacity = 64;
- int buf_size_language;
- int buf_size_display_name;
- int ret = I18N_ERROR_NONE;
-
- // Sets default locale
- ret = i18n_ulocale_set_default(getenv("LC_TIME"));
-
- // Gets default locale
- ret = i18n_ulocale_get_default(&locale);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "i18n_ulocale_get_default() failed!!! \n");
- }
- dlog_print(DLOG_INFO, LOG_TAG, "default locale : %s\n", locale); // default locale : en_GB.UTF-8
-
- // Gets the language code for the specified locale
- ret = i18n_ulocale_get_language(locale, language, language_capacity, &buf_size_language);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "i18n_ulocale_get_language() failed!!! \n");
- }
- dlog_print(DLOG_INFO, LOG_TAG, "language code for the locale : %s\n", language); // language code for the locale : en
-
- // Gets the full name suitable for display for the specified locale
- ret = i18n_ulocale_get_display_name(locale, in_locale_id, result_w, 64, &buf_size_display_name);
- if (ret != I18N_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "i18n_ulocale_get_display_name() failed!!! \n");
- }
- i18n_ustring_copy_au(result, result_w);
- dlog_print(DLOG_INFO, LOG_TAG, "full name suitable for the locale : %s\n", result); // full name suitable for the locale : English (United Kingdom)
- * @endcode
- *
- * @section CAPI_BASE_UTILS_I18N_ULOCALE_MODULE_SAMPLE_CODE_2 Sample Code 2
- * @brief See all available locales
- * @code
- int i = 0;
- int32_t count = i18n_ulocale_count_available();
- for(i = 0; i < count; i++)
- {
- dlog_print(DLOG_INFO, LOG_TAG, "Available locale %d : %s " ,i, i18n_ulocale_get_available(i));
- // ...
- //Available locale 5 : en_GB
- //Available locale 6 : en_US
- //Available locale 7 : en_US_POSIX
- // ...
- }
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Gets I18N's default locale.
- * @details The returned string is a snapshot in time, and will remain valid
- * and unchanged even when i18n_ulocale_set_default() is called.
- * The returned storage is owned by I18N, and must not be altered or deleted by the caller.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[out] locale The I18N default locale
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_default(const char **locale);
-
-/**
- * @brief Sets I18N's default locale.
- * @details By default (without calling this function),
- * I18N's default locale will be based on information obtained from the underlying system environment.
- *
- * Changes to I18N's default locale do not propagate back to the system environment.
- *
- * Changes to I18N's default locale to not affect any services that may already be open based on the previous default locale value.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id The new I18N default locale.\n
- * A value of @c NULL will try to get the system's default locale.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_set_default(const char *locale_id);
-
-/**
- * @brief Gets the language code for the specified locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id The locale to get the ISO language code with.\n
- * @c NULL may be used to specify the default.
- * @param[out] language The language code for @a locale_id
- * @param[in] language_capacity The size of the @a language buffer to store the language code with
- * @param[out] buf_size_language The actual buffer size needed for the language code.\n
- * If it's greater than @a language_capacity, the returned language code will be truncated.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_language(const char *locale_id, char *language, int32_t language_capacity, int32_t *buf_size_language);
-
-/**
- * @brief Gets the country code for the specified locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id The locale to get the country code with
- * @param[out] country The country code for @a locale_id
- * @param[in] country_capacity The size of the @a country buffer to store the country code with
- * @param[out] error Error information if retrieving the country code failed
- *
- * @return The actual buffer size needed for the country code.\n
- * If it's greater than @a country_capacity, the returned country code will be truncated.
- */
-int32_t i18n_ulocale_get_country(const char *locale_id, char *country, int32_t country_capacity, int *error);
-
-/**
- * @brief Gets the full name suitable for display for the specified locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] locale_id The locale to get the displayable name with.\n
- * @c NULL may be used to specify the default.
- * @param[in] in_locale_id The locale to be used to display the name.\n
- * @c NULL may be used to specify the default.
- * @param[out] result The displayable name for @a locale_id
- * @param[in] max_result_size The size of the name buffer to store the displayable full name with
- * @param[out] buf_size_display_name The actual buffer size needed for the displayable name.\n
- * If it's greater than @a max_result_size, the returned displayable name will be truncated.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_display_name(const char *locale_id, const char *in_locale_id, i18n_uchar *result, int32_t max_result_size, int32_t *buf_size_display_name);
-
-/**
- * @brief Gets the specified locale from a list of all available locales.
- * @details The return value is a pointer to an item of a locale name array.
- * Both this array and the pointers it contains are owned by I18N
- * and should not be deleted or written through by the caller.
- * The locale name is terminated by a null pointer.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] n The specific locale name index of the available locale list
- *
- * @return A specified locale name of all available locales
- * @exception #I18N_ERROR_NONE Success
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_ulocale_get_available(int32_t n);
-
-/**
- * @brief Gets the size of the all available locale list.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @return The size of the locale list
- * @exception #I18N_ERROR_NONE Success
- */
-int32_t i18n_ulocale_count_available(void);
-
-/* Newly Added APIs */
-
-/**
- * @brief Gets the script code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the ISO script code with
- * @param[out] script The script code for @a locale_id. Must not be @c NULL.
- * @param[in] script_capacity The size of the @a script buffer to store the script code with
- *
- * @return The actual buffer size needed for the script code. If it's greater than @a script_capacity,
- * the returned script code will be truncated. If the @a script buffer is @c NULL
- * or the @a script_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_script(const char *locale_id, char *script, int32_t script_capacity);
-
-/**
- * @brief Gets the variant code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the variant code with
- * @param[out] variant The variant code for @a locale_id
- * @param[in] variant_capacity The size of the @a variant buffer to store the variant code with
- *
- * @return The actual buffer size needed for the variant code. If it's greater than @a variant_capacity,
- * the returned variant code will be truncated. If the @a variant buffer is @c NULL
- * or the @a variant_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_variant(const char *locale_id, char *variant, int32_t variant_capacity);
-
-/**
- * @brief Gets the full name for the specified locale.
- * @details Note : This has the effect of 'canonicalizing' the I18N locale ID to
- * a certain extent. Upper and lower case are set as needed.
- * It does NOT map aliased names in any way.
- * See the top of this header file.
- * This API supports preflighting.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the full name with
- * @param[out] name Fill in buffer for the name without keywords.
- * @param[in] name_capacity Capacity of the fill in buffer.
- *
- * @return The actual buffer size needed for the full name. If it's greater than @a name_capacity,
- * the returned full name will be truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int32_t i18n_ulocale_get_name(const char *locale_id, char *name, int32_t name_capacity);
-
-/**
- * @brief Gets the full name for the specified locale.
- * @details Note : This has the effect of 'canonicalizing' the string to
- * a certain extent. Upper and lower case are set as needed,
- * and if the components were in 'POSIX' format they are changed to
- * I18N format. It does NOT map aliased names in any way.
- * See the top of this header file.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the full name with
- * @param[out] name The full name for @a locale_id
- * @param[in] name_capacity The size of the @a name buffer to store the full name with
- *
- * @return The actual buffer size needed for the full name. If it's greater than @a name_capacity,
- * the returned full name will be truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int32_t i18n_ulocale_canonicalize(const char *locale_id, char *name, int32_t name_capacity);
-
-/**
- * @brief Gets the ISO language code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the ISO language code with
- *
- * @return A language the ISO language code for @a locale_id
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_ulocale_get_iso3_language(const char *locale_id);
-
-/**
- * @brief Gets the ISO country code for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the ISO country code with
- *
- * @return A country the ISO country code for @a locale_id
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_ulocale_get_iso3_country(const char *locale_id);
-
-/**
- * @brief Gets the Win32 LCID value for the specified locale.
- * @details If the I18N locale is not recognized by Windows, 0 will be returned.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the Win32 LCID value with
- *
- * @return A country the Win32 LCID for @a locale_id
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-uint32_t i18n_ulocale_get_lcid(const char *locale_id);
-
-/**
- * @brief Gets the language name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale The locale to get the ISO language code with
- * @param[in] display_locale The locale to be used to display the name.\n
- * @c NULL may be used to specify the default.
- * @param[out] language The displayable language code for @a locale.
- * @param[in] language_capacity The size of the @a language buffer to store the displayable language code with
- *
- * @return The actual buffer size needed for the displayable language code. If it's greater than
- * @a language_capacity, the returned language code will be truncated. If the @a language buffer is @c NULL
- * or the @a language_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_language(const char *locale, const char *display_locale, i18n_uchar *language, int32_t language_capacity);
-
-/**
- * @brief Gets the script name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale The locale to get the displayable script code with. @c NULL may be used to specify the default.
- * @param[in] display_locale The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] script The displayable country code for @a locale
- * @param[in] script_capacity The size of the script buffer to store the displayable script code with
- *
- * @return The actual buffer size needed for the displayable script code. If it's greater than @a script_capacity,
- * the returned displayable script code will be truncated. If the @a script buffer is @c NULL
- * or the @a script_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_script(const char *locale, const char *display_locale, i18n_uchar *script, int32_t script_capacity);
-
-/**
- * @brief Gets the country name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale The locale to get the displayable country code with. @c NULL may be used to specify the default.
- * @param[in] display_locale The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] country The displayable country code for @a locale
- * @param[in] country_capacity The size of the @a country buffer to store the displayable country code with
- *
- * @return The actual buffer size needed for the displayable country code. If it's greater than @a country_capacity,
- * the returned displayable country code will be truncated. If the @a country buffer is @c NULL
- * or the @a country_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_country(const char *locale, const char *display_locale, i18n_uchar *country, int32_t country_capacity);
-
-/**
- * @brief Gets the variant name suitable for display for the specified locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale The locale to get the displayable variant code with. @c NULL may be used to specify the default.
- * @param[in] display_locale The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] variant The displayable variant code for @a locale
- * @param[in] variant_capacity The size of the @a variant buffer to store the displayable variant code with
- *
- * @return The actual buffer size needed for the displayable variant code. If it's greater than @a variant_capacity,
- * the returned displayable variant code will be truncated. If the @a variant buffer is @c NULL
- * or the @a variant_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_variant(const char *locale, const char *display_locale, i18n_uchar *variant, int32_t variant_capacity);
-
-/**
- * @brief Gets the keyword name suitable for display for the specified locale.
- * @details E.g : for the locale string de_DE\@collation=PHONEBOOK, this API gets the display string for the keyword collation.
- * Usage :
- * @code
- * i18n_error_code_e status = I18N_ERROR_NONE;
- * const char* keyword = NULL;
- * int32_t keyword_len = 0;
- * int32_t keyword_count = 0;
- * i18n_uchar display_keyword[256];
- * int32_t display_keyword_len = 0;
- * i18n_uenumeration_h keyword_enum;
- * i18n_ulocale_keywords_create("en_US@collation=PHONEBOOK;calendar=TRADITIONAL", &keyword_enum);
- *
- * for(keyword_count = i18n_uenumeration_count(keyword_enum); keyword_count > 0; keyword_count--){
- * status = get_last_result();
- * if(status > 0){
- * // something went wrong so handle the error
- * break;
- * }
- * // the uenum_next returns NULL-terminated string
- * keyword = i18n_uenumeration_next(keyword_enum, &keyword_len);
- * display_keyword_len = i18n_ulocale_get_display_keyword(keyword, "en_US", display_keyword, 256);
- * // do something interesting
- * }
- * i18n_uenumeration_destroy(keyword_enum);
- * @endcode
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] keyword The keyword whose display string needs to be returned.
- * @param[in] display_locale The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] dest The buffer to which the displayable keyword should be written.
- * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters). If it is 0, then
- * @a dest may be @c NULL and the function will only return the length of the result without
- * writing any of the result string (pre-flighting).
- *
- * @return The actual buffer size needed for the displayable variant code. If the @a dest buffer is @c NULL
- * or the @a dest_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ulocale_keywords_create()
- * @see i18n_uenumeration_count()
- * @see i18n_uenumeration_next()
- * @see i18n_uenumeration_destroy()
- */
-int32_t i18n_ulocale_get_display_keyword(const char *keyword, const char *display_locale, i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Gets the value of the keyword suitable for display for the specified locale.
- * @details E.g : for the locale string de_DE\@collation=PHONEBOOK, this API gets the display string for PHONEBOOK,
- * in the display locale, when "collation" is specified as the keyword.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale The locale to get the displayable variant code with. @c NULL may be used to specify the default.
- * @param[in] keyword The keyword for whose value should be used.
- * @param[in] display_locale The locale to be used to display the name. @c NULL may be used to specify the default.
- * @param[out] dest The buffer to which the displayable keyword should be written.
- * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters). If it is 0, then
- * @a dest may be @c NULL and the function will only return the length of the result
- * without writing any of the result string (pre-flighting).
- *
- * @return The actual buffer size needed for the displayable variant code. If the @a dest buffer is @c NULL
- * or the @a dest_capacity is lower than @c 0 , then the #I18N_ERROR_INVALID_PARAMETER error will be set
- * and @c 0 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_display_keyword_value(const char *locale, const char *keyword, const char *display_locale, i18n_uchar *dest, int32_t dest_capacity);
-
-/**
- * @brief Gets a list of all available 2-letter language codes defined in ISO 639,
- * plus additional 3-letter codes determined to be useful for locale generation as
- * defined by Unicode CLDR.
- * @details This is a pointer to an array of pointers to arrays of char. All of these pointers are owned
- * by I18N - do not delete them, and do not write through them.
- * The array is terminated with a @c NULL pointer.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return A list of all available language codes
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *const *i18n_ulocale_get_iso_languages(void);
-
-/**
- *
- * @brief Gets a list of all available 2-letter country codes defined in ISO 639.
- * @details This is a pointer to an array of pointers to arrays of char. All of these pointers are
- * owned by I18N - do not delete them, and do not write through them.
- * The array is terminated with a @c NULL pointer.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return A list of all available country codes
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *const *i18n_ulocale_get_iso_countries(void);
-
-/**
- * @brief Truncates the locale ID string to get the parent locale ID.
- * @details Copies the part of the string before the last underscore.
- * The parent locale ID will be an empty string if there is no
- * underscore, or if there is only one underscore at @a locale_id[0].
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id Input locale ID string.
- * @param[out] parent Output string buffer for the parent locale ID. Must not be @c NULL.
- * @param[in] parent_capacity Size of the output buffer. If it's lower than the number of characters
- * stored in the @a locale_id between the first character and the last occurrence
- * of the underscore ("_") character, than the error code will be set to
- * #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @return The length of the parent locale ID. If the @a parent buffer is @c NULL or the @a parent_capacity is lower than @c 0,
- * then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the capacity of the @a parent is lower than the number of characters
- * in the @a locale_id from index 0 to the index of the last occurrence of
- * the underscore ("_") symbol.
- */
-int32_t i18n_ulocale_get_parent(const char *locale_id, char *parent, int32_t parent_capacity);
-
-/**
- * @brief Gets the full name for the specified locale, like i18n_ulocale_get_name(), but without keywords.
- * @details Note : This has the effect of 'canonicalizing' the string to a certain extent.
- * Upper and lower case are set as needed,
- * and if the components were in 'POSIX' format they are changed to I18N format.
- * It does NOT map aliased names in any way.
- * See the top of this header file.
- *
- * This API strips off the keyword part, so "de_DE\@collation=phonebook" will become "de_DE".
- * This API supports preflighting.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the full name with
- * @param[out] name Fill in buffer for the name without keywords.
- * @param[in] name_capacity Capacity of the fill in buffer.
- *
- * @return The actual buffer size needed for the full name. If it's greater than @a name_capacity,
- * the returned full name will be truncated.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
- */
-int32_t i18n_ulocale_get_base_name(const char *locale_id, char *name, int32_t name_capacity);
-
-/**
- * @brief Gets an enumeration of keywords for the specified locale.
- * @details Enumeration must get disposed of by the client using i18n_uenumeration_destroy() function.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to get the variant code with
- *
- * @param enumeration A pointer to the enumeration of keywords or @c NULL if there are no keywords.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_keywords_create(const char *locale_id, i18n_uenumeration_h *enumeration);
-
-/**
- * @brief Gets the value for a keyword.
- * @details Locale name does not need to be normalized.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id A locale name containing the keyword ("de_DE@currency=EURO;collation=PHONEBOOK")
- * @param[in] keyword_name The name of the keyword for which we want the value. Case insensitive.
- * @param[out] buffer Receiving buffer
- * @param[in] buffer_capacity Capacity of receiving @a buffer
- *
- * @return The length of keyword value. If the @a keyword_name or @a buffer is @c NULL or the @a buffer_capacity is lower than @c 0,
- * then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_keyword_value(const char *locale_id, const char *keyword_name, char *buffer, int32_t buffer_capacity);
-
-/**
- * @brief Sets or removes the value of the specified keyword.
- * @details For removing all keywords(retrieving only locale base name associated with the keywords),
- * use i18n_ulocale_get_base_name().
- *
- * NOTE : Unlike almost every other I18N function which takes a
- * buffer, this function will NOT truncate the output text. If a
- * #I18N_ERROR_BUFFER_OVERFLOW is received, it means that the original
- * buffer is untouched. This is done to prevent incorrect or possibly
- * even malformed locales from being generated and used.
- *
- * Below code prints following logs in SDK:
- *
- * Locale and keywords: en_US\@abc=12;def=34 \n
- * keyword1: abc \n
- * keyword2: def \n
- * Locale: en_US \n
- * Keyword1 value: 12
- *
- * @code
- * int32_t buff_size = 50;
- * int32_t sub_buff_size = 45;
- * char *buff = malloc(sizeof(char)*buff_size);
- * char *sub_buff = malloc(sizeof(char)*sub_buff_size);
- * char *locale = "en_US";
- *
- * snprintf(buff, buff_size, "%s%s",locale, sub_buff);
- *
- * i18n_ulocale_set_keyword_value("abc", "cba", buff, buff_size);
- * i18n_ulocale_set_keyword_value("def", "34", buff, buff_size);
- *
- * i18n_uenumeration_h keyword_enum;
- * i18n_ulocale_keywords_create(buff, &keyword_enum);
- *
- * int32_t res_len = 0;
- * const char *keyw = i18n_uenumeration_next(keyword_enum, &res_len);
- * const char *keyw2 = i18n_uenumeration_next(keyword_enum, &res_len);
- *
- * char *only_locale = malloc(sizeof(char)*10);
- * i18n_ulocale_get_base_name(buff, only_locale, 10);
- *
- * int32_t buff_size_get = 50;
- * char *buff_out = malloc(sizeof(char)*buff_size_get);
- * i18n_ulocale_get_keyword_value(buff, "abc", buff_out, buff_size_get);
- *
- * dlog_print(DLOG_DEBUG, "test", "Locale and keywords: %s", buff);
- * dlog_print(DLOG_DEBUG, "test", "keyword1: %s", keyw);
- * dlog_print(DLOG_DEBUG, "test", "keyword2: %s", keyw2);
- * dlog_print(DLOG_DEBUG, "test", "Locale: %s", only_locale);
- * dlog_print(DLOG_DEBUG, "test", "Keyword1 value: %s", buff_out);
- *
- * i18n_uenumeration_destroy(keyword_enum)
- * free(buff);
- * free(sub_buff);
- * free(only_locale);
- * free(buff_out);
- * @endcode
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] keyword_name A name of the keyword to be set. Case insensitive.
- * @param[in] keyword_value A value of the keyword to be set. If 0-length or
- * @c NULL, will result in the keyword being removed.
- * No error is given if that keyword does not exist.
- * @param[out] buffer Input buffer containing locale to be modified.
- * @param[in] buffer_capacity Capacity of receiving @a buffer
- *
- * @return The length needed for the @a buffer. If the @a keyword_name or @a buffer is @c NULL or the @a buffer_capacity is lower than @c 0,
- * then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_ulocale_get_keyword_value()
- */
-int32_t i18n_ulocale_set_keyword_value(const char *keyword_name, const char *keyword_value, char *buffer, int32_t buffer_capacity);
-
-/**
- * @brief Gets the layout character orientation for the specified locale.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id locale name
- * @param[out] layout_type A pointer to the enum indicating the layout orientation for characters.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_character_orientation(const char *locale_id, i18n_ulocale_layout_type_e *layout_type);
-
-/**
- * @brief Gets the layout line orientation for the specified locale.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id locale name
- * @param[out] layout_type A pointer to the enum indicating the layout orientation for lines.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_ulocale_get_line_orientation(const char *locale_id, i18n_ulocale_layout_type_e *layout_type);
-
-/**
- * @brief Gets the I18N locale ID for the specified Win32 LCID value.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] host_id The Win32 LCID to translate
- * @param[out] locale The output buffer for the I18N locale ID, which will be NULL-terminated if there is room.
- * @param[in] locale_capacity The size of the output buffer
- *
- * @return The actual size of the locale ID, not including NULL-termination.
- * If the @a locale buffer is @c NULL or the @a locale_capacity is lower than @c 0,
- * then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_get_locale_for_lcid(uint32_t host_id, char *locale, int32_t locale_capacity);
-
-/**
- * @brief Adds the likely subtags for a provided locale ID, per the algorithm described
- * in the following CLDR technical report : http://www.unicode.org/reports/tr35/#Likely_Subtags
- * @details If @a locale_id is already in the maximal form, or there is no data available
- * for maximization, it will be copied to the output buffer. For example,
- * "und-Zzzz" cannot be maximized, since there is no reasonable maximization.
- *
- * Examples :
- *
- * "en" maximizes to "en_Latn_US"
- *
- * "de" maximizes to "de_Latn_US"
- *
- * "sr" maximizes to "sr_Cyrl_RS"
- *
- * "sh" maximizes to "sr_Latn_RS" (Note this will not reverse.)
- *
- * "zh_Hani" maximizes to "zh_Hans_CN" (Note this will not reverse.)
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to maximize
- * @param[out] maximized_locale_id The maximized locale
- * @param[in] maximized_locale_id_capacity The capacity of the @a maximized_locale_id buffer
- *
- * @return The actual buffer size needed for the maximized locale. If it's
- * greater than @a maximized_lacale_id_capacity, the returned ID will be truncated.
- * On error, the return value is -1.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_add_likely_subtags(const char *locale_id, char *maximized_locale_id, int32_t maximized_locale_id_capacity);
-
-/**
- * @brief Minimizes the subtags for a provided locale ID, per the algorithm described
- * in the following CLDR technical report: http://www.unicode.org/reports/tr35/#Likely_Subtags
- * @details If @a locale_id is already in the minimal form, or there is no data available
- * for minimization, it will be copied to the output buffer. Since the
- * minimization algorithm relies on proper maximization, see the comments
- * for i18n_ulocale_add_likely_subtags() for reasons why there might not be any data.
- *
- * Examples :
- *
- * "en_Latn_US" minimizes to "en"
- *
- * "de_Latn_US" minimizes to "de"
- *
- * "sr_Cyrl_RS" minimizes to "sr"
- *
- * "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the script, and minimizing to "zh" would imply "zh_Hans_CN".)
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The locale to minimize
- * @param[out] minimized_locale_id The minimized locale
- * @param[in] minimized_locale_id_capacity The capacity of the @a minimized_locale_id buffer
- *
- * @return The actual buffer size needed for the minimized locale. If it's
- * greater than @a minimized_locale_id_capacity, the returned ID will be truncated.
- * On error, the return value is -1.
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_minimize_subtags(const char *locale_id, char *minimized_locale_id, int32_t minimized_locale_id_capacity);
-
-/**
- * @brief Returns a locale ID for the specified BCP47 language tag string.
- * @details If the specified language tag contains any ill-formed subtags,
- * the first such subtag and all following subtags are ignored.<br>
- *
- * This implements the 'Language-Tag' production of BCP47, and so
- * supports grandfathered (regular and irregular) as well as private
- * use language tags. Private use tags are represented as 'x-whatever',
- * and grandfathered tags are converted to their canonical replacements
- * where they exist. Note that a few grandfathered tags have no modern
- * replacement, these will be converted using the fallback described in
- * the first paragraph, so some information might be lost.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] langtag The input BCP47 language tag.
- * @param[out] locale_id The output buffer receiving a locale ID for the
- * specified BCP47 language tag.
- * @param[in] locale_id_capacity The size of the @a locale_id output buffer.
- * @param[in] parsed_length If not @c NULL, successfully parsed length
- * for the input language tag is set.
- *
- * @return The length of the locale ID. If the @a langtag or @a locale_id buffer is @c NULL or the @a locale_id_capacity is lower than @c 0,
- * then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_for_language_tag(const char *langtag, char *locale_id, int32_t locale_id_capacity, int32_t *parsed_length);
-
-/**
- * @brief Returns a well-formed language tag for this locale ID.
- * @details Note : When @a strict is @c false, any locale
- * fields which do not satisfy the BCP47 syntax requirement will
- * be omitted from the result. When @a strict is
- * @c true, this function sets #I18N_ERROR_INVALID_PARAMETER to the
- * result if any locale fields do not satisfy the
- * BCP47 syntax requirement.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_id The input locale ID
- * @param[out] langtag The output buffer receiving BCP47 language
- * tag for the locale ID.
- * @param[in] langtag_capacity The size of the BCP47 language tag
- * output buffer.
- * @param[in] strict Boolean value indicating if the function returns
- * an error for an ill-formed input locale ID.
- *
- * @return The length of the BCP47 language tag. If the @a locale_id or @a langtag buffer is @c NULL or the @a langtag_capacity is lower than @c 0,
- * then the #I18N_ERROR_INVALID_PARAMETER error will be set and @c -1 will be returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_ulocale_to_language_tag(const char *locale_id, char *langtag, int32_t langtag_capacity, i18n_ubool strict);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_ULOCALE_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UNORMALIZATION_H__
-#define __UTILS_I18N_UNORMALIZATION_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_unormalization.h
- * @version 0.1
- * @brief utils_i18n_unormaliztion
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE Unormalization
- * @brief The Unormalization module provides Unicode normalization functionality for standard unicode normalization.
- *
- * @section CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE_OVERVIEW Overview
- * @details The Unormalization module provides Unicode normalization functionality for standard unicode normalization.
- * All instances of i18n_unormalizer_h are unmodifiable/immutable.
- * Instances returned by i18n_unormalization_get_instance() are singletons that must not be deleted by the caller.
- *
- * @section CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Creates a normalizer and normalizes a unicode string
- * @code
- i18n_unormalizer_h normalizer = NULL;
- i18n_uchar src = 0xAC00;
- i18n_uchar dest[4] = {0,};
- int dest_str_len = 0;
- int i = 0;
-
- // gets instance for normalizer
- i18n_unormalization_get_instance( NULL, "nfc", I18N_UNORMALIZATION_DECOMPOSE, &normalizer );
-
- // normalizes a unicode string
- i18n_unormalization_normalize( normalizer, &src, 1, dest, 4, &dest_str_len );
- dlog_print(DLOG_INFO, LOG_TAG, "src is 0x%x\n", src ); // src is 0xAC00 (0xAC00: A Korean character combined with consonant and vowel)
-
- for ( i = 0; i < dest_str_len; i++ ) {
- dlog_print(DLOG_INFO, LOG_TAG, "dest[%d] is 0x%x\t", i + 1, dest[i] ); // dest[1] is 0x1100 dest[2] is 0x1161 (0x1100: consonant, 0x1161: vowel)
- }
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE
- * @{
- */
-
-/**
- * @brief Gets a i18n_unormalizer_h which uses the specified data file and composes or decomposes text according to the specified mode.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] package_name @c NULL for ICU built-in data, otherwise application data package name.
- * @param[in] name "nfc" or "nfkc" or "nfkc_cf" or the name of the custom data file.
- * @param[in] mode The normalization mode (compose or decompose).
- * @param[out] normalizer The requested normalizer on success.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unormalization_get_instance(const char *package_name, const char *name, i18n_unormalization_mode_e mode,
- i18n_unormalizer_h *normalizer);
-
-/**
- * @brief Writes the normalized form of the source string to the destination string(replacing its contents).
- * @details The source and destination strings must be different buffers.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] normalizer i18n normalizer handle.
- * @param[in] src The source string.
- * @param[in] len The length of the source string, otherwise @c -1 if NULL-terminated.
- * @param[out] dest The destination string\n
- * Its contents are replaced with normalized @a src.
- * @param[in] capacity The number of string_uchar that can be written to @a dest
- * @param[out] len_deststr The length of the destination string
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unormalization_normalize(i18n_unormalizer_h normalizer, const i18n_uchar *src, int32_t len, i18n_uchar *dest, int32_t capacity, int32_t *len_deststr);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UNORMALIZATION_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_UNUMBER_H__
-#define __UTILS_I18N_UNUMBER_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_unumber.h
- * @version 0.1
- * @brief utils_i18n_unumber
- */
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE Unumber
- * @brief The Unumber module helps you format and parse numbers for any locale.
- *
- * @section CAPI_BASE_UTILS_I18N_UNUMBER_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_UNUMBER_MODULE_OVERVIEW Overview
- * @details The Unumber module helps you format and parse numbers for any locale.
- * Your code can be completely independent of the locale conventions for decimal
- * points, thousands-separators, or even the particular decimal digits used,
- * or whether the number format is even decimal. There are different number format
- * styles like decimal, currency, percent and spellout.
- *
- * @section CAPI_BASE_UTILS_I18N_UNUMBER_MODULE_SAMPLE_CODE_1 Sample Code 1
- * @brief Gets a currency symbol according to a given locale.
- * @code
- int buf_len;
- i18n_uchar u_buffer[64];
- char a_buffer[64];
- i18n_unumber_format_h num_format;
-
- // creates and returns a new unumber_format
- i18n_unumber_create(I18N_UNUMBER_CURRENCY, NULL, -1, "en_US", NULL, &num_format);
-
- // gets a symbol associated with i18n_unumber_format
- i18n_unumber_get_symbol(num_format, I18N_UNUMBER_CURRENCY_SYMBOL, u_buffer, 64, &buf_len);
-
- i18n_ustring_copy_au(a_buffer, u_buffer);
- // en_US currency symbol: $
- dlog_print(DLOG_INFO, LOG_TAG, "en_US currency symbol: %s \n", a_buffer);
-
- // destroys i18n_unumber_format
- i18n_unumber_destroy(num_format);
- * @endcode
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Creates and returns a new unumber_format_h for formatting and parsing numbers.
- * @details A unumber_format_style_e may be used to format numbers by calling i18n_unumber_create().
- * The caller must call i18n_unumber_destroy() when done to release resources used by this object.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks Must release @a num_format using i18n_unumber_destroy().
- *
- * @param[in] style The type of number format to create: one of
- * #I18N_UNUMBER_DECIMAL,
- * #I18N_UNUMBER_CURRENCY,
- * #I18N_UNUMBER_PERCENT,
- * #I18N_UNUMBER_SCIENTIFIC,
- * #I18N_UNUMBER_CURRENCY_ISO,
- * #I18N_UNUMBER_CURRENCY_PLURAL,
- * #I18N_UNUMBER_SPELLOUT,
- * #I18N_UNUMBER_ORDINAL,
- * #I18N_UNUMBER_DURATION,
- * #I18N_UNUMBER_NUMBERING_SYSTEM,
- * #I18N_UNUMBER_PATTERN_RULEBASED,
- * or #I18N_UNUMBER_DEFAULT \n
- * If #I18N_UNUMBER_PATTERN_DECIMAL or #I18N_UNUMBER_PATTERN_RULEBASED is passed then the number format is created using the given pattern, which must conform
- * to the syntax described in DecimalFormat or RuleBasedNumberFormat, respectively.
- * @param[in] pattern A pattern specifying the format to use \n This parameter is ignored unless the style is #I18N_UNUMBER_PATTERN_DECIMAL or #I18N_UNUMBER_PATTERN_RULEBASED.
- * @param[in] pattern_len The number of characters in the pattern, otherwise @c -1 if NULL-terminated\n
- * This parameter is ignored unless the style is I18N_UNUMBER_PATTERN_*.
- * @param[in] locale A locale identifier to use to determine formatting
- * and parsing conventions, otherwise @c NULL to use the default locale.
- * @param[in] parse_err A pointer to a #i18n_uparse_error_s structure to receive the
- * details of any parsing errors, otherwise @c NULL if no parsing error details are desired.
- * @param[out] num_format A pointer to a newly created #i18n_unumber_format_h, otherwise @c NULL if an error occurs.
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_create(i18n_unumber_format_style_e style, const i18n_uchar *pattern, int32_t pattern_len, const char *locale,
- i18n_uparse_error_s *parse_err, i18n_unumber_format_h *num_format);
-
-/**
- * @brief Destroys an #i18n_unumber_format_h.
- * @details Once destroyed, an #i18n_unumber_format may no longer be used.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] fmt The formatter to destroy
- *
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_destroy(i18n_unumber_format_h fmt);
-
-/**
- * @brief Gets a symbol associated with an #i18n_unumber_format_h.
- * @details An #i18n_unumber_format_h uses symbols to represent the special locale-dependent characters in a number,
- * for example the percent sign. This API is not supported for rule-based formatters.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] fmt The formatter to query.
- * @param[in] symbol The unumber_format_symbol_e constant for the symbol to get
- * @param[out] buffer The string buffer that will receive the symbol string\n
- * If it is @c NULL, then only the length of the symbol is returned.
- * @param[in] size The size of the string buffer
- * @param[out] len_symbol The length of the symbol\n
- * The buffer is not modified if <code>length >= size</code>
- *
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_get_symbol(const i18n_unumber_format_h fmt, i18n_unumber_format_symbol_e symbol, i18n_uchar *buffer, int32_t size, int32_t *len_symbol);
-
-
-/* Newly Added APIs */
-
-
-/**
- * @brief Creates a copy of an #i18n_unumber_format_h.
- * @details This function performs a deep copy.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The format to copy.
- * @param[out] fmt_clone A pointer to clone of @a fmt.
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_clone(const i18n_unumber_format_h fmt, i18n_unumber_format_h *fmt_clone);
-
-/**
-* @brief Formats an integer using a i18n_unumber_format_h.
-* @details The integer will be formatted according to the i18n_unumber_format_h's locale.
-* @since_tizen 2.3.1
-*
-* @param[in] fmt The formatter to use.
-* @param[in] number The number to format.
-* @param[out] result A pointer to a buffer to receive the NULL-terminated formatted number.
-* If the formatted number fits into dest but cannot be NULL-terminated (length == resultLength)
-* then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
-* If the formatted number doesn't fit into result then the error code is set to #I18N_ERROR_BUFFER_OVERFLOW.
-* @param[in] result_length The maximum size of result.
-* @param[in] pos A pointer to a i18n_ufield_position. On input, position->field is read.
-* On output, position->beginIndex and position->endIndex indicate the beginning and ending indices of field number position->field, if such a field exists.
-* This parameter may be NULL, in which case no field
-* @param[out] status A pointer to an i18n_error_code_e to receive any errors
-*
-* @return The total buffer size needed; if greater than result_length, the output was truncated.
-*/
-int32_t i18n_unumber_format(const i18n_unumber_format_h fmt, int32_t number, i18n_uchar *result, int32_t result_length, i18n_ufield_position_s *pos, i18n_error_code_e *status);
-
-/**
- * @brief Formats an int64 using an #i18n_unumber_format_h.
- * @details The int64 will be formatted according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] number The number to format.
- * @param[out] result A pointer to a buffer to receive the NULL-terminated formatted number.
- * If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- * If the formatted number doesn't fit into result then the error code is set to #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length The maximum size of @a result.
- * @param[in,out] pos An #i18n_ufield_position_h handle. On input, position->field is read.
- * On output, position->beginIndex and position->endIndex indicate the beginning and ending indices of field number position->field, if such a field exists.
- * This parameter may be NULL, in which case no field
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_int64(const i18n_unumber_format_h fmt, int64_t number, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Formats a double using an #i18n_unumber_format_h.
- * @details The double will be formatted according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] number The number to format.
- * @param[out] result A pointer to a buffer to receive the NULL-terminated formatted number.
- * If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- * If the formatted number doesn't fit into result then the error code is set to #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length The maximum size of @a result.
- * @param[in,out] pos An #i18n_ufield_position_h handle. On input, position->field is read.
- * On output, position->beginIndex and position->endIndex indicate the beginning
- * and ending indices of field number position->field, if such a field exists.
- * This parameter may be NULL, in which case no field
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_double(const i18n_unumber_format_h fmt, double number, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Formats a decimal number using an #i18n_unumber_format_h.
- * @details The number will be formatted according to the #i18n_unumber_format_h's locale. The syntax of the input number
- * is a "numeric string" as defined in the Decimal Arithmetic Specification, available at http://speleotrove.com/decimal
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] number The number to format.
- * @param[in] length The length of the input @a number, or -1 if the input is NULL-terminated.
- * @param[out] result A pointer to a buffer to receive the NULL-terminated formatted number.
- * If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>) then
- * the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- * If the formatted number doesn't fit into result then the error code is set to
- * #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length The maximum size of @a result.
- * @param[in,out] pos An #i18n_ufield_position_h handle. On input, position->field is read.
- * On output, position->beginIndex and position->endIndex indicate the beginning and ending
- * indices of field number position->field, if such a field exists.
- * This parameter may be NULL, in which case it is ignored.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_decimal(const i18n_unumber_format_h fmt, const char *number, int32_t length, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Formats a double currency amount using an #i18n_unumber_format_h.
- * @details The double will be formatted according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] number The number to format.
- * @param[in] currency The 3-letter NULL-terminated ISO 4217 currency code.
- * @param[out] result A pointer to a buffer to receive the NULL-terminated formatted number.
- * If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * then the error code is set to #I18N_WARNING_STRING_NOT_TERMINATED.
- * If the formatted number doesn't fit into result then the error code is set to
- * #I18N_ERROR_BUFFER_OVERFLOW.
- * @param[in] result_length The maximum size of @a result.
- * @param[in,out] pos An #i18n_ufield_position_h handle. On input, position->field is read.
- * On output, position->beginIndex and position->endIndex indicate the beginning and ending indices
- * of field number position->field, if such a field exists.
- * This parameter may be NULL, in which case it is ignored.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_WARNING_STRING_NOT_TERMINATED If the formatted number fits into @a result but cannot be NULL-terminated (<code>length == result_length</code>)
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If the formatted number doesn't fit into the @a result buffer
- */
-int32_t i18n_unumber_format_double_currency(const i18n_unumber_format_h fmt, double number, i18n_uchar *currency, i18n_uchar *result, int32_t result_length, i18n_ufield_position_h pos);
-
-/**
- * @brief Parses a string into an integer using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] text The text to parse.
- * @param[in] text_length The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- * If not NULL, on output the offset at which parsing ended.
- *
- * @return The value of the parsed integer
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_parse(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Parses a string into an int64 using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] text The text to parse.
- * @param[in] text_length The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- * If not NULL, on output the offset at which parsing ended.
- *
- * @return The value of the parsed integer
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int64_t i18n_unumber_parse_int64(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Parses a string into a double using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] text The text to parse.
- * @param[out] text_length The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- * If not NULL, on output the offset at which parsing ended.
- *
- * @return The value of the parsed double
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-double i18n_unumber_parse_double(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos);
-
-/**
- * @brief Parses a number from a string into an unformatted numeric string using an #i18n_unumber_format_h.
- * @details The input string will be parsed according to the #i18n_unumber_format_h's locale.
- * The syntax of the output is a "numeric string" as defined in the Decimal Arithmetic Specification, available at
- * http://speleotrove.com/decimal
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] text The text to parse.
- * @param[in] text_length The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos If not NULL, on input a pointer to an integer specifying the offset at which to begin parsing.
- * If not NULL, on output the offset at which parsing ended.
- * @param[out] out_buf A (char *) buffer to receive the parsed number as a string.
- * The output string will be NULL-terminated if there is sufficient space.
- * @param[out] out_buf_length The size of the output buffer. May be zero, in which case the @a out_buf pointer may be NULL,
- * and the function will return the size of the output string.
- *
- * @return The length of the output string, not including any terminating NULL.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_parse_decimal(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos, char *out_buf, int32_t out_buf_length);
-
-/**
- * @brief Parses a string into a double and a currency using an #i18n_unumber_format_h.
- * @details The string will be parsed according to the #i18n_unumber_format_h's locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to use.
- * @param[in] text The text to parse.
- * @param[in] text_length The length of @a text, or -1 if NULL-terminated.
- * @param[in,out] parse_pos A pointer to an offset index into text at which to begin parsing. On output, @a parse_pos will
- * point after the last parsed character. This parameter may be NULL, in which case parsing begins
- * at offset 0.
- * If not NULL, on output the offset at which parsing ended.
- * @param[out] currency A pointer to the buffer to receive the parsed NULL- terminated currency.
- * This buffer must have a capacity of at least 4 #i18n_uchar characters.
- *
- * @return The parsed double
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-double i18n_unumber_parse_double_currency(const i18n_unumber_format_h fmt, const i18n_uchar *text, int32_t text_length, int32_t *parse_pos, i18n_uchar *currency);
-
-/**
- * @brief Sets the pattern used by an #i18n_unumber_format_h.
- * @details This can only be used on a DecimalFormat, other formats return #I18N_ERROR_NOT_SUPPORTED in the status.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] format The formatter to set.
- * @param[in] localized true if the pattern is localized, false otherwise.
- * @param[in] pattern The new pattern
- * @param[in] pattern_length The length of @a pattern, or -1 if NULL-terminated.
- * @param[out] parse_error A pointer to #i18n_uparse_error_s to receive information about errors occurred during parsing,
- * or NULL if no parse error information is desired.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_apply_pattern(i18n_unumber_format_h format, i18n_ubool localized, const i18n_uchar *pattern, int32_t pattern_length, i18n_uparse_error_s *parse_error);
-
-/**
- * @brief Gets a locale for which decimal formatting patterns are available.
- * @details An #i18n_unumber_format_h in a locale returned by this function will perform the correct formatting and parsing for the locale.
- * The results of this call are not valid for rule-based number formats.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] locale_index The index of the desired locale.
- *
- * @return A locale for which number formatting patterns are available, or 0 if none.
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-const char *i18n_unumber_get_available(int32_t locale_index);
-
-/**
- * @brief Determines how many locales have decimal formatting patterns available.
- * @details The results of this call are not valid for rule-based number formats.
- * This function is useful for determining the loop ending condition for calls to i18n_unumber_get_available().
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @return The number of locales for which decimal formatting patterns are available.
- *
- * @exception #I18N_ERROR_NONE Successful
- */
-int32_t i18n_unumber_count_available(void);
-
-/**
- * @brief Gets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to query.
- * @param[in] attr The attribute to query; one of #I18N_UNUMBER_PARSE_INT_ONLY, #I18N_UNUMBER_GROUPING_USED,
- * #I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN, #I18N_UNUMBER_MAX_INTEGER_DIGITS, #I18N_UNUMBER_MIN_INTEGER_DIGITS,
- * #I18N_UNUMBER_INTEGER_DIGITS, #I18N_UNUMBER_MAX_FRACTION_DIGITS, #I18N_UNUMBER_MIN_FRACTION_DIGITS,
- * #I18N_UNUMBER_FRACTION_DIGITS, #I18N_UNUMBER_MULTIPLIER, #I18N_UNUMBER_GROUPING_SIZE,
- * #I18N_UNUMBER_ROUNDING_MODE, #I18N_UNUMBER_FORMAT_WIDTH, #I18N_UNUMBER_PADDING_POSITION,
- * #I18N_UNUMBER_SECONDARY_GROUPING_SIZE, #I18N_UNUM_SCALE.
- *
- * @return The value of @a attr or @c -1 if the given attribute is not supported.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_get_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr);
-
-/**
- * @brief Sets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- * If the formatter does not understand the attribute, the call is ignored. Rule-based formatters only understand
- * the lenient-parse attribute. The #I18N_UNUMBER_ROUNDING_INCREMENT attribute is not supported.
- *
- * Note that the value for the #I18N_UNUMBER_PADDING_POSITION attribute should be one of the #i18n_unumber_pad_position_e
- * enumeration values.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to set.
- * @param[in] attr The attribute to query; one of #I18N_UNUMBER_PARSE_INT_ONLY, #I18N_UNUMBER_GROUPING_USED,
- * #I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN, #I18N_UNUMBER_MAX_INTEGER_DIGITS, #I18N_UNUMBER_MIN_INTEGER_DIGITS,
- * #I18N_UNUMBER_INTEGER_DIGITS, #I18N_UNUMBER_MAX_FRACTION_DIGITS, #I18N_UNUMBER_MIN_FRACTION_DIGITS,
- * #I18N_UNUMBER_FRACTION_DIGITS, #I18N_UNUMBER_MULTIPLIER, #I18N_UNUMBER_GROUPING_SIZE,
- * #I18N_UNUMBER_ROUNDING_MODE, #I18N_UNUMBER_FORMAT_WIDTH, #I18N_UNUMBER_PADDING_POSITION,
- * #I18N_UNUMBER_SECONDARY_GROUPING_SIZE, #I18N_UNUMBER_SIGNIFICANT_DIGITS_USED, #I18N_UNUMBER_MIN_SIGNIFICANT_DIGITS,
- * #I18N_UNUMBER_MAX_SIGNIFICANT_DIGITS, #I18N_UNUMBER_LENIENT_PARSE, #I18N_UNUM_SCALE,
- * #I18N_UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS, #I18N_UNUM_PARSE_NO_EXPONENT.
- * @param[in] new_value The new value of @a attr.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_NOT_SUPPORTED Not supported
- */
-int i18n_unumber_set_attribute(i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr, int32_t new_value);
-
-/**
- * @brief Gets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- * If the formatter does not understand the attribute, -1 is returned.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to query.
- * @param[in] attr The attribute to query; only #I18N_UNUMBER_ROUNDING_INCREMENT is supported.
- *
- * @return The value of @a attr.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-double i18n_unumber_get_double_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr);
-
-/**
- * @brief Sets a numeric attribute associated with an #i18n_unumber_format_h.
- * @details An example of a numeric attribute is the number of integer digits a formatter will produce.
- * If the formatter does not understand the attribute, this call is ignored.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to set.
- * @param[in] attr The attribute to query; Only #I18N_UNUMBER_ROUNDING_INCREMENT is supported.
- * @param[in] new_value The new value of @a attr.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_set_double_attribute(i18n_unumber_format_h fmt, i18n_unumber_format_attribute_e attr, double new_value);
-
-/**
- * @brief Gets a text attribute associated with an #i18n_unumber_format_h.
- * @details An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute,
- * #I18N_ERROR_NOT_SUPPORTED error code is set.
- * Rule-based formatters only understand #I18N_UNUMBER_DEFAULT_RULESET and #I18N_UNUMBER_PUBLIC_RULESETS.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to query.
- * @param[in] tag The attribute to query; one of #I18N_UNUMBER_POSITIVE_PREFIX, #I18N_UNUMBER_POSITIVE_SUFFIX,
- * #I18N_UNUMBER_NEGATIVE_PREFIX, #I18N_UNUMBER_NEGATIVE_SUFFIX, #I18N_UNUMBER_PADDING_CHARACTER,
- * #I18N_UNUMBER_CURRENCY_CODE, #I18N_UNUMBER_DEFAULT_RULESET, or #I18N_UNUMBER_PUBLIC_RULESETS.
- * @param[out] result A pointer to a buffer to receive the attribute.
- * @param[in] result_length The maximum size of @a result.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_get_text_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_text_attribute_e tag, i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Sets a text attribute associated with an #i18n_unumber_format_h.
- * @details An example of a text attribute is the suffix for positive numbers. Rule-based formatters only understand
- * #I18N_UNUMBER_DEFAULT_RULESET. The #I18N_UNUMBER_PUBLIC_RULESETS tag is not supported.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to set.
- * @param[in] tag The attribute to set; one of #I18N_UNUMBER_POSITIVE_PREFIX, #I18N_UNUMBER_POSITIVE_SUFFIX,
- * #I18N_UNUMBER_NEGATIVE_PREFIX, #I18N_UNUMBER_NEGATIVE_SUFFIX, #I18N_UNUMBER_PADDING_CHARACTER,
- * #I18N_UNUMBER_CURRENCY_CODE, #I18N_UNUMBER_DEFAULT_RULESET.
- * @param[in] new_value The new value of @a tag.
- * @param[in] new_value_length The length of new_value, or -1 if NULL-terminated.
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_set_text_attribute(const i18n_unumber_format_h fmt, i18n_unumber_format_text_attribute_e tag, const i18n_uchar *new_value, int32_t new_value_length);
-
-/**
- * @brief Extracts the pattern from an #i18n_unumber_format_h.
- * @details The pattern will follow the DecimalFormat pattern syntax.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to query.
- * @param[in] is_pattern_localized true if the pattern should be localized, false otherwise.
- * This is ignored if the formatter is a rule-based formatter.
- * @param[out] result A pointer to a buffer to receive the pattern.
- * @param[in] result_length The maximum size of @a result.
- *
- * @return The total buffer size needed; if greater than @a result_length, the output was truncated.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_unumber_to_pattern(const i18n_unumber_format_h fmt, i18n_ubool is_pattern_localized, i18n_uchar *result, int32_t result_length);
-
-/**
- * @brief Sets a symbol associated with an #i18n_unumber_format_h.
- * @details An #i18n_unumber_format_h uses symbols to represent the special locale-dependent characters in a number, for example the percent sign.
- * This API is not supported for rule-based formatters.
- * @remarks Error codes are described in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to set.
- * @param[in] symbol The #i18n_unumber_format_symbol_e constant for the symbol to set
- * @param[in] value The string to set the symbol to
- * @param[in] length The length of the input string, or -1 for a zero-terminated string
- *
- * @return The obtained error code.
- * @retval #I18N_ERROR_NONE Successful.
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_unumber_set_symbol(i18n_unumber_format_h fmt, i18n_unumber_format_symbol_e symbol, const i18n_uchar *value, int32_t length);
-
-/**
- * @brief Gets the locale for this number format object.
- * @details You can choose between valid and actual locale.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] fmt The formatter to get the locale from.
- * @param[in] type Type of the locale we're looking for (valid or actual)
- *
- * @return The locale name
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-const char *i18n_unumber_get_locale_by_type(const i18n_unumber_format_h fmt, i18n_ulocale_data_locale_type_e type);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- * @}
- */
-
-#endif /* __UTILS_I18N_UNUMBER_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright (C) 1999-2013, International Business Machines Corporation
- * and others. All Rights Reserved.
- */
-
-#ifndef __UTILS_I18N_USET_PRODUCT_H__
-#define __UTILS_I18N_USET_PRODUCT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_uset.h
- * @version 0.1
- * @brief utils_i18n_uset
- */
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_USET_MODULE Uset
- * @brief Uset module allows to specify a subset of character used in strings.
- *
- * @section CAPI_BASE_UTILS_I18N_USET_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_USET_MODULE_OVERVIEW Overview
- * @details Uset module allows to specify a subset of character used in strings.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USET_MODULE
- * @{
- */
-
-/**
- * @brief Creates an empty #i18n_uset_h object.
- * @details Equivalent to i18n_uset_create(1, 0).
- *
- * @since_tizen 2.3.1
- * @param[out] set A pointer to the newly created #i18n_uset_h. The caller must call i18n_uset_destroy() on
- * it when done.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create_empty(i18n_uset_h *set);
-
-/**
- * @brief Creates an #i18n_uset_h object that contains the range of characters
- * start..end, inclusive.
- * @details If <code>start > end</code>
- * then an empty set is created (same as using i18n_uset_empty_create()).
- *
- * @since_tizen 2.3.1
- * @param[in] start First character of the range, inclusive
- * @param[in] end Last character of the range, inclusive
- * @param[out] set A pointer to the newly created #i18n_uset_h object. The caller must call i18n_uset_destroy() on
- * it when done.
- * * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create(i18n_uchar32 start, i18n_uchar32 end, i18n_uset_h *set);
-
-/**
- * @brief Creates a set based on a given pattern.
- * @details See the UnicodeSet class description for the syntax
- * of the pattern language.
- *
- * @since_tizen 2.3.1
- * @param[in] pattern A string specifying what characters are in the set
- * @param[in] pattern_length The length of the pattern, >= 0, or -1 if NULL-terminated.
- * @param[out] set A pointer to the newly created #i18n_uset_h object. The caller must call i18n_uset_destroy() on
- * it when done.
- * * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create_pattern(const i18n_uchar *pattern, int32_t pattern_length, i18n_uset_h *set);
-
-/**
- * @brief Creates a set based on a given pattern.
- * @details See the UnicodeSet class description for the syntax of the pattern language.
- *
- * @since_tizen 2.3.1
- * @param[in] pattern A string specifying what characters are in the set
- * @param[in] pattern_length The length of the pattern, >= 0, or -1 if NULL-terminated
- * @param[in] options Bitmask for options to apply to the pattern.
- * Valid options are #I18N_USET_IGNORE_SPACE and #I18N_USET_CASE_INSENSITIVE.
- * @param[out] set A pointer to the newly created #i18n_uset_h object. The caller must call i18n_uset_destroy() on
- * it when done.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_destroy()
- */
-int i18n_uset_create_pattern_options(const i18n_uchar *pattern, int32_t pattern_length, uint32_t options, i18n_uset_h *set);
-
-/**
- * @brief Disposes of the storage used by a #i18n_uset_h object.
- * @details This function should be called exactly once for objects returned by i18n_uset_create().
- * @since_tizen 2.3.1
- *
- * @param[in] set The object to dispose of
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_destroy(i18n_uset_h set);
-
-/**
- * @brief Returns a copy of this object.
- * @details If this set is frozen, then the clone will be frozen as well.
- * Uses i18n_uset_clone_as_thawed() for a mutable clone of a frozen set.
- *
- * @since_tizen 2.3.1
- * @param[in] set The original set. Must not be @c NULL.
- * @param[out] set_clone The newly allocated copy of the set
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_clone_as_thawed()
- */
-int i18n_uset_clone(const i18n_uset_h set, i18n_uset_h *set_clone);
-
-/**
- * @brief Determines whether the set has been frozen (made immutable) or not.
- * @details See the ICU4J Freezable interface for details.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return true/false for whether the set has been frozen
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_freeze()
- * @see i18n_uset_clone_as_thawed()
- */
-i18n_ubool i18n_uset_is_frozen(const i18n_uset_h set);
-
-/**
- * @brief Freezes the set (make it immutable).
- * @details Once frozen, it cannot be unfrozen and is therefore thread-safe
- * until it is deleted.
- * See the ICU4J Freezable interface for details.
- * Freezing the set may also make some operations faster, for example
- * i18n_uset_contains() and i18n_uset_span().
- * A frozen set will not be modified. (It remains frozen.)
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return the same set, now frozen
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_is_frozen()
- * @see i18n_uset_clone_as_thawed()
- */
-int i18n_uset_freeze(i18n_uset_h set);
-
-/**
- * @brief Clones the set and make the clone mutable.
- * @details See the ICU4J Freezable interface for details.
- * @since_tizen 2.3.1
- *
- * @param[in] set The set. Must not be @c NULL.
- * @param[out] set_copy The mutable clone
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_freeze()
- * @see i18n_uset_is_frozen()
- * @see i18n_uset_clone()
- */
-int i18n_uset_clone_as_thawed(const i18n_uset_h set, i18n_uset_h *set_copy);
-
-/**
- * @brief Causes the #i18n_uset_h object to represent the range <code>start - end</code>.
- * @details If <code>start > end</code> then this #i18n_uset_h is set to an empty range.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to set to the given range. Must not be @c NULL.
- * @param[in] start First character in the set, inclusive
- * @param[in] end Last character in the set, inclusive
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_set(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Modifies the set to represent the set specified by the given
- * pattern.
- * @details See the UnicodeSet class description for the syntax of
- * the pattern language. See also the User Guide chapter about UnicodeSet.
- * <em>Empties the set passed before applying the pattern.</em>
- * A frozen set will not be modified.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and in #i18n_error_code_e description.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set to which the pattern is to be applied. Must not be @c NULL.
- * @param[in] pattern A pointer to #i18n_uchar string specifying what characters are in the set.
- * The character at pattern[0] must be a '['.
- * @param[in] pattern_length The length of the #i18n_uchar string, >= 0, or -1 if NULL terminated.
- * @param[in] options A bitmask for options to apply to the pattern.
- * Valid options are #I18N_USET_IGNORE_SPACE and #I18N_USET_CASE_INSENSITIVE.
- * @return Upon successful parse, the value is either
- * the index of the character after the closing ']'
- * of the parsed pattern.
- * If the status code indicates failure, then the return value
- * is the index of the error in the source.
- * If @a set is NULL, 0 is returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_apply_pattern(i18n_uset_h set, const i18n_uchar *pattern, int32_t pattern_length, uint32_t options);
-
-/**
- * @brief Modifies the set to contain those code points which have the given value
- * for the given binary or enumerated property, as returned by
- * i18n_uchar_get_int_property_value().
- * @details Prior contents of this set are lost.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to contain the code points defined by the property. Must not be @c NULL.
- * @param[in] prop A property in the range #I18N_UCHAR_INT_START..#I18N_UCHAR_INT_LIMIT-1
- * or #I18N_UCHAR_MASK_START..#I18N_UCHAR_MASK_LIMIT-1.
- * @param[in] value A value in the range i18n_uchar_get_int_property_min_value(prop)..
- * i18n_uchar_get_int_property_max_value(prop), with one exception. If prop is
- * #I18N_UCHAR_GENERAL_CATEGORY_MASK, then value should not be a #i18n_uchar_category_e, but
- * rather a mask value produced by I18N_U_GET_GC_MASK(). This allows grouped
- * categories such as [:L:] to be represented.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_apply_int_property_value(i18n_uset_h set, i18n_uchar_uproperty_e prop, int32_t value);
-
-/**
- * @brief Modifies the set to contain those code points which have the
- * given value for the given property.
- * @details Prior contents of this set are lost. A frozen set will not be modified.
- * @since_tizen 2.3.1
- *
- * @param[in] set The object to contain the code points defined by the given
- * property and value alias. Must not be @c NULL.
- * @param[in] prop A string specifying a property alias, either short or long.
- * The name is matched loosely. See PropertyAliases.txt for names and a
- * description of loose matching. If the value string is empty, then this
- * string is interpreted as either a General_Category value alias, a Script
- * value alias, a binary property alias, or a special ID. Special IDs are
- * matched loosely and correspond to the following sets:
- *
- * "ANY" = [\\u0000-\\U0010FFFF],
- * "ASCII" = [\\u0000-\\u007F],
- * "Assigned" = [:^Cn:].
- *
- * @param[in] prop_length The length of the @a prop, >= 0, or @c -1 if @c NULL.
- * @param[in] value A string specifying a value alias, either short or long.
- * The name is matched loosely. See PropertyValueAliases.txt for names
- * and a description of loose matching. In addition to aliases listed,
- * numeric values and canonical combining classes may be expressed
- * numerically, e.g., ("nv", "0.5") or ("ccc", "220"). The value string
- * may also be empty.
- * @param[in] value_length The length of the value, >= 0, or -1 if NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_apply_property_alias(i18n_uset_h set, const i18n_uchar *prop, int32_t prop_length, const i18n_uchar *value, int32_t value_length);
-
-/**
- * @brief Return true if the given position, in the given pattern, appears
- * to be the start of a UnicodeSet pattern.
- * @since_tizen 2.3.1
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @param[in] pattern A string specifying the pattern.
- * @param[in] pattern_length The length of the pattern, >= 0, or @c -1 if @c NULL.
- * @param[in] pos The given position, >= 0.
- *
- * @return @c true if the given position, in the given pattern, appears to be the start of a UnicodeSet pattern.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_resembles_pattern(const i18n_uchar *pattern, int32_t pattern_length, int32_t pos);
-
-/**
- * @brief Returns a string representation of the given @a set.
- * @details If the result of calling this function is passed to an i18n_uset_pattern_create(),
- * it will produce another set that is equal to this one.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] set The set. Must not be @c NULL.
- * @param[in,out] result The string to receive the rules, may be @c NULL.
- * @param[in] result_capacity The capacity of @a result, >= 0, may be @c 0 if result is @c NULL.
- * @param[in] escape_unprintable If true then convert unprintable character to their hex escape representations,
- * \\uxxxx or \\Uxxxxxxxx. Unprintable characters are those other than U+000A, U+0020..U+007E.
- *
- * @return Length of string, >= 0, possibly larger than @a result_capacity. If @a set is NULL, 0 is returned.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uset_pattern_create()
- */
-int32_t i18n_uset_to_pattern(const i18n_uset_h set, i18n_uchar *result, int32_t result_capacity, i18n_ubool escape_unprintable);
-
-/**
- * @brief Adds the given character to the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains(set, character) will return true.
- * A frozen set will not be modified.
- * @since_tizen 2.3.1
- *
- * @param[in] set The object to which to add the @a character. Must not be @c NULL.
- * @param[in] character The character to add.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uset_contains()
- */
-int i18n_uset_add(i18n_uset_h set, i18n_uchar32 character);
-
-
-/**
- * @brief Adds all of the elements in the specified set to this set if
- * they are not already present.
- * @details This operation effectively modifies this set so that its value is the <i>union</i> of the two
- * sets. The behavior of this operation is unspecified if the specified
- * collection is modified while the operation is in progress.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the set. Must not be @c NULL.
- * @param[in] additional_set The source set whose elements are to be added to this set.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_add_all(i18n_uset_h set, const i18n_uset_h additional_set);
-
-/**
- * @brief Adds the given range of characters to the given #i18n_uset_h. After this call,
- * i18n_uset_contains(set, start, end) will return true.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] start The first character of the range to add, inclusive
- * @param[in] end The last character of the range to add, inclusive
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains()
- */
-int i18n_uset_add_range(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Adds the given string to the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains_string(set, str, str_len) will return true.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] str The string to add.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains_string()
- */
-int i18n_uset_add_string(i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Adds each of the characters in this string to the set. Thus "ch" => {"c", "h"}
- * @details If this set already any particular character, it has no effect on that character.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] str The source string.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_add_all_code_points(i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Removes the given @a character from the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains(set, character) will return @c false.
- * A frozen set will not be modified.
- * @since_tizen 2.3.1
- *
- * @param[in] set the object from which to remove the @a character. Must not be @c NULL.
- * @param[in] character the character to remove
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see i18n_uset_contains()
- */
-int i18n_uset_remove(i18n_uset_h set, i18n_uchar32 character);
-
-/**
- * @brief Removes the given range of characters from the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains(set, start, end) will return false.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] start The first character of the range to remove, inclusive
- * @param[in] end The last character of the range to remove, inclusive
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains()
- */
-int i18n_uset_remove_range(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Removes the given string to the given #i18n_uset_h.
- * @details After this call, i18n_uset_contains_string(set, str, str_len) will return false.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object to which to add the character. Must not be @c NULL.
- * @param[in] str The string to remove.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_uset_contains_string()
- */
-int i18n_uset_remove_string(i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Removes from this set all of its elements that are contained in the specified set.
- * @details This operation effectively modifies this set so that its value is the <i>asymmetric set difference</i> of
- * the two sets.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object from which the elements are to be removed. Must not be @c NULL.
- * @param[in] remove_set The object that defines which elements will be
- * removed from this set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_remove_all(i18n_uset_h set, const i18n_uset_h remove_set);
-
-/**
- * @brief Retains only the elements in this set that are contained in the specified range.
- * @details If <code>start > end</code> then an empty range is retained, leaving the set empty. This is equivalent to
- * a boolean logic AND, or a set INTERSECTION.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object for which to retain only the specified range. Must not be @c NULL.
- * @param[in] start First character, inclusive, of range to be retained
- * to this set.
- * @param[in] end Last character, inclusive, of range to be retained
- * to this set.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_retain(i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Retains only the elements in this set that are contained in the
- * specified set.
- * @details In other words, removes from this set all of
- * its elements that are not contained in the specified set. This
- * operation effectively modifies this set so that its value is
- * the <i>intersection</i> of the two sets.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The object on which to perform the retain. Must not be @c NULL.
- * @param[in] retain Set that defines which elements this set will retain. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_retain_all(i18n_uset_h set, const i18n_uset_h retain);
-
-/**
- * @brief Reallocates this objects internal structures to take up the least
- * possible space, without changing this object's value.
- *
- * @details A frozen set will not be modified.
- * @since_tizen 2.3.1
- * @param[in] set The object on which to perfrom the compact. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_compact(i18n_uset_h set);
-
-/**
- * @brief Inverts this set. This operation modifies this set so that
- * its value is its complement.
- * @details This operation does not affect
- * the multicharacter strings, if any.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_complement(i18n_uset_h set);
-
-/**
- * @brief Complements in this set all elements contained in the specified set.
- * @details Any character in the other set will be removed if it is
- * in this set, or will be added if it is not in this set.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set with which to complement. Must not be @c NULL.
- * @param[in] complement Set that defines which elements will be xor'ed
- * from this set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_complement_all(i18n_uset_h set, const i18n_uset_h complement);
-
-/**
- * @brief Removes all of the elements from this set.
- * @details This set will be empty after this call returns.
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_clear(i18n_uset_h set);
-
-/**
- * @brief Closes this set over the given attribute.
- * @details For the attribute
- * #I18N_USET_CASE_INSENSITIVE, the result is to modify this set so that:
- *
- * 1. For each character or string 'a' in this set, all strings or
- * characters 'b' such that foldCase(a) == foldCase(b) are added
- * to this set.
- *
- * 2. For each string 'e' in the resulting set, if e !=
- * foldCase(e), 'e' will be removed.
- *
- * Example: [aq\\u00DF{Bc}{bC}{Fi}] => [aAqQ\\u00DF\\uFB01{ss}{bc}{fi}]
- *
- * (Here foldCase(x) refers to the operation i18n_ustring_fold_case(), and a
- * == b denotes that the contents are the same, not pointer
- * comparison.)
- *
- * A frozen set will not be modified.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] attributes Bitmask for attributes to close over.
- * Currently only the #I18N_USET_CASE_INSENSITIVE bit is supported. Any undefined bits
- * are ignored.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see i18n_ustring_fold_case()
- */
-int i18n_uset_destroy_over(i18n_uset_h set, int32_t attributes);
-
-/**
- * @brief Removes all strings from this set.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- *
- * @return Error code. Error codes not listed below are described in #i18n_error_code_e
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_uset_remove_all_strings(i18n_uset_h set);
-
-/**
- * @brief Returns true if the given #i18n_uset_h contains no characters and no
- * strings.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return true if set is empty
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_is_empty(const i18n_uset_h set);
-
-/**
- * @brief Returns @c true if the given #i18n_uset_h contains the given @a character.
- * @details This function works faster with a frozen set.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[in] character the codepoint to check for within the @a set
- *
- * @return @c true if @a set contains the given @a character
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains(const i18n_uset_h set, i18n_uchar32 character);
-
-/**
- * @brief Returns true if the given #i18n_uset_h contains all characters c
- * where start <= c && c <= end.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] start The first character of the range to test, inclusive
- * @param[in] end The last character of the range to test, inclusive
- * @return true if set contains the range
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_range(const i18n_uset_h set, i18n_uchar32 start, i18n_uchar32 end);
-
-/**
- * @brief Returns true if the given #i18n_uset_h contains the given string.
- * @since_tizen 2.3.1
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] str The string.
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated
- * @return true if set contains str
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_string(const i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Returns the index of the given @a character within this @a set, where
- * the @a set is ordered by ascending code point.
- * @details If the @a character is not in this @a set, return @c -1.
- * The inverse of this function is <code>i18n_uset_char_at()</code>.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[in] character the character to obtain the index for
- *
- * @return An index from 0..size()-1, or @c -1
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_index_of(const i18n_uset_h set, i18n_uchar32 character);
-
-/**
- * @brief Returns the character at the given index within this set, where
- * the set is ordered by ascending code point.
- * @details If the index is out of range, return (i18n_uchar32)-1. The inverse of this function is
- * <code>i18n_uset_index_of()</code>.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] char_index An index from 0..size()-1 to obtain the char for
- * @return The character at the given index, or (i18n_uchar32)-1.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_uchar32 i18n_uset_char_at(const i18n_uset_h set, int32_t char_index);
-
-/**
- * @brief Returns the number of characters and strings contained in the given #i18n_uset_h.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return A non-negative integer counting the characters and strings
- * contained in set.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_size(const i18n_uset_h set);
-
-/**
- * @brief Returns the number of items in this set.
- * @details An item is either a range of characters or a single multicharacter string.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @return A non-negative integer counting the character ranges
- * and/or strings contained in set.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_get_item_count(const i18n_uset_h set);
-
-/**
- * @brief Returns an item of this set.
- * @details An item is either a range of characters or a single multicharacter string.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The set. Must not be @c NULL.
- * @param[in] item_index A non-negative integer in the range [0; i18n_uset_get_item_count(set)-1].
- * @param[in] start Pointer to variable to receive first character
- * in range, inclusive
- * @param[in] end Pointer to variable to receive last character in range,
- * inclusive
- * @param[out] str Buffer to receive the string, may be NULL
- * @param[in] str_capacity Capacity of @a str, or 0 if str is NULL
- * @return The length of the string (>= 2), or 0 if the item is a
- * range, in which case it is the range *start..*end, or -1 if
- * item_index is out of range
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int32_t i18n_uset_get_item(const i18n_uset_h set, int32_t item_index, i18n_uchar32 *start, i18n_uchar32 *end, i18n_uchar *str, int32_t str_capacity);
-
-/**
- * @brief Returns true if set1 contains all the characters and strings of set2. It answers the question, 'Is set1 a superset of set2?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_all(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/**
- * @brief Returns true if this set contains all the characters of the given string.
- * @details This is does not check containment of grapheme
- * clusters, like i18n_uset_contains_string().
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set Set of characters to be checked for containment. Must not be @c NULL.
- * @param[in] str String containing codepoints to be checked for containment
- * @param[in] str_len The length of the string, >= 0, or -1 if NULL terminated.
- * @return true if the test condition is met.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_all_code_points(const i18n_uset_h set, const i18n_uchar *str, int32_t str_len);
-
-/**
- * @brief Returns true if set1 contains none of the characters and strings of set2.
- * @details It answers the question, 'Is set1 a disjoint set of set2?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_none(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/**
- * @brief Returns true if set1 contains some of the characters and strings of set2.
- * @details It answers the question, 'Does set1 and set2 have an intersection?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_contains_some(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/**
- * @brief Returns the length of the initial substring of the input string which
- * consists only of characters and strings that are contained in this set
- * (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- * or only of characters and strings that are not contained
- * in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- * Similar to the strspn() C library function.
- * Unpaired surrogates are treated according to contains() of their surrogate code points.
- * This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[in] str start of the input string.
- * @param[in] length length of the @a string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition specifies the containment condition
- *
- * @return The length of the initial substring according to the @a span_condition;
- * @c 0 if the start of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span(const i18n_uset_h set, const i18n_uchar *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns the start of the trailing substring of the input string which
- * consists only of characters and strings that are contained in this set
- * (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- * or only of characters and strings that are not contained
- * in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- * Unpaired surrogates are treated according to contains() of their surrogate code points.
- * This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[in] str start of the input string
- * @param[in] length length of the @ string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition specifies the containment condition
- *
- * @return the start of the trailing substring according to the @a span_condition;
- * the string length if the end of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span_back(const i18n_uset_h set, const i18n_uchar *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns the length of the initial substring of the input string which
- * consists only of characters and strings that are contained in this set
- * (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- * or only of characters and strings that are not contained
- * in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- * Similar to the strspn() C library function.
- * Malformed byte sequences are treated according to contains(0xfffd).
- * This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[in] str start of the string (UTF-8)
- * @param[in] length length of the string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition specifies the containment condition
- *
- * @return the length of the initial substring according to the @a span_condition;
- * @c 0 if the start of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span_utf8(const i18n_uset_h set, const char *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns the start of the trailing substring of the input string which
- * consists only of characters and strings that are contained in this set
- * (#I18N_USET_SPAN_CONTAINED, #I18N_USET_SPAN_SIMPLE),
- * or only of characters and strings that are not contained
- * in this set (#I18N_USET_SPAN_NOT_CONTAINED).
- * @details See #i18n_uset_span_condition_e for details.
- * Malformed byte sequences are treated according to contains(0xfffd).
- * This function works faster with a frozen set and with a non-negative string length argument.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[in] str start of the string (UTF-8)
- * @param[in] length length of the string; >= 0, can be @c -1 for NULL-terminated
- * @param[in] span_condition specifies the containment condition
- *
- * @return the start of the trailing substring according to the @a span_condition;
- * the string length if the end of the string does not fit the @a span_condition
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_uset_span_condition_e
- */
-int32_t i18n_uset_span_back_utf8(const i18n_uset_h set, const char *str, int32_t length, i18n_uset_span_condition_e span_condition);
-
-/**
- * @brief Returns true if set1 contains all of the characters and strings
- * of set2, and vice versa. It answers the question, 'Is set1 equal to set2?'
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set1 Set to be checked for containment. Must not be @c NULL.
- * @param[in] set2 Set to be checked for containment. Must not be @c NULL.
- * @return true if the test condition is met
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-i18n_ubool i18n_uset_equals(const i18n_uset_h set1, const i18n_uset_h set2);
-
-/*********************************************************************
- * Serialized set API
- *********************************************************************/
-
-/**
- * @brief Serializes this @a set into an array of 16-bit integers.
- * @details Serialization (currently) only records the characters in the set;
- * multicharacter strings are ignored.
- *
- * The array has following format (each line is one 16-bit integer):
- *
- * length = (n+2*m) | (m!=0?0x8000:0)
- * bmpLength = n;
- * present if m!=0
- * bmp[0]
- * bmp[1]
- * ...
- * bmp[n-1]
- * supp-high[0]
- * supp-low[0]
- * supp-high[1]
- * supp-low[1]
- * ...
- * supp-high[m-1]
- * supp-low[m-1]
- *
- * The array starts with a header. After the header are n bmp
- * code points, then m supplementary code points. Either n or m
- * or both may be zero. n+2*m is always <= 0x7FFF.
- *
- * If there are no supplementary characters (if m==0) then the
- * header is one 16-bit integer, 'length', with value n.
- *
- * If there are supplementary characters (if m!=0) then the header
- * is two 16-bit integers. The first, 'length', has value
- * (n+2*m)|0x8000. The second, 'bmpLength', has value n.
- *
- * After the header the code points are stored in ascending order.
- * Supplementary code points are stored as most significant 16
- * bits followed by least significant 16 bits.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section and in #i18n_error_code_e description.
- * @since_tizen 2.3.1
- *
- * @param[in] set the set. Must not be @c NULL.
- * @param[out] dest pointer to buffer of @a dest_capacity 16-bit integers
- * May be NULL only if @a dest_capacity is zero.
- * @param[in] dest_capacity size of @a dest, or zero
- * Must not be negative.
- *
- * @return the total length of the serialized format, including
- * the header, that is, <code>n+2*m+(m != 0 ? 2 : 1)</code>,
- * or @c 0 on error other than #I18N_ERROR_BUFFER_OVERFLOW.
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @exception #I18N_ERROR_INDEX_OUTOFBOUNDS If <code>n+2*m > 0x7FFF</code>
- * @exception #I18N_ERROR_BUFFER_OVERFLOW If <code>n+2*m+(m != 0 ? 2 : 1) > dest_capacity</code>.
- */
-int32_t i18n_uset_serialize(const i18n_uset_h set, uint16_t *dest, int32_t dest_capacity);
-
-/**
- * @brief Given a serialized array, fill in the given serialized set object.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] src pointer to start of array. Must not be @c NULL.
- * @param[in] src_length length of @a src array, >= 0.
- * @param[out] fill_set the serialized set to be filled
- *
- * @return @c true if the given array is valid, otherwise @c false
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_userialized_set_s
- */
-i18n_ubool i18n_uset_get_serialized_set(const uint16_t *src, int32_t src_length, i18n_userialized_set_s *fill_set);
-
-/**
- * @brief Sets the #i18n_userialized_set_s to contain the given @a character (and nothing else).
- * @since_tizen 2.3.1
- *
- * @param[in] character the code point to set
- * @param[out] fill_set the serialized set to be filled
- *
- * @return Error code.
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- *
- * @see #i18n_userialized_set_s
- */
-int i18n_uset_set_serialized_to_one(i18n_uchar32 character, i18n_userialized_set_s *fill_set);
-
-/**
- * @brief Returns @c true if the given #i18n_userialized_set_s contains the given @a character.
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- * @since_tizen 2.3.1
- *
- * @param[in] set the serialized set. Must not be @c NULL.
- * @param[in] character the code point to check for within the @a set
- *
- * @return @c true if @a set contains @a character
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see #i18n_userialized_set_s
- */
-i18n_ubool i18n_uset_serialized_contains(const i18n_userialized_set_s *set, i18n_uchar32 character);
-
-/**
- * @brief Returns the number of disjoint ranges of characters contained in
- * the given serialized set.
- * @details Ignores any strings contained in the set.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The serialized set. Must not be @c NULL.
- * @return A non-negative integer counting the character ranges contained in set
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see #i18n_userialized_set_s
- */
-int32_t i18n_uset_get_serialized_range_count(const i18n_userialized_set_s *set);
-
-/**
- * @brief Returns a range of characters contained in the given serialized set.
- *
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @since_tizen 2.3.1
- * @param[in] set The serialized set. Must not be @c NULL.
- * @param[in] range_index A non-negative integer in the range 0..
- * i18n_uset_get_serialized_range_count(set)-1
- * @param[out] p_start Pointer to variable to receive first character
- * in range, inclusive
- * @param[out] p_end Pointer to variable to receive last character in range,
- * inclusive
- * @return true if range_index is valid, otherwise false
- *
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @see #i18n_userialized_set_s
- */
-i18n_ubool i18n_uset_get_serialized_range(const i18n_userialized_set_s *set, int32_t range_index, i18n_uchar32 *p_start, i18n_uchar32 *p_end);
-
-/**
- * @}
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
* <td>Unicode 6.2</td>
* </tr>
* <tr>
- * <td>Tizen 3.0</td>
+ * <td>Tizen 2.3.2, 3.0</td>
* <td>ICU 57</td>
* <td>CLDR 29</td>
* <td>Unicode 8.0</td>
* </tr>
* <tr>
* <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
+ * <td>#i18n_measure_unit_create_mile_per_gallon_imperial</td>
+ * <td>createMilePerGallonImperial</td>
+ * </tr>
+ * <tr>
+ * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
* <td>#i18n_measure_unit_create_bit</td>
* <td>createBit</td>
* </tr>
* exemplar characters. The locale determines the sorting order
* for both the index characters and the user item names appearing
* under each Index character.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_alpha_idx_destroy() function.
*
/**
* @brief Destroys the alphabetic index object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index to be destroyed
*
* they do not replace the existing index characters. The collation
* order for this index is not changed; it remains that of the locale
* that was originally specified when creating this Index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index Label will be added to this alphabetic index
* @param[in] language The language of the locale
* of the names in the index's locale. Records with duplicate
* names are permitted; they will be kept in the order that
* they were added.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index Record will be added to this alphabetic index
* @param[in] name The display name for the record.
/**
* @brief Sets the next bucket as current bucket in the index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets
* @param[out] available A flag set to @c true if the next bucket was available,
* @brief Sets the next record as current record in current bucket of the index.
* @details When i18n_alpha_idx_get_next_bucket() is called, record iteration is reset
* to just before the first record in the new bucket.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[out] available A flag set to @c true if the next record was available,
* @brief Gets the number of <name, data> records in the current bucket.
* @details If the current bucket iteration position is before the first
* label or after the last, return 0.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[out] records_count Number of <name, data> records in the current bucket
* @details If the iteration is before the first Bucket
* (i18n_alpha_idx_get_next_bucket() has not been called),
* or after the last, return an empty string.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a label should be released by the caller with the free() function.
*
* @param[in] index The alphabetic index, which contains buckets
* - the current iteration position is before the first item in this Bucket,
* or after the last,
* - the given @a index parameter is invalid.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The specific error code can be obtained using the get_last_result() method.
* Error codes are described in Exceptions section.
*
* @brief Gets the default label used for abbreviated buckets between other index characters.
* @details For example, consider the labels when Latin and Greek are used:
* X Y Z ... &\#x0391; &\#x0392; &\#x0393;
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a label should be released by the caller with the free() function.
*
* @param[in] index The alphabetic index, which contains buckets with records
* @details An inflow label will be automatically inserted if two otherwise-adjacent label characters
* are from different scripts, e.g. Latin and Cyrillic, and a third script,
* e.g. Greek, sorts between the two. The default inflow character is an ellipsis (...)
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[in] label The new inflow label
/**
* @brief Gets the special label used for items that sort after the last normal label,
* and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a label should be released by the caller with the free() function.
*
* @param[in] index The alphabetic index, which contains buckets with records
/**
* @brief Sets the special label used for items that sort after the last normal label,
* and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[in] label The new overflow label
/**
* @brief Gets the special label used for items that sort before the first normal label,
* and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a label should be released by the caller with the free() function.
*
* @param[in] index The alphabetic index, which contains buckets with records
/**
* @brief Sets the special label used for items that sort before the first normal label,
* and that would not otherwise have an appropriate label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[in] label The new underflow label
/**
* @brief Gets the limit on the number of labels permitted in the index.
* @details The number does not include over, under and inflow labels.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[out] max_label_count The maximum number of labels
* Currently, if the number is exceeded, then every nth item
* is removed to bring the count down. A more sophisticated
* mechanism may be available in the future.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[in] max_label_count The new maximum number of labels
* @brief Remove all records from the index.
* @details The set of Buckets, which define the headings under which records are classified,
* is not altered.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
*
/**
* @brief Gets the number of labels in this index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks Note: may trigger lazy index construction.
*
* @param[in] index The alphabetic index, which contains buckets with records
/**
* @brief Gets the total number of records in this index, that is, the number of
* <name, data> pairs added.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[out] record_count The number of records in this index, that is,
* @details The name need not be in the index.
* A Record will not be added to the index by this function.
* Bucket numbers are zero-based, in Bucket iteration order.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[in] item_name The name whose bucket position in the index is to be determined
* @brief Gets the zero based index of the current bucket of this index.
* @details Sets the variable pointed by the @a bucket_index to -1 if no iteration
* is in process.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[out] bucket_index The index of the current Bucket
/**
* @brief Gets the type of the label for the current Bucket
* (selected by the iteration over Buckets).
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
* @param[out] type The alphabetic index label type
* @details If the Record iteration position is before the first or after the last record,
* sets the string pointed by the @a record_name parameter to NULL and returns
* the #I18N_ERROR_INDEX_OUTOFBOUNDS error code.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a record_name should be released by the caller with the free() function.
*
* @param[in] index The alphabetic index, which contains buckets with records
/**
* @brief Resets the bucket iteration for this index.
* @details The next call to i18n_alpha_idx_get_next_bucket() will restart the iteration at the first label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
*
/**
* @brief Resets the record iteration for this index to before the first Record in the current Bucket.
* @details The next call to i18n_alpha_idx_get_next_record() will restart the iteration at the first label.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] index The alphabetic index, which contains buckets with records
*
/**
* @brief Creates a field position object with a non-specified field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_field_position_destroy() function.
*
* @brief Creates a field position object for the given field.
* @details The only fields currently supported are the fields accepted by the date formatter,
* see #i18n_udate_format_field_e.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_field_position_destroy() function.
*
/**
* @brief Destroys the field position object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field position object to destroy
*
/**
* @brief Creates a clone of the given @a field_position object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The @a clone object should be released by the caller with the
* i18n_field_position_destroy() function.
*
/**
* @brief Retrieves the field identifier.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field_position object
* @param[out] field The field identifier
/**
* @brief Retrieves the index of the first character in the requested field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field position object
* @param[out] begin_index The index of the first character in the requested field
/**
* @brief Retrieves the index of the character following the last character in the requested field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field position object
* @param[out] end_index The index of the character following the last character
/**
* @brief Sets the field.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field_position object
* @param[in] field The new value of the field
/**
* @brief Sets the begin index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field_position object
* @param[in] begin_index The new value of the begin index
/**
* @brief Sets the end index.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] field_position The field_position object
* @param[in] end_index The new value of the end index
/**
* @brief Destroys the format object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] format The format object to destroy
*
/**
* @brief Creates a polymorphic clone of the given @a format object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The cloned object should be released by the caller with the
* i18n_format_destroy() function.
*
/**
* @brief Formats an object to produce a string.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The @a append_to parameter should be released by the caller with the
* free() function.
*
/**
* @brief Formats an object to produce a string.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The @a append_to parameter should be released by the caller with the
* free() function.
*
/**
* @brief Parses a string to produce an object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a result formattable object should be released by the caller with the
* i18n_formattable_destroy() function.
*
/**
* @brief Parses a string to produce an object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a result formattable object should be released by the caller with the
* i18n_formattable_destroy() function.
*
/**
* @brief Gets the locale for the given format object.
* @details You can choose between valid and actual locale.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks Both @a language and @a country should be released by the caller with the free() function.
*
* @param[in] format The format object
/**
* @brief Creates a new default #i18n_formattable_h.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Creates a new #i18n_formattable_h handle with an #i18n_udate instance.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Creates a new #i18n_formattable_h handle with a double value.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Creates a new #i18n_formattable_h handle with a long value.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Creates a new #i18n_formattable_h handle with an int64_t value.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Creates a new #i18n_formattable_h handle with a char string pointer.
* @details Assumes that the char string is null terminated.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Creates a new #i18n_formattable_h handle with an array of
* #i18n_formattable_h handles.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_formattable_destroy() function.
*
/**
* @brief Releases the given #i18n_formattable_h handle.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object to be released
*
/**
* @brief Clones the given formattable handle with the related object to the
* @a clone handle.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @details Clones can be used concurrently in multiple threads.
* @remarks The cloned object should be released by the caller with the
* #i18n_formattable_destroy() function.
/**
* @brief Gets the array value and count of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
* result is undefined. The obtained array should be released by the
* caller with the free() function.
/**
* @brief Gets the date value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DATE then the
* result is undefined.
*
/**
* @brief Gets the double value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DOUBLE then the
* result is undefined.
*
/**
* @brief Gets the int64 value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_INT64 then the
* result is undefined.
*
* minimum long value, as appropriate, is set to @a value
* and the #I18N_ERROR_INVALID_FORMAT error code is returned by the
* function.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[out] value A pointer to a int32_t variable which will be filled
/**
* @brief Gets the string value of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks If the type is not a string, the function returns the
* #I18N_ERROR_INVALID_FORMAT error code and the value is set to @c
* NULL. The @a value should be released by the caller with the free() function.
/**
* @brief Gets the data type of the given formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[out] type A pointer to an #i18n_formattable_type_e variable which
* @brief Sets the variable pointed by the @a is_numeric pointer to @c true if
* the data type of the given formattable object is #I18N_FORMATTABLE_TYPE_DOUBLE,
* #I18N_FORMATTABLE_TYPE_LONG or #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[out] is_numeric A pointer to a boolean variable which will be filled by
* @brief Sets the variable pointed by the @a not_equal pointer to @c true if
* the given @a formattable object is not equal to the given @a other
* formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] other A handle to the other formattable object
* @brief Sets the variable pointed by the @a equal pointer to @c true if the
* given @a formattable object is equal to the given @a other
* formattable object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] other A handle to the other formattable object
* @brief Sets the object pointed by the @a element pointer to the element at
* the @a index position in the array stored by the given formattable
* object (if its type is #I18N_FORMATTABLE_TYPE_ARRAY).
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
* result is undefined.
*
/**
* @brief Sets the array value and count of the given formattable object and
* changes the type to #I18N_FORMATTABLE_TYPE_ARRAY.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] array An array of handles to the formattable objects
/**
* @brief Sets the date value of the given formattable object and changes the
* type to the #I18N_FORMATTABLE_TYPE_DATE.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] date The new i18n_udate value to be set
/**
* @brief Sets the double value of the given formattable object and changes
* the type to the #I18N_FORMATTABLE_TYPE_DOUBLE.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] value The new double value to be set
/**
* @brief Sets the int64 value of the given formattable object and changes the
* type to the #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] value The new int64_t value to be set
/**
* @brief Sets the long value of the given formattable object and changes the
* type to the #I18N_FORMATTABLE_TYPE_LONG.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] value The new int32_t value to be set
/**
* @brief Sets the string value of the given formattable object and changes
* the type to the #I18N_FORMATTABLE_TYPE_STRING.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] formattable A handle to the formattable object
* @param[in] string_to_copy The new string value to be set
/**
* @brief Creates an object with the given numeric amount and the given unit.
* @details After this call, the caller must not delete the given measure unit object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_measure_destroy() function.
*
/**
* @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The @c clone object should be released by the caller with the
* #i18n_measure_destroy() function.
*
/**
* @brief Destroys the measure object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] measure The measure object to destroy
*
/**
* @brief Gets a reference to the numeric value of the measure object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained formattable object should be released by the caller
* with the #i18n_formattable_destroy() function.
*
/**
* @brief Gets a reference to the unit of the measure object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained measure unit object should be released by the caller
* with the #i18n_measure_unit_destroy() function.
*
/**
* @brief Creates the measure format object using given locale.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_measure_format_destroy() function.
*
/**
* @brief Destroys the measure format object
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] measure_format The measure format object to destroy
*
/**
* @brief Creates a polymorphic clone of the given @a measure_format object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The @a clone object should be released by the caller with the
* i18n_measure_format_destroy() function.
*
/**
* @brief Formats an object to produce a string.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a append_to string is actually a concatenation of the given input string and
* the result of the function (appended to the string). Actually, the @a append_to
* buffer is being reallocated inside the function which means that the buffer is not
/**
* @brief Parses a string to produce an object.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained @a result object should be released by the caller
* with the i18n_formattable_destroy() function.
*
/**
* @brief Gets a formatter for currency amount objects in the given locale.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_measure_format_destroy() function.
*
/**
* @brief Gets a formatter for currency amount objects in the default locale.
- * @since_tizen 3.0
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_measure_format_destroy() function.
*
/**
* @brief Creates the default measure unit object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_measure_unit_destroy() function.
*
/**
* @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* #i18n_measure_unit_destroy() function.
*
/**
* @brief Destroys the measure unit object
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] measure_unit The measure unit object to destroy
*
/**
* @brief Destroys the given array of the measure unit objects
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] array The array of measure unit objects to destroy
* @param[in] array_size The capacity of the @a dest_array
/**
* @brief Gets the measure unit object type.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained type should be released by the caller with the free() function.
*
* @param[in] measure_unit The measure unit object
/**
* @brief Gets the measure unit object sub type.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained subtype should be released by the caller with the free() function.
*
* @param[in] measure_unit The measure unit object
* then the returned array is truncated to the first @a max_count units
* and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
*
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained array of measure unit objects should be released by the caller
* with the #i18n_measure_unit_array_destroy() function.
*
* then the returned array is truncated to the first @a max_count units
* and the returned error code is #I18N_ERROR_BUFFER_OVERFLOW.
*
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The obtained array of measure unit objects should be released by the caller
* with the #i18n_measure_unit_array_destroy() function.
*
/**
* @brief Invokes the given callback function for every available measure unit type.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] cb The callback function invoked for every available measure unit type
* @param[in] user_data The user data passed to the callback function
/**
* @brief Gets unit of acceleration: g-force.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of acceleration: meter-per-second-squared.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of angle: arc-minute.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of angle: arc-second.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of angle: degree.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of angle: radian.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of angle: acre.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of angle: hectare.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-centimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-meter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit area: square-yard.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of consumption: liter-per-kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of consumption: mile-per-gallon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: bit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: byte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: gigabit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: gigabyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: kilobit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: kilobyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: megabit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: megabyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: terabit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of digital: terabyte.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: day.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: microsecond.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: millisecond.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: minute.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: month.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: nanosecond.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: second.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: week.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of duration: year.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of electric: ampere.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of electric: milliampere.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of electric: ohm.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of electric: volt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of energy: calorie.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of energy: foodcalorie.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of energy: joule.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of energy: kilocalorie.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of energy: kilojoule.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of energy: kilowatt-hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of frequency: gigahertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of frequency: hertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of frequency: kilohertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of frequency: megahertz.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: astronomical-unit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: centimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: decimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: fathom.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: furlong.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: light-year.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: meter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: micrometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: millimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: nanometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: nautical-mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: parsec.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: picometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: yard.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of length: lux.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: carat.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: gram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: kilogram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: metric-ton.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: microgram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: milligram.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: ounce.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: ounce-troy.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: pound.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: stone.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of mass: ton.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of power: gigawatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of power: horsepower.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of power: kilowatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of power: megawatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of power: milliwatt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of power: watt.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of pressure: hectopascal.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of pressure: inch-hg.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of pressure: millibar.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of pressure: millimeter-of-mercury.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of pressure: pound-per-square-inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of proportion: karat.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of speed: kilometer-per-hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of speed: meter-per-second.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of speed: mile-per-hour.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of temperature: celsius.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of temperature: fahrenheit.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of temperature: kelvin.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: acre-foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: bushel.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: centiliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-centimeter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-foot.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-inch.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-kilometer.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-meter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-mile.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cubic-yard.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: cup.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: deciliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: fluid-ounce.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: gallon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: hectoliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: liter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: megaliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: milliliter.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: pint.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: quart.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: tablespoon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Gets unit of volume: teaspoon.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The returned @a measure_unit should be freed by the caller
* with i18n_measure_unit_destroy().
*
/**
* @brief Creates a parse position object.
* @details The index is set to position 0.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_parse_position_destroy() function.
*
/**
* @brief Creates a parse position object with the given initial index.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The created object should be released by the caller with the
* i18n_parse_position_destroy() function.
*
/**
* @brief Destroys the parse position object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] parse_position The parse position object to destroy
*
/**
* @brief Creates a clone of the given @a parse_position object.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
* @remarks The @a clone object should be released by the caller with the
* i18n_parse_position_destroy() function.
*
* @details On input to a parse function, this is the index of the character
* at which parsing will begin; on output, it is the index of the character
* following the last character parsed.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] parse_position The parse position object
* @param[out] index The current index
/**
* @brief Sets the current parse position.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] parse_position The parse position object
* @param[in] index The new index
* @details Formatters should set this before returning an error code
* from their parse_object() function. The default value is -1
* if this is not set.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] parse_position The parse position object
* @param[in] error_index The error index
/**
* @brief Retrieves the index at which an error occurred, or -1 if the error index
* has not been set.
- * @since_tizen 2.3.2
+ * @since_tizen 2.3.2 and 3.0
*
* @param[in] parse_position The parse position object
* @param[out] error_index The index at which an error occurred
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __UTILS_I18N_TIMEZONE_H__
+#define __UTILS_I18N_TIMEZONE_H__
+
+#include <utils_i18n_types.h>
+
+/**
+ * @file utils_i18n_timezone.h
+ * @version 0.1
+ * @brief utils_i18n_timezone
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @ingroup CAPI_BASE_UTILS_I18N_MODULE
+ * @defgroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE Timezone
+ * @brief The Timezone module represents a time zone offset, and also figures out daylight savings.
+ * @section CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE_HEADER Required Header
+ * \#include <utils_i18n.h>
+ *
+ * @section CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE_OVERVIEW Overview
+ * @details The Timezone module represents a time zone offset, and also figures out daylight savings.\n
+ * Typically, you get an i18n_timezone_h using #i18n_timezone_create_default which creates a TimeZone based on the time zone
+ * where the program is running. For example, for a program running in Japan,
+ * #i18n_timezone_create_default creates an i18n_timezone_h based on Japanese Standard Time.\n
+ * You can also get an i18n_timezone_h using #i18n_timezone_create along with a time zone ID.
+ * For instance, the time zone ID for the US Pacific Time zone is "America/Los_Angeles".
+ * So, you can get a Pacific Time i18n_timezone_h with:\n
+ * <code>
+ * i18n_timezone_h timezone;\n
+ * i18n_timezone_create(&timezone, "America/Los_Angeles");\n
+ * </code>
+ * To create a new i18n_timezone_h, you call the factory function #i18n_timezone_create() and pass it a time zone ID.
+ * You can use the int #i18n_timezone_foreach_timezone_id() function to obtain a list of all the time zone IDs recognized by #i18n_timezone_create().\n
+ * You can also use #i18n_timezone_create_default() to create an i18n_timezone_h. This function uses platform-specific APIs to produce
+ * an i18n_timezone_h for the time zone corresponding to the client's computer's physical location.
+ * For example, if you're in Japan (assuming your machine is set up correctly), #i18n_timezone_create_default()
+ * will return an i18n_timezone_h for Japanese Standard Time ("Asia/Tokyo").
+ */
+
+/**
+ * @addtogroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE
+ * @{
+ */
+
+/**
+ * @brief Returns the "unknown" time zone.
+ * @details #i18n_timezone_create() returns a mutable clone of this time zone if the input ID is not recognized.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone the "unknown" time zone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_create()
+ * @see i18n_timezone_create_gmt()
+ */
+int i18n_timezone_create_unknown(i18n_timezone_h *timezone);
+
+/**
+ * @brief The GMT (=UTC) time zone has a raw offset of zero and does not use daylight savings time.
+ * @details This is a commonly used time zone.\n
+ * Note: For backward compatibility reason, the ID used by the time zone returned by this method is "GMT", although the I18N's canonical ID for the GMT time zone is "Etc/GMT".
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone the GMT/UTC time zone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_create_unknown()
+ */
+int i18n_timezone_create_gmt(i18n_timezone_h *timezone);
+
+/**
+ * @brief Creates an i18n_timezone_h for the given timezone_id.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone the GMT/UTC time zone.
+ * @param[in] timezone_id the ID for an i18n_timezone_h, such as "America/Los_Angeles", or a custom ID such as "GMT-8:00".
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_create(i18n_timezone_h *timezone, const char *timezone_id);
+
+/**
+ * @brief Destroys an i18n_timezone_h.
+ * @details Once destroyed, an i18n_timezone_h may no longer be used.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to destroy.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_destroy(i18n_timezone_h timezone);
+
+/**
+ * @brief Returns an enumeration over system time zone IDs with the given filter conditions.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_type The system time zone type.
+ * @param[in] region The ISO 3166 two-letter country code or UN M.49 three-digit area code. When NULL, no filtering done by region.
+ * @param[in] raw_offset An offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any. When NULL, no filtering done by zone offset.
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id_by_region(i18n_system_timezone_type_e timezone_type, const char *region, const int32_t *raw_offset, i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns an enumeration over all recognized time zone IDs.
+ * (i.e., all strings that #i18n_timezone_create() accepts)
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id(i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns an enumeration over time zone IDs with a given raw offset from GMT.
+ * @details There may be several times zones with the same GMT offset that differ in the way they
+ * handle daylight savings time. For example, the state of Arizona doesn't observe daylight
+ * savings time. If you ask for the time zone IDs corresponding to GMT-7:00,
+ * you'll get back an enumeration over two time zone IDs: "America/Denver,"
+ * which corresponds to Mountain Standard Time in the winter and Mountain Daylight Time in the summer,
+ * and "America/Phoenix", which corresponds to Mountain Standard Time year-round, even in the summer.
+ *
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] raw_offset an offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id_with_offset(int32_t raw_offset, i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns an enumeration over time zone IDs associated with the given country.
+ * @details Some zones are affiliated with no country (e.g., "UTC"); these may also be retrieved, as a group.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] country The ISO 3166 two-letter country code, or NULL to retrieve zones not affiliated with any country.
+ * @param[in] cb The callback function to get an enumeration object, owned by the caller.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_foreach_timezone_id_by_country(const char *country, i18n_timezone_id_cb cb, void *user_data);
+
+/**
+ * @brief Returns the number of IDs in the equivalency group that includes the given ID.
+ * @details An equivalency group contains zones that have the same GMT offset and rules.\n
+ * The returned count includes the given ID; it is always >= 1. The given ID must be a system time zone. If it is not, returns zero.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_id a system time zone ID
+ * @param[out] count the number of zones in the equivalency group containing 'timezone_id', or zero if 'timezone_id' is not a valid system ID
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_get_equivalent_id()
+ */
+int i18n_timezone_count_equivalent_ids(const char *timezone_id, int32_t *count);
+
+/**
+ * @brief Returns an ID in the equivalency group that includes the given ID.
+ * @details An equivalency group contains zones that have the same GMT offset and rules.\n
+ * The given index must be in the range 0..n-1, where n is the out parameter value
+ * from i18n_timezone_count_equivalent_ids(timezone_id, &n).
+ * For some value of 'index', the returned value will be equal to the given id.
+ * If the given id is not a valid system time zone,
+ * or if 'index' is out of range, then returns an empty string.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_id a system time zone ID
+ * @param[in] index a value from 0 to n-1, where n is the out parameter value from i18n_timezone_count_equivalent_ids(timezone_id, &n)
+ * @param[out] equivalent_timezone_id the ID of the index-th zone in the equivalency group containing 'timezone_id',
+ * or an empty string if 'timezone_id' is not a valid system ID or 'index' is out of range
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @see i18n_timezone_count_equivalent_ids()
+ */
+int i18n_timezone_get_equivalent_id(const char *timezone_id, int32_t index, char **equivalent_timezone_id);
+
+/**
+ * @brief Creates a new copy of the default i18n_timezone_h for this host.
+ * @details Unless the default time zone has already been set using #i18n_timezone_set_default(),
+ * the default is determined by querying the system using methods in TPlatformUtilities.
+ * If the system routines fail, or if they specify an i18n_timezone_h or i18n_timezone_h offset
+ * which is not recognized, the i18n_timezone_h indicated by the ID kLastResortID
+ * is instantiated and made the default.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] timezone A default i18n_timezone_h. Clients are responsible for deleting the time zone object returned.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_create_default(i18n_timezone_h *timezone);
+
+/**
+ * @brief Sets the default time zone (i.e., what's returned by #i18n_timezone_create_default()) to be the specified time zone.
+ * @details If NULL is specified for the time zone, the default time zone is set to the default host time zone.
+ * The caller remains responsible for deleting it. \n
+ * This function is not thread safe. It is an error for multiple threads to concurrently attempt to set
+ * the default time zone, or for any thread to attempt to reference the default zone while another thread is setting it.
+ *
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @remarks Do not use unless you know what you are doing.
+ *
+ * @param[in] timezone The given timezone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_set_default(i18n_timezone_h timezone);
+
+/**
+ * @brief Returns the timezone data version currently used by I18N.
+ * @remarks The specific error code can be obtained using the get_last_result()
+ * method. Error codes are described in #i18n_error_code_e description.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @return the version string, such as "2007f"
+ * @exception #I18N_ERROR_NONE Successful
+ */
+const char *i18n_timezone_get_tzdata_version(void);
+
+/**
+ * @brief Gets the region code associated with the given system time zone ID.
+ * @details The region code is either ISO 3166 2-letter country code or UN M.49 3-digit area code.
+ * When the time zone is not associated with a specific location, for example - "Etc/UTC",
+ * "EST5EDT", then this method returns "001" (UN M.49 area code for World).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone_id The system time zone ID.
+ * @param[out] region Output buffer for receiving the region code.
+ * @param[out] region_len The length of the region code.
+ * @param[in] region_capacity The size of the output buffer. If it is lower than required @a region buffer size,
+ * then I18N_ERROR_BUFFER_OVERFLOW error is returned.
+ *
+ * @return the version string, such as "2007f"
+ */
+int i18n_timezone_get_region(const char *timezone_id, char *region, int32_t *region_len, int32_t region_capacity);
+
+/**
+ * @brief Returns the time zone raw and GMT offset for the given moment in time.
+ * @details Upon return, local-millis = GMT-millis + rawOffset + dstOffset. All computations are performed
+ * in the proleptic Gregorian calendar.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get an offset.
+ * @param[in] date moment in time for which to return offsets, in units of milliseconds from January 1, 1970 0:00 GMT, either GMT time or local wall time, depending on `local'.
+ * @param[in] local output if true, `date' is local wall time; otherwise it is in GMT time.
+ * @param[out] raw_offset parameter to receive the raw offset, that is, the offset not including DST adjustments
+ * @param[out] dst_offset output parameter to receive the DST offset, that is, the offset to be added to `raw_offset' to obtain the total offset between local and GMT time. If DST is not in effect, this value is zero; otherwise it is a positive value, typically one hour.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_offset_with_date(i18n_timezone_h timezone, i18n_udate date, i18n_ubool local, int32_t *raw_offset, int32_t *dst_offset);
+
+/**
+ * @brief Sets the i18n_timezone_h's raw GMT offset
+ * (i.e., the number of milliseconds to add to GMT to get local time, before taking daylight savings time into account).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to set a raw offset.
+ * @param[in] offset_milliseconds The new raw GMT offset for this time zone.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_set_raw_offset(i18n_timezone_h timezone, int32_t offset_milliseconds);
+
+/**
+ * @brief Gets the i18n_timezone_h's raw GMT offset (i.e., the number of milliseconds
+ * to add to GMT to get local time, before taking daylight savings time into account).
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a raw offset.
+ * @param[out] offset_milliseconds The i18n_timezone_h's raw GMT offset.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_raw_offset(i18n_timezone_h timezone, int32_t *offset_milliseconds);
+
+/**
+ * @brief Fills in "timezone_id" with the i18n_timezone_h's ID.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a timezone ID.
+ * @param[out] timezone_id Receives this i18n_timezone_h's ID.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_id(i18n_timezone_h timezone, char **timezone_id);
+
+/**
+ * @brief Sets the i18n_timezone_h's ID to the specified value.
+ * @details This doesn't affect any other fields. for example,\n
+ * \n<code>
+ * i18n_timezone_h timezone = NULL;\n
+ * i18n_timezone_create ( &timezone, "America/New_York" );\n
+ * i18n_timezone_set_id ( "America/Los_Angeles" );\n
+ * </code>\n
+ * the timezone's GMT offset and daylight-savings rules don't change to those for Los Angeles.
+ * They're still those for New York. Only the ID has changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to set a timezone ID.
+ * @param[in] timezone_id The new time zone ID.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_set_id(i18n_timezone_h timezone, const char *timezone_id);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details This method returns the long name, not including daylight savings.
+ * If the display name is not available for the locale, then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name(i18n_timezone_h timezone, char **display_name);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details This method returns the long name, not including daylight savings.
+ * If the display name is not available for the locale, then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[in] language The language in which to supply the display name. This parameter can be NULL; if so, the locale is initialized to match the current default locale.
+ * @param[in] country The country in which to supply the display name. This parameter can be NULL.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name_with_locale(i18n_timezone_h timezone, const char *language, const char *country , char **display_name);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details If the display name is not available for the locale,
+ * then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[in] daylight If true, display_name is filled with the daylight savings name.
+ * @param[in] style The style displayed on.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name_with_type(i18n_timezone_h timezone, i18n_ubool daylight, i18n_timezone_display_type_e style, char **display_name);
+
+/**
+ * @brief Returns a name of this time zone suitable for presentation to the user in the default locale.
+ * @details If the display name is not available for the locale,
+ * then this method returns a string in the localized GMT offset format such as GMT[+-]HH:mm.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get a display name.
+ * @param[in] daylight If true, display_name is filled with the daylight savings name.
+ * @param[in] style The style displayed on.
+ * @param[in] language The language in which to supply the display name. This parameter can be NULL; if so, the locale is initialized to match the current default locale.
+ * @param[in] country The country in which to supply the display name. This parameter can be NULL.
+ * @param[out] display_name The human-readable name of this time zone in the default locale.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_display_name_with_type_locale(i18n_timezone_h timezone, i18n_ubool daylight, i18n_timezone_display_type_e style, const char *language, const char *country, char **display_name);
+
+/**
+ * @brief Queries if this time zone uses daylight savings time.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to know whether uses daylight savings time or not.
+ * @param[out] daylight_time True if this time zone uses daylight savings time, False, otherwise.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_use_daylight_time(i18n_timezone_h timezone, i18n_ubool *daylight_time);
+
+/**
+ * @brief Queries if the given date is in daylight savings time in this time zone.
+ * @details This method is wasteful since it creates a new GregorianCalendar and deletes it each time it is called.
+ * @since_tizen 2.3
+ *
+ * @deprecated Deprecated since 2.3.1. Use i18n_ucalendar_is_in_daylight_time() instead.
+ *
+ * @param[in] timezone The i18n_timezone_h to know whether in daylight savings time or not.
+ * @param[in] date the given i18n_udate.
+ * @param[out] daylight_time True if the given date is in daylight savings time, False, otherwise.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_in_daylight_time(i18n_timezone_h timezone, i18n_udate date, i18n_ubool *daylight_time);
+
+/**
+ * @brief Returns true if this zone has the same rule and offset as another zone.
+ * @details That is, if this zone differs only in ID, if at all.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to know whether has the same rule or not.
+ * @param[in] other The i18n_timezone_h to be compared with.
+ * @param[out] same_rule True if the given zone is the same as this one, with the possible exception of the ID.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_has_same_rule(i18n_timezone_h timezone, i18n_timezone_h other, i18n_ubool *same_rule);
+
+/**
+ * @brief Clones i18n_timezone_h polymorphically.
+ * @details Clients are responsible for deleting the i18n_timezone_h cloned.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to clone.
+ * @param[out] clone A new copy of this i18n_timezone_h.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_clone(i18n_timezone_h timezone, i18n_timezone_h *clone);
+
+/**
+ * @brief Returns the amount of time to be added to local standard time to get local wall clock time.
+ * @details The default implementation always returns 3600000 milliseconds (i.e., one hour) if this time zone observes Daylight Saving Time.
+ * Otherwise, 0 (zero) is returned.\n
+ * If an underlying TimeZone implementation subclass supports historical Daylight Saving Time changes,
+ * this method returns the known latest daylight saving value.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] timezone The i18n_timezone_h to get DST savings.
+ * @param[out] dst_savings The amount of saving time in milliseconds.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ */
+int i18n_timezone_get_dst_savings(i18n_timezone_h timezone, int32_t *dst_savings);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ * @}
+ */
+#endif /* __UTILS_I18N_TIMEZONE_H__*/
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __UTILS_I18N_USEARCH_H__
+#define __UTILS_I18N_USEARCH_H__
+
+#include <utils_i18n_types.h>
+
+/**
+ * @file utils_i18n_usearch.h
+ * @version 0.1
+ * @brief utils_i18n_usearch
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @ingroup CAPI_BASE_UTILS_I18N_MODULE
+ * @defgroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE Usearch
+ * @brief The Usearch module provides language-sensitive text searching based on the comparison rules defined in a ucollator data struct.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USEARCH_MODULE_HEADER Required Header
+ * \#include <utils_i18n.h>
+ *
+ * @section CAPI_BASE_UTILS_I18N_USEARCH_MODULE_OVERVIEW Overview
+ * @details The Usearch module provides language-sensitive text searching based on the comparison rules defined in a ucollator data struct.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USEARCH_MODULE_SAMPLE_CODE_1 Sample Code 1
+ * @brief Searches the pattern and gets the matched text.
+ * @code
+ char *string = "TIZEN";
+ char *keyword = "ZE";
+ i18n_uchar target[16] = {0,};
+ i18n_uchar pattern[16] = {0,};
+ i18n_uchar u_matched[16] = {0,};
+ char tmp[1] = {0};
+ i18n_usearch_h search = NULL;
+ int pos = 0;
+ int matched_text_len = 0;
+ int i = 0;
+ i18n_error_code_e error_code;
+
+ i18n_ustring_from_UTF8( target, 16, NULL, string, -1, &error_code );
+ i18n_ustring_from_UTF8( pattern, 16, NULL, keyword, -1, &error_code );
+
+ // creates a search
+ i18n_usearch_create_new( pattern, -1, target, -1, "en_US", NULL, &search );
+
+ // gets the first index of the target that matches with the pattern
+ i18n_usearch_first( search, &pos );
+ dlog_print(DLOG_INFO, LOG_TAG, "the first index = %d", pos ); // The first index = 2
+
+ // gets the matched text
+ i18n_usearch_get_matched_text( search, u_matched, 16, &matched_text_len );
+ for ( i = 0; i < matched_text_len; i++) {
+ i18n_ustring_copy_au_n( tmp, &u_matched[i], 1 );
+ dlog_print(DLOG_INFO, LOG_TAG, "u_matched[%d] = %c", i, tmp[0] ); // u_matched[0] = Z, u_matched[1] = E
+ }
+ i18n_usearch_destroy( search );
+ * @endcode
+ */
+
+/**
+ * @addtogroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE
+ * @{
+ */
+
+/**
+ * @brief Creates an i18n_usearch_h using the argument locale language rule set.
+ * @details A collator will be created in the process, which will be owned by
+ * this search and will be deleted in i18n_usearch_destroy().
+ * @remarks Must release @a search_iter using i18n_usearch_destroy().
+ * @since_tizen 2.3
+ *
+ * @deprecated Deprecated since 2.3.1. Use i18n_usearch_create_new() instead.
+ *
+ * @param[in] pattern The pattern for matching
+ * @param[in] pattern_len The length of the pattern, otherwise @c -1 for NULL-termination
+ * @param[in] text The text string
+ * @param[in] text_len The length of the text string, otherwise @c -1 for NULL-termination
+ * @param[in] locale The name of the locale for the rules to be used
+ * @param[in] break_iter An #i18n_ubreak_iterator_s that will be used to restrict the points at which matches are detected. If a match is found,\n
+ * but the match's start or end index is not a boundary as determined by the #i18n_ubreak_iterator_s,
+ * the match will be rejected and another will be searched for. If this parameter is @c NULL,\n
+ * no break detection is attempted.
+ * @param[out] search_iter The #i18n_usearch_h, otherwise @c NULL if there is an error
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_create(const i18n_uchar *pattern, int32_t pattern_len, const i18n_uchar *text, int32_t text_len, const char *locale, i18n_ubreak_iterator_s *break_iter, i18n_usearch_h *search_iter);
+
+/**
+ * @brief Creates an #i18n_usearch_h using the argument locale language rule set.
+ * @details A collator will be created in the process, which will be owned by
+ * this search and will be deleted in i18n_usearch_destroy().
+ * @remarks Must release @a search_iter using i18n_usearch_destroy().
+ * @since_tizen 2.3.1
+ *
+ * @param[in] pattern The pattern for matching
+ * @param[in] pattern_len The length of the pattern, otherwise @c -1 for NULL-termination
+ * @param[in] text The text string
+ * @param[in] text_len The length of the text string, otherwise @c -1 for NULL-termination
+ * @param[in] locale The name of the locale for the rules to be used
+ * @param[in] break_iter An #i18n_ubreak_iterator_h that will be used to restrict the points at which matches are detected. If a match is found,\n
+ * but the match's start or end index is not a boundary as determined by the #i18n_ubreak_iterator_h,
+ * the match will be rejected and another will be searched for. If this parameter is @c NULL,\n
+ * no break detection is attempted.
+ * @param[out] search_iter The #i18n_usearch_h, otherwise @c NULL if there is an error
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_create_new(const i18n_uchar *pattern, int32_t pattern_len, const i18n_uchar *text,
+ int32_t text_len, const char *locale, i18n_ubreak_iterator_h break_iter, i18n_usearch_h *search_iter);
+
+/**
+ * @brief Destroys and cleans up the i18n_usearch_h.
+ * @details If a collator is created in i18n_usearch_create(), it will be destroyed here.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The i18n_usearch_h to clean up
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_destroy(i18n_usearch_h search_iter);
+
+/**
+ * @brief Returns the text that matches by the most recent call to i18n_usearch_first(), or so on.
+ * @details If the iterator is not pointing at a valid match (e.g. just after
+ * construction or after #I18N_USEARCH_DONE has been returned, it returns
+ * an empty string. If the result is not large enough to store the matched text,
+ * the result will be filled with the partial text and an #I18N_ERROR_BUFFER_OVERFLOW
+ * will be returned in status. The result will be NULL-terminated whenever
+ * possible. If the buffer fits the matched text exactly, a NULL-termination
+ * is not possible.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The search iterator handle
+ * @param[out] result i18n_uchar The buffer to store the matched string
+ * @param[in] result_capacity The length of the result buffer
+ * @param[out] len_matched_text The exact length of the matched text, not counting the NULL-termination
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @retval #I18N_ERROR_BUFFER_OVERFLOW A result would not fit in the supplied buffer
+ */
+int i18n_usearch_get_matched_text(const i18n_usearch_h search_iter, i18n_uchar *result, int32_t result_capacity, int32_t *len_matched_text);
+
+/**
+ * @brief Gets the collator used for the language rules.
+ * @details Deleting the returned i18n_ucollator_h before calling
+ * i18n_usearch_destroy() would cause the string search to fail.
+ * i18n_usearch_destroy() will delete the collator if this search owns it.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The search iterator handle
+ * @param[out] collator The collator
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_get_collator(const i18n_usearch_h search_iter, i18n_ucollator_h *collator);
+
+/**
+ * @brief Returns the first index at which the string text matches the search pattern.
+ * @details The iterator is adjusted so that its current index
+ * is the match position if one is found.
+ * If a match is not found, #I18N_USEARCH_DONE will be returned and
+ * the iterator will be adjusted to the index #I18N_USEARCH_DONE.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] search_iter The search iterator handle
+ * @param[out] index_first The character index of the first match,
+ * otherwise #I18N_USEARCH_DONE if there are no matches.
+ *
+ * @retval #I18N_ERROR_NONE Successful
+ * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int i18n_usearch_first(i18n_usearch_h search_iter, int32_t *index_first);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ * @}
+ */
+
+#endif /* __UTILS_I18N_USEARCH_H__*/
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Copyright (C) 1998-2012, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ */
+
+#ifndef __UTILS_I18N_USTRING_H__
+#define __UTILS_I18N_USTRING_H__
+
+#include <utils_i18n_types.h>
+
+/**
+ * @file utils_i18n_ustring.h
+ * @version 0.1
+ * @brief utils_i18n_ustring
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @ingroup CAPI_BASE_UTILS_I18N_MODULE
+ * @defgroup CAPI_BASE_UTILS_I18N_USTRING_MODULE Ustring
+ * @brief The Ustring module provides general unicode string handling information.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USTRING_MODULE_HEADER Required Header
+ * \#include <utils_i18n.h>
+ *
+ * @section CAPI_BASE_UTILS_I18N_USTRING_MODULE_OVERVIEW Overview
+ * @details The Ustring module provides general unicode string handling information.
+ *
+ * @section CAPI_BASE_UTILS_I18N_USTIRING_MODULE_SAMPLE_CODE_1 Sample Code 1
+ * @brief It converts a byte string to a unicode string and then to uppercase letters.
+ * @code
+ char str_1[64] = {0,};
+ i18n_uchar uchar_str_1[64] = {0,};
+ i18n_uchar uchar_str_2[64] = {0,};
+ int uchar_len = 0;
+ i18n_uerror_code_e err_code = I18N_ERROR_NONE;
+
+ strcpy(str_1, "tizen");
+ dlog_print(DLOG_INFO, LOG_TAG, "str_1 is %s\n", str_1); // str_1 is tizen
+
+ // converts a byte string to a unicode string
+ i18n_ustring_copy_ua_n(uchar_str_1, str_1, strlen(str_1));
+
+ // converts to uppercase letters
+ i18n_ustring_to_upper(uchar_str_2, 64, uchar_str_1, i18n_ustring_get_length( uchar_str_1 ), "en_US", &err_code);
+
+ i18n_ustring_copy_au(str_1, uchar_str_2);
+ dlog_print(DLOG_INFO, LOG_TAG, "str_1 is %s\n", str_1); // str_1 is TIZEN
+ * @endcode
+ */
+
+/**
+ * @addtogroup CAPI_BASE_UTILS_I18N_USTRING_MODULE
+ * @{
+ */
+
+/**
+ * @brief Determines the length of an array of #i18n_uchar.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The array of #i18n_uchar characters, @c NULL (U+0000) terminated.
+ *
+ * @return The number of #i18n_uchar characters in @c chars, minus the terminator
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_get_length(const i18n_uchar *s);
+
+/**
+ * @brief Counts Unicode code points in the length #i18n_uchar code units of the string.
+ * @details A code point may occupy either one or two #i18n_uchar code units.
+ * Counting code points involves reading all code units.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The input string.
+ * @param[in] length The number of #i18n_uchar code units to be checked, or @c -1 to count
+ * all code points before the first NULL (U+0000).
+ *
+ * @return The number of code points in the specified code units.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_count_char32(const i18n_uchar *s, int32_t length);
+
+/**
+ * @brief Checks if the string contains more Unicode code points than a certain number.
+ * @details This is more efficient than counting all code points in the entire string and comparing that number with a threshold.
+ * This function may not need to scan the string at all if the length is known (not @c -1 for NULL-termination) and falls within a certain range,
+ * and never needs to count more than 'number+1' code points.
+ * Logically equivalent to ( i18n_ustring_count_char32 (s, length, &number_of_code_points); number_of_code_points > number ).
+ * A Unicode code point may occupy either one or two #i18n_uchar code units.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The input string.
+ * @param[in] length The length of the string, or @c -1 if it is NULL-terminated.
+ * @param[in] number The number of code points in the string is compared against the @a number parameter.
+ *
+ * @return Boolean value for whether the string contains more Unicode code points than @a number. Same as ( i18n_ustring_count_char32 (s, length, &number_of_code_points); number_of_code_points > number).
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_ubool i18n_ustring_has_more_char32_than(const i18n_uchar *s, int32_t length, int32_t number);
+
+/**
+ * @brief Concatenates two ustrings.
+ * @details Appends a copy of @a src, including the NULL terminator, to @a dest.
+ * The initial copied character from @a src overwrites the NULL terminator in @a dest.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string.
+ * @param[in] src The source string.
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_cat(i18n_uchar *dest, const i18n_uchar *src);
+
+/**
+ * @brief Concatenate two ustrings.
+ * @details Appends a copy of @a src, including the NULL terminator, to @a dest.
+ * The initial copied character from @a src overwrites the NULL terminator in @a dest.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string.
+ * @param[in] src The source string.
+ * @param[in] n The maximum number of characters to append; no-op if <=0.
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_cat_n(i18n_uchar *dest, const i18n_uchar *src, int32_t n);
+
+/**
+ * @brief Finds the first occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ * or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ * Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] sub_string The substring to find (NULL-terminated).
+ *
+ * @return A pointer to the first occurrence of @a sub_string in @a s,
+ * or @a s itself if the @a sub_string is empty,
+ * or @c NULL if @a sub_string is not in @a s.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ *
+ * @see i18n_ustring_r_string()
+ * @see i18n_ustring_find_first()
+ * @see i18n_ustring_find_last()
+ */
+i18n_uchar *i18n_ustring_string(const i18n_uchar *s, const i18n_uchar *sub_string);
+
+/**
+ * @brief Finds the first occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ * or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ * Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] length The length of @a s (number of #i18n_uchar characters), or @c -1 if it is NULL-terminated.
+ * @param[in] sub_string The substring to find (NULL-terminated).
+ * @param[in] sub_length The length of substring (number of #i18n_uchar characters), or @c -1 if it is NULL-terminated.
+ *
+ * @return A pointer to the first occurrence of @a sub_string in @a s,
+ * or @a s itself if the @a sub_string is empty,
+ * or @c NULL if @a sub_string is not in @a s.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ *
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_last()
+ */
+i18n_uchar *i18n_ustring_find_first(const i18n_uchar *s, int32_t length, const i18n_uchar *sub_string, int32_t sub_length);
+
+/**
+ * @brief Finds the first occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The BMP code point to find.
+ *
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char32()
+ * @see i18n_ustring_mem_char()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_char(const i18n_uchar *s, i18n_uchar c);
+
+/**
+ * @brief Finds the first occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The code point to find.
+ *
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char()
+ * @see i18n_ustring_mem_char32()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_char32(const i18n_uchar *s, i18n_uchar32 c);
+
+/**
+ * @brief Finds the last occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ * or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ * Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] sub_string The substring to find (NULL-terminated).
+ *
+ * @return A pointer to the last occurrence of @a substring in @a s,
+ * or @a s itself if the @a sub_string is empty,
+ * or @c NULL if @a sub_string is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ * @see i18n_ustring_find_last()
+ */
+i18n_uchar *i18n_ustring_r_string(const i18n_uchar *s, const i18n_uchar *sub_string);
+
+/**
+ * @brief Finds the last occurrence of a substring in a string.
+ * @details The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate
+ * or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text.
+ * Otherwise, the substring edge units would be matched against halves of surrogate pairs.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search.
+ * @param[in] length The length of s (number of #i18n_uchar), or @c -1 if it is NULL-terminated.
+ * @param[in] sub_string The sub_string to find (NULL-terminated).
+ * @param[in] sub_length The length of sub_string (number of #i18n_uchar), or @c -1 if it is NULL-terminated.
+ *
+ * @return A pointer to the last occurrence of @a sub_string in @a s,
+ * or @a s itself if the @a substring is empty,
+ * or @c NULL if @a sub_string is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_find_last(const i18n_uchar *s, int32_t length, const i18n_uchar *sub_string, int32_t sub_length);
+
+/**
+ * @brief Finds the last occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The BMP code point to find.
+ *
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char32()
+ * @see i18n_ustring_mem_char()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_r_char(const i18n_uchar *s, i18n_uchar c);
+
+/**
+ * @brief Finds the last occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (NULL-terminated).
+ * @param[in] c The code point to find.
+ *
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char()
+ * @see i18n_ustring_mem_char32()
+ * @see i18n_ustring_string()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_r_char32(const i18n_uchar *s, i18n_uchar32 c);
+
+/**
+ * @brief Locates the first occurrence in the string of any of the characters in the string matchSet.
+ * @details Works just like C's strpbrk but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] string The string in which to search, NULL-terminated.
+ * @param[in] match_set A NULL-terminated string defining a set of code points for which to search in the text string.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @return A pointer to the character in @a string that matches one of the
+ * characters in @a match_set, or NULL if no such character is found.
+ */
+i18n_uchar *i18n_ustring_pbrk(const i18n_uchar *string, const i18n_uchar *match_set);
+
+/**
+ * @brief Returns the number of consecutive characters in string, beginning with the first, that do not occur somewhere in match_set.
+ * @details Works just like C's strcspn but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] string The string in which to search, NULL-terminated.
+ * @param[in] match_set A NULL-terminated string defining a set of code points for which to search in the text string.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @return The number of initial characters in @a string that do not
+ * occur in @a match_set.
+ */
+int32_t i18n_ustring_cspn(const i18n_uchar *string, const i18n_uchar *match_set);
+
+/**
+ * @brief Returns the number of consecutive characters in string, beginning with the first, that occur somewhere in match_set.
+ * @details Works just like C's strspn but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] string The string in which to search, NULL-terminated.
+ * @param[in] match_set A NULL-terminated string defining a set of code points for which to search in the text string.
+ * @return The number of initial characters in @a string that do
+ * occur in @a match_set.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_spn()
+ */
+int32_t i18n_ustring_spn(const i18n_uchar *string, const i18n_uchar *match_set);
+
+/**
+ * @brief The string tokenizer API allows an application to break a string into tokens.
+ * @details Works just like C's strspn but with Unicode.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] src String containing token(s). This string will be modified. After the first call to #i18n_ustring_tokenizer_r(), this argument must be NULL to get to the next token.
+ * @param[in] delim Set of delimiter characters (Unicode code points).
+ * @param[out] save_state The current pointer within the original string, which is set by this function.
+ * The save_state parameter should the address of a local variable of type #i18n_uchar *.
+ * @return A pointer to the next token found in src, or NULL
+ * when there are no more tokens.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_tokenizer_r(i18n_uchar *src, const i18n_uchar *delim, i18n_uchar **save_state);
+
+/**
+ * @brief Compares two Unicode strings for bitwise equality (code unit order).
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @return 0 if @a s1 and @a s2 are bitwise equal; a negative
+ * value if @a s1 is bitwise less than @a s2; a positive
+ * value if @a s1 is bitwise greater than @a s2.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare(const i18n_uchar *s1, const i18n_uchar *s2);
+
+/**
+ * @brief Compare two Unicode strings in code point order.
+ * @details See #i18n_ustring_compare() for details.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @return a negative/zero/positive integer corresponding to whether
+ * the first string is less than/equal to/greater than the second one
+ * in code point order
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_code_point_order(const i18n_uchar *s1, const i18n_uchar *s2);
+
+/**
+ * @brief Compare two Unicode strings (binary order).
+ * @details The comparison can be done in code unit order or in code point order. They differ only in UTF-16 when comparing supplementary code points
+ * (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff). In code unit order, high BMP code points sort after
+ * supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.\n
+ * This functions works with strings of different explicitly specified lengths unlike the ANSI C-like #i18n_ustring_compare() and #i18n_ustring_mem_compare() etc.
+ * NULL-terminated strings are possible with length arguments of -1.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 First source string.
+ * @param[in] length1 Length of first source string, or @c -1 if NULL-terminated.
+ * @param[in] s2 Second source string.
+ * @param[in] length2 Length of second source string, or @c -1 if NULL-terminated.
+ * @param[in] code_point_order Choose between code unit order (false) and code point order (true).
+ * @return < 0, 0 or > 0 as usual for string comparisons
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_binary_order(const i18n_uchar *s1, int32_t length1, const i18n_uchar *s2, int32_t length2, i18n_ubool code_point_order);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @details The comparison can be done in UTF-16 code unit order or in code point order. They differ only when comparing
+ * supplementary code points (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).
+ * In code unit order, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.\n
+ * This functions works with strings of different explicitly specified lengths unlike the ANSI C-like #i18n_ustring_compare() and i18n_ustring_mem_compare() etc.
+ * NULL-terminated strings are possible with length arguments of -1.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 First source string.
+ * @param[in] length1 Length of first source string, or @c -1 if NULL-terminated.
+ * @param[in] s2 Second source string.
+ * @param[in] length2 Length of second source string, or @c -1 if NULL-terminated.
+ * @param[in] options A bit set of options:\n
+ * - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.\n
+ * - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see i18n_ustring_compare_code_pointer_order() for details).\n
+ * - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return <0 or 0 or >0 as usual for string comparisons
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_case_compare_with_length(const i18n_uchar *s1, int32_t length1, const i18n_uchar *s2, int32_t length2, uint32_t options, i18n_error_code_e *error_code);
+
+/**
+ * @brief Compare two ustrings for bitwise equality.
+ * @details Compares at most n characters.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare (can be NULL/invalid if n<=0).
+ * @param[in] s2 A string to compare (can be NULL/invalid if n<=0).
+ * @param[in] n The maximum number of characters to compare; always returns 0 if n<=0.
+ * @return 0 if @a s1 and @a s2 are bitwise equal; a negative
+ * value if @a s1 is bitwise less than @a s2; a positive
+ * value if @a s1 is bitwise greater than @a s2.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_n(const i18n_uchar *s1, const i18n_uchar *s2, int32_t n);
+
+/**
+ * @brief Compare two Unicode strings in code point order.
+ * @details This is different in UTF-16 from #i18n_ustring_compare_n() if supplementary characters are present. For details, see #i18n_ustring_compare_binary_order().
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] n The maximum number of characters to compare.
+ * @return a negative/zero/positive integer corresponding to whether
+ * the first string is less than/equal to/greater than the second one
+ * in code point order
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_compare_n_code_point_order(const i18n_uchar *s1, const i18n_uchar *s2, int32_t n);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] options bit set of options:\n
+ * - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.
+ * - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see u_strCompare for details).
+ * - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @return A negative, zero, or positive integer indicating the comparison result.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_case_compare(const i18n_uchar *s1, const i18n_uchar *s2, uint32_t options);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] n The maximum number of characters each string to case-fold and then compare.
+ * @param[in] options A bit set of options:\n
+ * - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.
+ * - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see u_strCompare for details).
+ * - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @return A negative, zero, or positive integer indicating the comparison result.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_case_compare_n(const i18n_uchar *s1, const i18n_uchar *s2, int32_t n, uint32_t options);
+
+/**
+ * @brief Compare two strings case-insensitively using full case folding.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] length The number of characters in each string to case-fold and then compare.
+ * @param[in] options A bit set of options:\n
+ * - #I18N_USTRING_U_FOLD_CASE_DEFAULT or 0 is used for default options: Comparison in code unit order with default case folding.
+ * - #I18N_USTRING_U_COMPARE_CODE_POINT_ORDER Set to choose code point order instead of code unit order (see u_strCompare for details).
+ * - #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @return A negative, zero, or positive integer indicating the comparison result.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_mem_case_compare(const i18n_uchar *s1, const i18n_uchar *s2, int32_t length, uint32_t options);
+
+/**
+ * @brief Copies a ustring. Adds a NULL terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy(i18n_uchar *dest, const i18n_uchar *src);
+
+/**
+ * @brief Copies a ustring.
+ * @details Copies at most @a n characters. The result will be NULL terminated
+ * if the length of @a src is less than @a n.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ * @param[in] n The maximum number of characters to copy
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy_n(i18n_uchar *dest, const i18n_uchar *src, int32_t n);
+
+/**
+ * @brief Copies a byte string encoded in the default codepage to a ustring.
+ * @details Adds a NULL terminator. Performs a host byte to #i18n_uchar conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy_ua(i18n_uchar *dest, const char *src);
+
+/**
+ * @brief Copies a byte string encoded in the default codepage to a ustring.
+ * @details Copies at most @a n characters. The result will be NULL terminated
+ * if the length of @a src is less than @a n.
+ * Performs a host byte to #i18n_uchar conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ * @param[in] n The maximum number of characters to copy
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_copy_ua_n(i18n_uchar *dest, const char *src, int32_t n);
+
+/**
+ * @brief Copies a ustring to a byte string encoded in the default codepage.
+ * @details Adds a NULL terminator. Performs an #i18n_uchar to host byte conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+char *i18n_ustring_copy_au(char *dest, const i18n_uchar *src);
+
+/**
+ * @brief Copies a ustring to a byte string encoded in the default codepage.
+ * @details Copies at most @a n characters. The result will be NULL terminated
+ * if the length of @a src is less than @a n.
+ * Performs an #i18n_uchar to host byte conversion.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string
+ * @param[in] n The maximum number of characters to copy
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+char *i18n_ustring_copy_au_n(char *dest, const i18n_uchar *src, int32_t n);
+
+/**
+ * @brief Synonym for memcpy(), but with #i18n_uchar characters only.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string (can be NULL/invalid if count<=0)
+ * @param[in] count The number of characters to copy; no-op if <=0
+ *
+ * @return A pointer to @a dest
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_copy(i18n_uchar *dest, const i18n_uchar *src, int32_t count);
+
+/**
+ * @brief Synonym for memmove(), but with #i18n_uchar characters only.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] src The source string (can be NULL/invalid if count<=0)
+ * @param[in] count The number of characters to copy; no-op if <=0
+ *
+ * @return A pointer to @a dest
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_move(i18n_uchar *dest, const i18n_uchar *src, int32_t count);
+
+/**
+ * @brief Initialize count characters of dest to c.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest The destination string
+ * @param[in] c The character to initialize the string.
+ * @param[in] count The maximum number of characters to set.
+ *
+ * @return A pointer to @a dest.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_set(i18n_uchar *dest, const i18n_uchar c, int32_t count);
+
+/**
+ * @brief Compare the first count #i18n_uchar characters of each buffer.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] buf1 The first string to compare.
+ * @param[in] buf2 The second string to compare.
+ * @param[in] count The maximum number of #i18n_uchar characters to compare.
+ * @return When buf1 < buf2, a negative number is returned.
+ * When buf1 == buf2, 0 is returned.
+ * When buf1 > buf2, a positive number is returned.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_mem_compare(const i18n_uchar *buf1, const i18n_uchar *buf2, int32_t count);
+
+/**
+ * @brief Compare two Unicode strings in code point order.
+ * @details This is different in UTF-16 from #i18n_ustring_mem_compare() if supplementary characters are present. For details, see #i18n_ustring_compare_binary_order().
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s1 A string to compare.
+ * @param[in] s2 A string to compare.
+ * @param[in] count The maximum number of characters to compare.
+ * @return a negative/zero/positive integer corresponding to whether
+ * the first string is less than/equal to/greater than the second one
+ * in code point order
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_mem_compare_code_point_order(const i18n_uchar *s1, const i18n_uchar *s2, int32_t count);
+
+/**
+ * @brief Finds the first occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The BMP code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_char()
+ * @see i18n_ustring_mem_char32()
+ * @see i18n_ustring_find_first()
+ */
+i18n_uchar *i18n_ustring_mem_char(const i18n_uchar *s, i18n_uchar c, int32_t count);
+
+/**
+ * @brief Finds the first occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the first occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_mem_char32(const i18n_uchar *s, i18n_uchar32 c, int32_t count);
+
+/**
+ * @brief Finds the last occurrence of a BMP code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The BMP code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see #i18n_ustring_r_char
+ * @see #i18n_ustring_mem_r_char32
+ * @see #i18n_ustring_find_last
+ */
+i18n_uchar *i18n_ustring_mem_r_char(const i18n_uchar *s, i18n_uchar c, int32_t count);
+
+/**
+ * @brief Finds the last occurrence of a code point in a string.
+ * @details A surrogate code point is found only if its match in the text is not part of a surrogate pair. A NULL character is found at the string terminator.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] s The string to search (contains count #i18n_uchar characters).
+ * @param[in] c The code point to find.
+ * @param[in] count The length of the string.
+ * @return A pointer to the last occurrence of @a c in @a s
+ * or @c NULL if @a c is not in @a s.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see #i18n_ustring_r_char32
+ * @see #i18n_ustring_mem_r_char
+ * @see #i18n_ustring_find_last
+ */
+i18n_uchar *i18n_ustring_mem_r_char32(const i18n_uchar *s, i18n_uchar32 c, int32_t count);
+
+/**
+ * @brief Unescape a string of characters and write the resulting Unicode characters to the destination buffer.
+ * @details The following escape sequences are recognized:\n
+ * \\uhhhh 4 hex digits; h in [0-9A-Fa-f] \\Uhhhhhhhh 8 hex digits \\xhh 1-2 hex digits \\x{h...} 1-8 hex digits \\ooo 1-3 octal digits; o in [0-7] \\cX control-X; X is masked with 0x1F\n
+ * as well as the standard ANSI C escapes:\n
+ * \\a => U+0007, \\b => U+0008, \\t => U+0009, \\n => U+000A, \\v => U+000B, \\f => U+000C, \\r => U+000D, \\e => U+001B, \\" => U+0022, \\' => U+0027, \\? => U+003F, \\\\ => U+005C\n
+ * Anything else following a backslash is generically escaped. For example, "[a\-z]" returns "[a-z]".\n
+ * If an escape sequence is ill-formed, this method returns an empty string. An example of an ill-formed sequence is "\\u" followed by fewer than 4 hex digits.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] src a zero-terminated string of invariant characters
+ * @param[in] dest pointer to buffer to receive converted and unescaped text and, if there is room, a zero terminator. May be NULL for preflighting, in which case no #i18n_uchar characters will be written,
+ * but the return value will still be valid. On error, an empty string is stored here (if possible).
+ * @param[in] dest_capacity the number of #i18n_uchar characters that may be written at dest. Ignored if dest == NULL.
+ * @return the length of unescaped string.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_unescape_at()
+ */
+int32_t i18n_ustring_unescape(const char *src, i18n_uchar *dest, int32_t dest_capacity);
+
+/**
+ * @brief Unescape a single sequence.
+ * @details The character at offset-1 is assumed (without checking) to be a backslash. This method takes a callback pointer to a function that returns the #i18n_uchar at a given offset.
+ * By varying this callback, I18N functions are able to unescape char* strings, and UnicodeString objects.\n
+ * If offset is out of range, or if the escape sequence is ill-formed, (i18n_uchar32)0xFFFFFFFF is returned.
+ * See documentation of #i18n_ustring_unescape() for a list of recognized sequences.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] char_at callback function that returns a #i18n_uchar of the source text given an offset and a context pointer.
+ * @param[in] offset pointer to the offset that will be passed to char_at. The offset value will be updated upon return to point after the last parsed character of the escape sequence.
+ * On error the offset is unchanged.
+ * @param[in] length the number of #i18n_uchar characters that may be written at dest. Ignored if dest == NULL.
+ * @param[in] context an opaque pointer passed directly into char_at.
+ *
+ * @return the character represented by the escape sequence at
+ * offset, or (i18n_uchar32)0xFFFFFFFF on error.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_unescape()
+ */
+i18n_uchar32 i18n_ustring_unescape_at(i18n_ustring_unescape_char_at_cb char_at, int32_t *offset, int32_t length, void *context);
+
+/**
+ * @brief Uppercases the characters in a string.
+ * @details Casing is locale-dependent and context-sensitive.
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string\n The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_to_upper(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, const char *locale, i18n_error_code_e *error_code);
+
+/**
+ * @brief Lowercase the characters in a string.
+ * @details Casing is locale-dependent and context-sensitive. The result may be longer or shorter than the original. The source string and the destination buffer are allowed to overlap.
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string. The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is 0, then dest may be NULL and the function will only return the length of the result without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_to_lower(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, const char *locale, i18n_error_code_e *error_code);
+
+/**
+ * @brief Titlecases a string.
+ * @details Casing is locale-dependent and context-sensitive.
+ * Titlecasing uses a break iterator to find the first characters of words
+ * that are to be titlecased. It titlecases those characters and lowercases
+ * all others.
+ * @remarks The titlecase break iterator can be provided to customize arbitrary
+ * styles, using rules and dictionaries beyond the standard iterators.
+ * It may be more efficient to always provide an iterator to avoid
+ * opening and closing one for each string.
+ * The standard titlecase iterator for the root locale implements the
+ * algorithm of Unicode TR 21.\n
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen 2.3
+ *
+ * @deprecated Deprecated since 2.3.1. Use i18n_ustring_to_title_new() instead.
+ *
+ * @param[out] dest A buffer for the result string\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n If @c -1, then @a src must be zero-terminated.
+ * @param[in] title_iter A break iterator to find the first characters of words
+ * that are to be titlecased\n
+ * If none are provided (NULL), then a standard titlecase
+ * break iterator is opened.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_to_title(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, i18n_ubreak_iterator_s *title_iter,
+ const char *locale, i18n_error_code_e *error_code);
+
+/**
+ * @brief Titlecases a string.
+ * @details Casing is locale-dependent and context-sensitive.
+ * Titlecasing uses a break iterator to find the first characters of words
+ * that are to be titlecased. It titlecases those characters and lowercases
+ * all others.
+ *
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ * Error codes are described in Exceptions section and in #i18n_error_code_e description.
+ *
+ * The titlecase break iterator can be provided to customize arbitrary
+ * styles, using rules and dictionaries beyond the standard iterators.
+ * It may be more efficient to always provide an iterator to avoid
+ * opening and closing one for each string.
+ * The standard titlecase iterator for the root locale implements the
+ * algorithm of Unicode TR 21.\n
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen 2.3.1
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters.\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n If @c -1, then @a src must be zero-terminated.
+ * @param[in] title_iter A break iterator to find the first characters of words
+ * that are to be titlecased.\n
+ * If none are provided (@c NULL), then a standard titlecase
+ * break iterator is opened.
+ * @param[in] locale The locale to consider, or "" for the root locale or @c NULL for the default locale.
+ * @return The length of the result string. It may be greater than dest_capacity. In that case,
+ * only some of the result were written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_title()
+ */
+int32_t i18n_ustring_to_title_new(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, i18n_ubreak_iterator_h title_iter, const char *locale);
+
+/**
+ * @brief Case-folds the characters in a string.
+ * @details Case-folding is locale-independent and not context-sensitive,
+ * but there is an option for whether to include or exclude mappings for dotted I and dotless i.\n
+ * The result may be longer or shorter than the original.
+ * The source string and the destination buffer are allowed to overlap.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string.
+ * @param[in] src The original string
+ * @param[in] src_len The length of the original string.\n If @c -1, then @a src must be zero-terminated.
+ * @param[in] options Either #I18N_USTRING_U_FOLD_CASE_DEFAULT or #I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
+ * only some of the result was written to the destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+int32_t i18n_ustring_fold_case(i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, uint32_t options, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to a wchar_t string.
+ * @details If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then this function simply calls the fast, dedicated function for that.
+ * Otherwise, two conversions UTF-16 -> default charset -> wchar_t* are performed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string. The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of wchar_t's).\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string.
+ * @param[in] src_len The length of the original string.\n If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+wchar_t *i18n_ustring_to_WCS(wchar_t *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a wchar_t string to UTF-16.
+ * @details If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then this function simply calls the fast, dedicated function for that.
+ * Otherwise, two conversions wchar_t* -> default charset -> UTF-16 are performed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string. The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters).\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the result
+ * without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string.
+ * @param[in] src_len The length of the original string.\n If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_from_WCS(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const wchar_t *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Converts a UTF-16 string to UTF-8.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of chars)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF8()
+ */
+char *i18n_ustring_to_UTF8(char *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Converts a UTF-8 string to UTF-16.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ */
+i18n_uchar *i18n_ustring_from_UTF8(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const char *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to UTF-8.
+ * Same as #i18n_ustring_to_UTF8() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of chars)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_UTF8()
+ * @see i18n_ustring_from_UTF8_with_sub()
+ */
+char *i18n_ustring_to_UTF8_with_sub(char *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_uchar32 sub_char, int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-8 string to UTF-16.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF8()
+ * @see i18n_ustring_from_UTF8_lenient()
+ * @see i18n_ustring_to_UTF8_with_sub()
+ */
+i18n_uchar *i18n_ustring_from_UTF8_with_sub(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const char *src, int32_t src_len, i18n_uchar32 sub_char,
+ int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-8 string to UTF-16.
+ * @details Same as i18n_ustring_from_UTF8() except that this function is designed to be very fast, which it achieves by being lenient about malformed UTF-8 sequences.
+ * This function is intended for use in environments where UTF-8 text is expected to be well-formed.\n
+ * Its semantics are:
+ * - Well-formed UTF-8 text is correctly converted to well-formed UTF-16 text.\n
+ * - The function will not read beyond the input string, nor write beyond the dest_capacity.\n
+ * - Malformed UTF-8 results in "garbage" 16-bit Unicode strings which may not be well-formed UTF-16. The function will resynchronize to valid code point boundaries within a small number of code points after an illegal sequence.\n
+ * - Non-shortest forms are not detected and will result in "spoofing" output.\n
+ * For further performance improvement, if src_len is given (>=0), then it must be dest_capacity>=src_len.\n
+ * There is no inverse i18n_ustring_to_UTF8_lenient() function because there is practically no performance gain from not checking that a UTF-16 string is well-formed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * Unlike for other I18N functions, if src_len>=0 then it must be dest_capacity>=src_len.
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * Unlike for other I18N functions, if src_len>=0 but dest_capacity<src_len, then *dest_len will be
+ * set to src_len (and I18N_U_BUFFER_OVERFLOW_ERROR will be set) regardless of the actual result length.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF8()
+ * @see i18n_ustring_to_UTF8_with_sub()
+ * @see i18n_ustring_from_UTF8_with_sub()
+ */
+i18n_uchar *i18n_ustring_from_UTF8_lenient(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const char *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to UTF-32.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar32 characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_UTF32_with_sub()
+ * @see i18n_ustring_from_UTF32()
+ */
+i18n_uchar32 *i18n_ustring_to_UTF32(i18n_uchar32 *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-32 string to UTF-16.
+ * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of #i18n_uchar characters)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF32_with_sub()
+ * @see i18n_ustring_to_UTF32()
+ */
+i18n_uchar *i18n_ustring_from_UTF32(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar32 *src, int32_t src_len, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-16 string to UTF-32.
+ * @details Same as #i18n_ustring_to_UTF32() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of i18n_char32s)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_UTF32()
+ * @see i18n_ustring_from_UTF32_with_sub()
+ */
+i18n_uchar32 *i18n_ustring_to_UTF32_with_sub(i18n_uchar32 *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar *src, int32_t src_len,
+ i18n_uchar32 sub_char, int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+/**
+ * @brief Convert a UTF-32 string to UTF-16.
+ * Same as #i18n_ustring_from_UTF32() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] dest A buffer for the result string.\n
+ * The result will be zero-terminated if the buffer is large enough.
+ * @param[in] dest_capacity The size of the buffer (number of i18n_chars)\n
+ * If it is @c 0, then @a dest may be @c NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param[out] dest_len A pointer to receive the number of units written to the destination.\n
+ * If dest_len!=NULL then *dest_len is always set to the number of output units corresponding
+ * to the transformation of all the input units, even in case of a buffer overflow.
+ * @param[in] src The original source string
+ * @param[in] src_len The length of the original string.\n
+ * If @c -1, then @a src must be zero-terminated.
+ * @param[in] sub_char The substitution character to use in place of an illegal input sequence, or U_SENTINEL if the function is to return with #I18N_ERROR_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
+ *
+ * @exception #I18N_ERROR_NONE Success
+ * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_from_UTF32()
+ * @see i18n_ustring_to_UTF32_with_sub()
+ */
+i18n_uchar *i18n_ustring_from_UTF32_with_sub(i18n_uchar *dest, int32_t dest_capacity, int32_t *dest_len, const i18n_uchar32 *src, int32_t src_len, i18n_uchar32 sub_char, int32_t *num_substitutions, i18n_error_code_e *error_code);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ * @}
+ */
+#endif /* __UTILS_I18N_USTRING_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_H__
-#define __UTILS_I18N_H__
-
-#include <utils_i18n_ucalendar.h>
-#include <utils_i18n_udate.h>
-#include <utils_i18n_udatepg.h>
-#include <utils_i18n_ulocale.h>
-#include <utils_i18n_unumber.h>
-#include <utils_i18n_uchar.h>
-#include <utils_i18n_ucollator.h>
-#include <utils_i18n_unormalization.h>
-#include <utils_i18n_usearch.h>
-#include <utils_i18n_ustring.h>
-#include <utils_i18n_timezone.h>
-#include <utils_i18n_types.h>
-#include <utils_i18n_uenumeration.h>
-#include <utils_i18n_uset.h>
-#include <utils_i18n_ubrk.h>
-#include <utils_i18n_alpha_idx.h>
-#include <utils_i18n_formattable.h>
-#include <utils_i18n_measure_unit.h>
-#include <utils_i18n_measure.h>
-#include <utils_i18n_format.h>
-#include <utils_i18n_measure_format.h>
-#include <utils_i18n_field_position.h>
-#include <utils_i18n_parse_position.h>
-
-/**
- * @file utils_i18n.h
- * @version 0.1
- * @brief utils_i18n
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MODULE i18n
- * @brief The i18n module contains uchar, ucollator, unormalization, usearch, ustring, ucalendar, udate, udatepg, ulocale, unumber, alpha_idx, formattable, measure, format, measure format, field position and parse position.
- * This module provides flexible generation of number or date format patterns and helps you format and parse dates/number for any locale.
- * The i18n module provides various features based on data from ICU. The following table shows the version of ICU used in each Tizen platform.
- * <table>
- * <tr>
- * <td>Tizen 2.3.1</td>
- * <td>ICU 51</td>
- * <td>CLDR 23</td>
- * <td>Unicode 6.2</td>
- * </tr>
- * <tr>
- * <td>Tizen 2.3.2, 3.0</td>
- * <td>ICU 57</td>
- * <td>CLDR 29</td>
- * <td>Unicode 8.0</td>
- * </tr>
- * </table>
- * @section CAPI_BASE_UTILS_I18N_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- * @section CAPI_BASE_UTILS_I18N_MODULE_OVERVIEW Overview
- * <table>
- * <tr>
- * <th>API</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>The Timezone module represents a time zone offset, and also figures out daylight savings.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>UEnumeration defines functions for handling String Enumeration.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>Ubrk module defines methods for finding the location of boundaries in text.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>Ucollator module performs locale-sensitive string comparison. It builds searching and sorting routines for natural language text and provides correct sorting orders for most locales.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCHAR_MODULE</td>
- * <td>Uchar module provides low-level access to the Unicode Character Database.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE</td>
- * <td>Unormalization module provides Unicode normalization functionality for standard unicode normalization.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- * <td>Usearch module provides language-sensitive text searching based on the comparison rules defined in a ucollator data struct.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>Uset module allows to specify a subset of character used in strings.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>Ustring module provides general unicode string handling.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>Ucalendar is used for converting between a i18n_udate type and a set of integer fields
- such as #I18N_UCALENDAR_YEAR, #I18N_UCALENDAR_MONTH, #I18N_UCALENDAR_DATE, #I18N_UCALENDAR_HOUR, and so on.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>Udate module consists of functions that convert dates and times from their
- internal representations to textual form and back again in a language-independent manner.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td> Udatepg module provides flexible generation of date format patterns, like "yy-MM-dd". </td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>A ulocale represents a specific geographical, political, or cultural region. </td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>Unumber helps you format and parse numbers for any locale.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>Alpha_idx supports the creation of a UI index appropriate for a given language.</td>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>Formattable interconverts between the primitive numeric types (double, long, etc.) as well as the #i18n_udate and char string.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>The MeasureUnit module contains units such as length, mass, volume, currency, etc...</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- * <td>The Measure module represents an amount of a specified unit, consisting of a number and a unit.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- * <td>The Format module represents the basic format object.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>The Measure Format module represents a formatter for measure objects.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>The Field Position module is used to identify fields in a formatted output.</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>The Parse Position module used by Format and its subclasses to keep track of the current position during parsing.</td>
- * </tr>
- * </table>
- *
- * @section CAPI_BASE_UTILS_I18N_MODULE_MAPPING_TABLE Mapping Table
- * <table>
- * <tr>
- * <th>Module</th>
- * <th>Native API</th>
- * <th>ICU API</th>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_create_unknown</td>
- * <td>getUnknown</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_create_gmt</td>
- * <td>getGMT</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_create</td>
- * <td>createTimeZone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_destroy</td>
- * <td></td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_foreach_timezone_id_by_region</td>
- * <td>createTimeZoneIDEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_foreach_timezone_id</td>
- * <td>createEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_foreach_timezone_id_with_offset</td>
- * <td>createEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_foreach_timezone_id_by_country</td>
- * <td>createEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_count_equivalent_ids</td>
- * <td>countEquivalentIDs</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_equivalent_id</td>
- * <td>getEquivalentID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_create_default</td>
- * <td>createDefault</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_set_default</td>
- * <td>setDefault</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_tzdata_version</td>
- * <td>getTZDataVersion</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_region</td>
- * <td>getRegion</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_offset_with_date</td>
- * <td>getOffset</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_set_raw_offset</td>
- * <td>setRawOffset</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_raw_offset</td>
- * <td>getRawOffset</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_id</td>
- * <td>getID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_set_id</td>
- * <td>setID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_display_name</td>
- * <td>getDisplayName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_display_name_with_locale</td>
- * <td>getDisplayName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_display_name_with_type</td>
- * <td>getDisplayName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_display_name_with_type_locale</td>
- * <td>getDisplayName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_use_daylight_time</td>
- * <td>useDaylightTime</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_has_same_rule</td>
- * <td>hasSameRules</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE</td>
- * <td>#i18n_timezone_get_dst_savings</td>
- * <td>getDSTSavings</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_destroy</td>
- * <td>uenum_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_count</td>
- * <td>uenum_count</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_unext</td>
- * <td>uenum_unext</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_next</td>
- * <td>uenum_next</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_reset</td>
- * <td>uenum_reset</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_uchar_strings_enumeration_create</td>
- * <td>uenum_openUCharStringsEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE</td>
- * <td>#i18n_uenumeration_char_strings_enumeration_create</td>
- * <td>uenum_openCharStringsEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_create</td>
- * <td>ubrk_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_create_rules</td>
- * <td>ubrk_openRules</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_safe_clone</td>
- * <td>ubrk_safeClone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_destroy</td>
- * <td>ubrk_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_set_text</td>
- * <td>ubrk_setText</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_current</td>
- * <td>ubrk_current</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_next</td>
- * <td>ubrk_next</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_preceding</td>
- * <td>ubrk_preceding</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_previous</td>
- * <td>ubrk_previous</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_first</td>
- * <td>ubrk_first</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_last</td>
- * <td>ubrk_last</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_following</td>
- * <td>ubrk_following</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_get_available</td>
- * <td>ubrk_getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_count_available</td>
- * <td>ubrk_countAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_is_boundary</td>
- * <td>ubrk_isBoundary</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_get_rule_status</td>
- * <td>ubrk_getRuleStatus</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_get_rule_status_vec</td>
- * <td>ubrk_getRuleStatusVec</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UBRK_MODULE</td>
- * <td>#i18n_ubrk_get_locale_by_type</td>
- * <td>ubrk_getLocaleByType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_default_timezone</td>
- * <td>ucal_setDefaultTimeZone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_now</td>
- * <td>ucal_getNow</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_create</td>
- * <td>ucal_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_destroy</td>
- * <td>ucal_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_clone</td>
- * <td>ucal_clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_timezone_displayname</td>
- * <td>ucal_getTimeZoneDisplayName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_is_in_daylight_time</td>
- * <td>ucal_inDaylightTime</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set</td>
- * <td>ucal_set</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_attribute</td>
- * <td>ucal_setAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_attribute</td>
- * <td>ucal_getAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_milliseconds</td>
- * <td>ucal_getMillis</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_milliseconds</td>
- * <td>ucal_setMillis</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_date_time</td>
- * <td>ucal_setDateTime</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_is_equivalent_to</td>
- * <td>ucal_equivalentTo</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_add</td>
- * <td>ucal_add</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get</td>
- * <td>ucal_get</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_clear</td>
- * <td>ucal_clear</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_clear_field</td>
- * <td>ucal_clearField</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_count_available</td>
- * <td>ucal_countAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_country_timezones_create</td>
- * <td>ucal_openCountryTimeZones</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_available</td>
- * <td>ucal_getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_canonical_timezone_id</td>
- * <td>ucal_getCanonicalTimeZoneID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_day_of_week_type</td>
- * <td>ucal_getDayOfWeekType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_default_timezone</td>
- * <td>ucal_getDefaultTimeZone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_field_difference</td>
- * <td>ucal_getFieldDifference</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_gregorian_change</td>
- * <td>ucal_getGregorianChange</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_keyword_values_for_locale</td>
- * <td>ucal_getKeywordValuesForLocale</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_limit</td>
- * <td>ucal_getLimit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_locale_by_type</td>
- * <td>ucal_getLocaleByType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_timezone_id</td>
- * <td>ucal_getTimeZoneID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_timezone_transition_date</td>
- * <td>ucal_getTimeZoneTransitionDate</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_type</td>
- * <td>ucal_getType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_tz_data_version</td>
- * <td>ucal_getTZDataVersion</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_get_weekend_transition</td>
- * <td>ucal_getWeekendTransition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_is_set</td>
- * <td>ucal_isSet</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_is_weekend</td>
- * <td>ucal_isWeekend</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_roll</td>
- * <td>ucal_roll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_date</td>
- * <td>ucal_setDate</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_gregorian_change</td>
- * <td>ucal_setGregorianChange</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_set_timezone</td>
- * <td>ucal_setTimeZone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_timezones_create</td>
- * <td>ucal_openTimeZones</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE</td>
- * <td>#i18n_ucalendar_timezone_id_enumeration_create</td>
- * <td>ucal_openTimeZoneIDEnumeration</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCHAR_MODULE</td>
- * <td>#i18n_uchar_get_int_property_value</td>
- * <td>u_getIntpropertyValue</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCHAR_MODULE</td>
- * <td>#i18n_uchar_get_ublock_code</td>
- * <td>ublock_getCode</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>#i18n_ucollator_create</td>
- * <td>ucol_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>#i18n_ucollator_destroy</td>
- * <td>ucol_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>#i18n_ucollator_str_collator</td>
- * <td>ucol_strcoll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>#i18n_ucollator_equal</td>
- * <td>ucol_equal</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>#i18n_ucollator_set_strength</td>
- * <td>ucol_setStrength</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE</td>
- * <td>#i18n_ucollator_set_attribute</td>
- * <td>ucol_setAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_create</td>
- * <td>udat_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_destroy</td>
- * <td>udat_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_format_date</td>
- * <td>udat_format</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_apply_pattern</td>
- * <td>udat_applyPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_clone</td>
- * <td>udat_clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_count_available</td>
- * <td>udat_countAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_count_symbols</td>
- * <td>udat_countSymbols</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_get_2digit_year_start</td>
- * <td>udat_get2DigitYearStart</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_get_available</td>
- * <td>udat_getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_get_calendar</td>
- * <td>udat_getCalendar</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_get_locale_by_type</td>
- * <td>udat_getLocaleByType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_get_number_format</td>
- * <td>udat_getNumberFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_get_symbols</td>
- * <td>udat_getSymbols</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_is_lenient</td>
- * <td>udat_isLenient</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_parse</td>
- * <td>udat_parse</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_parse_calendar</td>
- * <td>udat_parseCalendar</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_set_2digit_year_start</td>
- * <td>udat_set2DigitYearStart</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_set_calendar</td>
- * <td>udat_setCalendar</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_set_context</td>
- * <td>udat_setContext</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_set_lenient</td>
- * <td>udat_setLenient</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_set_number_format</td>
- * <td>udat_setNumberFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_set_symbols</td>
- * <td>udat_setSymbols</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_to_calendar_date_field</td>
- * <td>udat_toCalendarDateField</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATE_MODULE</td>
- * <td>#i18n_udate_to_pattern</td>
- * <td>udat_toPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_create</td>
- * <td>udatpg_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_destroy</td>
- * <td>udatpg_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_best_pattern</td>
- * <td>udatpg_getBestPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_add_pattern</td>
- * <td>udatpg_addPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_base_skeletons_create</td>
- * <td>udatpg_openBaseSkeletons</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_clone</td>
- * <td>udatpg_clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_create_empty</td>
- * <td>udatpg_openEmpty</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_append_item_format</td>
- * <td>udatpg_getAppendItemFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_append_item_name</td>
- * <td>udatpg_getAppendItemName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_base_skeleton</td>
- * <td>udatpg_getBaseSkeleton</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_best_pattern_with_options</td>
- * <td>udatpg_getBestPatternWithOptions</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_date_time_format</td>
- * <td>udatpg_getDateTimeFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_decimal</td>
- * <td>udatpg_getDecimal</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_pattern_for_skeleton</td>
- * <td>udatpg_getPatternForSkeleton</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_get_skeleton</td>
- * <td>udatpg_getSkeleton</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_replace_field_types</td>
- * <td>udatpg_replaceFieldTypes</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_replace_field_types_with_options</td>
- * <td>udatpg_replaceFieldTypesWithOptions</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_set_append_item_format</td>
- * <td>udatpg_setAppendItemFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_set_append_item_name</td>
- * <td>udatpg_setAppendItemName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_set_date_time_format</td>
- * <td>udatpg_setDateTimeFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_set_decimal</td>
- * <td>udatpg_setDecimal</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UDATEPG_MODULE</td>
- * <td>#i18n_udatepg_skeletons_create</td>
- * <td>udatpg_openSkeletons</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_default</td>
- * <td>uloc_getDefault</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_set_default</td>
- * <td>uloc_setDefault</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_language</td>
- * <td>uloc_getLanguage</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_country</td>
- * <td>uloc_getCountry</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_name</td>
- * <td>uloc_getDisplayName</td>
- * </tr>
- *
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_add_likely_subtags</td>
- * <td>uloc_addLikelySubtags</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_canonicalize</td>
- * <td>uloc_canonicalize</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_for_language_tag</td>
- * <td>uloc_forLanguageTag</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_base_name</td>
- * <td>uloc_getBaseName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_character_orientation</td>
- * <td>uloc_getCharacterOrientation</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_country</td>
- * <td>uloc_getDisplayCountry</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_keyword</td>
- * <td>uloc_getDisplayKeyword</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_keyword_value</td>
- * <td>uloc_getDisplayKeywordValue</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_language</td>
- * <td>uloc_getDisplayLanguage</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_script</td>
- * <td>uloc_getDisplayScript</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_display_variant</td>
- * <td>uloc_getDisplayVariant</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_iso3_country</td>
- * <td>uloc_getISO3Country</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_iso3_language</td>
- * <td>uloc_getISO3Language</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_iso_countries</td>
- * <td>uloc_getISOCountries</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_iso_languages</td>
- * <td>uloc_getISOLanguages</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_keyword_value</td>
- * <td>uloc_getKeywordValue</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_lcid</td>
- * <td>uloc_getLCID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_line_orientation</td>
- * <td>uloc_getLineOrientation</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_locale_for_lcid</td>
- * <td>uloc_getLocaleForLCID</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_name</td>
- * <td>uloc_getName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_parent</td>
- * <td>uloc_getParent</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_script</td>
- * <td>uloc_getScript</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_variant</td>
- * <td>uloc_getVariant</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_keywords_create</td>
- * <td>uloc_openKeywords</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_minimize_subtags</td>
- * <td>uloc_minimizeSubtags</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_set_keyword_value</td>
- * <td>uloc_setKeywordValue</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_to_language_tag</td>
- * <td>uloc_toLanguageTag</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_get_available</td>
- * <td>uloc_getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ULOCALE_MODULE</td>
- * <td>#i18n_ulocale_count_available</td>
- * <td>uloc_countAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE</td>
- * <td>#i18n_unormalization_get_instance</td>
- * <td>unorm2_getInstance</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE</td>
- * <td>#i18n_unormalization_normalize</td>
- * <td>unorm2_normalize</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_create</td>
- * <td>unum_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_destroy</td>
- * <td>unum_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_get_symbol</td>
- * <td>unum_getSymbol</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_apply_pattern</td>
- * <td>unum_applyPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_clone</td>
- * <td>unum_clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_count_available</td>
- * <td>unum_countAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_format</td>
- * <td>unum_format</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_format_decimal</td>
- * <td>unum_formatDecimal</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_format_double</td>
- * <td>unum_formatDouble</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_format_double_currency</td>
- * <td>unum_formatDoubleCurrency</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_format_int64</td>
- * <td>unum_formatInt64</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_get_attribute</td>
- * <td>unum_getAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_get_available</td>
- * <td>unum_getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_get_double_attribute</td>
- * <td>unum_getDoubleAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_get_locale_by_type</td>
- * <td>unum_getLocaleByType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_get_text_attribute</td>
- * <td>unum_getTextAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_parse</td>
- * <td>unum_parse</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_parse_decimal</td>
- * <td>unum_parseDecimal</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_parse_double</td>
- * <td>unum_parseDouble</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_parse_double_currency</td>
- * <td>unum_parseDoubleCurrency</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_parse_int64</td>
- * <td>unum_parseInt64</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_set_attribute</td>
- * <td>unum_setAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_set_double_attribute</td>
- * <td>unum_setDoubleAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_set_symbol</td>
- * <td>unum_setSymbol</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_set_text_attribute</td>
- * <td>unum_setTextAttribute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_UNUMBER_MODULE</td>
- * <td>#i18n_unumber_to_pattern</td>
- * <td>unum_toPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- * <td>#i18n_usearch_create_new</td>
- * <td>usearch_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- * <td>#i18n_usearch_destroy</td>
- * <td>usearch_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- * <td>#i18n_usearch_get_matched_text</td>
- * <td>usearch_getMatchedText</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- * <td>#i18n_usearch_get_collator</td>
- * <td>usearch_getCollator</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USEARCH_MODULE</td>
- * <td>#i18n_usearch_first</td>
- * <td>usearch_first</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_create_empty</td>
- * <td>uset_openEmpty</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_create</td>
- * <td>uset_open</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_create_pattern</td>
- * <td>uset_openPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_create_pattern_options</td>
- * <td>uset_openPatternOptions</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_destroy</td>
- * <td>uset_close</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_clone</td>
- * <td>uset_clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_is_frozen</td>
- * <td>uset_isFrozen</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_freeze</td>
- * <td>uset_freeze</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_clone_as_thawed</td>
- * <td>uset_cloneAsThawed</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_set</td>
- * <td>uset_set</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_apply_pattern</td>
- * <td>uset_applyPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_apply_int_property_value</td>
- * <td>uset_applyIntPropertyValue</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_apply_property_alias</td>
- * <td>uset_applyPropertyAlias</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_resembles_pattern</td>
- * <td>uset_resemblesPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_to_pattern</td>
- * <td>uset_toPattern</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_add</td>
- * <td>uset_add</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_add_all</td>
- * <td>uset_addAll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_add_range</td>
- * <td>uset_addRange</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_add_string</td>
- * <td>uset_addString</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_add_all_code_points</td>
- * <td>uset_addAllCodePoints</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_remove</td>
- * <td>uset_remove</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_remove_range</td>
- * <td>uset_removeRange</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_remove_string</td>
- * <td>uset_removeString</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_remove_all</td>
- * <td>uset_removeAll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_retain</td>
- * <td>uset_retain</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_retain_all</td>
- * <td>uset_retainAll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_compact</td>
- * <td>uset_compact</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_complement</td>
- * <td>uset_complement</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_complement_all</td>
- * <td>uset_complementAll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_clear</td>
- * <td>uset_clear</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_destroy_over</td>
- * <td>uset_closeOver</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_remove_all_strings</td>
- * <td>uset_removeAllStrings</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_is_empty</td>
- * <td>uset_isEmpty</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains</td>
- * <td>uset_contains</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains_range</td>
- * <td>uset_containsRange</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains_string</td>
- * <td>uset_containsString</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_index_of</td>
- * <td>uset_indexOf</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_char_at</td>
- * <td>uset_charAt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_size</td>
- * <td>uset_size</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_get_item_count</td>
- * <td>uset_getItemCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_get_item</td>
- * <td>uset_getItem</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains_all</td>
- * <td>uset_containsAll</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains_all_code_points</td>
- * <td>uset_containsAllCodePoints</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains_none</td>
- * <td>uset_containsNone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_contains_some</td>
- * <td>uset_containsSome</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_span</td>
- * <td>uset_span</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_span_back</td>
- * <td>uset_spanBack</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_span_utf8</td>
- * <td>uset_spanUTF8</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_span_back_utf8</td>
- * <td>uset_spanBackUTF8</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_equals</td>
- * <td>uset_equals</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_serialize</td>
- * <td>uset_serialize</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_get_serialized_set</td>
- * <td>uset_getSerializedSet</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_set_serialized_to_one</td>
- * <td>uset_setSerializedToOne</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_serialized_contains</td>
- * <td>uset_serializedContains</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_get_serialized_range_count</td>
- * <td>uset_getSerializedRangeCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USET_MODULE</td>
- * <td>#i18n_uset_get_serialized_range</td>
- * <td>uset_getSerializedRange</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_get_length</td>
- * <td>u_strlen</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_count_char32</td>
- * <td>u_countChar32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_has_more_char32_than</td>
- * <td>u_strHasMoreChar32Than</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_cat</td>
- * <td>u_strcat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_cat_n</td>
- * <td>u_strncat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_string</td>
- * <td>u_strstr</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_find_first</td>
- * <td>u_strFindFirst</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_char</td>
- * <td>u_strchr</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_char32</td>
- * <td>u_strchr32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_r_string</td>
- * <td>u_strrstr</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_find_last</td>
- * <td>u_strFindLast</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_r_char</td>
- * <td>u_strrchr</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_r_char32</td>
- * <td>u_strrchr32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_pbrk</td>
- * <td>u_strpbrk</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_cspn</td>
- * <td>u_strcspn</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_spn</td>
- * <td>u_strspn</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_tokenizer_r</td>
- * <td>u_strtok_r</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_compare</td>
- * <td>u_strcmp</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_compare_code_point_order</td>
- * <td>u_strcmpCodePointOrder</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_compare_binary_order</td>
- * <td>u_strCompare</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_case_compare_with_length</td>
- * <td>u_strCaseCompare</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_compare_n</td>
- * <td>u_strncmp</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_compare_n_code_point_order</td>
- * <td>u_strncmpCodePointOrder</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_case_compare</td>
- * <td>u_strcasecmp</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_case_compare_n</td>
- * <td>u_strncasecmp</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_case_compare</td>
- * <td>u_memcasecmp</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_copy</td>
- * <td>u_strcpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_copy_n</td>
- * <td>u_strncpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_copy_ua</td>
- * <td>u_uastrcpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_copy_ua_n</td>
- * <td>u_uastrncpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_copy_au</td>
- * <td>u_austrcpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_copy_au_n</td>
- * <td>u_austrncpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_copy</td>
- * <td>u_memcpy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_move</td>
- * <td>u_memmove</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_set</td>
- * <td>u_memset</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_compare</td>
- * <td>u_memcmp</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_compare_code_point_order</td>
- * <td>u_memcmpCodePointOrder</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_char</td>
- * <td>u_memchr</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_char32</td>
- * <td>u_memchr32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_r_char</td>
- * <td>u_memrchr</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_mem_r_char32</td>
- * <td>u_memrchr32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_unescape</td>
- * <td>u_unescape</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_unescape_at</td>
- * <td>u_unescapeAt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_upper</td>
- * <td>u_strToUpper</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_lower</td>
- * <td>u_strToLower</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_title_new</td>
- * <td>u_strToTitle</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_fold_case</td>
- * <td>u_strFoldCase</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_WCS</td>
- * <td>u_strToWCS</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_from_WCS</td>
- * <td>u_strFromWCS</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_UTF8</td>
- * <td>u_strToUTF8</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_from_UTF8</td>
- * <td>u_strFromUTF8</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_UTF8_with_sub</td>
- * <td>u_strToUTF8WithSub</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_from_UTF8_with_sub</td>
- * <td>u_strFromUTF8WithSub</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_from_UTF8_lenient</td>
- * <td>u_strFromUTF8Lenient</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_UTF32</td>
- * <td>u_strToUTF32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_from_UTF32</td>
- * <td>u_strFromUTF32</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_to_UTF32_with_sub</td>
- * <td>u_strToUTF32WithSub</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_USTRING_MODULE</td>
- * <td>#i18n_ustring_from_UTF32_with_sub</td>
- * <td>u_strFromUTF32WithSub</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_create</td>
- * <td>AlphabeticIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_destroy</td>
- * <td>~AlphabeticIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_add_labels</td>
- * <td>addLabels</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_add_record</td>
- * <td>addRecord</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_next_bucket</td>
- * <td>nextBucket</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_next_record</td>
- * <td>nextRecord</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_bucket_record_count</td>
- * <td>getBucketRecordCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_bucket_label</td>
- * <td>getBucketLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_record_data</td>
- * <td>getRecordData</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_inflow_label</td>
- * <td>getInflowLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_set_inflow_label</td>
- * <td>setInflowLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_overflow_label</td>
- * <td>getOverflowLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_set_overflow_label</td>
- * <td>setOverflowLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_underflow_label</td>
- * <td>getUnderflowLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_set_underflow_label</td>
- * <td>setUnderflowLabel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_max_label_count</td>
- * <td>getMaxLabelCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_set_max_label_count</td>
- * <td>setMaxLabelCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_clear_records</td>
- * <td>clearRecords</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_bucket_count</td>
- * <td>getBucketCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_record_count</td>
- * <td>getRecordCount</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_bucket_index</td>
- * <td>getBucketIndex(const UnicodeString &itemName, UErrorCode &status)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_current_bucket_index</td>
- * <td>getBucketIndex()</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_bucket_label_type</td>
- * <td>getBucketLabelType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_get_record_name</td>
- * <td>getRecordName</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_reset_bucket_iter</td>
- * <td>resetBucketIterator</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE</td>
- * <td>#i18n_alpha_idx_reset_record_iter</td>
- * <td>resetRecordIterator</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_default</td>
- * <td>Formattable()</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_with_udate</td>
- * <td>Formattable(UDate d, ISDATE flag)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_with_double</td>
- * <td>Formattable(double d)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_with_long</td>
- * <td>Formattable(int32_t l)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_with_int64</td>
- * <td>Formattable(int64_t ll)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_with_char_string</td>
- * <td>Formattable(const char* strToCopy)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_create_with_formattable_array</td>
- * <td>Formattable(const Formattable* arrayToCopy, int32_t count)</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_destroy</td>
- * <td>delete</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_clone</td>
- * <td>Formattable::clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_array</td>
- * <td>Formattable::getArray</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_date</td>
- * <td>Formattable::getDate</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_double</td>
- * <td>Formattable::getDouble</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_int64</td>
- * <td>Formattable::getInt64</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_long</td>
- * <td>Formattable::getLong</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_string</td>
- * <td>Formattable::getString</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_get_type</td>
- * <td>Formattable::getType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_is_numeric</td>
- * <td>Formattable::isNumeric</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_not_equal</td>
- * <td>Formattable::operator!=</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_equal</td>
- * <td>Formattable::operator==</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_element_at</td>
- * <td>Formattable::operator[]</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_set_array</td>
- * <td>Formattable::setArray</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_set_date</td>
- * <td>Formattable::setDate</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_set_double</td>
- * <td>Formattable::setDouble</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_set_int64</td>
- * <td>Formattable::setInt64</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_set_long</td>
- * <td>Formattable::setLong</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE</td>
- * <td>#i18n_formattable_set_string</td>
- * <td>Formattable::setString</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create</td>
- * <td>MeasureUnit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_destroy</td>
- * <td>~MeasureUnit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_get_type</td>
- * <td>getType</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_get_subtype</td>
- * <td>getSubtype</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_get_available</td>
- * <td>getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_get_available_with_type</td>
- * <td>getAvailable</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_foreach_available_type</td>
- * <td>getAvailableTypes</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_g_force</td>
- * <td>createGForce</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_meter_per_second_squared</td>
- * <td>createMeterPerSecondSquared</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_arc_minute</td>
- * <td>createArcMinute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_arc_second</td>
- * <td>createArcSecond</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_degree</td>
- * <td>createDegree</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_radian</td>
- * <td>createRadian</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_acre</td>
- * <td>createAcre</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_hectare</td>
- * <td>createHectare</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_centimeter</td>
- * <td>createSquareCentimeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_foot</td>
- * <td>createSquareFoot</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_inch</td>
- * <td>createSquareInch</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_kilometer</td>
- * <td>createSquareKilometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_meter</td>
- * <td>createSquareMeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_mile</td>
- * <td>createSquareMile</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_square_yard</td>
- * <td>createSquareYard</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_karat</td>
- * <td>createKarat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_liter_per_kilometer</td>
- * <td>createLiterPerKilometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_mile_per_gallon_imperial</td>
- * <td>createMilePerGallonImperial</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_bit</td>
- * <td>createBit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_byte</td>
- * <td>createByte</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_gigabit</td>
- * <td>createGigabit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_gigabyte</td>
- * <td>createGigabyte</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilobit</td>
- * <td>createKilobit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilobyte</td>
- * <td>createKilobyte</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_megabit</td>
- * <td>createMegabit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_megabyte</td>
- * <td>createMegabyte</td>
- * </tr>
- * <tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_terabit</td>
- * <td>createTerabit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_terabyte</td>
- * <td>createTerabyte</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_day</td>
- * <td>createDay</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_hour</td>
- * <td>createHour</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_microsecond</td>
- * <td>createMicrosecond</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_millisecond</td>
- * <td>createMillisecond</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_minute</td>
- * <td>createMinute</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_month</td>
- * <td>createMonth</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_nanosecond</td>
- * <td>createNanosecond</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_second</td>
- * <td>createSecond</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_week</td>
- * <td>createWeek</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_year</td>
- * <td>createYear</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_ampere</td>
- * <td>createAmpere</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_milliampere</td>
- * <td>createMilliampere</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_ohm</td>
- * <td>createOhm</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_volt</td>
- * <td>createVolt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_calorie</td>
- * <td>createCalorie</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_foodcalorie</td>
- * <td>createFoodcalorie</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_joule</td>
- * <td>createJoule</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilocalorie</td>
- * <td>createKilocalorie</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilojoule</td>
- * <td>createKilojoule</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilowatt_hour</td>
- * <td>createKilowattHour</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_gigahertz</td>
- * <td>createGigahertz</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_hertz</td>
- * <td>createHertz</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilohertz</td>
- * <td>createKilohertz</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_megahertz</td>
- * <td>createMegahertz</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_astronomical_unit</td>
- * <td>createAstronomicalUnit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_centimeter</td>
- * <td>createCentimeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_decimeter</td>
- * <td>createDecimeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_fathom</td>
- * <td>createFathom</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_foot</td>
- * <td>createFoot</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_furlong</td>
- * <td>createFurlong</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_inch</td>
- * <td>createInch</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilometer</td>
- * <td>createKilometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_light_year</td>
- * <td>createLightYear</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_meter</td>
- * <td>createMeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_micrometer</td>
- * <td>createMicrometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_mile</td>
- * <td>createMile</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_millimeter</td>
- * <td>createMillimeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_nanometer</td>
- * <td>createNanometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_nautical_mile</td>
- * <td>createNauticalMile</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_parsec</td>
- * <td>createParsec</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_picometer</td>
- * <td>createPicometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_yard</td>
- * <td>createYard</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_lux</td>
- * <td>createLux</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_carat</td>
- * <td>createCarat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_gram</td>
- * <td>createGram</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilogram</td>
- * <td>createKilogram</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_metric_ton</td>
- * <td>createMetricTon</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_microgram</td>
- * <td>createMicrogram</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_milligram</td>
- * <td>createMilligram</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_ounce</td>
- * <td>createOunce</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_ounce_troy</td>
- * <td>createOunceTroy</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_pound</td>
- * <td>createPound</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_stone</td>
- * <td>createStone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_ton</td>
- * <td>createTon</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_gigawatt</td>
- * <td>createGigawatt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_horsepower</td>
- * <td>createHorsepower</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilowatt</td>
- * <td>createKilowatt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_megawatt</td>
- * <td>createMegawatt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_milliwatt</td>
- * <td>createMilliwatt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_watt</td>
- * <td>createWatt</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_hectopascal</td>
- * <td>createHectopascal</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_inch_hg</td>
- * <td>createInchHg</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_millibar</td>
- * <td>createMillibar</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_millimeter_of_mercury</td>
- * <td>createMillimeterOfMercury</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_pound_per_square_inch</td>
- * <td>createPoundPerSquareInch</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kilometer_per_hour</td>
- * <td>createKilometerPerHour</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_meter_per_second</td>
- * <td>createMeterPerSecond</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_mile_per_hour</td>
- * <td>createMilePerHour</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_celsius</td>
- * <td>createCelsius</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_fahrenheit</td>
- * <td>createFahrenheit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_kelvin</td>
- * <td>createKelvin</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_acre_foot</td>
- * <td>createAcreFoot</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_bushel</td>
- * <td>createBushel</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_centiliter</td>
- * <td>createCentiliter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_centimeter</td>
- * <td>createCubicCentimeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_foot</td>
- * <td>createCubicFoot</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_inch</td>
- * <td>createCubicInch</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_kilometer</td>
- * <td>createCubicKilometer</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_meter</td>
- * <td>createCubicMeter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_mile</td>
- * <td>createCubicMile</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cubic_yard</td>
- * <td>createCubicYard</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_cup</td>
- * <td>createCup</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_deciliter</td>
- * <td>createDeciliter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_fluid_ounce</td>
- * <td>createFluidOunce</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_gallon</td>
- * <td>createGallon</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_hectoliter</td>
- * <td>createHectoliter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_liter</td>
- * <td>createLiter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_megaliter</td>
- * <td>createMegaliter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_milliliter</td>
- * <td>createMilliliter</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_pint</td>
- * <td>createPint</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_quart</td>
- * <td>createQuart</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_tablespoon</td>
- * <td>createTablespoon</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE</td>
- * <td>#i18n_measure_unit_create_teaspoon</td>
- * <td>createTeaspoon</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- * <td>#i18n_measure_create</td>
- * <td>Measure</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- * <td>#i18n_measure_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- * <td>#i18n_measure_destroy</td>
- * <td>~Measure</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- * <td>#i18n_measure_get_number</td>
- * <td>getNumber</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_MODULE</td>
- * <td>#i18n_measure_get_unit</td>
- * <td>getUnit</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- * <td>#i18n_format_destroy</td>
- * <td>~Format</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- * <td>#i18n_format_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- * <td>#i18n_format_format</td>
- * <td>format</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- * <td>#i18n_format_parse_object</td>
- * <td>parseObject</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FORMAT_MODULE</td>
- * <td>#i18n_format_get_locale</td>
- * <td>getLocale</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_create</td>
- * <td>MeasureFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_destroy</td>
- * <td>~MeasureFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_format</td>
- * <td>format</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_parse_object</td>
- * <td>parseObject</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_create_currency_format_from_locale</td>
- * <td>createCurrencyFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE</td>
- * <td>#i18n_measure_format_create_currency_format</td>
- * <td>createCurrencyFormat</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_create</td>
- * <td>FieldPosition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_create_for_field</td>
- * <td>FieldPosition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_destroy</td>
- * <td>~FieldPosition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_get_field</td>
- * <td>getField</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_get_begin_index</td>
- * <td>getBeginIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_get_end_index</td>
- * <td>getEndIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_set_field</td>
- * <td>setField</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_set_begin_index</td>
- * <td>setBeginIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE</td>
- * <td>#i18n_field_position_set_end_index</td>
- * <td>setEndIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_create</td>
- * <td>ParsePosition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_create_with_index</td>
- * <td>ParsePosition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_destroy</td>
- * <td>~ParsePosition</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_clone</td>
- * <td>clone</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_get_index</td>
- * <td>getIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_set_index</td>
- * <td>setIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_set_error_index</td>
- * <td>setErrorIndex</td>
- * </tr>
- * <tr>
- * <td>@ref CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE</td>
- * <td>#i18n_parse_position_get_error_index</td>
- * <td>getErrorIndex</td>
- * </tr>
- * </table>
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_ALPHA_IDX_H__
-#define __UTILS_I18N_ALPHA_IDX_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_alpha_idx.h
- * @version 0.1
- * @brief utils_i18n_alpha_idx
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE Alphabetic Index
- * @brief Alphabetic Index supports the creation of a UI index appropriate for a given language.
- * @section CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE_OVERVIEW Overview
- * @details The module can generate a list of labels for use as a UI "index",
- * that is, a list of clickable characters (or character sequences)
- * that allow the user to see a segment (bucket) of a larger "target" list.
- * That is, each label corresponds to a bucket in the target list, where
- * everything in the bucket is greater than or equal to the character
- * (according to the locale's collation). Strings can be added to the index;
- * they will be in sorted order in the right bucket.
- * The module also supports having buckets for strings before the first (underflow),
- * after the last (overflow), and between scripts (inflow). For example,
- * if the index is constructed with labels for Russian and English,
- * Greek characters would fall into an inflow bucket between the other two scripts.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE
- * @{
- */
-
-/**
- * @brief Creates an alphabetic index object for the specified locale.
- * @details If the locale's data does not include index characters,
- * a set of them will be synthesized based on the locale's
- * exemplar characters. The locale determines the sorting order
- * for both the index characters and the user item names appearing
- * under each Index character.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_alpha_idx_destroy() function.
- *
- * @param[in] language The language of the locale
- * @param[in] country The country of the locale
- * @param[out] index The created alphabetic index object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_create(const char *language, const char *country,
- i18n_alpha_idx_h *index);
-
-/**
- * @brief Destroys the alphabetic index object.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index to be destroyed
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_destroy(i18n_alpha_idx_h index);
-
-/**
- * @brief Adds the index characters from a specified locale to the index.
- * @details The labels are added to those that are already in the index;
- * they do not replace the existing index characters. The collation
- * order for this index is not changed; it remains that of the locale
- * that was originally specified when creating this Index.
- * @since_tizen 2.3.2
- *
- * @param[in] index Label will be added to this alphabetic index
- * @param[in] language The language of the locale
- * @param[in] country The country of the locale
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_add_labels(i18n_alpha_idx_h index, const char *language,
- const char *country);
-
-/**
- * @brief Adds the record to the alphabetic index.
- * @details Each record will be associated with an index Bucket
- * based on the record's name. The list of records for
- * each bucket will be sorted based on the collation ordering
- * of the names in the index's locale. Records with duplicate
- * names are permitted; they will be kept in the order that
- * they were added.
- * @since_tizen 2.3.2
- *
- * @param[in] index Record will be added to this alphabetic index
- * @param[in] name The display name for the record.
- * The Record will be placed in a bucket based on this name.
- * @param[in] data An optional pointer to user data associated with this item
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_add_record(i18n_alpha_idx_h index, const char *name,
- const void *data);
-
-/**
- * @brief Sets the next bucket as current bucket in the index.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets
- * @param[out] available A flag set to @c true if the next bucket was available,
- * or @c false if there were no more buckets.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_ENUM_OUT_OF_SYNC The index is modified while
- * an enumeration of its contents are in process.
- */
-int i18n_alpha_idx_get_next_bucket(i18n_alpha_idx_h index, bool *available);
-
-/**
- * @brief Sets the next record as current record in current bucket of the index.
- * @details When i18n_alpha_idx_get_next_bucket() is called, record iteration is reset
- * to just before the first record in the new bucket.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] available A flag set to @c true if the next record was available,
- * or @c false if there were no more records.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_ENUM_OUT_OF_SYNC The index is modified while
- * an enumeration of its contents are in process.
- */
-int i18n_alpha_idx_get_next_record(i18n_alpha_idx_h index, bool *available);
-
-/**
- * @brief Gets the number of <name, data> records in the current bucket.
- * @details If the current bucket iteration position is before the first
- * label or after the last, return 0.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] records_count Number of <name, data> records in the current bucket
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_record_count(i18n_alpha_idx_h index, int32_t *records_count);
-
-/**
- * @brief Gets the name of the label of the current bucket in alphabetic index.
- * @details If the iteration is before the first Bucket
- * (i18n_alpha_idx_get_next_bucket() has not been called),
- * or after the last, return an empty string.
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index The alphabetic index, which contains buckets
- * @param[out] label The name of the label of the current bucket
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_bucket_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Gets the data pointer of the current record in a current bucket in alphabetic index.
- * @details Returns NULL if:
- * - the current iteration position is before the first item in this Bucket,
- * or after the last,
- * - the given @a index parameter is invalid.
- * @since_tizen 2.3.2
- * @remarks The specific error code can be obtained using the get_last_result() method.
- * Error codes are described in Exceptions section.
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- *
- * @return The data pointer of the current record in a current bucket
- * @exception #I18N_ERROR_NONE Successful
- * @exception #I18N_ERROR_INVALID_PARAMETER Invalid parameter
- */
-const void *i18n_alpha_idx_get_record_data(i18n_alpha_idx_h index);
-
-/**
- * @brief Gets the default label used for abbreviated buckets between other index characters.
- * @details For example, consider the labels when Latin and Greek are used:
- * X Y Z ... &\#x0391; &\#x0392; &\#x0393;
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] label The default label used for abbreviated bucket between other index characters
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_inflow_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Sets the default label used for abbreviated buckets between other index characters.
- * @details An inflow label will be automatically inserted if two otherwise-adjacent label characters
- * are from different scripts, e.g. Latin and Cyrillic, and a third script,
- * e.g. Greek, sorts between the two. The default inflow character is an ellipsis (...)
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[in] label The new inflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_inflow_label(i18n_alpha_idx_h index, const char *label);
-
-/**
- * @brief Gets the special label used for items that sort after the last normal label,
- * and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] label The overflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_overflow_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Sets the special label used for items that sort after the last normal label,
- * and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[in] label The new overflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_overflow_label(i18n_alpha_idx_h index, const char *label);
-
-/**
- * @brief Gets the special label used for items that sort before the first normal label,
- * and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- * @remarks The obtained @a label should be released by the caller with the free() function.
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] label The underflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_alpha_idx_get_underflow_label(i18n_alpha_idx_h index, char **label);
-
-/**
- * @brief Sets the special label used for items that sort before the first normal label,
- * and that would not otherwise have an appropriate label.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[in] label The new underflow label
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_underflow_label(i18n_alpha_idx_h index, const char *label);
-
-/**
- * @brief Gets the limit on the number of labels permitted in the index.
- * @details The number does not include over, under and inflow labels.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] max_label_count The maximum number of labels
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_max_label_count(i18n_alpha_idx_h index, int32_t *max_label_count);
-
-/**
- * @brief Sets a limit on the number of labels permitted in the index.
- * @details The number does not include over, under and inflow labels.
- * Currently, if the number is exceeded, then every nth item
- * is removed to bring the count down. A more sophisticated
- * mechanism may be available in the future.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[in] max_label_count The new maximum number of labels
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_set_max_label_count(i18n_alpha_idx_h index, int32_t max_label_count);
-
-/**
- * @brief Remove all records from the index.
- * @details The set of Buckets, which define the headings under which records are classified,
- * is not altered.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_clear_records(i18n_alpha_idx_h index);
-
-/**
- * @brief Gets the number of labels in this index.
- * @since_tizen 2.3.2
- * @remarks Note: may trigger lazy index construction.
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] bucket_count The number of labels in this index, including any under,
- * over or inflow labels
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_count(i18n_alpha_idx_h index, int32_t *bucket_count);
-
-/**
- * @brief Gets the total number of records in this index, that is, the number of
- * <name, data> pairs added.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] record_count The number of records in this index, that is,
- * the total number of (name, data) items added with
- * i18n_alpha_idx_add_record()
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_record_count(i18n_alpha_idx_h index, int32_t *record_count);
-
-/**
- * @brief Given the name of a record, returns the zero-based index of the bucket
- * in which the item should appear.
- * @details The name need not be in the index.
- * A Record will not be added to the index by this function.
- * Bucket numbers are zero-based, in Bucket iteration order.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[in] item_name The name whose bucket position in the index is to be determined
- * @param[out] bucket_index The bucket number for this name
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_index(i18n_alpha_idx_h index, const char *item_name, int32_t *bucket_index);
-
-/**
- * @brief Gets the zero based index of the current bucket of this index.
- * @details Sets the variable pointed by the @a bucket_index to -1 if no iteration
- * is in process.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] bucket_index The index of the current Bucket
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_current_bucket_index(i18n_alpha_idx_h index, int32_t *bucket_index);
-
-/**
- * @brief Gets the type of the label for the current Bucket
- * (selected by the iteration over Buckets).
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] type The alphabetic index label type
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_get_bucket_label_type(i18n_alpha_idx_h index,
- i18n_alpha_idx_label_type_e *type);
-
-/**
- * @brief Gets the name of the current record.
- * @details If the Record iteration position is before the first or after the last record,
- * sets the string pointed by the @a record_name parameter to NULL and returns
- * the #I18N_ERROR_INDEX_OUTOFBOUNDS error code.
- * @since_tizen 2.3.2
- * @remarks The obtained @a record_name should be released by the caller with the free() function.
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- * @param[out] record_name The name of the current index item
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_INDEX_OUTOFBOUNDS Trying to access the index that is out of bounds
- */
-int i18n_alpha_idx_get_record_name(i18n_alpha_idx_h index, char **record_name);
-
-/**
- * @brief Resets the bucket iteration for this index.
- * @details The next call to i18n_alpha_idx_get_next_bucket() will restart the iteration at the first label.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_reset_bucket_iter(i18n_alpha_idx_h index);
-
-/**
- * @brief Resets the record iteration for this index to before the first Record in the current Bucket.
- * @details The next call to i18n_alpha_idx_get_next_record() will restart the iteration at the first label.
- * @since_tizen 2.3.2
- *
- * @param[in] index The alphabetic index, which contains buckets with records
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_alpha_idx_reset_record_iter(i18n_alpha_idx_h index);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_ALPHA_IDX_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_FIELD_POSITION_H__
-#define __UTILS_I18N_FIELD_POSITION_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_field_position.h
- * @version 0.1
- * @brief utils_i18n_field_position
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE FieldPosition
- * @brief Field Position is a simple type used by the Format module and its submodules
- * to identify fields in formatted output.
- * @section CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE_OVERVIEW Overview
- * @details Fields are identified by constants defined in *_format_field_e enumerations.
- * The only fields currently supported are the fields accepted by the date formatter, see #i18n_udate_format_field_e.
- * Field position keeps track of the position of the field within the formatted
- * output with two indices: the index of the first character of the field and the index
- * of the last character of the field. One version of the format function in the various
- * Format modules requires a Field Position object as an argument. You use this format
- * function to perform partial formatting or to get information about the formatted output
- * (such as the position of a field).
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Creates a field position object with a non-specified field.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * i18n_field_position_destroy() function.
- *
- * @param[out] field_position The created field position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_field_position_create(i18n_field_position_h *field_position);
-
-/**
- * @brief Creates a field position object for the given field.
- * @details The only fields currently supported are the fields accepted by the date formatter,
- * see #i18n_udate_format_field_e.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * i18n_field_position_destroy() function.
- *
- * @param[in] field The field value
- * @param[out] field_position The created field position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_field_position_create_for_field(int32_t field, i18n_field_position_h *field_position);
-
-/**
- * @brief Destroys the field position object.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field position object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_destroy(i18n_field_position_h field_position);
-
-/**
- * @brief Creates a clone of the given @a field_position object.
- * @since_tizen 2.3.2
- * @remarks The @a clone object should be released by the caller with the
- * i18n_field_position_destroy() function.
- *
- * @param[in] field_position The field position object to be cloned
- * @param[out] clone The created field position object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_field_position_clone(i18n_field_position_h field_position, i18n_field_position_h *clone);
-
-/**
- * @brief Retrieves the field identifier.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field_position object
- * @param[out] field The field identifier
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_get_field(i18n_field_position_h field_position, int32_t *field);
-
-/**
- * @brief Retrieves the index of the first character in the requested field.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field position object
- * @param[out] begin_index The index of the first character in the requested field
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_get_begin_index(i18n_field_position_h field_position, int32_t *begin_index);
-
-/**
- * @brief Retrieves the index of the character following the last character in the requested field.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field position object
- * @param[out] end_index The index of the character following the last character
- * in the requested field
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_get_end_index(i18n_field_position_h field_position, int32_t *end_index);
-
-/**
- * @brief Sets the field.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field_position object
- * @param[in] field The new value of the field
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_set_field(i18n_field_position_h field_position, int32_t field);
-
-/**
- * @brief Sets the begin index.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field_position object
- * @param[in] begin_index The new value of the begin index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_set_begin_index(i18n_field_position_h field_position, int32_t begin_index);
-
-/**
- * @brief Sets the end index.
- * @since_tizen 2.3.2
- *
- * @param[in] field_position The field_position object
- * @param[in] end_index The new value of the end index
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_field_position_set_end_index(i18n_field_position_h field_position, int32_t end_index);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_FIELD_POSITION_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef UTILS_I18N_FORMATTABLE_H_
-#define UTILS_I18N_FORMATTABLE_H_
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_formattable.h
- * @version 0.1
- * @brief utils_i18n_formattable
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE Formattable
- * @brief Formattable interconverts between the primitive numeric types
- * (double, long, etc.) as well as #i18n_udate and char string.
- *
- * @section CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE_OVERVIEW Overview
- * @details Internally, an #i18n_formattable_h handle holds an object
- * that is a union of primitive types.
- * As such, it can only store one flavor of data at a time.
- * To determine what flavor of data it contains, use the
- * #i18n_formattable_get_type function.
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE
- * @{
- */
-
-/**
- * @brief Creates a new default #i18n_formattable_h.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[out] formattable A pointer to a handle to the newly created formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_default(i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with an #i18n_udate instance.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] date The #i18n_udate instance
- * @param[out] formattable A pointer to a handle to the newly created formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_udate(i18n_udate date, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with a double value.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] value The double value to be used
- * @param[out] formattable A pointer to a handle to the newly created formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_double(double value, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with a long value.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] value The long value to be used
- * @param[out] formattable A pointer to a handle to the newly created formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_long(int32_t value, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with an int64_t value.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] value The int64_t value to be used
- * @param[out] formattable A pointer to a handle to the newly created formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_int64(int64_t value, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with a char string pointer.
- * @details Assumes that the char string is null terminated.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] str_to_copy The char string
- * @param[out] formattable A pointer to a handle to the newly created formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_char_string(const char *str_to_copy, i18n_formattable_h *formattable);
-
-/**
- * @brief Creates a new #i18n_formattable_h handle with an array of
- * #i18n_formattable_h handles.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] array_to_copy An array with the #i18n_formattable_h handles
- * @param[in] count The number of the elements in the array
- * @param[out] formattable A pointer to a handle to the newly created
- * formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_create_with_formattable_array(const i18n_formattable_h *array_to_copy, int32_t count, i18n_formattable_h *formattable);
-
-/**
- * @brief Releases the given #i18n_formattable_h handle.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object to be released
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_destroy(i18n_formattable_h formattable);
-
-/**
- * @brief Clones the given formattable handle with the related object to the
- * @a clone handle.
- * @details Clones can be used concurrently in multiple threads.
- * @since_tizen 2.3.2
- * @remarks The cloned object should be released by the caller with the
- * #i18n_formattable_destroy() function.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] clone A pointer to a handle to the formattable object which
- * will be filled with a copy of the @a formattable handle.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_formattable_clone(i18n_formattable_h formattable, i18n_formattable_h *clone);
-
-/**
- * @brief Gets the array value and count of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
- * result is undefined. The obtained array should be released by the
- * caller with the free() function.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] array A pointer to an array of #i18n_formattable_h handles
- * @param[out] count A pointer to an int32_t variable which will be filled
- * with the number of array's elements
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_array(i18n_formattable_h formattable, i18n_formattable_h **array, int32_t *count);
-
-/**
- * @brief Gets the date value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DATE then the
- * result is undefined.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] date A pointer to an i18n_udate object which will be filled
- * with the date obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_date(i18n_formattable_h formattable, i18n_udate *date);
-
-/**
- * @brief Gets the double value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_DOUBLE then the
- * result is undefined.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] value A pointer to a double variable which will be filled
- * with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_double(i18n_formattable_h formattable, double *value);
-
-/**
- * @brief Gets the int64 value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_INT64 then the
- * result is undefined.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] value A pointer to an int64_t variable which will be filled
- * with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_int64(i18n_formattable_h formattable, int64_t *value);
-
-/**
- * @brief Gets the long value of the given formattable object.
- * @details If the magnitude is too large to fit in a long, then the maximum or
- * minimum long value, as appropriate, is set to @a value
- * and the #I18N_ERROR_INVALID_FORMAT error code is returned by the
- * function.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] value A pointer to a int32_t variable which will be filled
- * with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_long(i18n_formattable_h formattable, int32_t *value);
-
-/**
- * @brief Gets the string value of the given formattable object.
- * @since_tizen 2.3.2
- * @remarks If the type is not a string, the function returns the
- * #I18N_ERROR_INVALID_FORMAT error code and the value is set to @c
- * NULL. The @a value should be released by the caller with the free() function.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] value A pointer to a char string variable which will be
- * filled with the value obtained from the given formattable object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_INVALID_FORMAT The given formattable type is not a string
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #I18N_ERROR_UNKNOWN Unknown error
- */
-int i18n_formattable_get_string(i18n_formattable_h formattable, char **value);
-
-/**
- * @brief Gets the data type of the given formattable object.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] type A pointer to an #i18n_formattable_type_e variable which
- * will be filled with the type obtained from the given formattable
- * object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_get_type(i18n_formattable_h formattable, i18n_formattable_type_e *type);
-
-/**
- * @brief Sets the variable pointed by the @a is_numeric pointer to @c true if
- * the data type of the given formattable object is #I18N_FORMATTABLE_TYPE_DOUBLE,
- * #I18N_FORMATTABLE_TYPE_LONG or #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[out] is_numeric A pointer to a boolean variable which will be filled by
- * the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_is_numeric(i18n_formattable_h formattable, bool *is_numeric);
-
-/**
- * @brief Sets the variable pointed by the @a not_equal pointer to @c true if
- * the given @a formattable object is not equal to the given @a other
- * formattable object.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] other A handle to the other formattable object
- * @param[out] not_equal A pointer to a boolean variable which will be filled by
- * the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_not_equal(i18n_formattable_h formattable, i18n_formattable_h other, bool *not_equal);
-
-/**
- * @brief Sets the variable pointed by the @a equal pointer to @c true if the
- * given @a formattable object is equal to the given @a other
- * formattable object.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] other A handle to the other formattable object
- * @param[out] equal A pointer to a boolean variable which will be filled by
- * the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_equal(i18n_formattable_h formattable, i18n_formattable_h other, bool *equal);
-
-/**
- * @brief Sets the object pointed by the @a element pointer to the element at
- * the @a index position in the array stored by the given formattable
- * object (if its type is #I18N_FORMATTABLE_TYPE_ARRAY).
- * @since_tizen 2.3.2
- * @remarks If this object is not of type #I18N_FORMATTABLE_TYPE_ARRAY then the
- * result is undefined.
- *
- * The obtained formattable element should not be released by the caller
- * as it belongs to the given formattable object of type #I18N_FORMATTABLE_TYPE_ARRAY.
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] index A number representing the position in the array from
- * which the element should be obtained
- * @param[out] element A pointer to a handle to the formattable object which
- * will be filled by the function
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_INDEX_OUTOFBOUNDS Index value out of range
- * @retval #I18N_ERROR_INVALID_FORMAT The given formattable type is not an array
- */
-int i18n_formattable_element_at(i18n_formattable_h formattable, int32_t index, i18n_formattable_h *element);
-
-/**
- * @brief Sets the array value and count of the given formattable object and
- * changes the type to #I18N_FORMATTABLE_TYPE_ARRAY.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] array An array of handles to the formattable objects
- * @param[in] count The number of array elements to be copied
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_array(i18n_formattable_h formattable, const i18n_formattable_h *array, int32_t count);
-
-/**
- * @brief Sets the date value of the given formattable object and changes the
- * type to the #I18N_FORMATTABLE_TYPE_DATE.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] date The new i18n_udate value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_date(i18n_formattable_h formattable, i18n_udate date);
-
-/**
- * @brief Sets the double value of the given formattable object and changes
- * the type to the #I18N_FORMATTABLE_TYPE_DOUBLE.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] value The new double value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_double(i18n_formattable_h formattable, double value);
-
-/**
- * @brief Sets the int64 value of the given formattable object and changes the
- * type to the #I18N_FORMATTABLE_TYPE_INT64.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] value The new int64_t value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_int64(i18n_formattable_h formattable, int64_t value);
-
-/**
- * @brief Sets the long value of the given formattable object and changes the
- * type to the #I18N_FORMATTABLE_TYPE_LONG.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] value The new int32_t value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_long(i18n_formattable_h formattable, int32_t value);
-
-/**
- * @brief Sets the string value of the given formattable object and changes
- * the type to the #I18N_FORMATTABLE_TYPE_STRING.
- * @since_tizen 2.3.2
- *
- * @param[in] formattable A handle to the formattable object
- * @param[in] string_to_copy The new string value to be set
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_formattable_set_string(i18n_formattable_h formattable, const char *string_to_copy);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* UTILS_I18N_FORMATTABLE_H_ */
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_MEASURE_H__
-#define __UTILS_I18N_MEASURE_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_measure.h
- * @version 0.1
- * @brief utils_i18n_measure
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MEASURE_MODULE Measure
- * @brief Measure object contains an amount of a specified unit, consisting of a number and an unit.
- * @section CAPI_BASE_UTILS_I18N_MEASURE_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_MEASURE_MODULE_OVERVIEW Overview
- * @details
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_MODULE
- * @{
- */
-
-/**
- * @brief Creates an object with the given numeric amount and the given unit.
- * @details After this call, the caller must not delete the given measure unit object.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * #i18n_measure_destroy() function.
- *
- * @param[in] formattable A numeric object; The #i18n_formattable_is_numeric()
- * function must return @c true for this object.
- * @param[in] measure_unit The unit object, which must not be @c NULL
- * @param[out] measure The created measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_create(const i18n_formattable_h formattable, i18n_measure_unit_h measure_unit, i18n_measure_h *measure);
-
-/**
- * @brief Creates a polymorphic clone of the given @a clone object.
- * @since_tizen 2.3.2
- * @remarks The @c clone object should be released by the caller with the
- * #i18n_measure_destroy() function.
- *
- * @param[in] measure The measure object to be cloned
- * @param[out] clone The created measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_clone(i18n_measure_h measure, i18n_measure_h *clone);
-
-/**
- * @brief Destroys the measure object.
- * @since_tizen 2.3.2
- *
- * @param[in] measure The measure object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_destroy(i18n_measure_h measure);
-
-/**
- * @brief Gets a reference to the numeric value of the measure object.
- * @since_tizen 2.3.2
- * @remarks The obtained formattable object should be released by the caller
- * with the #i18n_formattable_destroy() function.
- *
- * @param[in] measure The measure object
- * @param[out] formattable The numeric value of the measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_get_number(i18n_measure_h measure, i18n_formattable_h *formattable);
-
-/**
- * @brief Gets a reference to the unit of the measure object.
- * @since_tizen 2.3.2
- * @remarks The obtained measure unit object should be released by the caller
- * with the #i18n_measure_unit_destroy() function.
- *
- * @param[in] measure The measure object
- * @param[out] measure_unit The unit of the measure object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_get_unit(i18n_measure_h measure, i18n_measure_unit_h *measure_unit);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_MEASURE_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_MEASURE_FORMAT_H__
-#define __UTILS_I18N_MEASURE_FORMAT_H__
-
-#include <utils_i18n_types.h>
-
-/**
- * @file utils_i18n_measure_format.h
- * @version 0.1
- * @brief utils_i18n_measure_format
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup CAPI_BASE_UTILS_I18N_MODULE
- * @defgroup CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE MeasureFormat
- * @brief The MeasureFormat is a formatter for Measure objects.
- * @section CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE_HEADER Required Header
- * \#include <utils_i18n.h>
- *
- * @section CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE_OVERVIEW Overview
- * @details
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Creates the measure format object using given locale.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * i18n_measure_format_destroy() function.
- *
- * @param[in] language The language of the locale
- * @param[in] country The country of the locale
- * @param[in] width The format width
- * @param[out] measure_format The created measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_create(const char *language, const char *country,
- i18n_umeasure_format_width_e width, i18n_measure_format_h *measure_format);
-
-/**
- * @brief Destroys the measure format object
- * @since_tizen 2.3.2
- *
- * @param[in] measure_format The measure format object to destroy
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- */
-int i18n_measure_format_destroy(i18n_measure_format_h measure_format);
-
-/**
- * @brief Creates a polymorphic clone of the given @a measure_format object.
- * @since_tizen 2.3.2
- * @remarks The @a clone object should be released by the caller with the
- * i18n_measure_format_destroy() function.
- *
- * @param[in] measure_format The measure format object to be cloned
- * @param[out] clone The created measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_clone(i18n_measure_format_h measure_format, i18n_format_h *clone);
-
-/**
- * @brief Formats an object to produce a string.
- * @since_tizen 2.3.2
- * @remarks The obtained @a append_to string is actually a concatenation of the given input string and
- * the result of the function (appended to the string). Actually, the @a append_to
- * buffer is being reallocated inside the function which means that the buffer is not
- * at the same place in memory as it was on the input. Please note that the @a append_to
- * buffer should be released by the caller with the free() function.
- *
- * @param[in] measure_format The format object
- * @param[in] formattable The object to format
- * @param[out] append_to Input/output parameter to receive the result.
- * The result is appended to the existing contents.
- * @param[out] field_position On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_format(i18n_measure_format_h measure_format, i18n_formattable_h formattable,
- char **append_to, i18n_field_position_h field_position);
-
-/**
- * @brief Parses a string to produce an object.
- * @since_tizen 2.3.2
- * @remarks The obtained @a result object should be released by the caller
- * with the i18n_formattable_destroy() function.
- *
- * @param[in] measure_format The format object
- * @param[in] source The string to be parsed into an object
- * @param[out] parse_position The position to start parsing at. Upon return
- * this parameter is set to the position after the
- * last character successfully parsed. If the
- * source is not parsed successfully, this parameter
- * will remain unchanged.
- * @param[out] result The formattable object to be set to the parse result.
- * If parse fails, return contents are undefined.
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_parse_object(i18n_measure_format_h measure_format, const char *source, i18n_parse_position_h parse_position, i18n_formattable_h *result);
-
-/**
- * @brief Gets a formatter for currency amount objects in the given locale.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * i18n_measure_format_destroy() function.
- *
- * @param[in] language The language of the locale
- * @param[in] country The country of the locale
- * @param[out] measure_format The measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_create_currency_format_from_locale(const char *language, const char *country, i18n_measure_format_h *measure_format);
-
-/**
- * @brief Gets a formatter for currency amount objects in the default locale.
- * @since_tizen 2.3.2
- * @remarks The created object should be released by the caller with the
- * i18n_measure_format_destroy() function.
- *
- * @param[out] measure_format The measure format object
- *
- * @return @c 0 on success, otherwise a negative error value
- * @retval #I18N_ERROR_NONE Successful
- * @retval #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
- * @retval #I18N_ERROR_OUT_OF_MEMORY Out of memory
- */
-int i18n_measure_format_create_currency_format(i18n_measure_format_h *measure_format);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_MEASURE_FORMAT_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __UTILS_I18N_PRIVATE_H__
-#define __UTILS_I18N_PRIVATE_H__
-
-#include <stdbool.h>
-#include <dlog.h>
-#include <utils_i18n_types.h>
-#include <unicode/utypes.h>
-
-/**
- * @file utils_i18n_private.h
- * @brief utils_i18n_private
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef LOG_TAG
-#undef LOG_TAG
-#endif
-#define LOG_TAG "BASE_UTILS"
-
-#define I18N_ERR(ret) do { \
- if (ret != I18N_ERROR_NONE) { \
- LOGE("err(%d): %s", ret, get_error_message(ret)); \
- } \
- } while (0)
-
-#define ERR(fmt, arg...) LOGE(fmt, ##arg)
-
-#define ret_if(expr) do { \
- if (expr) { \
- ERR("(%s)", #expr); \
- return; \
- } \
- } while (0)
-
-#define retv_if(expr, val) do { \
- if (expr) { \
- ERR("(%s)", #expr); \
- return (val); \
- } \
- } while (0)
-
-#define retm_if(expr, fmt, arg...) do { \
- if (expr) { \
- ERR(fmt, ##arg); \
- return; \
- } \
- } while (0)
-
-#define retvm_if(expr, val, fmt, arg...) do { \
- if (expr) { \
- ERR(fmt, ##arg); \
- return (val); \
- } \
- } while (0)
-
-#define retex_if(expr, val, fmt, arg...) do { \
- if (expr) { \
- ERR(fmt, ##arg); \
- val; \
- goto CATCH; \
- } \
- } while (0);
-
-#define ERR_MAPPING_REVERSE(BASE_UTILS_ERROR, ICU_ERROR) ICU_ERROR = \
- (UErrorCode)_i18n_error_mapping_reverse((int)BASE_UTILS_ERROR)
-
-#define ERR_MAPPING(ICU_ERROR, BASE_UTILS_ERROR) BASE_UTILS_ERROR = \
- (i18n_error_code_e)_i18n_error_mapping((int)ICU_ERROR)
-
-int _i18n_error_mapping(int err);
-int _i18n_error_mapping_reverse(int err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_PRIVATE_H__*/
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copyright (C) 1999-2012, International Business Machines
- * Corporation and others. All Rights Reserved.
- */
-
-
-
-#ifndef __UTILS_I18N_TYPES_H__
-#define __UTILS_I18N_TYPES_H__
-
-#include <inttypes.h>
-#include <tizen.h>
-#include <wchar.h>
-
-/**
- * @file utils_i18n_types.h
- * @version 0.1
- * @brief utils_i18n_types
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MODULE
- * @{
- */
-
-/**
- * @brief Enumeration for error codes to replace exception handlings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_ERROR_NONE = TIZEN_ERROR_NONE, /**< No error, no warning */
- I18N_ERROR_MISSING_RESOURCE = TIZEN_ERROR_UTILITY_ICU | 0x01, /**< The requested resource cannot be found */
- I18N_ERROR_INVALID_FORMAT = TIZEN_ERROR_UTILITY_ICU | 0x02, /**< Data format is not what is expected */
- I18N_ERROR_FILE_ACCESS = TIZEN_ERROR_UTILITY_ICU | 0x03, /**< The requested file cannot be found */
- I18N_ERROR_INTERNAL_PROGRAM = TIZEN_ERROR_UTILITY_ICU | 0x04, /**< Indicates a bug in the library code */
- I18N_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
- I18N_ERROR_INDEX_OUTOFBOUNDS = TIZEN_ERROR_UTILITY_ICU | 0x05, /**< Trying to access the index that is out of bounds */
- I18N_ERROR_INVALID_CHAR_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x06, /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character */
- I18N_ERROR_BUFFER_OVERFLOW = TIZEN_ERROR_UTILITY_ICU | 0x07, /**< A result would not fit in the supplied buffer */
- I18N_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Requested operation is not supported in the current context */
- I18N_ERROR_COLLATOR_VERSION_MISMATCH = TIZEN_ERROR_UTILITY_ICU | 0x08, /**< Collator version is not compatible with the base version */
- I18N_ERROR_USELESS_COLLATOR = TIZEN_ERROR_UTILITY_ICU | 0x09, /**< Collator is options only and no base is specified */
- I18N_ERROR_NO_WRITE_PERMISSION = TIZEN_ERROR_UTILITY_ICU | 0x0A, /**< Attempt to modify read-only or constant data */
- I18N_ERROR_RESOURCE_TYPE_MISMATCH = TIZEN_ERROR_UTILITY_ICU | 0x0B, /**< An operation is requested over a resource that does not support it */
- I18N_ERROR_TOO_MANY_ALIASES = TIZEN_ERROR_UTILITY_ICU | 0x0C, /**< Too many aliases in the path to the requested resource */
- I18N_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter */
- I18N_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
-
- I18N_ERROR_MESSAGE_PARSE = TIZEN_ERROR_UTILITY_ICU | 0x0D, /**< Unable to parse a message (message format). @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_PARSE = TIZEN_ERROR_UTILITY_ICU | 0x0E, /**< Equivalent to Java ParseException. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_TRUNCATED_CHAR_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x0F, /**< Character conversion: Incomplete input sequence. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_ILLEGAL_CHAR_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x10, /**< Character conversion: Illegal input sequence/combination of input units. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_INVALID_TABLE_FORMAT = TIZEN_ERROR_UTILITY_ICU | 0x11, /**< Conversion table file found, but corrupted. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_INVALID_TABLE_FILE = TIZEN_ERROR_UTILITY_ICU | 0x12, /**< Conversion table file not found. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_ILLECAL_ESCAPE_SEQUENCE = TIZEN_ERROR_UTILITY_ICU | 0x13, /**< ISO-2022 illegal escape sequence. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE = TIZEN_ERROR_UTILITY_ICU | 0x14, /**< ISO-2022 unsupported escape sequence. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_NO_SPACE_AVAILABLE = TIZEN_ERROR_UTILITY_ICU | 0x15, /**< No space available for in-buffer expansion for Arabic shaping. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_CE_NOT_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x16, /**< Currently used only while setting variable top, but can be used generally. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_PRIMARY_TOO_LONG = TIZEN_ERROR_UTILITY_ICU | 0x17, /**< User tried to set variable top to a primary that is longer than two bytes. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_STATE_TOO_OLD = TIZEN_ERROR_UTILITY_ICU | 0x18, /**< ICU cannot construct a service from this state, as it is no longer supported. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_ENUM_OUT_OF_SYNC = TIZEN_ERROR_UTILITY_ICU | 0x19, /**< UEnumeration out of sync with underlying collection. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_INVARIANT_CONVERSION = TIZEN_ERROR_UTILITY_ICU | 0x1A, /**< Unable to convert a UChar* string to char* with the invariant converter. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_INVALID_STATE = TIZEN_ERROR_UTILITY_ICU | 0x1B, /**< Requested operation can not be completed with ICU in its current state. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_MALFORMED_SET = TIZEN_ERROR_UTILITY_ICU | 0x1C, /**< A UnicodeSet pattern is invalid. @if MOBILE (Since 2.3.1) @endif*/
- I18N_WARNING_STRING_NOT_TERMINATED = TIZEN_ERROR_UTILITY_ICU | 0x1D, /**< String not terminated with NULL. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_STD3_ASCII_RULES = TIZEN_ERROR_UTILITY_ICU | 0x1E, /**< Argument does not satisfy STD3 rules. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_UNASSIGNED = TIZEN_ERROR_UTILITY_ICU | 0x1F, /**< Unassigned code points are found. @if MOBILE (Since 2.3.1) @endif*/
- I18N_WARNING_SORT_KEY_TOO_SHORT = TIZEN_ERROR_UTILITY_ICU | 0x20, /**< Number of levels requested in getBound is higher than the number of levels in the sort key. @if MOBILE (Since 2.3.1) @endif*/
- I18N_ERROR_UNKNOWN = TIZEN_ERROR_UNKNOWN, /**< Unknown error. @if MOBILE (Since 2.3.1) @endif*/
-} i18n_error_code_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
- * @{
- */
-
-#define I18N_U_MASK(x) ((uint32_t)1<<(x)) /**< Get a single-bit bit set (a flag) from a bit number 0..31. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-
-#define I18N_U_GC_CN_MASK I18N_U_MASK(I18N_UCHAR_U_GENERAL_OTHER_TYPES) /**< U_GC_XX_MASK constants are bit flags corresponding to Unicode general category values. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LU_MASK I18N_U_MASK(I18N_UCHAR_U_UPPERCASE_LETTER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LL_MASK I18N_U_MASK(I18N_UCHAR_U_LOWERCASE_LETTER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LT_MASK I18N_U_MASK(I18N_UCHAR_U_TITLECASE_LETTER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LM_MASK I18N_U_MASK(I18N_UCHAR_U_MODIFIER_LETTER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_LETTER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_MN_MASK I18N_U_MASK(I18N_UCHAR_U_NON_SPACING_MARK) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ME_MASK I18N_U_MASK(I18N_UCHAR_U_ENCLOSING_MARK) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_MC_MASK I18N_U_MASK(I18N_UCHAR_U_COMBINING_SPACING_MARK) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ND_MASK I18N_U_MASK(I18N_UCHAR_U_DECIMAL_DIGIT_NUMBER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_NL_MASK I18N_U_MASK(I18N_UCHAR_U_LETTER_NUMBER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_NO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_NUMBER) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ZS_MASK I18N_U_MASK(I18N_UCHAR_U_SPACE_SEPARATOR) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ZL_MASK I18N_U_MASK(I18N_UCHAR_U_LINE_SEPARATOR) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_ZP_MASK I18N_U_MASK(I18N_UCHAR_U_PARAGRAPH_SEPARATOR) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CC_MASK I18N_U_MASK(I18N_UCHAR_U_CONTROL_CHAR) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CF_MASK I18N_U_MASK(I18N_UCHAR_U_FORMAT_CHAR) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CO_MASK I18N_U_MASK(I18N_UCHAR_U_PRIVATE_USE_CHAR) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_CS_MASK I18N_U_MASK(I18N_UCHAR_U_SURROGATE) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PD_MASK I18N_U_MASK(I18N_UCHAR_U_DASH_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PS_MASK I18N_U_MASK(I18N_UCHAR_U_START_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PE_MASK I18N_U_MASK(I18N_UCHAR_U_END_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PC_MASK I18N_U_MASK(I18N_UCHAR_U_CONNECTOR_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SM_MASK I18N_U_MASK(I18N_UCHAR_U_MATH_SYMBOL) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SC_MASK I18N_U_MASK(I18N_UCHAR_U_CURRENCY_SYMBOL) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SK_MASK I18N_U_MASK(I18N_UCHAR_U_MODIFIER_SYMBOL) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_SO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_SYMBOL) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PI_MASK I18N_U_MASK(I18N_UCHAR_U_INITIAL_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_PF_MASK I18N_U_MASK(I18N_UCHAR_U_FINAL_PUNCTUATION) /**< Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_L_MASK (I18N_U_GC_LU_MASK|I18N_U_GC_LL_MASK|I18N_U_GC_LT_MASK|I18N_U_GC_LM_MASK|I18N_U_GC_LO_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (L Letters). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_LC_MASK (I18N_U_GC_LU_MASK|I18N_U_GC_LL_MASK|I18N_U_GC_LT_MASK) /**< Mask constant for multiple #i18n_uchar_category_e bits (LC Cased Letters). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_M_MASK (I18N_U_GC_MN_MASK|I18N_U_GC_ME_MASK|I18N_U_GC_MC_MASK) /**< Mask constant for multiple #i18n_uchar_category_e bits (M Marks). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_N_MASK (I18N_U_GC_ND_MASK|I18N_U_GC_NL_MASK|I18N_U_GC_NO_MASK) /**< Mask constant for multiple #i18n_uchar_category_e bits (N Numbers). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_Z_MASK (I18N_U_GC_ZS_MASK|I18N_U_GC_ZL_MASK|I18N_U_GC_ZP_MASK) /**< Mask constant for multiple #i18n_uchar_category_e bits (Z Separators). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_C_MASK (I18N_U_GC_CN_MASK|I18N_U_GC_CC_MASK|I18N_U_GC_CF_MASK|I18N_U_GC_CO_MASK|I18N_U_GC_CS_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (C Others). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_P_MASK (I18N_U_GC_PD_MASK|I18N_U_GC_PS_MASK|I18N_U_GC_PE_MASK|I18N_U_GC_PC_MASK|I18N_U_GC_PO_MASK|I18N_U_GC_PI_MASK|I18N_U_GC_PF_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (P Punctuation). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_U_GC_S_MASK (I18N_U_GC_SM_MASK|I18N_U_GC_SC_MASK|I18N_U_GC_SK_MASK|I18N_U_GC_SO_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (S Symbols). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */
-
-#define I18N_U_NO_NUMERIC_VALUE ((double)-123456789.) /**< Special value that is returned by i18n_uchar_get_numeric_value()(not implemented yet) when no numeric value is defined for a code point. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */
-
-#define I18N_U_GET_GC_MASK(c) I18N_U_MASK(u_charType(c)) /**< Get a single-bit bit set for the general category of a character. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */
-
-/**
- * @brief Option value for case folding: use default mappings defined in CaseFolding.txt.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- */
-#define I18N_U_FOLD_CASE_DEFAULT 0
-
-/**
- * @brief Option value for case folding: \n
- * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).\n
- * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.\n
- * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
-
-
-/**
- * @brief DONE is returned by i18n_usearch_previous() and i18n_usearch_next() after all valid matches have been returned,
- * and by, i18n_usearch_first() and i18n_usearch_last() if there are no matches at all.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USEARCH_DONE -1
-
-
-#if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
-# ifdef __STDC_ISO_10646__
-# if (U_SIZEOF_WCHAR_T == 2)
-# define U_WCHAR_IS_UTF16
-# elif (U_SIZEOF_WCHAR_T == 4)
-# define U_WCHAR_IS_UTF32
-# endif
-# elif defined __UCS2__
-# if (U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400) && (U_SIZEOF_WCHAR_T == 2)
-# define U_WCHAR_IS_UTF16
-# endif
-# elif defined(__UCS4__) || (U_PLATFORM == U_PF_OS400 && defined(__UTF32__))
-# if (U_SIZEOF_WCHAR_T == 4)
-# define U_WCHAR_IS_UTF32
-# endif
-# elif U_PLATFORM_IS_DARWIN_BASED || (U_SIZEOF_WCHAR_T == 4 && U_PLATFORM_IS_LINUX_BASED)
-# define U_WCHAR_IS_UTF32
-# elif U_PLATFORM_HAS_WIN32_API
-# define U_WCHAR_IS_UTF16
-# endif
-#endif
-#define U_SIZEOF_UCHAR 2
-
-/**
- * @brief i18n_uchar.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#if defined(UCHAR_TYPE)
-typedef UCHAR_TYPE i18n_uchar;
-/* Not #elif U_HAVE_CHAR16_T -- because that is type-incompatible with pre-C++11 callers
- typedef char16_t i18n_uchar; */
-#elif U_SIZEOF_WCHAR_T == 2
-typedef wchar_t i18n_uchar;
-#elif defined(__CHAR16_TYPE__)
-typedef __CHAR16_TYPE__ i18n_uchar;
-#else
-typedef uint16_t i18n_uchar;
-#endif
-
-
-/**
- * @brief i18n_uchar32.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef int32_t i18n_uchar32;
-
-/**
- * @brief i18n_ubool.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef int8_t i18n_ubool;
-
-/**
- * @brief Enumeration of constants for Unicode properties.
- * The properties APIs are intended to reflect Unicode properties as defined in the
- * Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
- * For details about the properties see http://www.unicode.org/ucd/ .
- * For names of Unicode properties see the UCD file PropertyAliases.txt.
- *
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_ALPHABETIC = 0,
- /**< Binary property Alphabetic. \n
- Lu+Ll+Lt+Lm+Lo+Nl+Other_Alphabetic
- */
- I18N_UCHAR_BINARY_START = I18N_UCHAR_ALPHABETIC,
- /**< First constant for binary Unicode properties. */
- I18N_UCHAR_ASCII_HEX_DIGIT,
- /**< Binary property ASCII_Hex_Digit. \n
- 0-9 A-F a-f
- */
- I18N_UCHAR_BIDI_CONTROL,
- /**< Binary property Bidi_Control. \n
- Format controls which have specific functions in the Bidi Algorithm.
- */
- I18N_UCHAR_BIDI_MIRRORED,
- /**< Binary property Bidi_Mirrored. \n
- Characters that may change display in RTL text. See Bidi Algorithm, UTR 9.
- */
- I18N_UCHAR_DASH,
- /**< Binary property Dash. \n
- Variations of dashes.
- */
- I18N_UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
- /**< Binary property Default_Ignorable_Code_Point (new in Unicode 3.2). \n
- Ignorable in most processing. <2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space)
- */
- I18N_UCHAR_DEPRECATED,
- /**< Binary property Deprecated (new in Unicode 3.2). \n
- The usage of deprecated characters is strongly discouraged.
- */
- I18N_UCHAR_DIACRITIC,
- /**< Binary property Diacritic. \n
- Characters that linguistically modify the meaning of another character to which they apply.
- */
- I18N_UCHAR_EXTENDER,
- /**< Binary property Extender. \n
- Extend the value or shape of a preceding alphabetic character, e.g. length and iteration marks.
- */
- I18N_UCHAR_FULL_COMPOSITION_EXCLUSION,
- /**< Binary property Full_Composition_Exclusion. \n
- CompositionExclusions.txt+Singleton Decompositions+ Non-Starter Decompositions.
- */
- I18N_UCHAR_GRAPHEME_BASE,
- /**< Binary property Grapheme_Base (new in Unicode 3.2). \n
- For programmatic determination of grapheme cluster boundaries. [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ
- */
- I18N_UCHAR_GRAPHEME_EXTEND,
- /**< Binary property Grapheme_Extend (new in Unicode 3.2). \n
- For programmatic determination of grapheme cluster boundaries. Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ
- */
- I18N_UCHAR_GRAPHEME_LINK,
- /**< Binary property Grapheme_Link (new in Unicode 3.2). \n
- For programmatic determination of grapheme cluster boundaries.
- */
- I18N_UCHAR_HEX_DIGIT,
- /**< Binary property Hex_Digit. \n
- Characters commonly used for hexadecimal numbers.
- */
- I18N_UCHAR_HYPHEN,
- /**< Binary property Hyphen. \n
- Dashes used to mark connections between pieces of words, plus the Katakana middle dot.
- */
- I18N_UCHAR_ID_CONTINUE,
- /**< Binary property ID_Continue. \n
- Characters that can continue an identifier. DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out." ID_Start+Mn+Mc+Nd+Pc
- */
- I18N_UCHAR_ID_START,
- /**< Binary property ID_Start. \n
- Characters that can start an identifier. Lu+Ll+Lt+Lm+Lo+Nl
- */
- I18N_UCHAR_IDEOGRAPHIC,
- /**< Binary property Ideographic. \n
- CJKV ideographs.
- */
- I18N_UCHAR_IDS_BINARY_OPERATOR,
- /**< Binary property IDS_Binary_Operator (new in Unicode 3.2). \n
- For programmatic determination of Ideographic Description Sequences.
- */
- I18N_UCHAR_IDS_TRINARY_OPERATOR,
- /**< Binary property IDS_Trinary_Operator (new in Unicode 3.2). \n
- For programmatic determination of Ideographic Description Sequences.
- */
- I18N_UCHAR_JOIN_CONTROL,
- /**< Binary property Join_Control. \n
- Format controls for cursive joining and ligation.
- */
- I18N_UCHAR_LOGICAL_ORDER_EXCEPTION,
- /**< Binary property Logical_Order_Exception (new in Unicode 3.2). \n
- Characters that do not use logical order and require special handling in most processing.
- */
- I18N_UCHAR_LOWERCASE,
- /**< Binary property Lowercase. \n
- Ll+Other_Lowercase
- */
- I18N_UCHAR_MATH,
- /**< Binary property Math. \n
- Sm+Other_Math
- */
- I18N_UCHAR_NONCHARACTER_CODE_POINT,
- /**< Binary property Noncharacter_Code_Point. \n
- Code points that are explicitly defined as illegal for the encoding of characters.
- */
- I18N_UCHAR_QUOTATION_MARK,
- /**< Binary property Quotation_Mark. \n
- */
- I18N_UCHAR_RADICAL,
- /**< Binary property Radical (new in Unicode 3.2). \n
- For programmatic determination of Ideographic Description Sequences.
- */
- I18N_UCHAR_SOFT_DOTTED,
- /**< Binary property Soft_Dotted (new in Unicode 3.2). \n
- Characters with a "soft dot", like i or j. An accent placed on these characters causes the dot to disappear.
- */
- I18N_UCHAR_TERMINAL_PUNCTUATION,
- /**< Binary property Terminal_Punctuation. \n
- Punctuation characters that generally mark the end of textual units.
- */
- I18N_UCHAR_UNIFIED_IDEOGRAPH,
- /**< Binary property Unified_Ideograph (new in Unicode 3.2). \n
- For programmatic determination of Ideographic Description Sequences.
- */
- I18N_UCHAR_UPPERCASE,
- /**< Binary property Uppercase. \n
- Lu+Other_Uppercase
- */
- I18N_UCHAR_WHITE_SPACE,
- /**< Binary property White_Space. \n
- Space characters+TAB+CR+LF-ZWSP-ZWNBSP
- */
- I18N_UCHAR_XID_CONTINUE,
- /**< Binary property XID_Continue. \n
- ID_Continue modified to allow closure under normalization forms NFKC and NFKD.
- */
- I18N_UCHAR_XID_START,
- /**< Binary property XID_Start. \n
- ID_Start modified to allow closure under normalization forms NFKC and NFKD.
- */
- I18N_UCHAR_CASE_SENSITIVE,
- /**< Binary property Case_Sensitive. \n
- Either the source of a case mapping or <em>in</em> the target of a case mapping. Not the same as the general category Cased_Letter.
- */
- I18N_UCHAR_S_TERM,
- /**< Binary property STerm (new in Unicode 4.0.1). \n
- */
- I18N_UCHAR_VARIATION_SELECTOR,
- /**< Binary property Variation_Selector (new in Unicode 4.0.1). \n
- Indicates all those characters that qualify as Variation Selectors.
- */
- I18N_UCHAR_NFD_INERT,
- /**< Binary property NFD_Inert. \n
- ICU-specific property for characters that are inert under NFD, i.e., they do not interact with adjacent characters.
- */
- I18N_UCHAR_NFKD_INERT,
- /**< Binary property NFKD_Inert. \n
- ICU-specific property for characters that are inert under NFKD, i.e., they do not interact with adjacent characters.
- */
- I18N_UCHAR_NFC_INERT,
- /**< Binary property NFC_Inert. \n
- ICU-specific property for characters that are inert under NFC, i.e., they do not interact with adjacent characters.
- */
- I18N_UCHAR_NFKC_INERT,
- /**< Binary property NFKC_Inert. \n
- ICU-specific property for characters that are inert under NFKC, i.e., they do not interact with adjacent characters.
- */
- I18N_UCHAR_SEGMENT_STARTER,
- /**< Binary Property Segment_Starter. \n
- Property for characters that are starters in terms of Unicode normalization and combining character sequences.
- They have ccc=0 and do not occur in non-initial position of the canonical decomposition of any character
- (like a-umlaut in NFD and a Jamo T in an NFD(Hangul LVT)).
- */
- I18N_UCHAR_PATTERN_SYNTAX,
- /**< Binary property Pattern_Syntax (new in Unicode 4.1). \n
- */
- I18N_UCHAR_PATTERN_WHITE_SPACE,
- /**< Binary property Pattern_White_Space (new in Unicode 4.1). \n
- */
- I18N_UCHAR_POSIX_ALNUM,
- /**< Binary property alnum (a C/POSIX character class).*/
- I18N_UCHAR_POSIX_BLANK,
- /**< Binary property blank (a C/POSIX character class).*/
- I18N_UCHAR_POSIX_GRAPH,
- /**< Binary property graph (a C/POSIX character class). */
- I18N_UCHAR_POSIX_PRINT,
- /**< Binary property print (a C/POSIX character class). */
- I18N_UCHAR_POSIX_XDIGIT,
- /**< Binary property xdigit (a C/POSIX character class). */
- I18N_UCHAR_CASED,
- /**< Binary property Cased. \n
- For Lowercase, Uppercase and Titlecase characters.
- */
- I18N_UCHAR_CASE_IGNORABLE,
- /**< Binary property Case_Ignorable. \n
- Used in context-sensitive case mappings.
- */
- I18N_UCHAR_CHANGES_WHEN_LOWERCASED,
- /**< Binary property Changes_When_Lowercased. */
- I18N_UCHAR_CHANGES_WHEN_UPPERCASED,
- /**< Binary property Changes_When_Uppercased. */
- I18N_UCHAR_CHANGES_WHEN_TITLECASED,
- /**< Binary property Changes_When_Titlecased. */
- I18N_UCHAR_CHANGES_WHEN_CASEFOLDED,
- /**< Binary property Changes_When_Casefolded. */
- I18N_UCHAR_CHANGES_WHEN_CASEMAPPED,
- /**< Binary property Changes_When_Casemapped. */
- I18N_UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED,
- /**< Binary property Changes_When_NFKC_Casefolded. */
- I18N_UCHAR_BINARY_LIMIT,
- /**< One more than the last constant for binary Unicode properties. */
- I18N_UCHAR_BIDI_CLASS = 0x1000,
- /**< Enumerated property Bidi_Class. \n
- Same as u_charDirection, returns #i18n_uchar_direction_e values.
- */
- I18N_UCHAR_INT_START = I18N_UCHAR_BIDI_CLASS,
- /**< First constant for enumerated/integer Unicode properties. */
- I18N_UCHAR_BLOCK,
- /**< Enumerated property Block. \n
- Returns #i18n_uchar_ublock_code_e values.
- */
- I18N_UCHAR_CANONICAL_COMBINING_CLASS,
- /**< Enumerated property Canonical_Combining_Class. \n
- Returns 8-bit numeric values.
- */
- I18N_UCHAR_DECOMPOSITION_TYPE,
- /**< Enumerated property Decomposition_Type. \n
- Returns #i18n_uchar_u_decomposition_type_e values.
- */
- I18N_UCHAR_EAST_ASIAN_WIDTH,
- /**< Enumerated property East_Asian_Width. \n
- Returns #i18n_uchar_u_east_asian_width_e values.
- */
- I18N_UCHAR_GENERAL_CATEGORY,
- /**< Enumerated property General_Category. \n
- Returns #i18n_uchar_category_e values.
- */
- I18N_UCHAR_JOINING_GROUP,
- /**< Enumerated property Joining_Group. \n
- Returns #i18n_uchar_u_joining_group_e values.
- */
- I18N_UCHAR_JOINING_TYPE,
- /**< Enumerated property Joining_Type. \n
- Returns #i18n_uchar_u_joining_type_e values.
- */
- I18N_UCHAR_LINE_BREAK,
- /**< Enumerated property Line_Break. \n
- Returns #i18n_uchar_u_line_break_e values.
- */
- I18N_UCHAR_NUMERIC_TYPE,
- /**< Enumerated property Numeric_Type. \n
- Returns #i18n_uchar_u_numeric_type_e values.
- */
- I18N_UCHAR_SCRIPT,
- /**< Enumerated property Script. \n
- Returns #i18n_uscript_code_e values.
- */
- I18N_UCHAR_HANGUL_SYLLABLE_TYPE,
- /**< Enumerated property Hangul_Syllable_Type, new in Unicode 4. \n
- Returns #i18n_uchar_u_hangul_syllable_type_e values.
- */
- I18N_UCHAR_NFD_QUICK_CHECK,
- /**< Enumerated property NFD_Quick_Check. \n
- Returns #i18n_unormalization_check_result_e values.
- */
- I18N_UCHAR_NFKD_QUICK_CHECK,
- /**< Enumerated property NFKD_Quick_Check. \n
- Returns #i18n_unormalization_check_result_e values.
- */
- I18N_UCHAR_NFC_QUICK_CHECK,
- /**< Enumerated property NFC_Quick_Check. \n
- Returns #i18n_unormalization_check_result_e values.
- */
- I18N_UCHAR_NFKC_QUICK_CHECK,
- /**< Enumerated property NFKC_Quick_Check. \n
- Returns #i18n_unormalization_check_result_e values.
- */
- I18N_UCHAR_LEAD_CANONICAL_COMBINING_CLASS,
- /**< Enumerated property Lead_Canonical_Combining_Class. \n
- Returns 8-bit numeric values like #UCHAR_CANONICAL_COMBINING_CLASS.
- */
- I18N_UCHAR_TRAIL_CANONICAL_COMBINING_CLASS,
- /**< Enumerated property Trail_Canonical_Combining_Class. \n
- Returns 8-bit numeric values like #UCHAR_CANONICAL_COMBINING_CLASS.
- */
- I18N_UCHAR_GRAPHEME_CLUSTER_BREAK,
- /**< Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1). \n
- Returns #i18n_uchar_u_grapheme_cluster_break_e values.
- */
- I18N_UCHAR_SENTENCE_BREAK,
- /**< Enumerated property Sentence_Break (new in Unicode 4.1). \n
- Returns #i18n_uchar_u_sentence_break_e values.
- */
- I18N_UCHAR_WORD_BREAK,
- /**< Enumerated property Word_Break (new in Unicode 4.1). \n
- Returns #i18n_uchar_u_word_break_values_e values.
- */
- I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE,
- /**< Enumerated property Bidi_Paired_Bracket_Type. \n
- Returns #i18n_uchar_u_bidi_paired_bracket_type_e values .
- */
- I18N_UCHAR_INT_LIMIT,
- /**< One more than the last constant for enumerated/integer Unicode properties. */
- I18N_UCHAR_GENERAL_CATEGORY_MASK = 0x2000,
- /**< Bitmask property General_Category_Mask. \n
- Mask values should be cast to uint32_t.
- */
- I18N_UCHAR_MASK_START = I18N_UCHAR_GENERAL_CATEGORY_MASK,
- /**< First constant for bit-mask Unicode properties. */
- I18N_UCHAR_MASK_LIMIT,
- /**< One more than the last constant for bit-mask Unicode properties. */
- I18N_UCHAR_NUMERIC_VALUE = 0x3000,
- /**< Double property Numeric_Value. */
- I18N_UCHAR_DOUBLE_START = I18N_UCHAR_NUMERIC_VALUE,
- /**< First constant for double Unicode properties. */
- I18N_UCHAR_DOUBLE_LIMIT,
- /**< One more than the last constant for double Unicode properties. */
- I18N_UCHAR_AGE = 0x4000,
- /**< String property Age. */
- I18N_UCHAR_STRING_START = I18N_UCHAR_AGE,
- /**< First constant for string Unicode properties. */
- I18N_UCHAR_BIDI_MIRRORING_GLYPH,
- /**< String property Bidi_Mirroring_Glyph. */
- I18N_UCHAR_CASE_FOLDING,
- /**< String property Case_Folding. */
- I18N_UCHAR_LOWERCASE_MAPPING = 0x4004,
- /**< String property Lowercase_Mapping. */
- I18N_UCHAR_NAME,
- /**< String property Name. */
- I18N_UCHAR_SIMPLE_CASE_FOLDING,
- /**< String property Simple_Case_Folding. */
- I18N_UCHAR_SIMPLE_LOWERCASE_MAPPING,
- /**< String property Simple_Lowercase_Mapping. */
- I18N_UCHAR_SIMPLE_TITLECASE_MAPPING,
- /**< String property Simple_Titlecase_Mapping. */
- I18N_UCHAR_SIMPLE_UPPERCASE_MAPPING,
- /**< String property Simple_Uppercase_Mapping. */
- I18N_UCHAR_TITLECASE_MAPPING,
- /**< String property Titlecase_Mapping. */
- I18N_UCHAR_UPPERCASE_MAPPING = 0x400C,
- /**< String property Uppercase_Mapping. */
- I18N_UCHAR_BIDI_PAIRED_BRACKET = 0x400D,
- /**< String property Bidi_Paired_Bracket. */
- I18N_UCHAR_STRING_LIMIT,
- /**< One more than the last constant for string Unicode properties. */
- I18N_UCHAR_SCRIPT_EXTENSIONS = 0x7000,
- /**< Provisional property Script_Extensions (new in Unicode 6.0). */
- I18N_UCHAR_OTHER_PROPERTY_START = I18N_UCHAR_SCRIPT_EXTENSIONS,
- /**< First constant for Unicode properties with unusual value types. */
- I18N_UCHAR_OTHER_PROPERTY_LIMIT,
- /**< One more than the last constant for Unicode properties with unusual value types. */
- I18N_UCHAR_INVALID_CODE = -1
- /**< Represents a nonexistent or invalid property or property value. */
-} i18n_uchar_uproperty_e;
-
-/**
- * @brief Bidi Paired Bracket Type constants.
- * @since_tizen 3.0
- * @see I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE
- *
- */
-typedef enum {
- I18N_UCHAR_U_BPT_NONE, /**< Not a paired bracket. */
-
- I18N_UCHAR_U_BPT_OPEN, /**< Open paired bracket. */
-
- I18N_UCHAR_U_BPT_CLOSE, /**< Close paired bracket. */
-
- I18N_UCHAR_U_BPT_COUNT /**< Count */
-} i18n_uchar_u_bidi_paired_bracket_type_e;
-
-/**
- * @brief Constants for Unicode blocks, see the Unicode Data file Blocks.txt.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- */
-typedef enum {
- I18N_UCHAR_UBLOCK_NO_BLOCK, /**< No Block */
- I18N_UCHAR_UBLOCK_BASIC_LATIN, /**< Basic Latin */
- I18N_UCHAR_UBLOCK_LATIN_1_SUPPLEMENT, /**< Latin_1 Supplement */
- I18N_UCHAR_UBLOCK_LATIN_EXTENDED_A, /**< Latin Extended A */
- I18N_UCHAR_UBLOCK_LATIN_EXTENDED_B, /**< Latin Extended B */
- I18N_UCHAR_UBLOCK_IPA_EXTENSIONS, /**< IPA Extensions */
- I18N_UCHAR_UBLOCK_SPACING_MODIFIER_LETTERS, /**< Spacing Modifier Letters */
- I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS, /**< Combining Diacritical Marks */
- I18N_UCHAR_UBLOCK_GREEK, /**< Greek */
- I18N_UCHAR_UBLOCK_CYRILLIC, /**< Cyrillic */
- I18N_UCHAR_UBLOCK_ARMENIAN, /**< Armenian */
- I18N_UCHAR_UBLOCK_HEBREW, /**< Hebrew */
- I18N_UCHAR_UBLOCK_ARABIC, /**< Arabic */
- I18N_UCHAR_UBLOCK_SYRIAC, /**< Syriac */
- I18N_UCHAR_UBLOCK_THAANA, /**< Thaana */
- I18N_UCHAR_UBLOCK_DEVANAGARI, /**< Devanagari */
- I18N_UCHAR_UBLOCK_BENGALI, /**< Bengali */
- I18N_UCHAR_UBLOCK_GURMUKHI, /**< Gurmukhi */
- I18N_UCHAR_UBLOCK_GUJARATI, /**< Gujarati */
- I18N_UCHAR_UBLOCK_ORIYA, /**< Oriya */
- I18N_UCHAR_UBLOCK_TAMIL, /**< Tamil */
- I18N_UCHAR_UBLOCK_TELUGU, /**< Telugu */
- I18N_UCHAR_UBLOCK_KANNADA, /**< Kannada */
- I18N_UCHAR_UBLOCK_MALAYALAM, /**< Malayalam */
- I18N_UCHAR_UBLOCK_SINHALA, /**< Sinhala */
- I18N_UCHAR_UBLOCK_THAI, /**< Thai */
- I18N_UCHAR_UBLOCK_LAO, /**< Lao */
- I18N_UCHAR_UBLOCK_TIBETAN, /**< Tibetan */
- I18N_UCHAR_UBLOCK_MYANMAR, /**< Myanmar */
- I18N_UCHAR_UBLOCK_GEORGIAN, /**< Georgian */
- I18N_UCHAR_UBLOCK_HANGUL_JAMO, /**< Hangul Jamo */
- I18N_UCHAR_UBLOCK_ETHIOPIC, /**< Ethiopic */
- I18N_UCHAR_UBLOCK_CHEROKEE, /**< Cherokee */
- I18N_UCHAR_UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS, /**< Unified Canadian Aboriginal Syllabics */
- I18N_UCHAR_UBLOCK_OGHAM, /**< Ogham */
- I18N_UCHAR_UBLOCK_RUNIC, /**< Runic */
- I18N_UCHAR_UBLOCK_KHMER, /**< Khmer */
- I18N_UCHAR_UBLOCK_MONGOLIAN, /**< Mongolian */
- I18N_UCHAR_UBLOCK_LATIN_EXTENDED_ADDITIONAL, /**< Latin Extended Additional */
- I18N_UCHAR_UBLOCK_GREEK_EXTENDED, /**< Greek Extended */
- I18N_UCHAR_UBLOCK_GENERAL_PUNCTUATION, /**< General Punctuation */
- I18N_UCHAR_UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS, /**< Superscripts And Subscripts */
- I18N_UCHAR_UBLOCK_CURRENCY_SYMBOLS, /**< Currency Symbols */
- I18N_UCHAR_UBLOCK_COMBINING_MARKS_FOR_SYMBOLS, /**< Combining Marks For Symbols */
- I18N_UCHAR_UBLOCK_LETTERLIKE_SYMBOLS, /**< Letterlike Symbols */
- I18N_UCHAR_UBLOCK_NUMBER_FORMS, /**< Number Forms */
- I18N_UCHAR_UBLOCK_ARROWS, /**< Arrows */
- I18N_UCHAR_UBLOCK_MATHEMATICAL_OPERATORS, /**< Mathematical Operators */
- I18N_UCHAR_UBLOCK_MISCELLANEOUS_TECHNICAL, /**< Miscellaneous Technical */
- I18N_UCHAR_UBLOCK_CONTROL_PICTURES, /**< Control Pictures */
- I18N_UCHAR_UBLOCK_OPTICAL_CHARACTER_RECOGNITION, /**< Optical Character Recognition */
- I18N_UCHAR_UBLOCK_ENCLOSED_ALPHANUMERICS, /**< Enclosed Alphanumerics */
- I18N_UCHAR_UBLOCK_BOX_DRAWING, /**< Box Drawing */
- I18N_UCHAR_UBLOCK_BLOCK_ELEMENTS, /**< Block Elements */
- I18N_UCHAR_UBLOCK_GEOMETRIC_SHAPES, /**< Geometric Shapes */
- I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS, /**< Miscellaneous Symbols */
- I18N_UCHAR_UBLOCK_DINGBATS, /**< Dingbats */
- I18N_UCHAR_UBLOCK_BRAILLE_PATTERNS, /**< Braille Patterns */
- I18N_UCHAR_UBLOCK_CJK_RADICALS_SUPPLEMENT, /**< CJK Radicals Supplement */
- I18N_UCHAR_UBLOCK_KANGXI_RADICALS, /**< Kangxi Radicals */
- I18N_UCHAR_UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS, /**< Ideographic Description Characters */
- I18N_UCHAR_UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION, /**< CJK Symbols And Punctuation */
- I18N_UCHAR_UBLOCK_HIRAGANA, /**< Hiragana */
- I18N_UCHAR_UBLOCK_KATAKANA, /**< Katakana */
- I18N_UCHAR_UBLOCK_BOPOMOFO, /**< Bopomofo */
- I18N_UCHAR_UBLOCK_HANGUL_COMPATIBILITY_JAMO, /**< Hangul Compatibility Jamo */
- I18N_UCHAR_UBLOCK_KANBUN, /**< Kanbun */
- I18N_UCHAR_UBLOCK_BOPOMOFO_EXTENDED, /**< Bopomofo Extended */
- I18N_UCHAR_UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS, /**< Enclosed CJK Letters And Months */
- I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY, /**< CJK Compatibility */
- I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A, /**< CJK Unified Ideographs Extension A */
- I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS, /**< CJK Unified Ideographs */
- I18N_UCHAR_UBLOCK_YI_SYLLABLES, /**< Yi Syllables */
- I18N_UCHAR_UBLOCK_YI_RADICALS, /**< Yi Radicals */
- I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES, /**< Hangul Syllables */
- I18N_UCHAR_UBLOCK_HIGH_SURROGATES, /**< High Surrogates */
- I18N_UCHAR_UBLOCK_HIGH_PRIVATE_USE_SURROGATES, /**< High Private Use Surrogates */
- I18N_UCHAR_UBLOCK_LOW_SURROGATES, /**< Low Surrogates */
- I18N_UCHAR_UBLOCK_PRIVATE_USE_AREA, /**< Private Use Area */
- I18N_UCHAR_UBLOCK_PRIVATE_USE, /**< Private Use */
- I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, /**< CJK Compatibility Ideographs */
-
- I18N_UCHAR_UBLOCK_ALPHABETIC_PRESENTATION_FORMS, /**< Alphabetic Presentation Forms */
- I18N_UCHAR_UBLOCK_ARABIC_PRESENTATION_FORMS_A, /**< Arabic Presentation Forms A */
- I18N_UCHAR_UBLOCK_COMBINING_HALF_MARKS, /**< Combining Half Marks */
- I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_FORMS, /**< CJK Compatibility Forms */
- I18N_UCHAR_UBLOCK_SMALL_FORM_VARIANTS, /**< Small Form Variants */
- I18N_UCHAR_UBLOCK_ARABIC_PRESENTATION_FORMS_B, /**< Arabic Presentation Forms B */
- I18N_UCHAR_UBLOCK_SPECIALS, /**< Specials */
- I18N_UCHAR_UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, /**< Halfwidth And Fullwidth Forms */
- I18N_UCHAR_UBLOCK_OLD_ITALIC, /**< Old Italic */
- I18N_UCHAR_UBLOCK_GOTHIC, /**< Gothic */
- I18N_UCHAR_UBLOCK_DESERET, /**< Deseret */
- I18N_UCHAR_UBLOCK_BYZANTINE_MUSICAL_SYMBOLS, /**< Byzantine Musical Symbols */
- I18N_UCHAR_UBLOCK_MUSICAL_SYMBOLS, /**< Musical Symbols */
- I18N_UCHAR_UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS, /**< Mathematical Alphanumeric Symbols */
- I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B, /**< CJK Unified Ideographs Extension B */
- I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT, /**< CJK Compatibility Ideographs Supplement */
- I18N_UCHAR_UBLOCK_TAGS, /**< Tags */
- I18N_UCHAR_UBLOCK_CYRILLIC_SUPPLEMENT, /**< Cyrillic Supplement */
- I18N_UCHAR_UBLOCK_CYRILLIC_SUPPLEMENTARY, /**< Cyrillic Supplementary */
- I18N_UCHAR_UBLOCK_TAGALOG, /**< Tagalog */
- I18N_UCHAR_UBLOCK_HANUNOO, /**< Hanunoo */
- I18N_UCHAR_UBLOCK_BUHID, /**< Buhid */
- I18N_UCHAR_UBLOCK_TAGBANWA, /**< Tagbanwa */
- I18N_UCHAR_UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A, /**< Miscellaneous Mathematical Symbols A */
- I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_A, /**< Supplemental Arrows A */
- I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_B, /**< Supplemental Arrows B */
- I18N_UCHAR_UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B, /**< Miscellaneous Mathematical Symbols B */
- I18N_UCHAR_UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS, /**< Supplemental Mathematical Operators */
- I18N_UCHAR_UBLOCK_KATAKANA_PHONETIC_EXTENSIONS, /**< Katakana Phonetic Extensions */
- I18N_UCHAR_UBLOCK_VARIATION_SELECTORS, /**< Variation Selectors */
- I18N_UCHAR_UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A, /**< Supplementary Private Use Area A */
- I18N_UCHAR_UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B, /**< Supplementary Private Use Area B */
- I18N_UCHAR_UBLOCK_LIMBU, /**< Limbu */
- I18N_UCHAR_UBLOCK_TAI_LE, /**< Tai Le */
- I18N_UCHAR_UBLOCK_KHMER_SYMBOLS, /**< Khmer Symbols */
- I18N_UCHAR_UBLOCK_PHONETIC_EXTENSIONS, /**< Phonetic Extensions */
- I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS, /**< Miscellaneous Symbols And Arrows */
- I18N_UCHAR_UBLOCK_YIJING_HEXAGRAM_SYMBOLS, /**< Yijing Hexagram Symbols */
- I18N_UCHAR_UBLOCK_LINEAR_B_SYLLABARY, /**< Linear B Syllabary */
- I18N_UCHAR_UBLOCK_LINEAR_B_IDEOGRAMS, /**< Linear B Ideograms */
- I18N_UCHAR_UBLOCK_AEGEAN_NUMBERS, /**< Aegean Numbers */
- I18N_UCHAR_UBLOCK_UGARITIC, /**< Ugaritic */
- I18N_UCHAR_UBLOCK_SHAVIAN, /**< Shavian */
- I18N_UCHAR_UBLOCK_OSMANYA, /**< Osmanya */
- I18N_UCHAR_UBLOCK_CYPRIOT_SYLLABARY, /**< Cypriot Syllabary */
- I18N_UCHAR_UBLOCK_TAI_XUAN_JING_SYMBOLS, /**< Tai Xuan Jing Symbols */
- I18N_UCHAR_UBLOCK_VARIATION_SELECTORS_SUPPLEMENT, /**< Variation Selectors Supplement */
- I18N_UCHAR_UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION, /**< Ancient Greek Musical Notation */
- I18N_UCHAR_UBLOCK_ANCIENT_GREEK_NUMBERS, /**< Ancient Greek Numbers */
- I18N_UCHAR_UBLOCK_ARABIC_SUPPLEMENT, /**< Arabic Supplement */
- I18N_UCHAR_UBLOCK_BUGINESE, /**< Buginese */
- I18N_UCHAR_UBLOCK_CJK_STROKES, /**< CJK Strokes */
- I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT, /**< Combining Diacritical Marks Supplement */
- I18N_UCHAR_UBLOCK_COPTIC, /**< Coptic */
- I18N_UCHAR_UBLOCK_ETHIOPIC_EXTENDED, /**< Ethiopic Extended */
- I18N_UCHAR_UBLOCK_ETHIOPIC_SUPPLEMENT, /**< Ethiopic Supplement */
- I18N_UCHAR_UBLOCK_GEORGIAN_SUPPLEMENT, /**< Georgian Supplement */
- I18N_UCHAR_UBLOCK_GLAGOLITIC, /**< Glagolitic */
- I18N_UCHAR_UBLOCK_KHAROSHTHI, /**< Kharoshthi */
- I18N_UCHAR_UBLOCK_MODIFIER_TONE_LETTERS, /**< Modifier Tone Letters */
- I18N_UCHAR_UBLOCK_NEW_TAI_LUE, /**< New Tai Lue */
- I18N_UCHAR_UBLOCK_OLD_PERSIAN, /**< Old Persian */
- I18N_UCHAR_UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT, /**< Phonetic Extensions Supplement */
- I18N_UCHAR_UBLOCK_SUPPLEMENTAL_PUNCTUATION, /**< Supplemental Punctuation */
- I18N_UCHAR_UBLOCK_SYLOTI_NAGRI, /**< Syloti Nagri */
- I18N_UCHAR_UBLOCK_TIFINAGH, /**< Tifinagh */
- I18N_UCHAR_UBLOCK_VERTICAL_FORMS, /**< Vertical Forms */
- I18N_UCHAR_UBLOCK_NKO, /**< Nko */
- I18N_UCHAR_UBLOCK_BALINESE, /**< Balinese */
- I18N_UCHAR_UBLOCK_LATIN_EXTENDED_C, /**< Latin Extended C */
- I18N_UCHAR_UBLOCK_LATIN_EXTENDED_D, /**< Latin Extended D */
- I18N_UCHAR_UBLOCK_PHAGS_PA, /**< Phags Pa */
- I18N_UCHAR_UBLOCK_PHOENICIAN, /**< Phoenician */
- I18N_UCHAR_UBLOCK_CUNEIFORM, /**< Cuneiform */
- I18N_UCHAR_UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION, /**< Cuneiform Numbers And Punctuation */
- I18N_UCHAR_UBLOCK_COUNTING_ROD_NUMERALS, /**< Counting Rod Numerals */
- I18N_UCHAR_UBLOCK_SUNDANESE, /**< Sundanese */
- I18N_UCHAR_UBLOCK_LEPCHA, /**< Lepcha */
- I18N_UCHAR_UBLOCK_OL_CHIKI, /**< Ol Chiki */
- I18N_UCHAR_UBLOCK_CYRILLIC_EXTENDED_A, /**< Cyrillic Extended A */
- I18N_UCHAR_UBLOCK_VAI, /**< Vai */
- I18N_UCHAR_UBLOCK_CYRILLIC_EXTENDED_B, /**< Cyrillic Extended B */
- I18N_UCHAR_UBLOCK_SAURASHTRA, /**< Saurashtra */
- I18N_UCHAR_UBLOCK_KAYAH_LI, /**< Kayah Li */
- I18N_UCHAR_UBLOCK_REJANG, /**< Rejang */
- I18N_UCHAR_UBLOCK_CHAM, /**< Cham */
- I18N_UCHAR_UBLOCK_ANCIENT_SYMBOLS, /**< Ancient Symbols */
- I18N_UCHAR_UBLOCK_PHAISTOS_DISC, /**< Phaistos Disc */
- I18N_UCHAR_UBLOCK_LYCIAN, /**< Lycian */
- I18N_UCHAR_UBLOCK_CARIAN, /**< Carian */
- I18N_UCHAR_UBLOCK_LYDIAN, /**< Lydian */
- I18N_UCHAR_UBLOCK_MAHJONG_TILES, /**< Mahjong Tiles */
- I18N_UCHAR_UBLOCK_DOMINO_TILES, /**< Domino Tiles */
- I18N_UCHAR_UBLOCK_SAMARITAN, /**< Samaritan */
- I18N_UCHAR_UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED, /**< Unified Canadian Aboriginal Syllabics Extended */
- I18N_UCHAR_UBLOCK_TAI_THAM, /**< Tai Tham */
- I18N_UCHAR_UBLOCK_VEDIC_EXTENSIONS, /**< Vedic Extensions */
- I18N_UCHAR_UBLOCK_LISU, /**< Lisu */
- I18N_UCHAR_UBLOCK_BAMUM, /**< Bamum */
- I18N_UCHAR_UBLOCK_COMMON_INDIC_NUMBER_FORMS, /**< Common Indic Number Forms */
- I18N_UCHAR_UBLOCK_DEVANAGARI_EXTENDED, /**< Devanagari Extended */
- I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_A, /**< Hangul Jamo Extended A */
- I18N_UCHAR_UBLOCK_JAVANESE, /**< Javanese */
- I18N_UCHAR_UBLOCK_MYANMAR_EXTENDED_A, /**< Myanmar Extended A */
- I18N_UCHAR_UBLOCK_TAI_VIET, /**< Tai Viet */
- I18N_UCHAR_UBLOCK_MEETEI_MAYEK, /**< Meetei Mayek */
- I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_B, /**< Hangul Jamo Extended B */
- I18N_UCHAR_UBLOCK_IMPERIAL_ARAMAIC, /**< Imperial Aramaic */
- I18N_UCHAR_UBLOCK_OLD_SOUTH_ARABIAN, /**< Old South Arabian */
- I18N_UCHAR_UBLOCK_AVESTAN, /**< Avestan */
- I18N_UCHAR_UBLOCK_INSCRIPTIONAL_PARTHIAN, /**< Inscriptional Parthian */
- I18N_UCHAR_UBLOCK_INSCRIPTIONAL_PAHLAVI, /**< Inscriptional Pahlavi */
- I18N_UCHAR_UBLOCK_OLD_TURKIC, /**< Old Turkic */
- I18N_UCHAR_UBLOCK_RUMI_NUMERAL_SYMBOLS, /**< Rumi Numeral Symbols */
- I18N_UCHAR_UBLOCK_KAITHI, /**< Kaithi */
- I18N_UCHAR_UBLOCK_EGYPTIAN_HIEROGLYPHS, /**< Egyptian Hieroglyphs */
- I18N_UCHAR_UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT, /**< Enclosed Alphanumeric Supplement */
- I18N_UCHAR_UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT, /**< Enclosed Ideographic Supplement */
- I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C, /**< CJK Unified Ideographs Extension C */
- I18N_UCHAR_UBLOCK_MANDAIC, /**< Mandaic */
- I18N_UCHAR_UBLOCK_BATAK, /**< Batak */
- I18N_UCHAR_UBLOCK_ETHIOPIC_EXTENDED_A, /**< Ethiopic Extended A */
- I18N_UCHAR_UBLOCK_BRAHMI, /**< Brahmi */
- I18N_UCHAR_UBLOCK_BAMUM_SUPPLEMENT, /**< Bamum Supplement */
- I18N_UCHAR_UBLOCK_KANA_SUPPLEMENT, /**< Kana Supplement */
- I18N_UCHAR_UBLOCK_PLAYING_CARDS, /**< Playing Cards */
- I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS, /**< Miscellaneous Symbols And Pictographs */
- I18N_UCHAR_UBLOCK_EMOTICONS, /**< Emoticons */
- I18N_UCHAR_UBLOCK_TRANSPORT_AND_MAP_SYMBOLS, /**< Transport And Map Symbols */
- I18N_UCHAR_UBLOCK_ALCHEMICAL_SYMBOLS, /**< Alchemical Symbols */
- I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D, /**< CJK Unified Ideographs Extension D */
- I18N_UCHAR_UBLOCK_BASSA_VAH = 221, /**< Bassa Vah (Since 3.0) */
- I18N_UCHAR_UBLOCK_CAUCASIAN_ALBANIAN = 222, /**< Caucasian Albanian (Since 3.0) */
- I18N_UCHAR_UBLOCK_COPTIC_EPACT_NUMBERS = 223, /**< Coptic Epact Numbers (Since 3.0) */
- I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED = 224, /**< Combining Diacritical Marks Extended (Since 3.0) */
- I18N_UCHAR_UBLOCK_DUPLOYAN = 225, /**< Duployan (Since 3.0) */
- I18N_UCHAR_UBLOCK_ELBASAN = 226, /**< Elbasan (Since 3.0) */
- I18N_UCHAR_UBLOCK_GEOMETRIC_SHAPES_EXTENDED = 227, /**< Geometric Shapes Extended (Since 3.0) */
- I18N_UCHAR_UBLOCK_GRANTHA = 228, /**< Grantha (Since 3.0) */
- I18N_UCHAR_UBLOCK_KHOJKI = 229, /**< Khojki (Since 3.0) */
- I18N_UCHAR_UBLOCK_KHUDAWADI = 230, /**< Khudawadi (Since 3.0) */
- I18N_UCHAR_UBLOCK_LATIN_EXTENDED_E = 231, /**< Latin Extended E (Since 3.0) */
- I18N_UCHAR_UBLOCK_LINEAR_A = 232, /**< Linear A (Since 3.0) */
- I18N_UCHAR_UBLOCK_MAHAJANI = 233, /**< Mahajani (Since 3.0) */
- I18N_UCHAR_UBLOCK_MANICHAEAN = 234, /**< Manichaean (Since 3.0) */
- I18N_UCHAR_UBLOCK_MENDE_KIKAKUI = 235, /**< Mende Kikakui (Since 3.0) */
- I18N_UCHAR_UBLOCK_MODI = 236, /**< Modi (Since 3.0) */
- I18N_UCHAR_UBLOCK_MRO = 237, /**< Mro (Since 3.0) */
- I18N_UCHAR_UBLOCK_MYANMAR_EXTENDED_B = 238, /**< Myanmar Extended B (Since 3.0) */
- I18N_UCHAR_UBLOCK_NABATAEAN = 239, /**< Nabataean (Since 3.0) */
- I18N_UCHAR_UBLOCK_OLD_NORTH_ARABIAN = 240, /**< Old North Arabian (Since 3.0) */
- I18N_UCHAR_UBLOCK_OLD_PERMIC = 241, /**< Old Permic (Since 3.0) */
- I18N_UCHAR_UBLOCK_ORNAMENTAL_DINGBATS = 242, /**< Ornamental Dingbats (Since 3.0) */
- I18N_UCHAR_UBLOCK_PAHAWH_HMONG = 243, /**< Pahawh Hmong (Since 3.0) */
- I18N_UCHAR_UBLOCK_PALMYRENE = 244, /**< Palmyrene (Since 3.0) */
- I18N_UCHAR_UBLOCK_PAU_CIN_HAU = 245, /**< Pau Cin Hau (Since 3.0) */
- I18N_UCHAR_UBLOCK_PSALTER_PAHLAVI = 246, /**< Psalter Pahlavi (Since 3.0) */
- I18N_UCHAR_UBLOCK_SHORTHAND_FORMAT_CONTROLS = 247, /**< Shorthand Format Controls (Since 3.0) */
- I18N_UCHAR_UBLOCK_SIDDHAM = 248, /**< Siddham (Since 3.0) */
- I18N_UCHAR_UBLOCK_SINHALA_ARCHAIC_NUMBERS = 249, /**< Sinhala Archaic Numbers (Since 3.0) */
- I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_C = 250, /**< Supplemental Arrows C (Since 3.0) */
- I18N_UCHAR_UBLOCK_TIRHUTA = 251, /**< Tirhuta (Since 3.0) */
- I18N_UCHAR_UBLOCK_WARANG_CITI = 252, /**< Warang Citi (Since 3.0) */
- I18N_UCHAR_UBLOCK_COUNT, /**< Count */
- I18N_UCHAR_UBLOCK_INVALID_CODE = -1 /**< Invalid Code */
-} i18n_uchar_ublock_code_e;
-
-/**
- * @brief Enumeration for the language directional property of a character set.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_LEFT_TO_RIGHT, /**< L */
- I18N_UCHAR_U_RIGHT_TO_LEFT, /**< R */
- I18N_UCHAR_U_EUROPEAN_NUMBER, /**< EN */
- I18N_UCHAR_U_EUROPEAN_NUMBER_SEPARATOR, /**< ES */
- I18N_UCHAR_U_EUROPEAN_NUMBER_TERMINATOR, /**< ET */
- I18N_UCHAR_U_ARABIC_NUMBER, /**< AN */
- I18N_UCHAR_U_COMMON_NUMBER_SEPARATOR, /**< CS */
- I18N_UCHAR_U_BLOCK_SEPARATOR, /**< B */
- I18N_UCHAR_U_SEGMENT_SEPARATOR, /**< S */
- I18N_UCHAR_U_WHITE_SPACE_NEUTRAL, /**< WS */
- I18N_UCHAR_U_OTHER_NEUTRAL, /**< ON */
- I18N_UCHAR_U_LEFT_TO_RIGHT_EMBEDDING, /**< LRE */
- I18N_UCHAR_U_LEFT_TO_RIGHT_OVERRIDE, /**< LRO */
- I18N_UCHAR_U_RIGHT_TO_LEFT_ARABIC, /**< AL */
- I18N_UCHAR_U_RIGHT_TO_LEFT_EMBEDDING, /**< RLE */
- I18N_UCHAR_U_RIGHT_TO_LEFT_OVERRIDE, /**< RLO */
- I18N_UCHAR_U_POP_DIRECTIONAL_FORMAT, /**< PDF */
- I18N_UCHAR_U_DIR_NON_SPACING_MARK, /**< NSM */
- I18N_UCHAR_U_BOUNDARY_NEUTRAL, /**< BN */
- I18N_UCHAR_U_FIRST_STRONG_ISOLATE, /**< FSI (Since 3.0) */
- I18N_UCHAR_U_LEFT_TO_RIGHT_ISOLATE, /**< FSI (Since 3.0) */
- I18N_UCHAR_U_RIGHT_TO_LEFT_ISOLATE, /**< RLI (Since 3.0) */
- I18N_UCHAR_U_POP_DIRECTIONAL_ISOLATE, /**< PDI (Since 3.0) */
- I18N_UCHAR_U_CHAR_DIRECTION_COUNT /**< Count */
-} i18n_uchar_direction_e;
-
-/**
- * @brief Enumeration for Decomposition Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_DT_NONE, /**< [none] */
- I18N_UCHAR_U_DT_CANONICAL, /**< [can] */
- I18N_UCHAR_U_DT_COMPAT, /**< [com] */
- I18N_UCHAR_U_DT_CIRCLE, /**< [enc] */
- I18N_UCHAR_U_DT_FINAL, /**< [fin] */
- I18N_UCHAR_U_DT_FONT, /**< [font] */
- I18N_UCHAR_U_DT_FRACTION, /**< [fra] */
- I18N_UCHAR_U_DT_INITIAL, /**< [init] */
- I18N_UCHAR_U_DT_ISOLATED, /**< [iso] */
- I18N_UCHAR_U_DT_MEDIAL, /**< [med] */
- I18N_UCHAR_U_DT_NARROW, /**< [nar] */
- I18N_UCHAR_U_DT_NOBREAK, /**< [nb] */
- I18N_UCHAR_U_DT_SMALL, /**< [sml] */
- I18N_UCHAR_U_DT_SQUARE, /**< [sqr] */
- I18N_UCHAR_U_DT_SUB, /**< [sub] */
- I18N_UCHAR_U_DT_SUPER, /**< [sup] */
- I18N_UCHAR_U_DT_VERTICAL, /**< [vert] */
- I18N_UCHAR_U_DT_WIDE, /**< [wide] */
- I18N_UCHAR_U_DT_COUNT /**< 18 */
-} i18n_uchar_u_decomposition_type_e;
-
-/**
- * @brief Enumeration for East Asian Width constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_EA_NEUTRAL, /**< [N] */
- I18N_UCHAR_U_EA_AMBIGUOUS, /**< [A] */
- I18N_UCHAR_U_EA_HALFWIDTH, /**< [H] */
- I18N_UCHAR_U_EA_FULLWIDTH, /**< [F] */
- I18N_UCHAR_U_EA_NARROW, /**< [Na] */
- I18N_UCHAR_U_EA_WIDE, /**< [W] */
- I18N_UCHAR_U_EA_COUNT
-} i18n_uchar_u_east_asian_width_e;
-
-/**
- * @brief Enumeration for Unicode general category types.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_UNASSIGNED, /**< Non-category for unassigned and non-character code points */
- I18N_UCHAR_U_GENERAL_OTHER_TYPES = 0, /**< Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as #I18N_UCHAR_U_UNASSIGNED!) */
- I18N_UCHAR_U_UPPERCASE_LETTER, /**< Lu */
- I18N_UCHAR_U_LOWERCASE_LETTER, /**< Ll */
- I18N_UCHAR_U_TITLECASE_LETTER, /**< Lt */
- I18N_UCHAR_U_MODIFIER_LETTER, /**< Lm */
- I18N_UCHAR_U_OTHER_LETTER, /**< Lo */
- I18N_UCHAR_U_NON_SPACING_MARK, /**< Mn */
- I18N_UCHAR_U_ENCLOSING_MARK, /**< Me */
- I18N_UCHAR_U_COMBINING_SPACING_MARK, /**< Mc */
- I18N_UCHAR_U_DECIMAL_DIGIT_NUMBER, /**< Nd */
- I18N_UCHAR_U_LETTER_NUMBER, /**< Nl */
- I18N_UCHAR_U_OTHER_NUMBER, /**< No */
- I18N_UCHAR_U_SPACE_SEPARATOR, /**< Zs */
- I18N_UCHAR_U_LINE_SEPARATOR, /**< Zl */
- I18N_UCHAR_U_PARAGRAPH_SEPARATOR, /**< Zp */
- I18N_UCHAR_U_CONTROL_CHAR, /**< Cc */
- I18N_UCHAR_U_FORMAT_CHAR, /**< Cf */
- I18N_UCHAR_U_PRIVATE_USE_CHAR, /**< Co */
- I18N_UCHAR_U_SURROGATE, /**< Cs */
- I18N_UCHAR_U_DASH_PUNCTUATION, /**< Pd */
- I18N_UCHAR_U_START_PUNCTUATION, /**< Ps */
- I18N_UCHAR_U_END_PUNCTUATION, /**< Pe */
- I18N_UCHAR_U_CONNECTOR_PUNCTUATION, /**< Pc */
- I18N_UCHAR_U_OTHER_PUNCTUATION, /**< Po */
- I18N_UCHAR_U_MATH_SYMBOL, /**< Sm */
- I18N_UCHAR_U_CURRENCY_SYMBOL, /**< Sc */
- I18N_UCHAR_U_MODIFIER_SYMBOL, /**< Sk */
- I18N_UCHAR_U_OTHER_SYMBOL, /**< So */
- I18N_UCHAR_U_INITIAL_PUNCTUATION, /**< Pi */
- I18N_UCHAR_U_FINAL_PUNCTUATION, /**< Pf */
- I18N_UCHAR_U_CHAR_CATEGORY_COUNT /**< One higher than the last enum #i18n_uchar_category_e constant */
-} i18n_uchar_category_e;
-
-/**
- * @brief Enumeration for Joining Group constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_JG_NO_JOINING_GROUP, /**< No Joining Group */
- I18N_UCHAR_U_JG_AIN, /**< Ain */
- I18N_UCHAR_U_JG_ALAPH, /**< Alaph */
- I18N_UCHAR_U_JG_ALEF, /**< Alef */
- I18N_UCHAR_U_JG_BEH, /**< Beh */
- I18N_UCHAR_U_JG_BETH, /**< Beth */
- I18N_UCHAR_U_JG_DAL, /**< Dal */
- I18N_UCHAR_U_JG_DALATH_RISH, /**< Dalath Rish */
- I18N_UCHAR_U_JG_E, /**< E */
- I18N_UCHAR_U_JG_FEH, /**< Feh */
- I18N_UCHAR_U_JG_FINAL_SEMKATH, /**< Final Semkath */
- I18N_UCHAR_U_JG_GAF, /**< Gaf */
- I18N_UCHAR_U_JG_GAMAL, /**< Gamal */
- I18N_UCHAR_U_JG_HAH, /**< Hah */
- I18N_UCHAR_U_JG_TEH_MARBUTA_GOAL, /**< Teh Marbuta Goal */
- I18N_UCHAR_U_JG_HAMZA_ON_HEH_GOAL = I18N_UCHAR_U_JG_TEH_MARBUTA_GOAL, /**< Hamza On Heh Goal */
- I18N_UCHAR_U_JG_HE, /**< He */
- I18N_UCHAR_U_JG_HEH, /**< Heh */
- I18N_UCHAR_U_JG_HEH_GOAL, /**< Heh Goal */
- I18N_UCHAR_U_JG_HETH, /**< Heth */
- I18N_UCHAR_U_JG_KAF, /**< Kaf */
- I18N_UCHAR_U_JG_KAPH, /**< Kaph */
- I18N_UCHAR_U_JG_KNOTTED_HEH, /**< Knotted Heh */
- I18N_UCHAR_U_JG_LAM, /**< Lam */
- I18N_UCHAR_U_JG_LAMADH, /**< Lamadh */
- I18N_UCHAR_U_JG_MEEM, /**< Meem */
- I18N_UCHAR_U_JG_MIM, /**< Mim */
- I18N_UCHAR_U_JG_NOON, /**< Noon */
- I18N_UCHAR_U_JG_NUN, /**< Nun */
- I18N_UCHAR_U_JG_PE, /**< Pe */
- I18N_UCHAR_U_JG_QAF, /**< Qaf */
- I18N_UCHAR_U_JG_QAPH, /**< Qaph */
- I18N_UCHAR_U_JG_REH, /**< Reh */
- I18N_UCHAR_U_JG_REVERSED_PE, /**< Reversed Pe */
- I18N_UCHAR_U_JG_SAD, /**< Sad */
- I18N_UCHAR_U_JG_SADHE, /**< Sadhe */
- I18N_UCHAR_U_JG_SEEN, /**< Seen */
- I18N_UCHAR_U_JG_SEMKATH, /**< Semkath */
- I18N_UCHAR_U_JG_SHIN, /**< Shin */
- I18N_UCHAR_U_JG_SWASH_KAF, /**< Swash Kaf */
- I18N_UCHAR_U_JG_SYRIAC_WAW, /**< Syriac Waw */
- I18N_UCHAR_U_JG_TAH, /**< Tah */
- I18N_UCHAR_U_JG_TAW, /**< Taw */
- I18N_UCHAR_U_JG_TEH_MARBUTA, /**< Teh Marbuta */
- I18N_UCHAR_U_JG_TETH, /**< Teth */
- I18N_UCHAR_U_JG_WAW, /**< Waw */
- I18N_UCHAR_U_JG_YEH, /**< Yeh */
- I18N_UCHAR_U_JG_YEH_BARREE, /**< Yeh Barree */
- I18N_UCHAR_U_JG_YEH_WITH_TAIL, /**< Yeh With Tail */
- I18N_UCHAR_U_JG_YUDH, /**< Yudh */
- I18N_UCHAR_U_JG_YUDH_HE, /**< Yudh He */
- I18N_UCHAR_U_JG_ZAIN, /**< Zain */
- I18N_UCHAR_U_JG_FE, /**< Fe */
- I18N_UCHAR_U_JG_KHAPH, /**< Khaph */
- I18N_UCHAR_U_JG_ZHAIN, /**< Zhain */
- I18N_UCHAR_U_JG_BURUSHASKI_YEH_BARREE, /**< Burushaski Yeh Barree */
- I18N_UCHAR_U_JG_FARSI_YEH, /**< Farsi Yeh */
- I18N_UCHAR_U_JG_NYA, /**< Nya */
- I18N_UCHAR_U_JG_ROHINGYA_YEH, /**< Rohingya Yeh */
- I18N_UCHAR_U_JG_MANICHAEAN_ALEPH, /**< Manichaean Aleph (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_AYIN, /**< Manichaean Ayin (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_BETH, /**< Manichaean Beth (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_DALETH, /**< Manichaean Daleth (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_DHAMEDH, /**< Manichaean Dhamedh (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_FIVE, /**< Manichaean Five (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_GIMEL, /**< Manichaean Gimel (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_HETH, /**< Manichaean Heth (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_HUNDRED, /**< Manichaean Hundred (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_KAPH, /**< Manichaean Kaph (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_LAMEDH, /**< Manichaean Lamedh (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_MEM, /**< Manichaean Mem (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_NUN, /**< Manichaean Nun (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_ONE, /**< Manichaean One (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_PE, /**< Manichaean Pe (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_QOPH, /**< Manichaean Qoph (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_RESH, /**< Manichaean Resh (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_SADHE, /**< Manichaean Sadhe (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_SAMEKH, /**< Manichaean Samekh (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_TAW, /**< Manichaean Taw (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_TEN, /**< Manichaean Ten (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_TETH, /**< Manichaean Teth (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_THAMEDH, /**< Manichaean Thamedh (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_TWENTY, /**< Manichaean Twenty (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_WAW, /**< Manichaean Waw (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_YODH, /**< Manichaean Yodh (Since 3.0) */
- I18N_UCHAR_U_JG_MANICHAEAN_ZAYIN, /**< Manichaean Zayin (Since 3.0) */
- I18N_UCHAR_U_JG_STRAIGHT_WAW, /**< Manichaean Waw (Since 3.0) */
- I18N_UCHAR_U_JG_COUNT /**< Count */
-} i18n_uchar_u_joining_group_e;
-
-/**
- * @brief Enumeration for Joining Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_JT_NON_JOINING, /**< [U] */
- I18N_UCHAR_U_JT_JOIN_CAUSING, /**< [C] */
- I18N_UCHAR_U_JT_DUAL_JOINING, /**< [D] */
- I18N_UCHAR_U_JT_LEFT_JOINING, /**< [L] */
- I18N_UCHAR_U_JT_RIGHT_JOINING, /**< [R] */
- I18N_UCHAR_U_JT_TRANSPARENT, /**< [T] */
- I18N_UCHAR_U_JT_COUNT /**< 6 */
-} i18n_uchar_u_joining_type_e;
-
-/**
- * @brief Enumeration for Line Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_LB_UNKNOWN, /**< [XX] */
- I18N_UCHAR_U_LB_AMBIGUOUS, /**< [AI] */
- I18N_UCHAR_U_LB_ALPHABETIC, /**< [AL] */
- I18N_UCHAR_U_LB_BREAK_BOTH, /**< [B2] */
- I18N_UCHAR_U_LB_BREAK_AFTER, /**< [BA] */
- I18N_UCHAR_U_LB_BREAK_BEFORE, /**< [BB] */
- I18N_UCHAR_U_LB_MANDATORY_BREAK, /**< [BK] */
- I18N_UCHAR_U_LB_CONTINGENT_BREAK, /**< [CB] */
- I18N_UCHAR_U_LB_CLOSE_PUNCTUATION, /**< [CL] */
- I18N_UCHAR_U_LB_COMBINING_MARK, /**< [CM] */
- I18N_UCHAR_U_LB_CARRIAGE_RETURN, /**< [CR] */
- I18N_UCHAR_U_LB_EXCLAMATION, /**< [EX] */
- I18N_UCHAR_U_LB_GLUE, /**< [GL] */
- I18N_UCHAR_U_LB_HYPHEN, /**< [HY] */
- I18N_UCHAR_U_LB_IDEOGRAPHIC, /**< [ID] */
- I18N_UCHAR_U_LB_INSEPARABLE, /**< [IN] */
- I18N_UCHAR_U_LB_INSEPERABLE = I18N_UCHAR_U_LB_INSEPARABLE,
- I18N_UCHAR_U_LB_INFIX_NUMERIC, /**< [IS] */
- I18N_UCHAR_U_LB_LINE_FEED, /**< [LF] */
- I18N_UCHAR_U_LB_NONSTARTER, /**< [NS] */
- I18N_UCHAR_U_LB_NUMERIC, /**< [NU] */
- I18N_UCHAR_U_LB_OPEN_PUNCTUATION, /**< [OP] */
- I18N_UCHAR_U_LB_POSTFIX_NUMERIC, /**< [PO] */
- I18N_UCHAR_U_LB_PREFIX_NUMERIC, /**< [PR] */
- I18N_UCHAR_U_LB_QUOTATION, /**< [QU] */
- I18N_UCHAR_U_LB_COMPLEX_CONTEXT, /**< [SA] */
- I18N_UCHAR_U_LB_SURROGATE, /**< [SG] */
- I18N_UCHAR_U_LB_SPACE, /**< [SP] */
- I18N_UCHAR_U_LB_BREAK_SYMBOLS, /**< [SY] */
- I18N_UCHAR_U_LB_ZWSPACE, /**< [ZW] */
- I18N_UCHAR_U_LB_NEXT_LINE, /**< [NL] */
- I18N_UCHAR_U_LB_WORD_JOINER, /**< [WJ] */
- I18N_UCHAR_U_LB_H2, /**< [H2] */
- I18N_UCHAR_U_LB_H3, /**< [H3] */
- I18N_UCHAR_U_LB_JL, /**< [JL] */
- I18N_UCHAR_U_LB_JT, /**< [JT] */
- I18N_UCHAR_U_LB_JV, /**< [JV] */
- I18N_UCHAR_U_LB_CLOSE_PARENTHESIS, /**< [CP] */
- I18N_UCHAR_U_LB_COUNT
-} i18n_uchar_u_line_break_e;
-
-/**
- * @brief Enumeration for Numeric Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_NT_NONE, /**< [None] */
- I18N_UCHAR_U_NT_DECIMAL, /**< [de] */
- I18N_UCHAR_U_NT_DIGIT, /**< [di] */
- I18N_UCHAR_U_NT_NUMERIC, /**< [nu] */
- I18N_UCHAR_U_NT_COUNT /**< */
-} i18n_uchar_u_numeric_type_e;
-
-/**
- * @brief Enumeration for Hangul Syllable Type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_HST_NOT_APPLICABLE, /**< [NA] */
- I18N_UCHAR_U_HST_LEADING_JAMO, /**< [L] */
- I18N_UCHAR_U_HST_VOWEL_JAMO, /**< [V] */
- I18N_UCHAR_U_HST_TRAILING_JAMO, /**< [T] */
- I18N_UCHAR_U_HST_LV_SYLLABLE, /**< [LV] */
- I18N_UCHAR_U_HST_LVT_SYLLABLE, /**< [LVT] */
- I18N_UCHAR_U_HST_COUNT /**< */
-} i18n_uchar_u_hangul_syllable_type_e;
-
-/**
- * @brief Enumeration for Sentence Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_SB_OTHER, /**< [XX] */
- I18N_UCHAR_U_SB_ATERM, /**< [AT] */
- I18N_UCHAR_U_SB_CLOSE, /**< [CL] */
- I18N_UCHAR_U_SB_FORMAT, /**< [FO] */
- I18N_UCHAR_U_SB_LOWER, /**< [LO] */
- I18N_UCHAR_U_SB_NUMERIC, /**< [NU] */
- I18N_UCHAR_U_SB_OLETTER, /**< [LE] */
- I18N_UCHAR_U_SB_SEP, /**< [SE] */
- I18N_UCHAR_U_SB_SP, /**< [SP] */
- I18N_UCHAR_U_SB_STERM, /**< [ST] */
- I18N_UCHAR_U_SB_UPPER, /**< [UP] */
- I18N_UCHAR_U_SB_CR, /**< [CR] */
- I18N_UCHAR_U_SB_EXTEND, /**< [EX] */
- I18N_UCHAR_U_SB_LF, /**< [LF] */
- I18N_UCHAR_U_SB_SCONTINUE, /**< [SC] */
- I18N_UCHAR_U_SB_COUNT /**< */
-} i18n_uchar_u_sentence_break_e;
-
-/**
- * @brief Enumeration for Word Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_WB_OTHER, /**< [XX] */
- I18N_UCHAR_U_WB_ALETTER, /**< [LE] */
- I18N_UCHAR_U_WB_FORMAT, /**< [FO] */
- I18N_UCHAR_U_WB_KATAKANA, /**< [KA] */
- I18N_UCHAR_U_WB_MIDLETTER, /**< [ML] */
- I18N_UCHAR_U_WB_MIDNUM, /**< [MN] */
- I18N_UCHAR_U_WB_NUMERIC, /**< [NU] */
- I18N_UCHAR_U_WB_EXTENDNUMLET, /**< [EX] */
- I18N_UCHAR_U_WB_CR, /**< [CR] */
- I18N_UCHAR_U_WB_EXTEND, /**< [Extend] */
- I18N_UCHAR_U_WB_LF, /**< [LF] */
- I18N_UCHAR_U_WB_MIDNUMLET, /**< [MB] */
- I18N_UCHAR_U_WB_NEWLINE, /**< [NL] */
- I18N_UCHAR_U_WB_REGIONAL_INDICATOR, /**< [RI] (Since 3.0) */
- I18N_UCHAR_U_WB_HEBREW_LETTER, /**< [HL] (Since 3.0) */
- I18N_UCHAR_U_WB_SINGLE_QUOTE, /**< [SQ] (Since 3.0) */
- I18N_UCHAR_U_WB_DOUBLE_QUOTE, /**< [DQ] (Since 3.0) */
- I18N_UCHAR_U_WB_COUNT /**< */
-} i18n_uchar_u_word_break_values_e;
-
-/**
- * @brief Enumeration for Grapheme Cluster Break constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCHAR_U_GCB_OTHER, /**< [XX] */
- I18N_UCHAR_U_GCB_CONTROL, /**< [CN] */
- I18N_UCHAR_U_GCB_CR, /**< [CR] */
- I18N_UCHAR_U_GCB_EXTEND, /**< [EX] */
- I18N_UCHAR_U_GCB_L, /**< [L] */
- I18N_UCHAR_U_GCB_LF, /**< [LF] */
- I18N_UCHAR_U_GCB_LV, /**< [LV] */
- I18N_UCHAR_U_GCB_LVT, /**< [LVT] */
- I18N_UCHAR_U_GCB_T, /**< [T] */
- I18N_UCHAR_U_GCB_V, /**< [V] */
- I18N_UCHAR_U_GCB_SPACING_MARK, /**< [SM] */
- I18N_UCHAR_U_GCB_PREPEND, /**< [PP] */
- I18N_UCHAR_UCHAR_U_GCB_COUNT /**< */
-} i18n_uchar_u_grapheme_cluster_break_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE
- * @{
- */
-
-/**
- * @brief Structure representing a collator object instance.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_ucollator_h;
-
-/**
- * @brief Enumeration for attributes that collation service understands.
- * All the attributes can take #I18N_UCOLLATOR_DEFAULT value, as well as the values specific to each one.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCOLLATOR_FRENCH_COLLATION, /**< Attribute for direction of secondary weights - used in Canadian French. Acceptable values are #I18N_UCOLLATOR_ON, which results in secondary weights being considered backwards, and #I18N_UCOLLATOR_OFF which treats secondary weights in the order they appear */
- I18N_UCOLLATOR_ALTERNATE_HANDLING, /**< Attribute for handling variable elements. Acceptable values are #I18N_UCOLLATOR_NON_IGNORABLE (default) which treats all the codepoints with non-ignorable primary weights in the same way, and #I18N_UCOLLATOR_SHIFTED which causes codepoints with primary weights that are equal or below the variable top value to be ignored at the primary level and moved to the quaternary level */
- I18N_UCOLLATOR_CASE_FIRST, /**< Controls the ordering of upper and lower case letters. Acceptable values are #I18N_UCOLLATOR_OFF (default), which orders upper and lower case letters in accordance to their tertiary weights, #I18N_UCOLLATOR_UPPER_FIRST which forces upper case letters to sort before lower case letters, and #I18N_UCOLLATOR_LOWER_FIRST which does the opposite */
- I18N_UCOLLATOR_CASE_LEVEL, /**< Controls whether an extra case level (positioned before the third level) is generated or not. Acceptable values are #I18N_UCOLLATOR_OFF (default), when case level is not generated, and #I18N_UCOLLATOR_ON which causes the case level to be generated. Contents of the case level are affected by the value of the #I18N_UCOLLATOR_CASE_FIRST attribute. A simple way to ignore accent differences in a string is to set the strength to #I18N_UCOLLATOR_PRIMARY and enable case level */
- I18N_UCOLLATOR_NORMALIZATION_MODE, /**< Controls whether the normalization check and necessary normalizations are performed. When set to #I18N_UCOLLATOR_OFF (default) no normalization check is performed. The correctness of the result is guaranteed only if the input data is in so-called FCD form (see users manual for more info). When set to #I18N_UCOLLATOR_ON, an incremental check is performed to see whether the input data is in the FCD form. If the data is not in the FCD form, incremental NFD normalization is performed */
- I18N_UCOLLATOR_DECOMPOSITION_MODE = I18N_UCOLLATOR_NORMALIZATION_MODE, /**< An alias for the #I18N_UCOLLATOR_NORMALIZATION_MODE attribute */
- I18N_UCOLLATOR_STRENGTH, /**< The strength attribute. Can be either #I18N_UCOLLATOR_PRIMARY, #I18N_UCOLLATOR_SECONDARY, #I18N_UCOLLATOR_TERTIARY, #I18N_UCOLLATOR_QUATERNARY, or #I18N_UCOLLATOR_IDENTICAL. The usual strength for most locales (except Japanese) is tertiary. Quaternary strength is useful when combined with shifted setting for the alternate handling attribute and for JIS X 4061 collation, when it is used to distinguish between Katakana and Hiragana. Otherwise, quaternary level is affected only by the number of non-ignorable code points in the string. Identical strength is rarely useful, as it amounts to codepoints of the NFD form of the string */
- I18N_UCOLLATOR_NUMERIC_COLLATION = I18N_UCOLLATOR_STRENGTH + 2, /**< When turned on, this attribute makes substrings of digits that are sort according to their numeric values. This is a way to get '100' to sort AFTER '2'. Note that the longest digit substring that can be treated as a single unit is 254 digits (not counting leading zeros). If a digit substring is longer than that, the digits beyond the limit will be treated as a separate digit substring. A "digit" in this sense is a code point with General_Category=Nd, which does not include circled numbers, roman numerals, and so on. Only a contiguous digit substring is considered, that is, non-negative integers without separators. There is no support for plus/minus signs, decimals, exponents, and so on */
- I18N_UCOLLATOR_ATTRIBUTE_COUNT /**< The number of i18n_ucollator_attribute_e constants */
-} i18n_ucollator_attribute_e;
-
-/**
- * @brief Enumeration containing attribute values for controlling collation behavior.
- * Here are all the allowable values. Not every attribute can take every value.
- * The only universal value is #I18N_UCOLLATOR_DEFAULT, which resets the attribute value to the predefined value for that locale.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCOLLATOR_DEFAULT = -1, /**< Accepted by most attributes */
- I18N_UCOLLATOR_PRIMARY = 0, /**< Primary collation strength */
- I18N_UCOLLATOR_SECONDARY = 1, /**< Secondary collation strength */
- I18N_UCOLLATOR_TERTIARY = 2, /**< Tertiary collation strength */
- I18N_UCOLLATOR_DEFAULT_STRENGTH = I18N_UCOLLATOR_TERTIARY, /**< Default collation strength */
- I18N_UCOLLATOR_CE_STRENGTH_LIMIT,
- I18N_UCOLLATOR_QUATERNARY = 3, /**< Quaternary collation strength */
- I18N_UCOLLATOR_IDENTICAL = 15, /**< Identical collation strength */
- I18N_UCOLLATOR_STRENGTH_LIMIT,
-
- I18N_UCOLLATOR_OFF = 16, /**< Turn the feature off - works for #I18N_UCOLLATOR_FRENCH_COLLATION, #I18N_UCOLLATOR_CASE_LEVEL & #I18N_UCOLLATOR_DECOMPOSITION_MODE */
- I18N_UCOLLATOR_ON = 17, /**< Turn the feature on - works for #I18N_UCOLLATOR_FRENCH_COLLATION, #I18N_UCOLLATOR_CASE_LEVEL & #I18N_UCOLLATOR_DECOMPOSITION_MODE */
-
- I18N_UCOLLATOR_SHIFTED = 20, /**< Valid for #I18N_UCOLLATOR_ALTERNATE_HANDLING. Alternate handling will be shifted. */
- I18N_UCOLLATOR_NON_IGNORABLE = 21, /**< Valid for #I18N_UCOLLATOR_ALTERNATE_HANDLING. Alternate handling will be non ignorable. */
- I18N_UCOLLATOR_LOWER_FIRST = 24, /**< Valid for #I18N_UCOLLATOR_CASE_FIRST - lower case sorts before upper case. */
- I18N_UCOLLATOR_UPPER_FIRST = 25, /**< Upper case sorts before lower case. */
- I18N_UCOLLATOR_ATTRIBUTE_VALUE_COUNT
-} i18n_ucollator_attribute_value_e;
-
-/**
- * @brief Enumeration in which the base letter represents a primary difference. Set comparison level to #I18N_UCOLLATOR_PRIMARY to ignore secondary and tertiary differences. Use this to set the strength of an #i18n_ucollator_h. Example of primary difference, "abc" < "abd"
- * Diacritical differences on the same base letter represent a secondary difference. Set comparison level to #I18N_UCOLLATOR_SECONDARY to ignore tertiary differences. Use this to set the strength of an #i18n_ucollator_h. Example of secondary difference, "ä" >> "a".
- * Uppercase and lowercase versions of the same character represent a tertiary difference. Set comparison level to #I18N_UCOLLATOR_TERTIARY to include all comparison differences. Use this to set the strength of an #i18n_ucollator_h. Example of tertiary difference, "abc" <<< "ABC".
- * Two characters are considered "identical" when they have the same unicode spellings. #I18N_UCOLLATOR_IDENTICAL. For example, "ä" == "ä".
- * #i18n_ucollator_strength_e is also used to determine the strength of sort keys generated from #i18n_ucollator_h. These values can now be found in the #i18n_ucollator_attribute_value_e enum.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef i18n_ucollator_attribute_value_e i18n_ucollator_strength_e;
-
-/**
- * @brief Enumeration for source and target string comparison result.
- * #I18N_UCOLLATOR_LESS is returned if the source string is compared to be less than the target string in the {@link i18n_ucollator_str_collator() } method.
- * #I18N_UCOLLATOR_EQUAL is returned if the source string is compared to be equal to the target string in the {@link i18n_ucollator_str_collator() } method.
- * #I18N_UCOLLATOR_GREATER is returned if the source string is compared to be greater than the target string in the {@link #i18n_ucollator_str_collator() } method.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCOLLATOR_EQUAL = 0, /**< string a == string b */
- I18N_UCOLLATOR_GREATER = 1, /**< string a > string b */
- I18N_UCOLLATOR_LESS = -1 /**< string a < string b */
-} i18n_ucollator_result_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE
- * @{
- */
-
-
-/**
- * @brief i18n_unormalizer_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- */
-
-typedef const void *i18n_unormalizer_h;
-
-/**
- * @brief Enumeration of constants for normalization modes.
- * For details about standard Unicode normalization forms and about the algorithms which are also used with custom mapping tables see http://www.unicode.org/unicode/reports/tr15/
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UNORMALIZATION_COMPOSE, /**< Decomposition followed by composition. Same as standard NFC when using an "nfc" instance. Same as standard NFKC when using an "nfkc" instance.
- For details about standard Unicode normalization forms see http://www.unicode.org/unicode/reports/tr15/ */
- I18N_UNORMALIZATION_DECOMPOSE, /**< Map and reorder canonically. Same as standard NFD when using an "nfc" instance. Same as standard NFKD when using an "nfkc" instance.
- For details about standard Unicode normalization forms see http://www.unicode.org/unicode/reports/tr15/ */
- I18N_UNORMALIZATION_FCD, /**< "Fast C or D" form. If a string is in this form, then further decomposition without reordering would yield the same form as DECOMPOSE.
- Text in "Fast C or D" form can be processed efficiently with data tables that are "canonically closed",
- that is, that provide equivalent data for equivalent text, without having to be fully normalized.
- Not a standard Unicode normalization form. Not a unique form: Different FCD strings can be canonically equivalent.
- For details see http://www.unicode.org/notes/tn5/#FCD */
- I18N_UNORMALIZATION_COMPOSE_CONTIGUOUS /**< Compose only contiguously. Also known as "FCC" or "Fast C Contiguous". The result will often but not always be in NFC.
- The result will conform to FCD which is useful for processing. Not a standard Unicode normalization form.
- For details see http://www.unicode.org/notes/tn5/#FCC */
-} i18n_unormalization_mode_e;
-
-/**
- * @brief Result values for normalization quick check functions.
- *
- * @since_tizen 3.0
- */
-typedef enum {
- I18N_UNORMALIZATION_NO, /**< The input string is not in the normalization form. */
- I18N_UNORMALIZATION_YES, /**< The input string is in the normalization form. */
- I18N_UNORMALIZATION_MAYBE /**< The input string may or may not be in the normalization form. */
-} i18n_unormalization_check_result_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE
- * @{
- */
-
-/**
- * @brief i18n_usearch_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_usearch_h;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE
- * @{
- */
-
-/**
- * @brief i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_ucalendar_h;
-
-/**
- * @brief The time zone ID reserved for unknown time zone.
- * @since_tizen 2.3.1
- */
-#define I18N_UCALENDAR_UNKNOWN_ZONE_ID "Etc/Unknown"
-
-/**
- * @brief Enumeration for possible fields in an #i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCALENDAR_ERA, /**< Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar */
- I18N_UCALENDAR_YEAR, /**< Field number indicating the year */
- I18N_UCALENDAR_MONTH, /**< Field number indicating the month. This is a calendar-specific value. \n The first month of the year is JANUARY;
- the last depends on the number of months in a year */
- I18N_UCALENDAR_WEEK_OF_YEAR, /**< Field number indicating the week number within the current year. \n
- The first week of the year, as defined by the #I18N_UCALENDAR_FIRST_DAY_OF_WEEK and #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK attributes, has value 1.
- Subclasses define the value of #I18N_UCALENDAR_WEEK_OF_YEAR for days before the first week of the year */
- I18N_UCALENDAR_WEEK_OF_MONTH, /**< Field number indicating the week number within the current month. \n
- The first week of the month, as defined by the #I18N_UCALENDAR_FIRST_DAY_OF_WEEK and #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK attributes, has value 1.
- Subclasses define the value of WEEK_OF_MONTH for days before the first week of the month */
- I18N_UCALENDAR_DATE, /**< Field number indicating the day of the month. \n This is a synonym for DAY_OF_MONTH. The first day of the month has value 1 */
- I18N_UCALENDAR_DAY_OF_YEAR, /**< Field number indicating the day number within the current year. \n The first day of the year has value 1. */
- I18N_UCALENDAR_DAY_OF_WEEK, /**< Field number indicating the day of the week. \n
- This field takes values "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", and "Saturday" */
- I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, /**< Field number indicating the ordinal number of the day of the week within the current month. \n
- Together with the "day of week" field, this uniquely specifies a day within a month.
- "day of month" 1 through 7 always correspond to "day of week in month" 1; 8 through 15 correspond to "day of week in month" 2, and so on.
- "day of week in month" 0 indicates the week before "day of week in month" 1.
- Negative values count back from the end of the month, so the last Sunday of a month is specified as "day of week" = "Sunday",
- "day of week in month" = -1. Because negative values count backward they will usually be aligned differently within the month than positive values.
- For example, if a month has 31 days, "day of week in month" -1 will overlap "day of week in month" 5 and the end of 4 */
- I18N_UCALENDAR_AM_PM, /**< Field number indicating whether the "hour" is before or after noon. \n E.g., at 10:04:15.250 PM the AM_PM is PM */
- I18N_UCALENDAR_HOUR, /**< Field number indicating the hour of the morning or afternoon. \n "hour" is used for the 12-hour clock. E.g., at 10:04:15.250 PM the "Hour" is 10 */
- I18N_UCALENDAR_HOUR_OF_DAY, /**< Field number indicating the hour of the day. \n "Hour of day" is used for the 24-hour clock. E.g., at 10:04:15.250 PM the "Hour of day" is 22 */
- I18N_UCALENDAR_MINUTE, /**< Field number indicating the minute within the hour. \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_MINUTE is 4 */
- I18N_UCALENDAR_SECOND, /**< Field number indicating the second within the minute. \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_SECOND is 15 */
- I18N_UCALENDAR_MILLISECOND, /**< Field number indicating the millisecond within the second. \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_MILLISECOND is 250 */
- I18N_UCALENDAR_ZONE_OFFSET, /**< Field number indicating the raw offset from GMT in milliseconds */
- I18N_UCALENDAR_DST_OFFSET, /**< Field number indicating the daylight savings offset in milliseconds */
- I18N_UCALENDAR_YEAR_WOY, /**< Field number indicating the extended year corresponding to the #I18N_UCALENDAR_WEEK_OF_YEAR field. \n
- This may be one greater or less than the value of #I18N_UCALENDAR_EXTENDED_YEAR */
- I18N_UCALENDAR_DOW_LOCAL, /**< Field number indicating the localized day of the week. \n
- This will be a value from 1 to 7 inclusive, with 1 being the localized first day of the week */
- I18N_UCALENDAR_EXTENDED_YEAR, /**< Year of this calendar system, encompassing all supra-year fields. \n
- For example, in Gregorian/Julian calendars, positive Extended Year values indicate years AD, 1 BC = 0 extended, 2 BC = -1 extended, and so on */
- I18N_UCALENDAR_JULIAN_DAY, /**< Field number indicating the modified Julian day number. \n
- This is different from the conventional Julian day number in two regards.
- First, it demarcates days at local zone midnight, rather than noon GMT. Second, it is a local number; that is, it depends on the local time zone.
- It can be thought of as a single number that encompasses all the date-related fields */
- I18N_UCALENDAR_MILLISECONDS_IN_DAY, /**< Ranges from 0 to 23:59:59.999 (regardless of DST). \n
- This field behaves exactly like a composite of all time-related fields, not including the zone fields.
- As such, it also reflects discontinuities in those fields on DST transition days. On a day of DST onset, it will jump forward.
- On a day of DST cessation, it will jump backward.
- This reflects the fact that it must be combined with the DST offset field to obtain a unique local time value */
- I18N_UCALENDAR_IS_LEAP_MONTH, /**< Whether or not the current month is a leap month (0 or 1) */
- I18N_UCALENDAR_FIELD_COUNT, /**< Number of enumerators */
- I18N_UCALENDAR_DAY_OF_MONTH = I18N_UCALENDAR_DATE /**< Field number indicating the day of the month. \n This is a synonym for #I18N_UCALENDAR_DATE. The first day of the month has value 1 */
-} i18n_ucalendar_date_fields_e;
-
-/**
- * @brief Enumeration for possible months in an #i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCALENDAR_TRADITIONAL, /**< Despite the name, #I18N_UCALENDAR_TRADITIONAL designates the locale's default calendar, which may be the Gregorian calendar or some other calendar */
- I18N_UCALENDAR_DEFAULT = I18N_UCALENDAR_TRADITIONAL, /**< A better name for #I18N_UCALENDAR_TRADITIONAL */
- I18N_UCALENDAR_GREGORIAN /**< Unambiguously designates the Gregorian calendar for the locale */
-} i18n_ucalendar_type_e;
-
-/**
- * @brief Enumeration for possible months in an #i18n_ucalendar_h.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCALENDAR_JANUARY, /**< January */
- I18N_UCALENDAR_FEBRUARY, /**< February */
- I18N_UCALENDAR_MARCH, /**< March */
- I18N_UCALENDAR_APRIL, /**< April */
- I18N_UCALENDAR_MAY, /**< May */
- I18N_UCALENDAR_JUNE, /**< June */
- I18N_UCALENDAR_JULY, /**< July */
- I18N_UCALENDAR_AUGUST, /**< August */
- I18N_UCALENDAR_SEPTEMBER, /**< September */
- I18N_UCALENDAR_OCTOBER, /**< October */
- I18N_UCALENDAR_NOVEMBER, /**< November */
- I18N_UCALENDAR_DECEMBER /**< December */
-} i18n_ucalendar_months_e;
-
-/**
- * @brief Enumeration for possible formats of an #i18n_ucalendar_h's display name.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCALENDAR_STANDARD, /**< Standard display name */
- I18N_UCALENDAR_SHORT_STANDARD, /**< Short standard display name */
- I18N_UCALENDAR_DST, /**< Daylight savings display name */
- I18N_UCALENDAR_SHORT_DST /**< Short daylight savings display name */
-} i18n_ucalendar_displayname_type_e;
-
-/**
- * @brief Enumeration for types of #i18n_ucalendar_h attributes.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCALENDAR_LENIENT, /**< Lenient parsing */
- I18N_UCALENDAR_FIRST_DAY_OF_WEEK, /**< First day of the week */
- I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK /**< Minimum number of days in the first week */
-} i18n_ucalendar_attribute_e;
-
-/**
- * @brief System time zone type constants.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UCALENDAR_ZONE_TYPE_ANY, /**< Any system zones. */
- I18N_UCALENDAR_ZONE_TYPE_CANONICAL, /**< Canonical system zones. */
- I18N_UCALENDAR_ZONE_TYPE_CANONICAL_LOCATION /**< Canonical system zones associated with actual locations. */
-} i18n_system_timezone_type_e;
-
-/**
- * @brief Possible limit values for an #i18n_ucalendar_h.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UCALENDAR_MINIMUM, /**< Minimum value */
- I18N_UCALENDAR_MAXIMUM, /**< Maximum value */
- I18N_UCALENDAR_GREATEST_MINIMUM, /**< Greatest minimum value */
- I18N_UCALENDAR_LEAST_MAXIMUM, /**< Least maximum value */
- I18N_UCALENDAR_ACTUAL_MINIMUM, /**< Actual minimum value */
- I18N_UCALENDAR_ACTUAL_MAXIMUM /**< Actual maximum value */
-} i18n_ucalendar_limit_type_e;
-
-/**
- * @brief Weekday types, as returned by i18n_ucalendar_get_day_of_week_type().
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UCALENDAR_WEEKDAY, /**< Designates a full weekday (no part of the day is included in the weekend). */
- I18N_UCALENDAR_WEEKEND, /**< Designates a full weekend day (the entire day is included in the weekend). */
- I18N_UCALENDAR_WEEKEND_ONSET, /**< Designates a day that starts as a weekday and transitions to the weekend.
- Call i18n_ucalendar_get_weekend_transition() to get the time of transition. */
- I18N_UCALENDAR_WEEKEND_CEASE, /**< Designates a day that starts as the weekend and transitions to a weekday.
- Call i18n_ucalendar_get_weekend_transition() to get the time of transition. */
-} i18n_ucalendar_weekday_type_e;
-
-/**
- * @brief Useful constants for days of week.
- * @details Note: Calendar day-of-week is 1-based. Clients who create locale resources for the field of first-day-of-week should be aware of this.
- * For instance, in US locale, first-day-of-week is set to 1, i.e., #I18N_UCALENDAR_SUNDAY. Possible days of the week in an #i18n_ucalendar_h.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UCALENDAR_SUNDAY = 1, /**< Sunday */
- I18N_UCALENDAR_MONDAY, /**< Monday */
- I18N_UCALENDAR_TUESDAY, /**< Tuesday */
- I18N_UCALENDAR_WEDNESDAY, /**< Wednesday */
- I18N_UCALENDAR_THURSDAY, /**< Thursday */
- I18N_UCALENDAR_FRIDAY, /**< Friday */
- I18N_UCALENDAR_SATURDAY /**< Saturday */
-} i18n_ucalendar_days_of_week_e;
-
-/**
- * @brief Time zone transition types for i18n_ucalendar_get_timezone_transition_date().
- * @since_tizen 2.3.1
- *
- * @see i18n_ucalendar_get_timezone_transition_date()
- */
-typedef enum {
- I18N_UCALENDAR_TZ_TRANSITION_NEXT, /**< Get the next transition after the current date, i.e. excludes the current date */
- I18N_UCALENDAR_TZ_TRANSITION_NEXT_INCLUSIVE, /**< Get the next transition on or after the current date, i.e. may include the current date */
- I18N_UCALENDAR_TZ_TRANSITION_PREVIOUS, /**< Get the previous transition before the current date, i.e. excludes the current date */
- I18N_UCALENDAR_TZ_TRANSITION_PREVIOUS_INCLUSIVE, /**< Get the previous transition on or before the current date, i.e. may include the current date */
-} i18n_utimezone_transition_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATE_MODULE
- * @{
- */
-
-/**
- * @brief Date and Time data type. \n This is a primitive data type that holds the date and time as the number of milliseconds since 1970-jan-01, 00:00 UTC. UTC leap seconds are ignored.
- */
-
-/**
- * @brief Date and Time data type.
- * @details This is a primitive data type that holds the date and time as the number of milliseconds since 1970-jan-01, 00:00 UTC. UTC leap seconds are ignored.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef double i18n_udate;
-
-/**
- * @brief A date formatter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_udate_format_h;
-
-/**
- * @brief A struct representing a range of text containing a specific field.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef struct {
- int32_t field; /**< The field. */
- int32_t beginIndex; /**< The start of the text range containing field.*/
- int32_t endIndex; /**< The limit of the text range containing field.*/
-} i18n_ufield_position_s;
-
-/**
- * @brief Handle to struct representing a range of text containing a specific field.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef i18n_ufield_position_s *i18n_ufield_position_h;
-
-/**
- * @brief Enumeration for the possible date/time format styles.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UDATE_FULL, /**< Full style */
- I18N_UDATE_LONG, /**< Long style */
- I18N_UDATE_MEDIUM, /**< Medium style */
- I18N_UDATE_SHORT, /**< Short style */
- I18N_UDATE_DEFAULT = I18N_UDATE_MEDIUM, /**< Default style */
- I18N_UDATE_RELATIVE = (1 << 7), /**< Bitfield for relative date */
- I18N_UDATE_FULL_RELATIVE = I18N_UDATE_FULL | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_FULL | #I18N_UDATE_RELATIVE */
- I18N_UDATE_LONG_RELATIVE = I18N_UDATE_LONG | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_LONG | #I18N_UDATE_RELATIVE */
- I18N_UDATE_MEDIUM_RELATIVE = I18N_UDATE_MEDIUM | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_MEDIUM | #I18N_UDATE_RELATIVE */
- I18N_UDATE_SHORT_RELATIVE = I18N_UDATE_SHORT | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_SHORT | #I18N_UDATE_RELATIVE */
- I18N_UDATE_NONE = -1, /**< No style */
- I18N_UDATE_PATTERN = -2 /**< Use the pattern given in the parameter to i18n_udate_create(). */
-} i18n_udate_format_style_e;
-
-/**
- * @brief Enumeration for format fields.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UDATE_FORMAT_ERA_FIELD, /**< Era field */
- I18N_UDATE_FORMAT_YEAR_FIELD, /**< Year field */
- I18N_UDATE_FORMAT_MONTH_FIELD, /**< Month field */
- I18N_UDATE_FORMAT_DATE_FIELD, /**< Date field */
- I18N_UDATE_FORMAT_HOUR_OF_DAY1_FIELD, /**< Hour of day1 field */
- I18N_UDATE_FORMAT_HOUR_OF_DAY0_FIELD, /**< Hour of day0 field */
- I18N_UDATE_FORMAT_MINUTE_FIELD, /**< Minute field */
- I18N_UDATE_FORMAT_SECOND_FIELD, /**< Second field */
- I18N_UDATE_FORMAT_FRACTIONAL_SECOND_FIELD, /**< Fractional second field */
- I18N_UDATE_FORMAT_DAY_OF_WEEK_FIELD, /**< Day of week field */
- I18N_UDATE_FORMAT_DAY_OF_YEAR_FIELD, /**< Day of year field */
- I18N_UDATE_FORMAT_DAY_OF_WEEK_IN_MONTH_FIELD, /**< Day of week in month field */
- I18N_UDATE_FORMAT_WEEK_OF_YEAR_FIELD, /**< Week of year field */
- I18N_UDATE_FORMAT_WEEK_OF_MONTH_FIELD, /**< Week of month field */
- I18N_UDATE_FORMAT_AM_PM_FIELD, /**< a.m. / p.m. field */
- I18N_UDATE_FORMAT_HOUR1_FIELD, /**< Hour1 field */
- I18N_UDATE_FORMAT_HOUR0_FIELD, /**< Hour0 field */
- I18N_UDATE_FORMAT_TIMEZONE_FIELD, /**< Timezone field */
- I18N_UDATE_FORMAT_YEAR_WOY_FIELD, /**< Year woy field */
- I18N_UDATE_FORMAT_DOW_LOCAL_FIELD, /**< Dow local field */
- I18N_UDATE_FORMAT_EXTENDED_YEAR_FIELD, /**< Extended year field */
- I18N_UDATE_FORMAT_JULIAN_DAY_FIELD, /**< Julian day field */
- I18N_UDATE_FORMAT_MILLISECONDS_IN_DAY_FIELD, /**< Milliseconds in day field */
- I18N_UDATE_FORMAT_TIMEZONE_RFC_FIELD, /**< Timezone RFC field */
- I18N_UDATE_FORMAT_TIMEZONE_GENERIC_FIELD, /**< Timezone generic field */
- I18N_UDATE_FORMAT_STANDALONE_DAY_FIELD, /**< Standalone day field */
- I18N_UDATE_FORMAT_STANDALONE_MONTH_FIELD, /**< Standalone month field */
- I18N_UDATE_FORMAT_QUARTER_FIELD, /**< Quarter field */
- I18N_UDATE_FORMAT_STANDALONE_QUARTER_FIELD, /**< Standalone quarter field */
- I18N_UDATE_FORMAT_TIMEZONE_SPECIAL_FIELD, /**< Timezone special field */
- I18N_UDATE_FORMAT_YEAR_NAME_FIELD, /**< Year name field */
- I18N_UDATE_FORMAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD, /**< Timezone localized gmt offset field */
- I18N_UDATE_FORMAT_TIMEZONE_ISO_FIELD, /**< Timezone ISO field */
- I18N_UDATE_FORMAT_TIMEZONE_ISO_LOCAL_FIELD, /**< Timezone ISO local field */
- I18N_UDATE_FORMAT_FIELD_COUNT /**< Field count */
-} i18n_udate_format_field_e;
-
-/**
- * @brief Enumeration for symbol types.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UDATE_FORMAT_SYMBOL_TYPE_ERAS, /**< Eras */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_MONTHS, /**< Months */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_MONTHS, /**< Short months */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_WEEKDAYS, /**< Weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_WEEKDAYS, /**< Short weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_AM_PMS, /**< AM PMs */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_LOCALIZED_CHARS, /**< Localized chars */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_ERA_NAMES, /**< Era names */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_NARROW_MONTHS, /**< Narrow months */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_NARROW_WEEKDAYS, /**< Narrow weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_MONTHS, /**< Standalone months */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_MONTHS, /**< Standalone short months */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_NARROW_MONTHS, /**< Standalone narrow months */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_WEEKDAYS, /**< Standalone weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_WEEKDAYS, /**< Standalone short weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_NARROW_WEEKDAYS, /**< Standalone narrow weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_QUARTERS, /**< Quarters */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_QUARTERS, /**< Short quarters */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_QUARTERS, /**< Standalone quarters */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_QUARTERS, /**< Standalone short quarters */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORTER_WEEKDAYS, /**< Shorter weekdays */
- I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORTER_WEEKDAYS, /**< Standalone shorter weekdays */
-} i18n_udate_format_symbol_type_e;
-
-/**
- * @brief Display context types, for getting values of a particular setting.
- * @details Note, the specific numeric values are internal and may change.
- * @since_tizen 2.3.1
-
- */
-typedef enum {
- I18N_UDISPCTX_TYPE_DIALECT_HANDLING, /**<Type to retrieve the dialect handling setting, e.g. UDISPCTX_STANDARD_NAMES or UDISPCTX_DIALECT_NAMES. */
- I18N_UDISPCTX_TYPE_CAPITALIZATION, /**<Type to retrieve the capitalization context setting, e.g. UDISPCTX_CAPITALIZATION_NONE, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, etc. */
-#ifndef U_HIDE_DRAFT_API
- I18N_UDISPCTX_TYPE_DISPLAY_LENGTH /**<Type to retrieve the display length setting, e.g. UDISPCTX_LENGTH_FULL, UDISPCTX_LENGTH_SHORT. */
-#endif /* U_HIDE_DRAFT_API */
-} i18n_udisplay_context_type_e;
-
-/**
- * @brief Enumeration for display context.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UDISPLAY_CONTEXT_STANDARD_NAMES = (I18N_UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 0, /**< Standard names */
- I18N_UDISPLAY_CONTEXT_DIALECT_NAMES = (I18N_UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 1, /**< Dialect names */
- I18N_UDISPLAY_CONTEXT_CAPITALIZATION_NONE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 0, /**< Capitalization: None */
- I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 1, /**< Capitalization: For middle of sentence */
- I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 2, /**< Capitalization: For beginning of sentence */
- I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_UI_LIST_OR_MENU = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 3, /**< Capitalization: For UI list or menu */
- I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_STANDALONE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 4, /**< Capitalization: For standalone */
-} i18n_udisplay_context_e;
-
-/* Skeletons for dates. */
-
-/**
- * @brief Constant for date skeleton with year.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_YEAR "y"
-
-/**
- * @brief Constant for date skeleton with quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_QUARTER "QQQQ"
-
-/**
- * @brief Constant for date skeleton with abbreviated quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_ABBR_QUARTER "QQQ"
-
-/**
- * @brief Constant for date skeleton with year and quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_YEAR_QUARTER "yQQQQ"
-
-/**
- * @brief Constant for date skeleton with year and abbreviated quarter.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_YEAR_ABBR_QUARTER "yQQQ"
-
-/**
- * @brief Constant for date skeleton with month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_MONTH "MMMM"
-
-/**
- * @brief Constant for date skeleton with abbreviated month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-
-#define I18N_UDATE_ABBR_MONTH "MMM"
-
-/**
- * @brief Constant for date skeleton with numeric month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_NUM_MONTH "M"
-
-/**
- * @brief Constant for date skeleton with year and month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_MONTH "yMMMM"
-
-/**
- * @brief Constant for date skeleton with year and abbreviated month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_ABBR_MONTH "yMMM"
-
-/**
- * @brief Constant for date skeleton with year and numeric month.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_NUM_MONTH "yM"
-
-/**
- * @brief Constant for date skeleton with day.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_DAY "d"
-
-/**
- * @brief Constant for date skeleton with year, month, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_MONTH_DAY "yMMMMd"
-
-/**
- * @brief Constant for date skeleton with year, abbreviated month, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_ABBR_MONTH_DAY "yMMMd"
-
-/**
- * @brief Constant for date skeleton with year, numeric month, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_NUM_MONTH_DAY "yMd"
-
-/**
- * @brief Constant for date skeleton with weekday.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_WEEKDAY "EEEE"
-
-/**
- * @brief Constant for date skeleton with abbreviated weekday.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_ABBR_WEEKDAY "E"
-
-/**
- * @brief Constant for date skeleton with year, month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_MONTH_WEEKDAY_DAY "yMMMMEEEEd"
-
-/**
- * @brief Constant for date skeleton with year, abbreviated month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_ABBR_MONTH_WEEKDAY_DAY "yMMMEd"
-
-/**
- * @brief Constant for date skeleton with year, numeric month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_YEAR_NUM_MONTH_WEEKDAY_DAY "yMEd"
-
-/**
- * @brief Constant for date skeleton with long month and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MONTH_DAY "MMMMd"
-
-/**
- * @brief Constant for date skeleton with abbreviated month and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_ABBR_MONTH_DAY "MMMd"
-
-/**
- * @brief Constant for date skeleton with numeric month and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_NUM_MONTH_DAY "Md"
-
-/**
- * @brief Constant for date skeleton with month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MONTH_WEEKDAY_DAY "MMMMEEEEd"
-
-/**
- * @brief Constant for date skeleton with abbreviated month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_ABBR_MONTH_WEEKDAY_DAY "MMMEd"
-
-/**
- * @brief Constant for date skeleton with numeric month, weekday, and day.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_NUM_MONTH_WEEKDAY_DAY "MEd"
-
-/* Skeletons for times. */
-
-/**
- * @brief Constant for date skeleton with hour, with the locale's preferred hour format (12 or 24).
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR "j"
-
-/**
- * @brief Constant for date skeleton with hour in 24-hour presentation.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR24 "H"
-
-/**
- * @brief Constant for date skeleton with minute.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MINUTE "m"
-
-/**
- * @brief Constant for date skeleton with hour and minute, with the locale's preferred hour format (12 or 24).
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR_MINUTE "jm"
-
-/**
- * @brief Constant for date skeleton with hour and minute in 24-hour presentation.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR24_MINUTE "Hm"
-
-/**
- * @brief Constant for date skeleton with second.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_SECOND "s"
-
-/**
- * @brief Constant for date skeleton with hour, minute, and second,
- * with the locale's preferred hour format (12 or 24).
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR_MINUTE_SECOND "jms"
-
-/**
- * @brief Constant for date skeleton with hour, minute, and second in
- * 24-hour presentation.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_HOUR24_MINUTE_SECOND "Hms"
-
-/**
- * @brief Constant for date skeleton with minute and second.
- * @details Used in combinations date + time, date + time + zone, or time + zone.
- * @since_tizen 3.0
- * @see i18n_udatepg_get_best_pattern()
- */
-#define I18N_UDATE_MINUTE_SECOND "ms"
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE
- * @{
- */
-
-/**
- * @brief Handle for a date/time pattern generator object.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_udatepg_h;
-
-/**
- * @brief Enumeration for field number constants for i18n_udatepg_get_append_item_format() and similar functions.
- * @details These constants are separate from #i18n_udate_format_field_e despite semantic overlap because some fields are merged for the date/time pattern generator.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UDATEPG_ERA_FIELD, /**< Era field */
- I18N_UDATEPG_YEAR_FIELD, /**< Year field */
- I18N_UDATEPG_QUARTER_FIELD, /**< Quarter field */
- I18N_UDATEPG_MONTH_FIELD, /**< Month field */
- I18N_UDATEPG_WEEK_OF_YEAR_FIELD, /**< Week of year field */
- I18N_UDATEPG_WEEK_OF_MONTH_FIELD, /**< Week of month field */
- I18N_UDATEPG_WEEKDAY_FIELD, /**< Weekday field */
- I18N_UDATEPG_DAY_OF_YEAR_FIELD, /**< Day of year field */
- I18N_UDATEPG_DAY_OF_WEEK_IN_MONTH_FIELD, /**< Day of week in month field */
- I18N_UDATEPG_DAY_FIELD, /**< Day field */
- I18N_UDATEPG_DAYPERIOD_FIELD, /**< Day period field */
- I18N_UDATEPG_HOUR_FIELD, /**< Hour field */
- I18N_UDATEPG_MINUTE_FIELD, /**< Minute field */
- I18N_UDATEPG_SECOND_FIELD, /**< Second field */
- I18N_UDATEPG_FRACTIONAL_SECOND_FIELD, /**< Fractional second field */
- I18N_UDATEPG_ZONE_FIELD, /**< Zone field */
- I18N_UDATEPG_FIELD_COUNT /**< Field count */
-} i18n_udatepg_date_time_pattern_field_e;
-
-/**
- * @brief Enumeration for masks to control forcing the length of specified fields in the returned pattern to match those in the skeleton (when this would not happen otherwise).\n
- * @details These may be combined to force the length of multiple fields.
- * Used with i18n_udatepg_get_best_pattern_with_options(), i18n_udatepg_replace_field_types_with_options().
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UDATEPG_MATCH_NO_OPTIONS = 0, /**< No options */
- I18N_UDATEPG_MATCH_HOUR_FIELD_LENGTH = 1 << I18N_UDATEPG_HOUR_FIELD, /**< Hour field length */
- I18N_UDATEPG_MATCH_ALL_FIELDS_LENGTH = (1 << I18N_UDATEPG_FIELD_COUNT) - 1, /**< All fields length */
-} i18n_udatepg_date_time_pattern_match_options_e;
-
-/**
- * @brief Enumeration for status return values from i18n_udatepg_add_pattern().
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UDATEPG_NO_CONFLICT, /**< No conflict */
- I18N_UDATEPG_BASE_CONFLICT, /**< Base conflict */
- I18N_UDATEPG_CONFLICT, /**< Conflict */
- I18N_UDATEPG_CONFLICT_COUNT, /**< Number of status return values */
-} i18n_udatepg_date_time_pattern_conflict_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE
- * @{
- */
-
-/**
- * @brief A number formatter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_unumber_format_h;
-
-/**
- * @brief Definition of context length.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_U_PARSE_CONTEXT_LEN 16
-
-/**
- * @brief Struct used to returned detailed information about parsing errors.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef struct {
- int32_t line; /**< The line on which the error occured. */
- int32_t offset; /**< The character offset to the error */
- i18n_uchar preContext[I18N_U_PARSE_CONTEXT_LEN]; /**< Textual context before the error */
- i18n_uchar postContext[I18N_U_PARSE_CONTEXT_LEN]; /**< The error itself and/or textual context after the error */
-} i18n_uparse_error_s;
-
-/**
- * @brief Enumeration for the possible number format styles.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UNUMBER_PATTERN_DECIMAL = 0, /**< Decimal format defined by a pattern string */
- I18N_UNUMBER_DECIMAL = 1, /**< Decimal format ("normal" style) */
- I18N_UNUMBER_CURRENCY, /**< Currency format with a currency symbol, e.g., "$1.00" */
- I18N_UNUMBER_PERCENT, /**< Percent format */
- I18N_UNUMBER_SCIENTIFIC, /**< Scientific format */
- I18N_UNUMBER_SPELLOUT, /**< Spellout rule-based format */
- I18N_UNUMBER_ORDINAL, /**< Ordinal rule-based format */
- I18N_UNUMBER_DURATION, /**< Duration rule-based format */
- I18N_UNUMBER_NUMBERING_SYSTEM, /**< Numbering system rule-based format */
- I18N_UNUMBER_PATTERN_RULEBASED, /**< Rule-based format defined by a pattern string */
- I18N_UNUMBER_CURRENCY_ISO, /**< Currency format with an ISO currency code, e.g., "USD1.00" */
- I18N_UNUMBER_CURRENCY_PLURAL, /**< Currency format with a pluralized currency name, e.g., "1.00 US dollar" and "3.00 US dollars" */
-
- I18N_UNUMBER_FORMAT_STYLE_COUNT, /**< One more than the highest number format style constant */
- I18N_UNUMBER_DEFAULT = I18N_UNUMBER_DECIMAL, /**< Default format */
- I18N_UNUMBER_IGNORE = I18N_UNUMBER_PATTERN_DECIMAL /**< Alias for #I18N_UNUMBER_PATTERN_DECIMAL */
-} i18n_unumber_format_style_e;
-
-/**
- * @brief Enumeration of constants for specifying a number format symbol.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_UNUMBER_DECIMAL_SEPARATOR_SYMBOL = 0, /**< The decimal separator */
- I18N_UNUMBER_GROUPING_SEPARATOR_SYMBOL = 1, /**< The grouping separator */
- I18N_UNUMBER_PATTERN_SEPARATOR_SYMBOL = 2, /**< The pattern separator */
- I18N_UNUMBER_PERCENT_SYMBOL = 3, /**< The percent sign */
- I18N_UNUMBER_ZERO_DIGIT_SYMBOL = 4, /**< Zero */
- I18N_UNUMBER_DIGIT_SYMBOL = 5, /**< Character representing a digit in the pattern.*/
- I18N_UNUMBER_MINUS_SIGN_SYMBOL = 6, /**< The minus sign */
- I18N_UNUMBER_PLUS_SIGN_SYMBOL = 7, /**< The plus sign */
- I18N_UNUMBER_CURRENCY_SYMBOL = 8, /**< The currency symbol */
- I18N_UNUMBER_INTL_CURRENCY_SYMBOL = 9, /**< The international currency symbol */
- I18N_UNUMBER_MONETARY_SEPARATOR_SYMBOL = 10, /**< The monetary separator */
- I18N_UNUMBER_EXPONENTIAL_SYMBOL = 11, /**< The exponential symbol */
- I18N_UNUMBER_PERMILL_SYMBOL = 12, /**< Per mill symbol */
- I18N_UNUMBER_PAD_ESCAPE_SYMBOL = 13, /**< Escape padding character */
- I18N_UNUMBER_INFINITY_SYMBOL = 14, /**< Infinity symbol */
- I18N_UNUMBER_NAN_SYMBOL = 15, /**< NAN symbol */
- I18N_UNUMBER_SIGNIFICANT_DIGIT_SYMBOL = 16, /**< Significant digit symbol */
- I18N_UNUMBER_MONETARY_GROUPING_SEPARATOR_SYMBOL = 17, /**< The monetary grouping separator */
- I18N_UNUMBER_ONE_DIGIT_SYMBOL = 18, /**< One */
- I18N_UNUMBER_TWO_DIGIT_SYMBOL = 19, /**< Two */
- I18N_UNUMBER_THREE_DIGIT_SYMBOL = 20, /**< Three */
- I18N_UNUMBER_FOUR_DIGIT_SYMBOL = 21, /**< Four */
- I18N_UNUMBER_FIVE_DIGIT_SYMBOL = 22, /**< Five */
- I18N_UNUMBER_SIX_DIGIT_SYMBOL = 23, /**< Six */
- I18N_UNUMBER_SEVEN_DIGIT_SYMBOL = 24, /**< Seven */
- I18N_UNUMBER_EIGHT_DIGIT_SYMBOL = 25, /**< Eight */
- I18N_UNUMBER_NINE_DIGIT_SYMBOL = 26, /**< Nine */
- I18N_UNUMBER_FORMAT_SYMBOL_COUNT /**< Number of enumerators */
-} i18n_unumber_format_symbol_e;
-
-/**
- * @brief Enumeration for the possible unumber_format numeric attributes.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UNUMBER_PARSE_INT_ONLY, /**< Parse integers only */
- I18N_UNUMBER_GROUPING_USED, /**< Use grouping separator */
- I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN, /**< Always show decimal point */
- I18N_UNUMBER_MAX_INTEGER_DIGITS, /**< Maximum integer digits */
- I18N_UNUMBER_MIN_INTEGER_DIGITS, /**< Minimum integer digits */
- I18N_UNUMBER_INTEGER_DIGITS, /**< Integer digits */
- I18N_UNUMBER_MAX_FRACTION_DIGITS, /**< Maximum fraction digits */
- I18N_UNUMBER_MIN_FRACTION_DIGITS, /**< Minimum fraction digits */
- I18N_UNUMBER_FRACTION_DIGITS, /**< Fraction digits */
- I18N_UNUMBER_MULTIPLIER, /**< Multiplier */
- I18N_UNUMBER_GROUPING_SIZE, /**< Grouping size */
- I18N_UNUMBER_ROUNDING_MODE, /**< Rounding Mode */
- I18N_UNUMBER_ROUNDING_INCREMENT, /**< Rounding increment */
- I18N_UNUMBER_FORMAT_WIDTH, /**< The width to which the output of format() is padded */
- I18N_UNUMBER_PADDING_POSITION, /**< The position at which padding will take place */
- I18N_UNUMBER_SECONDARY_GROUPING_SIZE, /**< Secondary grouping size */
- I18N_UNUMBER_SIGNIFICANT_DIGITS_USED, /**< Use significant digits */
- I18N_UNUMBER_MIN_SIGNIFICANT_DIGITS, /**< Minimum significant digits */
- I18N_UNUMBER_MAX_SIGNIFICANT_DIGITS, /**< Maximum significant digits */
- I18N_UNUMBER_LENIENT_PARSE, /**< Lenient parse mode used by rule-based formats */
- I18N_UNUM_SCALE = I18N_UNUMBER_LENIENT_PARSE + 2, /**< Scale, which adjusts the position of the decimal point when formatting.
- Amounts will be multiplied by 10 ^ (scale) before they are formatted. The default value for the scale is 0 ( no adjustment ).
- Example: setting the scale to 3, 123 formats as "123,000"
- Example: setting the scale to -4, 123 formats as "0.0123" */
- I18N_UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS = 0x1000, /**< If 1, specifies that if setting the "max integer digits" attribute would truncate a value, set an error status rather than silently truncating.
- For example, formatting the value 1234 with 4 max int digits would succeed, but formatting 12345 would fail.
- There is no effect on parsing. Default: 0 (not set) */
- I18N_UNUM_PARSE_NO_EXPONENT, /**< If this attribute is set to 1, specifies that, if the pattern doesn't contain an exponent,
- the exponent will not be parsed. If the pattern does contain an exponent, this attribute has no effect.
- Has no effect on formatting. Default: 0 (unset) */
-} i18n_unumber_format_attribute_e;
-
-/**
- * @brief Enumeration for the possible values of the #I18N_UNUMBER_PADDING_POSITION attribute.
- * @since_tizen 3.0
- */
-typedef enum {
- I18N_UNUMBER_PAD_BEFORE_PREFIX,
- I18N_UNUMBER_PAD_AFTER_PREFIX,
- I18N_UNUMBER_PAD_BEFORE_SUFFIX,
- I18N_UNUMBER_PAD_AFTER_SUFFIX,
-} i18n_unumber_pad_position_e;
-
-/**
- * @brief The possible #i18n_unumber_format_h text attributes.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_UNUMBER_POSITIVE_PREFIX, /**< Positive prefix */
- I18N_UNUMBER_POSITIVE_SUFFIX, /**< Positive suffix */
- I18N_UNUMBER_NEGATIVE_PREFIX, /**< Negative prefix */
- I18N_UNUMBER_NEGATIVE_SUFFIX, /**< Negative suffix */
- I18N_UNUMBER_PADDING_CHARACTER, /**< The character used to pad to the format width */
- I18N_UNUMBER_CURRENCY_CODE, /**< The ISO currency code */
- I18N_UNUMBER_DEFAULT_RULESET, /**< The default rule set, such as "%spellout-numbering-year:", "%spellout-cardinal:",
- "%spellout-ordinal-masculine-plural:", "%spellout-ordinal-feminine:"
- or "%spellout-ordinal-neuter:".
- The available public rulesets can be listed using i18n_unumber_get_text_attribute()
- with #I18N_UNUMBER_PUBLIC_RULESETS. This is only available with rule-based formatters */
- I18N_UNUMBER_PUBLIC_RULESETS, /**< The public rule sets. This is only available with rule-based formatters. This is a read-only attribute.
- The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).
- See the CLDR LDML spec for more information about RBNF rulesets:
- http://www.unicode.org/reports/tr35/tr35-numbers.html#Rule-Based_Number_Formatting */
-} i18n_unumber_format_text_attribute_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE
- * @{
- */
-
-#define I18N_ULOCALE_CHINESE "zh" /**< Useful constant for zh. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_ENGLISH "en" /**< Useful constant for en. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_FRENCH "fr" /**< Useful constant for fr. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_GERMAN "de" /**< Useful constant for de. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_ITALIAN "it" /**< Useful constant for it. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_JAPANESE "ja" /**< Useful constant for ja. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_KOREAN "ko" /**< Useful constant for ko. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_SIMPLIFIED_CHINESE "zh_CN" /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_TRADITIONAL_CHINESE "zh_TW" /**< Useful constant for zh_TW. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_CANADA "en_CA" /**< Useful constant for en_CA. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_CANADA_FRENCH "fr_CA" /**< Useful constant for fr_CA. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_CHINA "zh_CN" /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_PRC "zh_CN" /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_FRANCE "fr_FR" /**< Useful constant for fr_FR. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_GERMANY "de_DE" /**< Useful constant for de_DE. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_ITALY "it_IT" /**< Useful constant for it_IT. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_JAPAN "ja_JP" /**< Useful constant for ja_JP. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_KOREA "ko_KR" /**< Useful constant for ko_KR. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_TAIWAN "zh_TW" /**< Useful constant for zh_TW. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_UK "en_GB" /**< Useful constant for en_GB. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-#define I18N_ULOCALE_US "en_US" /**< Useful constant for en_US. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
-
-/**
- * @brief Useful constant for the maximum size of the language part of a locale ID.
- * (including the terminating NULL).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- * @see i18n_ulocale_get_language()
- */
-#define I18N_ULOCALE_LANG_CAPACITY 12
-
-/**
- * @brief Useful constant for the maximum size of the country part of a locale ID
- * (including the terminating NULL).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- * @see i18n_ulocale_get_country()
- */
-#define I18N_ULOCALE_COUNTRY_CAPACITY 4
-/**
- * @brief Useful constant for the maximum size of the whole locale ID
- * (including the terminating NULL and all keywords).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_FULLNAME_CAPACITY 157
-
-/**
- * @brief Useful constant for the maximum size of the script part of a locale ID
- * (including the terminating NULL).
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- * @see i18n_ulocale_get_script()
- */
-#define I18N_ULOCALE_SCRIPT_CAPACITY 6
-
-/**
- * @brief Useful constant for the maximum size of keywords in a locale
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORDS_CAPACITY 96
-
-/**
- * @brief Useful constant for the maximum total size of keywords and their values in a locale
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_AND_VALUES_CAPACITY 100
-
-/**
- * @brief Invariant character separating keywords from the locale string
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_SEPARATOR '@'
-
-/**
- * @brief Unicode code point for '@' separating keywords from the locale string.
- * @since_tizen 3.0
- * @see #I18N_ULOCALE_KEYWORD_SEPARATOR
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_SEPARATOR_UNICODE 0x40
-
-/**
- * @brief Invariant character for assigning value to a keyword
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ASSIGN '='
-
-/**
- * @brief Unicode code point for '=' for assigning value to a keyword.
- * @since_tizen 3.0
- * @see #I18N_ULOCALE_KEYWORD_ASSIGN
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ASSIGN_UNICODE 0x3D
-
-/**
- * @brief Invariant character separating keywords
- * @since_tizen 3.0
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR ';'
-
-/**
- * @brief Unicode code point for ';' separating keywords
- * @since_tizen 3.0
- * @see #I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR
- * @see i18n_ulocale_get_keyword_value()
- */
-#define I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR_UNICODE 0x3B
-
-/**
- * @brief Enumeration for the 'out_result' parameter return value
- * @since_tizen 2.3.1
- *
- * @see i18n_ulocale_accept_language_from_http()
- * @see i18n_ulocale_accept_language()
- */
-typedef enum {
- I18N_ULOCALE_ACCEPT_FAILED = 0, /**< No exact match was found */
- I18N_ULOCALE_ACCEPT_VALID = 1, /**< An exact match was found */
- I18N_ULOCALE_ACCEPT_FALLBACK = 2, /**< A fallback was found, for example,
- accept list contained 'ja_JP' which matched available locale 'ja' */
-} i18n_ulocale_accept_result_e;
-
-/**
- * @brief Enumeration for data locale types.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_ULOCALE_DATA_LOCALE_TYPE_ACTUAL_LOCALE, /**< Actual locale */
- I18N_ULOCALE_DATA_LOCALE_TYPE_VALID_LOCALE, /**< Valid locale */
- I18N_ULOCALE_DATA_LOCALE_TYPE_LIMIT = 3, /**< Locale type limit */
-} i18n_ulocale_data_locale_type_e;
-
-/**
- * @brief Enumeration for the return value for the character and line orientation functions.
- * @since_tizen 2.3.1
- */
-typedef enum {
- I18N_ULOCALE_LAYOUT_LTR = 0, /**< Left-to-right */
- I18N_ULOCALE_LAYOUT_RTL = 1, /**< Right-to-left */
- I18N_ULOCALE_LAYOUT_TTB = 2, /**< Top-to-bottom */
- I18N_ULOCALE_LAYOUT_BTT = 3, /**< Bottom-to-top */
- I18N_ULOCALE_LAYOUT_UNKNOWN /**< Unknown */
-} i18n_ulocale_layout_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USTRING_MODULE
- * @{
- */
-
-/**
- * @brief Callback function for i18n_ustring_unescape_at() that returns a character of the source text given an offset and a context pointer.\n
- * The context pointer will be whatever is passed into i18n_ustring_unescape_at().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] offset pointer to the offset that will be passed to i18n_ustring_unescape_at().
- * @param[in] context an opaque pointer passed directly into i18n_ustring_unescape_at()
- *
- * @retval character the character represented by the escape sequence at offset
- *
- * @see i18n_ustring_unescape_at()
- */
-typedef i18n_uchar(*i18n_ustring_unescape_char_at_cb)(int32_t offset, void *context);
-
-/**
- * @brief Option value for case folding: use default mappings defined in CaseFolding.txt.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USTRING_U_FOLD_CASE_DEFAULT 0
-
-
-/**
- * @brief Option bit i18n_ustring_case_compare_with_length(), i18n_ustring_case_compare(), etc: Compare strings in code point order instead of code unit order.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USTRING_U_COMPARE_CODE_POINT_ORDER 0x8000
-
-/**
- * @brief Option value for case folding: \n
- * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).\n
- * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.\n
- * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-#define I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE
- * @{
- */
-
-/**
- * @brief handle for object that represents a time zone offset, and also figures out daylight savings..
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_timezone_h;
-
-/**
- * @brief Callback function for i18n_timezone_foreach_timezone_id(), i18n_timezone_foreach_timezone_id_with_offset(), and i18n_timezone_foreach_timezone_id_by_country()
- * that returns an enumeration over all recognized time zone IDs.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] timezone_id time zone ID
- * @param[in] user_data the user data passed to the callback function
- *
- * @return @c true to continue with the next iteration of the loop, otherwise @c false to break out of the loop.
- *
- * @see i18n_ustring_unescape_at()
- */
-typedef bool (*i18n_timezone_id_cb)(const char *timezone_id, void *user_data);
-
-/**
- * @brief Enumeration for use with i18n_timezone_get_display_name(), i18n_timezone_get_display_name_with_locale(), and i18n_timezone_get_display_name_with_type().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef enum {
- I18N_TIMEZONE_DISPLAY_TYPE_SHORT = 1, /**< Selector for short display name */
- I18N_TIMEZONE_DISPLAY_TYPE_LONG, /**< Selector for long display name */
- I18N_TIMEZONE_DISPLAY_TYPE_SHORT_GENERIC, /**< Selector for short generic display name */
- I18N_TIMEZONE_DISPLAY_TYPE_LONG_GENERIC, /**< Selector for long generic display name */
- I18N_TIMEZONE_DISPLAY_TYPE_SHORT_GMT, /**< Selector for short display name derived */
- I18N_TIMEZONE_DISPLAY_TYPE_LONG_GMT, /**< Selector for long display name derived from time zone offset */
- I18N_TIMEZONE_DISPLAY_TYPE_SHORT_COMMONLY_USED, /**< Selector for short display name derived from the time zone's fallback name */
- I18N_TIMEZONE_DISPLAY_TYPE_GENERIC_LOCATION /**< Selector for long display name derived from the time zone's fallback name */
-} i18n_timezone_display_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UBRK_MODULE
- * @{
- */
-
-/**
- * @brief i18n_ubreak_iterator_s.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- */
-typedef void *i18n_ubreak_iterator_s;
-
-/**
- * @brief i18n_ubreak_iterator_h.
- * @since_tizen 2.3.1
- */
-typedef void *i18n_ubreak_iterator_h;
-
-/**
- * @deprecated Deprecated since Tizen 3.0
- * @brief A recommended size (in bytes) for the memory buffer to be passed to i18n_ubrk_safe_clone().
- * @since_tizen 2.3.1
- */
-#define I18N_U_BRK_SAFECLONE_BUFFERSIZE 528
-
-/**
- * @brief Value indicating all text boundaries have been returned.
- * @since_tizen 2.3.1
- */
-#define I18N_UBRK_DONE ((int32_t) -1)
-
-/**
- * @brief The possible types of text boundaries.
- * @since_tizen 2.3.1
- *
- */
-typedef enum {
- I18N_UBRK_CHARACTER = 0, /**< Character breaks */
- I18N_UBRK_WORD = 1, /**< Word breaks */
- I18N_UBRK_LINE = 2, /**< Line breaks */
- I18N_UBRK_SENTENCE = 3, /**< Sentence breaks */
-} i18n_ubreak_iterator_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_USET_MODULE
- * @{
- */
-
-/**
- * @brief An #i18n_uset_h handle.
- * @details Use the @c i18n_uset_* API to manipulate. Create with @c i18n_uset_create*, and destroy with i18n_uset_destroy().
- * @since_tizen 2.3.1
- */
-typedef void *i18n_uset_h;
-
-/**
- * @brief Capacity of #i18n_userialized_set_s::static_array.
- * Enough for any single-code point set.
- * @since_tizen 2.3.1
- *
- * @see #i18n_userialized_set_s
- */
-#define I18N_USET_SERIALIZED_STATIC_ARRAY_CAPACITY 8
-
-/**
- * @brief A serialized form of a Unicode set.
- * @since_tizen 2.3.1
- */
-typedef struct {
- const uint16_t *array; /**< The serialized Unicode Set. */
- int32_t bmp_length; /**< The length of the array that contains BMP characters. */
- int32_t length; /**< The total length of the array. */
- uint16_t static_array[I18N_USET_SERIALIZED_STATIC_ARRAY_CAPACITY]; /**< A small buffer for the array to reduce memory allocations. */
-} i18n_userialized_set_s;
-
-
-/**
- * @brief Enumeration for span conditions.
- * @since_tizen 2.3.1
- *
- * @see i18n_uset_span()
- * @see i18n_uset_span_back()
- * @see i18n_uset_span_utf8()
- * @see i18n_uset_span_back_utf8()
- */
-typedef enum {
- I18N_USET_SPAN_NOT_CONTAINED = 0, /**< Continue a span() while there is no set element at the current position.
- Stops before the first set element (character or string).
- (For code points only, this is like while contains(current)==false).
-
- When span() returns, the substring between where it started and the position
- it returned consists only of characters that are not in the set,
- and none of its strings overlap with the span. */
- I18N_USET_SPAN_CONTAINED = 1, /**< Continue a span() while there is a set element at the current position.
- (For characters only, this is like while contains(current)==true).
-
- When span() returns, the substring between where it started and the position
- it returned consists only of set elements (characters or strings) that are in the set.
-
- If a set contains strings, then the span will be the longest substring
- matching any of the possible concatenations of set elements (characters or strings).
- (There must be a single, non-overlapping concatenation of characters or strings.)
- This is equivalent to a POSIX regular expression for (OR of each set element). */
- I18N_USET_SPAN_SIMPLE = 2, /**< Continue a span() while there is a set element at the current position.
- (For characters only, this is like while contains(current)==true).
-
- When span() returns, the substring between where it started and the position
- it returned consists only of set elements (characters or strings) that are in the set.
-
- If a set only contains single characters, then this is the same
- as #I18N_USET_SPAN_CONTAINED.
-
- If a set contains strings, then the span will be the longest substring
- with a match at each position with the longest single set element (character or string). */
- I18N_USET_SPAN_CONDITION_COUNT /**< One more than the last span condition. */
-} i18n_uset_span_condition_e;
-
-
-/**
- * @brief Enumeration for bitmask values to be passed to i18n_uset_pattern_options_create() or i18n_uset_apply_pattern() taking an option parameter.
- * @since_tizen 2.3.1
- */
-enum {
- I18N_USET_IGNORE_SPACE = 1, /**< Ignore white space within patterns unless quoted or escaped. */
- I18N_USET_CASE_INSENSITIVE = 2, /**< Enable case insensitive matching.
- E.g., "[ab]" with this flag will match 'a', 'A', 'b', and 'B'.
- "[^ab]" with this flag will match all except 'a', 'A', 'b', and 'B'.
- This performs a full closure over case mappings, e.g. U+017F for s.
-
- The resulting set is a superset of the input for the code points but not for the strings.
- It performs a case mapping closure of the code points and adds full case folding strings for the code points,
- and reduces strings of the original set to their full case folding equivalents.
-
- This is designed for case-insensitive matches, for example in regular expressions.
- The full code point case closure allows checking of an input character directly against the closure set.
- Strings are matched by comparing the case-folded form from the closure
- set with an incremental case folding of the string in question.
-
- The closure set will also contain single code points if the original
- set contained case-equivalent strings (like U+00DF for "ss" or "Ss" etc.).
- This is not necessary (that is, redundant) for the above matching method
- but results in the same closure sets regardless of whether the original
- set contained the code point or a string. */
-
- I18N_USET_ADD_CASE_MAPPINGS = 4 /**< Enable case insensitive matching.
- E.g., "[ab]" with this flag will match 'a', 'A', 'b', and 'B'.
- "[^ab]" with this flag will match all except 'a', 'A', 'b', and 'B'.
- This adds the lower-, title-, and uppercase mappings as well as the case folding of each existing element in the set. */
-};
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE
- * @{
- */
-
-/**
- * @brief Structure representing an enumeration.
- * @details For usage in C programs.
- * @since_tizen 2.3.1
- */
-typedef void *i18n_uenumeration_h;
-
-/**
- * @}
- */
-
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
- * @{
- */
-
-/**
- * @brief Constants for ISO 15924 script codes.
- * @since_tizen 3.0
- */
-typedef enum {
- I18N_USCRIPT_INVALID_CODE = -1,
- I18N_USCRIPT_COMMON = 0, /**< Zyyy */
- I18N_USCRIPT_INHERITED = 1, /**< Zinh, "Code for inherited script", for non-spacing combining marks; also Qaai */
- I18N_USCRIPT_ARABIC = 2, /**< Arab */
- I18N_USCRIPT_ARMENIAN = 3, /**< Armn */
- I18N_USCRIPT_BENGALI = 4, /**< Beng */
- I18N_USCRIPT_BOPOMOFO = 5, /**< Bopo */
- I18N_USCRIPT_CHEROKEE = 6, /**< Cher */
- I18N_USCRIPT_COPTIC = 7, /**< Copt */
- I18N_USCRIPT_CYRILLIC = 8, /**< Cyrl */
- I18N_USCRIPT_DESERET = 9, /**< Dsrt */
- I18N_USCRIPT_DEVANAGARI = 10, /**< Deva */
- I18N_USCRIPT_ETHIOPIC = 11, /**< Ethi */
- I18N_USCRIPT_GEORGIAN = 12, /**< Geor */
- I18N_USCRIPT_GOTHIC = 13, /**< Goth */
- I18N_USCRIPT_GREEK = 14, /**< Grek */
- I18N_USCRIPT_GUJARATI = 15, /**< Gujr */
- I18N_USCRIPT_GURMUKHI = 16, /**< Guru */
- I18N_USCRIPT_HAN = 17, /**< Hani */
- I18N_USCRIPT_HANGUL = 18, /**< Hang */
- I18N_USCRIPT_HEBREW = 19, /**< Hebr */
- I18N_USCRIPT_HIRAGANA = 20, /**< Hira */
- I18N_USCRIPT_KANNADA = 21, /**< Knda */
- I18N_USCRIPT_KATAKANA = 22, /**< Kana */
- I18N_USCRIPT_KHMER = 23, /**< Khmr */
- I18N_USCRIPT_LAO = 24, /**< Laoo */
- I18N_USCRIPT_LATIN = 25, /**< Latn */
- I18N_USCRIPT_MALAYALAM = 26, /**< Mlym */
- I18N_USCRIPT_MONGOLIAN = 27, /**< Mong */
- I18N_USCRIPT_MYANMAR = 28, /**< Mymr */
- I18N_USCRIPT_OGHAM = 29, /**< Ogam */
- I18N_USCRIPT_OLD_ITALIC = 30, /**< Ital */
- I18N_USCRIPT_ORIYA = 31, /**< Orya */
- I18N_USCRIPT_RUNIC = 32, /**< Runr */
- I18N_USCRIPT_SINHALA = 33, /**< Sinh */
- I18N_USCRIPT_SYRIAC = 34, /**< Syrc */
- I18N_USCRIPT_TAMIL = 35, /**< Taml */
- I18N_USCRIPT_TELUGU = 36, /**< Telu */
- I18N_USCRIPT_THAANA = 37, /**< Thaa */
- I18N_USCRIPT_THAI = 38, /**< Thai */
- I18N_USCRIPT_TIBETAN = 39, /**< Tibt */
- I18N_USCRIPT_CANADIAN_ABORIGINAL = 40, /**< Cans, Canadian_Aboriginal script. */
- I18N_USCRIPT_UCAS = I18N_USCRIPT_CANADIAN_ABORIGINAL, /**< Canadian_Aboriginal script (alias). */
- I18N_USCRIPT_YI = 41, /**< Yiii */
- I18N_USCRIPT_TAGALOG = 42, /**< Tglg */
- I18N_USCRIPT_HANUNOO = 43, /**< Hano */
- I18N_USCRIPT_BUHID = 44, /**< Buhd */
- I18N_USCRIPT_TAGBANWA = 45, /**< Tagb */
- I18N_USCRIPT_BRAILLE = 46, /**< Brai */
- I18N_USCRIPT_CYPRIOT = 47, /**< Cprt */
- I18N_USCRIPT_LIMBU = 48, /**< Limb */
- I18N_USCRIPT_LINEAR_B = 49, /**< Linb */
- I18N_USCRIPT_OSMANYA = 50, /**< Osma */
- I18N_USCRIPT_SHAVIAN = 51, /**< Shaw */
- I18N_USCRIPT_TAI_LE = 52, /**< Tale */
- I18N_USCRIPT_UGARITIC = 53, /**< Ugar */
- I18N_USCRIPT_KATAKANA_OR_HIRAGANA = 54,/**<Hrkt */
- I18N_USCRIPT_BUGINESE = 55, /**< Bugi */
- I18N_USCRIPT_GLAGOLITIC = 56, /**< Glag */
- I18N_USCRIPT_KHAROSHTHI = 57, /**< Khar */
- I18N_USCRIPT_SYLOTI_NAGRI = 58, /**< Sylo */
- I18N_USCRIPT_NEW_TAI_LUE = 59, /**< Talu */
- I18N_USCRIPT_TIFINAGH = 60, /**< Tfng */
- I18N_USCRIPT_OLD_PERSIAN = 61, /**< Xpeo */
- I18N_USCRIPT_BALINESE = 62, /**< Bali */
- I18N_USCRIPT_BATAK = 63, /**< Batk */
- I18N_USCRIPT_BLISSYMBOLS = 64, /**< Blis */
- I18N_USCRIPT_BRAHMI = 65, /**< Brah */
- I18N_USCRIPT_CHAM = 66, /**< Cham */
- I18N_USCRIPT_CIRTH = 67, /**< Cirt */
- I18N_USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC = 68, /**< Cyrs */
- I18N_USCRIPT_DEMOTIC_EGYPTIAN = 69, /**< Egyd */
- I18N_USCRIPT_HIERATIC_EGYPTIAN = 70, /**< Egyh */
- I18N_USCRIPT_EGYPTIAN_HIEROGLYPHS = 71, /**< Egyp */
- I18N_USCRIPT_KHUTSURI = 72, /**< Geok */
- I18N_USCRIPT_SIMPLIFIED_HAN = 73, /**< Hans */
- I18N_USCRIPT_TRADITIONAL_HAN = 74, /**< Hant */
- I18N_USCRIPT_PAHAWH_HMONG = 75, /**< Hmng */
- I18N_USCRIPT_OLD_HUNGARIAN = 76, /**< Hung */
- I18N_USCRIPT_HARAPPAN_INDUS = 77, /**< Inds */
- I18N_USCRIPT_JAVANESE = 78, /**< Java */
- I18N_USCRIPT_KAYAH_LI = 79, /**< Kali */
- I18N_USCRIPT_LATIN_FRAKTUR = 80, /**< Latf */
- I18N_USCRIPT_LATIN_GAELIC = 81, /**< Latg */
- I18N_USCRIPT_LEPCHA = 82, /**< Lepc */
- I18N_USCRIPT_LINEAR_A = 83, /**< Lina */
- I18N_USCRIPT_MANDAIC = 84, /**< Mand */
- I18N_USCRIPT_MANDAEAN = I18N_USCRIPT_MANDAIC,
- I18N_USCRIPT_MAYAN_HIEROGLYPHS = 85, /**< Maya */
- I18N_USCRIPT_MEROITIC_HIEROGLYPHS = 86, /**< Mero */
- I18N_USCRIPT_MEROITIC = I18N_USCRIPT_MEROITIC_HIEROGLYPHS,
- I18N_USCRIPT_NKO = 87, /**< Nkoo */
- I18N_USCRIPT_ORKHON = 88, /**< Orkh */
- I18N_USCRIPT_OLD_PERMIC = 89, /**< Perm */
- I18N_USCRIPT_PHAGS_PA = 90, /**< Phag */
- I18N_USCRIPT_PHOENICIAN = 91, /**< Phnx */
- I18N_USCRIPT_PHONETIC_POLLARD = 92, /**< Plrd */
- I18N_USCRIPT_RONGORONGO = 93, /**< Roro */
- I18N_USCRIPT_SARATI = 94, /**< Sara */
- I18N_USCRIPT_ESTRANGELO_SYRIAC = 95, /**< Syre */
- I18N_USCRIPT_WESTERN_SYRIAC = 96, /**< Syrj */
- I18N_USCRIPT_EASTERN_SYRIAC = 97, /**< Syrn */
- I18N_USCRIPT_TENGWAR = 98, /**< Teng */
- I18N_USCRIPT_VAI = 99, /**< Vaii */
- I18N_USCRIPT_VISIBLE_SPEECH = 100,/**< Visp */
- I18N_USCRIPT_CUNEIFORM = 101,/**< Xsux */
- I18N_USCRIPT_UNWRITTEN_LANGUAGES = 102,/**< Zxxx */
- I18N_USCRIPT_UNKNOWN = 103,/**< Zzzz, Unknown="Code for uncoded script", for unassigned code points */
- I18N_USCRIPT_CARIAN = 104,/**< Cari */
- I18N_USCRIPT_JAPANESE = 105,/**< Jpan */
- I18N_USCRIPT_LANNA = 106,/**< Lana */
- I18N_USCRIPT_LYCIAN = 107,/**< Lyci */
- I18N_USCRIPT_LYDIAN = 108,/**< Lydi */
- I18N_USCRIPT_OL_CHIKI = 109,/**< Olck */
- I18N_USCRIPT_REJANG = 110,/**< Rjng */
- I18N_USCRIPT_SAURASHTRA = 111,/**< Saur */
- I18N_USCRIPT_SIGN_WRITING = 112,/**< Sgnw */
- I18N_USCRIPT_SUNDANESE = 113,/**< Sund */
- I18N_USCRIPT_MOON = 114,/**< Moon */
- I18N_USCRIPT_MEITEI_MAYEK = 115,/**< Mtei */
- I18N_USCRIPT_IMPERIAL_ARAMAIC = 116,/**< Armi */
- I18N_USCRIPT_AVESTAN = 117,/**< Avst */
- I18N_USCRIPT_CHAKMA = 118,/**< Cakm */
- I18N_USCRIPT_KOREAN = 119,/**< Kore */
- I18N_USCRIPT_KAITHI = 120,/**< Kthi */
- I18N_USCRIPT_MANICHAEAN = 121,/**< Mani */
- I18N_USCRIPT_INSCRIPTIONAL_PAHLAVI = 122,/**< Phli */
- I18N_USCRIPT_PSALTER_PAHLAVI = 123,/**< Phlp */
- I18N_USCRIPT_BOOK_PAHLAVI = 124,/**< Phlv */
- I18N_USCRIPT_INSCRIPTIONAL_PARTHIAN = 125,/**< Prti */
- I18N_USCRIPT_SAMARITAN = 126,/**< Samr */
- I18N_USCRIPT_TAI_VIET = 127,/**< Tavt */
- I18N_USCRIPT_MATHEMATICAL_NOTATION = 128,/**< Zmth */
- I18N_USCRIPT_SYMBOLS = 129,/**< Zsym */
- I18N_USCRIPT_BAMUM = 130,/**< Bamu */
- I18N_USCRIPT_LISU = 131,/**< Lisu */
- I18N_USCRIPT_NAKHI_GEBA = 132,/**< Nkgb */
- I18N_USCRIPT_OLD_SOUTH_ARABIAN = 133,/**< Sarb */
- I18N_USCRIPT_BASSA_VAH = 134,/**< Bass */
- I18N_USCRIPT_DUPLOYAN_SHORTAND = 135,/**< Dupl */
- I18N_USCRIPT_ELBASAN = 136,/**< Elba */
- I18N_USCRIPT_GRANTHA = 137,/**< Gran */
- I18N_USCRIPT_KPELLE = 138,/**< Kpel */
- I18N_USCRIPT_LOMA = 139,/**< Loma */
- I18N_USCRIPT_MENDE = 140,/**< Mend */
- I18N_USCRIPT_MEROITIC_CURSIVE = 141,/**< Merc */
- I18N_USCRIPT_OLD_NORTH_ARABIAN = 142,/**< Narb */
- I18N_USCRIPT_NABATAEAN = 143,/**< Nbat */
- I18N_USCRIPT_PALMYRENE = 144,/**< Palm */
- I18N_USCRIPT_SINDHI = 145,/**< Sind */
- I18N_USCRIPT_WARANG_CITI = 146,/**< Wara */
- I18N_USCRIPT_AFAKA = 147,/**< Afak */
- I18N_USCRIPT_JURCHEN = 148,/**< Jurc */
- I18N_USCRIPT_MRO = 149,/**< Mroo */
- I18N_USCRIPT_NUSHU = 150,/**< Nshu */
- I18N_USCRIPT_SHARADA = 151,/**< Shrd */
- I18N_USCRIPT_SORA_SOMPENG = 152,/**< Sora */
- I18N_USCRIPT_TAKRI = 153,/**< Takr */
- I18N_USCRIPT_TANGUT = 154,/**< Tang */
- I18N_USCRIPT_WOLEAI = 155,/**< Wole */
- I18N_USCRIPT_ANATOLIAN_HIEROGLYPHS = 156,/**< Hluw */
- I18N_USCRIPT_KHOJKI = 157,/**< Khoj */
- I18N_USCRIPT_TIRHUTA = 158,/**< Tirh */
- I18N_USCRIPT_CODE_LIMIT = 159 /**< Count of i18n_uscript_code_e enumerators*/
-} i18n_uscript_code_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object of base class for all formats.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_format_h;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_FORMAT_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object that represents a formatter for measure objects.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_measure_format_h;
-
-/**
- * @brief Enumeration for various widths.
- * @since_tizen 2.3.2
- */
-typedef enum {
- I18N_UMEASFMT_WIDTH_WIDE = 0, /**< Spell out measure units */
- I18N_UMEASFMT_WIDTH_SHORT = 1, /**< Abbreviate measure units */
- I18N_UMEASFMT_WIDTH_NARROW = 2, /**< Use symbols for measure units when possible */
- I18N_UMEASFMT_WIDTH_NUMERIC = 3, /**< Completely omit measure units when possible
- For example, format '5 hours, 37 minutes' as '5:37' */
- I18N_UMEASFMT_WIDTH_COUNT = 4, /**< Count of values in this enumeration */
-} i18n_umeasure_format_width_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FORMATTABLE_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object of class used for formatting #i18n_format_h and its subclasses.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_formattable_h;
-
-/**
- * @brief Enumeration for the flavor of data type contained within an #i18n_formattable_h object.
- * @since_tizen 2.3.2
- */
-typedef enum {
- I18N_FORMATTABLE_TYPE_DATE = 0, /**< Selector indicating an #i18n_udate value */
- I18N_FORMATTABLE_TYPE_DOUBLE = 1, /**< Selector indicating a double value */
- I18N_FORMATTABLE_TYPE_LONG = 2, /**< Selector indicating a 32-bit integer value */
- I18N_FORMATTABLE_TYPE_STRING = 3, /**< Selector indicating a string value */
- I18N_FORMATTABLE_TYPE_ARRAY = 4, /**< Selector indicating an array of #i18n_formattable_h */
- I18N_FORMATTABLE_TYPE_INT64 = 5, /**< Selector indicating a 64-bit integer value */
- I18N_FORMATTABLE_TYPE_OBJECT = 6, /**< Selector indicating a generic object value.
- In the current version of the API, such objects
- are not supported and cannot be used. This value
- was added for completeness and possible future extensions. */
-} i18n_formattable_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object that represents an amount of a specified unit.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_measure_h;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_MEASURE_UNIT_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object that represents a unit such as length, mass, volume, currency, etc.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_measure_unit_h;
-
-/**
- * @brief Callback function for the i18n_measure_unit_get_available_types()
- * that returns an enumeration over all recognized types.
- * @since_tizen 2.3.2
- *
- * @param[in] type_id The type ID
- * @param[in] user_data The user data passed to the callback function
- *
- * @return @c true to continue with the next iteration of the loop,
- * otherwise @c false to break out of the loop.
- */
-typedef bool (*i18n_measure_unit_types_cb)(const char *type_id, void *user_data);
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_ALPHA_IDX_MODULE
- * @{
- */
-
-/**
- * @brief The Alphabetic index handle.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_alpha_idx_h;
-
-/**
- * @brief Enumeration for alphabetic index label types.
- * @since_tizen 2.3.2
- *
- * @see i18n_alpha_idx_get_bucket_label_type()
- */
-typedef enum {
- /**
- * Normal Label, typically the starting letter of the names in the bucket with this label.
- */
- I18N_ALPHA_IDX_NORMAL,
-
- /**
- * Underflow Label.
- *
- * The bucket with this label contains names in scripts that sort before any
- * of the bucket labels in this index.
- */
- I18N_ALPHA_IDX_UNDERFLOW,
-
- /**
- * Inflow Label.
- *
- * The bucket with this label contains names in scripts that sort between
- * two of the bucket labels in this index. Inflow labels are created when
- * an index contains normal labels for multiple scripts, and skips other
- * scripts that sort between some of the included scripts.
- */
- I18N_ALPHA_IDX_INFLOW,
-
- /**
- * Overflow Label.
- *
- * The bucket with this label contains names in scripts that sort after
- * all of the bucket labels in this index.
- */
- I18N_ALPHA_IDX_OVERFLOW,
-} i18n_alpha_idx_label_type_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_FIELD_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object of class used by the #i18n_format_h and its subclasses to identify fields in a formatted output.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_field_position_h;
-
-/**
- * @brief DONT_CARE may be specified as the field to indicate that the caller doesn't need to specify a field.
- * @since_tizen 2.3.2
- */
-typedef enum {
- I18N_FIELD_POSITION_DONT_CARE = -1,
-} i18n_field_position_dont_care_e;
-
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_BASE_UTILS_I18N_PARSE_POSITION_MODULE
- * @{
- */
-
-/**
- * @brief Handle to the object used by the Format and its subtypes to keep track of the current position during parsing.
- * @since_tizen 2.3.2
- */
-typedef void *i18n_parse_position_h;
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __UTILS_I18N_TYPES_H__*/