17777dab0Sopenharmony_ci// © 2016 and later: Unicode, Inc. and others.
27777dab0Sopenharmony_ci// License & terms of use: http://www.unicode.org/copyright.html
37777dab0Sopenharmony_ci/*
47777dab0Sopenharmony_ci**********************************************************************
57777dab0Sopenharmony_ci*   Copyright (C) 2002-2016, International Business Machines
67777dab0Sopenharmony_ci*   Corporation and others.  All Rights Reserved.
77777dab0Sopenharmony_ci**********************************************************************
87777dab0Sopenharmony_ci*   file name:  uconfig.h
97777dab0Sopenharmony_ci*   encoding:   UTF-8
107777dab0Sopenharmony_ci*   tab size:   8 (not used)
117777dab0Sopenharmony_ci*   indentation:4
127777dab0Sopenharmony_ci*
137777dab0Sopenharmony_ci*   created on: 2002sep19
147777dab0Sopenharmony_ci*   created by: Markus W. Scherer
157777dab0Sopenharmony_ci*/
167777dab0Sopenharmony_ci
177777dab0Sopenharmony_ci#ifndef __UCONFIG_H__
187777dab0Sopenharmony_ci#define __UCONFIG_H__
197777dab0Sopenharmony_ci
207777dab0Sopenharmony_ci// ohos icu configs
217777dab0Sopenharmony_ci#define U_DISABLE_RENAMING 1
227777dab0Sopenharmony_ci#define U_HIDE_DRAFT_API 1
237777dab0Sopenharmony_ci#define U_HIDE_DEPRECATED_API 1
247777dab0Sopenharmony_ci#define U_SHOW_CPLUSPLUS_API 0
257777dab0Sopenharmony_ci#define U_HIDE_INTERNAL_API 1
267777dab0Sopenharmony_ci#define U_HIDE_OBSOLETE_UTF_OLD_H 1
277777dab0Sopenharmony_ci#define LIBICU_U_SHOW_CPLUSPLUS_API 0
287777dab0Sopenharmony_ci
297777dab0Sopenharmony_ci/*!
307777dab0Sopenharmony_ci * \file
317777dab0Sopenharmony_ci * \brief User-configurable settings
327777dab0Sopenharmony_ci *
337777dab0Sopenharmony_ci * Miscellaneous switches:
347777dab0Sopenharmony_ci *
357777dab0Sopenharmony_ci * A number of macros affect a variety of minor aspects of ICU.
367777dab0Sopenharmony_ci * Most of them used to be defined elsewhere (e.g., in utypes.h or platform.h)
377777dab0Sopenharmony_ci * and moved here to make them easier to find.
387777dab0Sopenharmony_ci *
397777dab0Sopenharmony_ci * Switches for excluding parts of ICU library code modules:
407777dab0Sopenharmony_ci *
417777dab0Sopenharmony_ci * Changing these macros allows building partial, smaller libraries for special purposes.
427777dab0Sopenharmony_ci * By default, all modules are built.
437777dab0Sopenharmony_ci * The switches are fairly coarse, controlling large modules.
447777dab0Sopenharmony_ci * Basic services cannot be turned off.
457777dab0Sopenharmony_ci *
467777dab0Sopenharmony_ci * Building with any of these options does not guarantee that the
477777dab0Sopenharmony_ci * ICU build process will completely work. It is recommended that
487777dab0Sopenharmony_ci * the ICU libraries and data be built using the normal build.
497777dab0Sopenharmony_ci * At that time you should remove the data used by those services.
507777dab0Sopenharmony_ci * After building the ICU data library, you should rebuild the ICU
517777dab0Sopenharmony_ci * libraries with these switches customized to your needs.
527777dab0Sopenharmony_ci *
537777dab0Sopenharmony_ci * @stable ICU 2.4
547777dab0Sopenharmony_ci */
557777dab0Sopenharmony_ci
567777dab0Sopenharmony_ci/**
577777dab0Sopenharmony_ci * If this switch is defined, ICU will attempt to load a header file named "uconfig_local.h"
587777dab0Sopenharmony_ci * prior to determining default settings for uconfig variables.
597777dab0Sopenharmony_ci *
607777dab0Sopenharmony_ci * @internal ICU 4.0
617777dab0Sopenharmony_ci */
627777dab0Sopenharmony_ci#if defined(UCONFIG_USE_LOCAL)
637777dab0Sopenharmony_ci#include "uconfig_local.h"
647777dab0Sopenharmony_ci#endif
657777dab0Sopenharmony_ci
667777dab0Sopenharmony_ci/**
677777dab0Sopenharmony_ci * \def U_DEBUG
687777dab0Sopenharmony_ci * Determines whether to include debugging code.
697777dab0Sopenharmony_ci * Automatically set on Windows, but most compilers do not have
707777dab0Sopenharmony_ci * related predefined macros.
717777dab0Sopenharmony_ci * @internal
727777dab0Sopenharmony_ci */
737777dab0Sopenharmony_ci#ifdef U_DEBUG
747777dab0Sopenharmony_ci    /* Use the predefined value. */
757777dab0Sopenharmony_ci#elif defined(_DEBUG)
767777dab0Sopenharmony_ci    /*
777777dab0Sopenharmony_ci     * _DEBUG is defined by Visual Studio debug compilation.
787777dab0Sopenharmony_ci     * Do *not* test for its NDEBUG macro: It is an orthogonal macro
797777dab0Sopenharmony_ci     * which disables assert().
807777dab0Sopenharmony_ci     */
817777dab0Sopenharmony_ci#   define U_DEBUG 1
827777dab0Sopenharmony_ci# else
837777dab0Sopenharmony_ci#   define U_DEBUG 0
847777dab0Sopenharmony_ci#endif
857777dab0Sopenharmony_ci
867777dab0Sopenharmony_ci/**
877777dab0Sopenharmony_ci * Determines whether to enable auto cleanup of libraries.
887777dab0Sopenharmony_ci * @internal
897777dab0Sopenharmony_ci */
907777dab0Sopenharmony_ci#ifndef UCLN_NO_AUTO_CLEANUP
917777dab0Sopenharmony_ci#define UCLN_NO_AUTO_CLEANUP 1
927777dab0Sopenharmony_ci#endif
937777dab0Sopenharmony_ci
947777dab0Sopenharmony_ci/**
957777dab0Sopenharmony_ci * \def U_NO_DEFAULT_INCLUDE_UTF_HEADERS
967777dab0Sopenharmony_ci * Determines whether utypes.h includes utf.h, utf8.h, utf16.h and utf_old.h.
977777dab0Sopenharmony_ci * utypes.h includes those headers if this macro is defined to 0.
987777dab0Sopenharmony_ci * Otherwise, each those headers must be included explicitly when using one of their macros.
997777dab0Sopenharmony_ci * Defaults to 0 for backward compatibility, except inside ICU.
1007777dab0Sopenharmony_ci * @stable ICU 49
1017777dab0Sopenharmony_ci */
1027777dab0Sopenharmony_ci#define U_NO_DEFAULT_INCLUDE_UTF_HEADERS 0
1037777dab0Sopenharmony_ci
1047777dab0Sopenharmony_ci/**
1057777dab0Sopenharmony_ci * \def U_OVERRIDE_CXX_ALLOCATION
1067777dab0Sopenharmony_ci * Determines whether to override new and delete.
1077777dab0Sopenharmony_ci * ICU is normally built such that all of its C++ classes, via their UMemory base,
1087777dab0Sopenharmony_ci * override operators new and delete to use its internal, customizable,
1097777dab0Sopenharmony_ci * non-exception-throwing memory allocation functions. (Default value 1 for this macro.)
1107777dab0Sopenharmony_ci *
1117777dab0Sopenharmony_ci * This is especially important when the application and its libraries use multiple heaps.
1127777dab0Sopenharmony_ci * For example, on Windows, this allows the ICU DLL to be used by
1137777dab0Sopenharmony_ci * applications that statically link the C Runtime library.
1147777dab0Sopenharmony_ci *
1157777dab0Sopenharmony_ci * @stable ICU 2.2
1167777dab0Sopenharmony_ci */
1177777dab0Sopenharmony_ci#ifndef U_OVERRIDE_CXX_ALLOCATION
1187777dab0Sopenharmony_ci#define U_OVERRIDE_CXX_ALLOCATION 1
1197777dab0Sopenharmony_ci#endif
1207777dab0Sopenharmony_ci
1217777dab0Sopenharmony_ci/**
1227777dab0Sopenharmony_ci * \def U_ENABLE_TRACING
1237777dab0Sopenharmony_ci * Determines whether to enable tracing.
1247777dab0Sopenharmony_ci * @internal
1257777dab0Sopenharmony_ci */
1267777dab0Sopenharmony_ci#ifndef U_ENABLE_TRACING
1277777dab0Sopenharmony_ci#define U_ENABLE_TRACING 0
1287777dab0Sopenharmony_ci#endif
1297777dab0Sopenharmony_ci
1307777dab0Sopenharmony_ci/**
1317777dab0Sopenharmony_ci * \def UCONFIG_ENABLE_PLUGINS
1327777dab0Sopenharmony_ci * Determines whether to enable ICU plugins.
1337777dab0Sopenharmony_ci * @internal
1347777dab0Sopenharmony_ci */
1357777dab0Sopenharmony_ci#ifndef UCONFIG_ENABLE_PLUGINS
1367777dab0Sopenharmony_ci#define UCONFIG_ENABLE_PLUGINS 0
1377777dab0Sopenharmony_ci#endif
1387777dab0Sopenharmony_ci
1397777dab0Sopenharmony_ci/**
1407777dab0Sopenharmony_ci * \def U_ENABLE_DYLOAD
1417777dab0Sopenharmony_ci * Whether to enable Dynamic loading in ICU.
1427777dab0Sopenharmony_ci * @internal
1437777dab0Sopenharmony_ci */
1447777dab0Sopenharmony_ci#ifndef U_ENABLE_DYLOAD
1457777dab0Sopenharmony_ci#define U_ENABLE_DYLOAD 1
1467777dab0Sopenharmony_ci#endif
1477777dab0Sopenharmony_ci
1487777dab0Sopenharmony_ci/**
1497777dab0Sopenharmony_ci * \def U_CHECK_DYLOAD
1507777dab0Sopenharmony_ci * Whether to test Dynamic loading as an OS capability.
1517777dab0Sopenharmony_ci * @internal
1527777dab0Sopenharmony_ci */
1537777dab0Sopenharmony_ci#ifndef U_CHECK_DYLOAD
1547777dab0Sopenharmony_ci#define U_CHECK_DYLOAD 1
1557777dab0Sopenharmony_ci#endif
1567777dab0Sopenharmony_ci
1577777dab0Sopenharmony_ci/**
1587777dab0Sopenharmony_ci * \def U_DEFAULT_SHOW_DRAFT
1597777dab0Sopenharmony_ci * Do we allow ICU users to use the draft APIs by default?
1607777dab0Sopenharmony_ci * @internal
1617777dab0Sopenharmony_ci */
1627777dab0Sopenharmony_ci#ifndef U_DEFAULT_SHOW_DRAFT
1637777dab0Sopenharmony_ci#define U_DEFAULT_SHOW_DRAFT 1
1647777dab0Sopenharmony_ci#endif
1657777dab0Sopenharmony_ci
1667777dab0Sopenharmony_ci/*===========================================================================*/
1677777dab0Sopenharmony_ci/* Custom icu entry point renaming                                           */
1687777dab0Sopenharmony_ci/*===========================================================================*/
1697777dab0Sopenharmony_ci
1707777dab0Sopenharmony_ci/**
1717777dab0Sopenharmony_ci * \def U_HAVE_LIB_SUFFIX
1727777dab0Sopenharmony_ci * 1 if a custom library suffix is set.
1737777dab0Sopenharmony_ci * @internal
1747777dab0Sopenharmony_ci */
1757777dab0Sopenharmony_ci#ifdef U_HAVE_LIB_SUFFIX
1767777dab0Sopenharmony_ci    /* Use the predefined value. */
1777777dab0Sopenharmony_ci#elif defined(U_LIB_SUFFIX_C_NAME) || defined(U_IN_DOXYGEN)
1787777dab0Sopenharmony_ci#   define U_HAVE_LIB_SUFFIX 1
1797777dab0Sopenharmony_ci#endif
1807777dab0Sopenharmony_ci
1817777dab0Sopenharmony_ci/**
1827777dab0Sopenharmony_ci * \def U_LIB_SUFFIX_C_NAME_STRING
1837777dab0Sopenharmony_ci * Defines the library suffix as a string with C syntax.
1847777dab0Sopenharmony_ci * @internal
1857777dab0Sopenharmony_ci */
1867777dab0Sopenharmony_ci#ifdef U_LIB_SUFFIX_C_NAME_STRING
1877777dab0Sopenharmony_ci    /* Use the predefined value. */
1887777dab0Sopenharmony_ci#elif defined(U_LIB_SUFFIX_C_NAME)
1897777dab0Sopenharmony_ci#   define CONVERT_TO_STRING(s) #s
1907777dab0Sopenharmony_ci#   define U_LIB_SUFFIX_C_NAME_STRING CONVERT_TO_STRING(U_LIB_SUFFIX_C_NAME)
1917777dab0Sopenharmony_ci#else
1927777dab0Sopenharmony_ci#   define U_LIB_SUFFIX_C_NAME_STRING ""
1937777dab0Sopenharmony_ci#endif
1947777dab0Sopenharmony_ci
1957777dab0Sopenharmony_ci/* common/i18n library switches --------------------------------------------- */
1967777dab0Sopenharmony_ci
1977777dab0Sopenharmony_ci/**
1987777dab0Sopenharmony_ci * \def UCONFIG_ONLY_COLLATION
1997777dab0Sopenharmony_ci * This switch turns off modules that are not needed for collation.
2007777dab0Sopenharmony_ci *
2017777dab0Sopenharmony_ci * It does not turn off legacy conversion because that is necessary
2027777dab0Sopenharmony_ci * for ICU to work on EBCDIC platforms (for the default converter).
2037777dab0Sopenharmony_ci * If you want "only collation" and do not build for EBCDIC,
2047777dab0Sopenharmony_ci * then you can define UCONFIG_NO_CONVERSION or UCONFIG_NO_LEGACY_CONVERSION to 1 as well.
2057777dab0Sopenharmony_ci *
2067777dab0Sopenharmony_ci * @stable ICU 2.4
2077777dab0Sopenharmony_ci */
2087777dab0Sopenharmony_ci#ifndef UCONFIG_ONLY_COLLATION
2097777dab0Sopenharmony_ci#   define UCONFIG_ONLY_COLLATION 0
2107777dab0Sopenharmony_ci#endif
2117777dab0Sopenharmony_ci
2127777dab0Sopenharmony_ci#if UCONFIG_ONLY_COLLATION
2137777dab0Sopenharmony_ci    /* common library */
2147777dab0Sopenharmony_ci#   define UCONFIG_NO_BREAK_ITERATION 1
2157777dab0Sopenharmony_ci#   define UCONFIG_NO_IDNA 1
2167777dab0Sopenharmony_ci
2177777dab0Sopenharmony_ci    /* i18n library */
2187777dab0Sopenharmony_ci#   if UCONFIG_NO_COLLATION
2197777dab0Sopenharmony_ci#       error Contradictory collation switches in uconfig.h.
2207777dab0Sopenharmony_ci#   endif
2217777dab0Sopenharmony_ci#   define UCONFIG_NO_FORMATTING 1
2227777dab0Sopenharmony_ci#   define UCONFIG_NO_TRANSLITERATION 1
2237777dab0Sopenharmony_ci#   define UCONFIG_NO_REGULAR_EXPRESSIONS 1
2247777dab0Sopenharmony_ci#endif
2257777dab0Sopenharmony_ci
2267777dab0Sopenharmony_ci/* common library switches -------------------------------------------------- */
2277777dab0Sopenharmony_ci
2287777dab0Sopenharmony_ci/**
2297777dab0Sopenharmony_ci * \def UCONFIG_NO_FILE_IO
2307777dab0Sopenharmony_ci * This switch turns off all file access in the common library
2317777dab0Sopenharmony_ci * where file access is only used for data loading.
2327777dab0Sopenharmony_ci * ICU data must then be provided in the form of a data DLL (or with an
2337777dab0Sopenharmony_ci * equivalent way to link to the data residing in an executable,
2347777dab0Sopenharmony_ci * as in building a combined library with both the common library's code and
2357777dab0Sopenharmony_ci * the data), or via udata_setCommonData().
2367777dab0Sopenharmony_ci * Application data must be provided via udata_setAppData() or by using
2377777dab0Sopenharmony_ci * "open" functions that take pointers to data, for example ucol_openBinary().
2387777dab0Sopenharmony_ci *
2397777dab0Sopenharmony_ci * File access is not used at all in the i18n library.
2407777dab0Sopenharmony_ci *
2417777dab0Sopenharmony_ci * File access cannot be turned off for the icuio library or for the ICU
2427777dab0Sopenharmony_ci * test suites and ICU tools.
2437777dab0Sopenharmony_ci *
2447777dab0Sopenharmony_ci * @stable ICU 3.6
2457777dab0Sopenharmony_ci */
2467777dab0Sopenharmony_ci#ifndef UCONFIG_NO_FILE_IO
2477777dab0Sopenharmony_ci#   define UCONFIG_NO_FILE_IO 0
2487777dab0Sopenharmony_ci#endif
2497777dab0Sopenharmony_ci
2507777dab0Sopenharmony_ci#if UCONFIG_NO_FILE_IO && defined(U_TIMEZONE_FILES_DIR)
2517777dab0Sopenharmony_ci#   error Contradictory file io switches in uconfig.h.
2527777dab0Sopenharmony_ci#endif
2537777dab0Sopenharmony_ci
2547777dab0Sopenharmony_ci/**
2557777dab0Sopenharmony_ci * \def UCONFIG_NO_CONVERSION
2567777dab0Sopenharmony_ci * ICU will not completely build (compiling the tools fails) with this
2577777dab0Sopenharmony_ci * switch turned on.
2587777dab0Sopenharmony_ci * This switch turns off all converters.
2597777dab0Sopenharmony_ci *
2607777dab0Sopenharmony_ci * You may want to use this together with U_CHARSET_IS_UTF8 defined to 1
2617777dab0Sopenharmony_ci * in utypes.h if char* strings in your environment are always in UTF-8.
2627777dab0Sopenharmony_ci *
2637777dab0Sopenharmony_ci * @stable ICU 3.2
2647777dab0Sopenharmony_ci * @see U_CHARSET_IS_UTF8
2657777dab0Sopenharmony_ci */
2667777dab0Sopenharmony_ci#ifndef UCONFIG_NO_CONVERSION
2677777dab0Sopenharmony_ci#   define UCONFIG_NO_CONVERSION 0
2687777dab0Sopenharmony_ci#endif
2697777dab0Sopenharmony_ci
2707777dab0Sopenharmony_ci#if UCONFIG_NO_CONVERSION
2717777dab0Sopenharmony_ci#   define UCONFIG_NO_LEGACY_CONVERSION 1
2727777dab0Sopenharmony_ci#endif
2737777dab0Sopenharmony_ci
2747777dab0Sopenharmony_ci/**
2757777dab0Sopenharmony_ci * \def UCONFIG_ONLY_HTML_CONVERSION
2767777dab0Sopenharmony_ci * This switch turns off all of the converters NOT listed in
2777777dab0Sopenharmony_ci * the HTML encoding standard:
2787777dab0Sopenharmony_ci * http://www.w3.org/TR/encoding/#names-and-labels
2797777dab0Sopenharmony_ci *
2807777dab0Sopenharmony_ci * This is not possible on EBCDIC platforms
2817777dab0Sopenharmony_ci * because they need ibm-37 or ibm-1047 default converters.
2827777dab0Sopenharmony_ci *
2837777dab0Sopenharmony_ci * @stable ICU 55
2847777dab0Sopenharmony_ci */
2857777dab0Sopenharmony_ci#ifndef UCONFIG_ONLY_HTML_CONVERSION
2867777dab0Sopenharmony_ci#   define UCONFIG_ONLY_HTML_CONVERSION 0
2877777dab0Sopenharmony_ci#endif
2887777dab0Sopenharmony_ci
2897777dab0Sopenharmony_ci/**
2907777dab0Sopenharmony_ci * \def UCONFIG_NO_LEGACY_CONVERSION
2917777dab0Sopenharmony_ci * This switch turns off all converters except for
2927777dab0Sopenharmony_ci * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1)
2937777dab0Sopenharmony_ci * - US-ASCII
2947777dab0Sopenharmony_ci * - ISO-8859-1
2957777dab0Sopenharmony_ci *
2967777dab0Sopenharmony_ci * Turning off legacy conversion is not possible on EBCDIC platforms
2977777dab0Sopenharmony_ci * because they need ibm-37 or ibm-1047 default converters.
2987777dab0Sopenharmony_ci *
2997777dab0Sopenharmony_ci * @stable ICU 2.4
3007777dab0Sopenharmony_ci */
3017777dab0Sopenharmony_ci#ifndef UCONFIG_NO_LEGACY_CONVERSION
3027777dab0Sopenharmony_ci#   define UCONFIG_NO_LEGACY_CONVERSION 0
3037777dab0Sopenharmony_ci#endif
3047777dab0Sopenharmony_ci
3057777dab0Sopenharmony_ci/**
3067777dab0Sopenharmony_ci * \def UCONFIG_NO_NORMALIZATION
3077777dab0Sopenharmony_ci * This switch turns off normalization.
3087777dab0Sopenharmony_ci * It implies turning off several other services as well, for example
3097777dab0Sopenharmony_ci * collation and IDNA.
3107777dab0Sopenharmony_ci *
3117777dab0Sopenharmony_ci * @stable ICU 2.6
3127777dab0Sopenharmony_ci */
3137777dab0Sopenharmony_ci#ifndef UCONFIG_NO_NORMALIZATION
3147777dab0Sopenharmony_ci#   define UCONFIG_NO_NORMALIZATION 0
3157777dab0Sopenharmony_ci#endif
3167777dab0Sopenharmony_ci
3177777dab0Sopenharmony_ci#if UCONFIG_NO_NORMALIZATION
3187777dab0Sopenharmony_ci    /* common library */
3197777dab0Sopenharmony_ci    /* ICU 50 CJK dictionary BreakIterator uses normalization */
3207777dab0Sopenharmony_ci#   define UCONFIG_NO_BREAK_ITERATION 1
3217777dab0Sopenharmony_ci    /* IDNA (UTS #46) is implemented via normalization */
3227777dab0Sopenharmony_ci#   define UCONFIG_NO_IDNA 1
3237777dab0Sopenharmony_ci
3247777dab0Sopenharmony_ci    /* i18n library */
3257777dab0Sopenharmony_ci#   if UCONFIG_ONLY_COLLATION
3267777dab0Sopenharmony_ci#       error Contradictory collation switches in uconfig.h.
3277777dab0Sopenharmony_ci#   endif
3287777dab0Sopenharmony_ci#   define UCONFIG_NO_COLLATION 1
3297777dab0Sopenharmony_ci#   define UCONFIG_NO_TRANSLITERATION 1
3307777dab0Sopenharmony_ci#endif
3317777dab0Sopenharmony_ci
3327777dab0Sopenharmony_ci/**
3337777dab0Sopenharmony_ci * \def UCONFIG_NO_BREAK_ITERATION
3347777dab0Sopenharmony_ci * This switch turns off break iteration.
3357777dab0Sopenharmony_ci *
3367777dab0Sopenharmony_ci * @stable ICU 2.4
3377777dab0Sopenharmony_ci */
3387777dab0Sopenharmony_ci#ifndef UCONFIG_NO_BREAK_ITERATION
3397777dab0Sopenharmony_ci#   define UCONFIG_NO_BREAK_ITERATION 0
3407777dab0Sopenharmony_ci#endif
3417777dab0Sopenharmony_ci
3427777dab0Sopenharmony_ci/**
3437777dab0Sopenharmony_ci * \def UCONFIG_NO_IDNA
3447777dab0Sopenharmony_ci * This switch turns off IDNA.
3457777dab0Sopenharmony_ci *
3467777dab0Sopenharmony_ci * @stable ICU 2.6
3477777dab0Sopenharmony_ci */
3487777dab0Sopenharmony_ci#ifndef UCONFIG_NO_IDNA
3497777dab0Sopenharmony_ci#   define UCONFIG_NO_IDNA 0
3507777dab0Sopenharmony_ci#endif
3517777dab0Sopenharmony_ci
3527777dab0Sopenharmony_ci/**
3537777dab0Sopenharmony_ci * \def UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE
3547777dab0Sopenharmony_ci * Determines the default UMessagePatternApostropheMode.
3557777dab0Sopenharmony_ci * See the documentation for that enum.
3567777dab0Sopenharmony_ci *
3577777dab0Sopenharmony_ci * @stable ICU 4.8
3587777dab0Sopenharmony_ci */
3597777dab0Sopenharmony_ci#ifndef UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE
3607777dab0Sopenharmony_ci#   define UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE UMSGPAT_APOS_DOUBLE_OPTIONAL
3617777dab0Sopenharmony_ci#endif
3627777dab0Sopenharmony_ci
3637777dab0Sopenharmony_ci/**
3647777dab0Sopenharmony_ci * \def UCONFIG_USE_WINDOWS_LCID_MAPPING_API
3657777dab0Sopenharmony_ci * On platforms where U_PLATFORM_HAS_WIN32_API is true, this switch determines
3667777dab0Sopenharmony_ci * if the Windows platform APIs are used for LCID<->Locale Name conversions.
3677777dab0Sopenharmony_ci * Otherwise, only the built-in ICU tables are used.
3687777dab0Sopenharmony_ci *
3697777dab0Sopenharmony_ci * @internal ICU 64
3707777dab0Sopenharmony_ci */
3717777dab0Sopenharmony_ci#ifndef UCONFIG_USE_WINDOWS_LCID_MAPPING_API
3727777dab0Sopenharmony_ci#   define UCONFIG_USE_WINDOWS_LCID_MAPPING_API 1
3737777dab0Sopenharmony_ci#endif
3747777dab0Sopenharmony_ci
3757777dab0Sopenharmony_ci/* i18n library switches ---------------------------------------------------- */
3767777dab0Sopenharmony_ci
3777777dab0Sopenharmony_ci/**
3787777dab0Sopenharmony_ci * \def UCONFIG_NO_COLLATION
3797777dab0Sopenharmony_ci * This switch turns off collation and collation-based string search.
3807777dab0Sopenharmony_ci *
3817777dab0Sopenharmony_ci * @stable ICU 2.4
3827777dab0Sopenharmony_ci */
3837777dab0Sopenharmony_ci#ifndef UCONFIG_NO_COLLATION
3847777dab0Sopenharmony_ci#   define UCONFIG_NO_COLLATION 0
3857777dab0Sopenharmony_ci#endif
3867777dab0Sopenharmony_ci
3877777dab0Sopenharmony_ci/**
3887777dab0Sopenharmony_ci * \def UCONFIG_NO_FORMATTING
3897777dab0Sopenharmony_ci * This switch turns off formatting and calendar/timezone services.
3907777dab0Sopenharmony_ci *
3917777dab0Sopenharmony_ci * @stable ICU 2.4
3927777dab0Sopenharmony_ci */
3937777dab0Sopenharmony_ci#ifndef UCONFIG_NO_FORMATTING
3947777dab0Sopenharmony_ci#   define UCONFIG_NO_FORMATTING 0
3957777dab0Sopenharmony_ci#endif
3967777dab0Sopenharmony_ci
3977777dab0Sopenharmony_ci/**
3987777dab0Sopenharmony_ci * \def UCONFIG_NO_TRANSLITERATION
3997777dab0Sopenharmony_ci * This switch turns off transliteration.
4007777dab0Sopenharmony_ci *
4017777dab0Sopenharmony_ci * @stable ICU 2.4
4027777dab0Sopenharmony_ci */
4037777dab0Sopenharmony_ci#ifndef UCONFIG_NO_TRANSLITERATION
4047777dab0Sopenharmony_ci#   define UCONFIG_NO_TRANSLITERATION 0
4057777dab0Sopenharmony_ci#endif
4067777dab0Sopenharmony_ci
4077777dab0Sopenharmony_ci/**
4087777dab0Sopenharmony_ci * \def UCONFIG_NO_REGULAR_EXPRESSIONS
4097777dab0Sopenharmony_ci * This switch turns off regular expressions.
4107777dab0Sopenharmony_ci *
4117777dab0Sopenharmony_ci * @stable ICU 2.4
4127777dab0Sopenharmony_ci */
4137777dab0Sopenharmony_ci#ifndef UCONFIG_NO_REGULAR_EXPRESSIONS
4147777dab0Sopenharmony_ci#   define UCONFIG_NO_REGULAR_EXPRESSIONS 0
4157777dab0Sopenharmony_ci#endif
4167777dab0Sopenharmony_ci
4177777dab0Sopenharmony_ci/**
4187777dab0Sopenharmony_ci * \def UCONFIG_NO_SERVICE
4197777dab0Sopenharmony_ci * This switch turns off service registration.
4207777dab0Sopenharmony_ci *
4217777dab0Sopenharmony_ci * @stable ICU 3.2
4227777dab0Sopenharmony_ci */
4237777dab0Sopenharmony_ci#ifndef UCONFIG_NO_SERVICE
4247777dab0Sopenharmony_ci#   define UCONFIG_NO_SERVICE 0
4257777dab0Sopenharmony_ci#endif
4267777dab0Sopenharmony_ci
4277777dab0Sopenharmony_ci/**
4287777dab0Sopenharmony_ci * \def UCONFIG_HAVE_PARSEALLINPUT
4297777dab0Sopenharmony_ci * This switch turns on the "parse all input" attribute. Binary incompatible.
4307777dab0Sopenharmony_ci *
4317777dab0Sopenharmony_ci * @internal
4327777dab0Sopenharmony_ci */
4337777dab0Sopenharmony_ci#ifndef UCONFIG_HAVE_PARSEALLINPUT
4347777dab0Sopenharmony_ci#   define UCONFIG_HAVE_PARSEALLINPUT 1
4357777dab0Sopenharmony_ci#endif
4367777dab0Sopenharmony_ci
4377777dab0Sopenharmony_ci/**
4387777dab0Sopenharmony_ci * \def UCONFIG_NO_FILTERED_BREAK_ITERATION
4397777dab0Sopenharmony_ci * This switch turns off filtered break iteration code.
4407777dab0Sopenharmony_ci *
4417777dab0Sopenharmony_ci * @internal
4427777dab0Sopenharmony_ci */
4437777dab0Sopenharmony_ci#ifndef UCONFIG_NO_FILTERED_BREAK_ITERATION
4447777dab0Sopenharmony_ci#   define UCONFIG_NO_FILTERED_BREAK_ITERATION 0
4457777dab0Sopenharmony_ci#endif
4467777dab0Sopenharmony_ci
4477777dab0Sopenharmony_ci#endif  // __UCONFIG_H__
448