<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ICU 3.6: utypes.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.7 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="classes.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <h1>utypes.h</h1><a href="utypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment">**********************************************************************</span> <a name="l00003"></a>00003 <span class="comment">* Copyright (C) 1996-2006, International Business Machines</span> <a name="l00004"></a>00004 <span class="comment">* Corporation and others. All Rights Reserved.</span> <a name="l00005"></a>00005 <span class="comment">**********************************************************************</span> <a name="l00006"></a>00006 <span class="comment">*</span> <a name="l00007"></a>00007 <span class="comment">* FILE NAME : UTYPES.H (formerly ptypes.h)</span> <a name="l00008"></a>00008 <span class="comment">*</span> <a name="l00009"></a>00009 <span class="comment">* Date Name Description</span> <a name="l00010"></a>00010 <span class="comment">* 12/11/96 helena Creation.</span> <a name="l00011"></a>00011 <span class="comment">* 02/27/97 aliu Added typedefs for UClassID, int8, int16, int32,</span> <a name="l00012"></a>00012 <span class="comment">* uint8, uint16, and uint32.</span> <a name="l00013"></a>00013 <span class="comment">* 04/01/97 aliu Added XP_CPLUSPLUS and modified to work under C as</span> <a name="l00014"></a>00014 <span class="comment">* well as C++.</span> <a name="l00015"></a>00015 <span class="comment">* Modified to use memcpy() for uprv_arrayCopy() fns.</span> <a name="l00016"></a>00016 <span class="comment">* 04/14/97 aliu Added TPlatformUtilities.</span> <a name="l00017"></a>00017 <span class="comment">* 05/07/97 aliu Added import/export specifiers (replacing the old</span> <a name="l00018"></a>00018 <span class="comment">* broken EXT_CLASS). Added version number for our</span> <a name="l00019"></a>00019 <span class="comment">* code. Cleaned up header.</span> <a name="l00020"></a>00020 <span class="comment">* 6/20/97 helena Java class name change.</span> <a name="l00021"></a>00021 <span class="comment">* 08/11/98 stephen UErrorCode changed from typedef to enum</span> <a name="l00022"></a>00022 <span class="comment">* 08/12/98 erm Changed T_ANALYTIC_PACKAGE_VERSION to 3</span> <a name="l00023"></a>00023 <span class="comment">* 08/14/98 stephen Added uprv_arrayCopy() for int8_t, int16_t, int32_t</span> <a name="l00024"></a>00024 <span class="comment">* 12/09/98 jfitz Added BUFFER_OVERFLOW_ERROR (bug 1100066)</span> <a name="l00025"></a>00025 <span class="comment">* 04/20/99 stephen Cleaned up & reworked for autoconf.</span> <a name="l00026"></a>00026 <span class="comment">* Renamed to utypes.h.</span> <a name="l00027"></a>00027 <span class="comment">* 05/05/99 stephen Changed to use <inttypes.h></span> <a name="l00028"></a>00028 <span class="comment">* 12/07/99 helena Moved copyright notice string from ucnv_bld.h here.</span> <a name="l00029"></a>00029 <span class="comment">*******************************************************************************</span> <a name="l00030"></a>00030 <span class="comment">*/</span> <a name="l00031"></a>00031 <a name="l00032"></a>00032 <span class="preprocessor">#ifndef UTYPES_H</span> <a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define UTYPES_H</span> <a name="l00034"></a>00034 <span class="preprocessor"></span> <a name="l00035"></a>00035 <a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="umachine_8h.html">unicode/umachine.h</a>"</span> <a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="utf_8h.html">unicode/utf.h</a>"</span> <a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="uversion_8h.html">unicode/uversion.h</a>"</span> <a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="uconfig_8h.html">unicode/uconfig.h</a>"</span> <a name="l00040"></a>00040 <a name="l00041"></a>00041 <span class="preprocessor">#if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_DRAFT_API)</span> <a name="l00042"></a><a class="code" href="utypes_8h.html#b5b902093486a6185198af26656147a6">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define U_HIDE_DRAFT_API 1</span> <a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00044"></a>00044 <span class="preprocessor"></span> <a name="l00045"></a>00045 <span class="preprocessor">#ifdef U_HIDE_DRAFT_API</span> <a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/udraft.h"</span> <a name="l00047"></a>00047 <span class="preprocessor">#endif</span> <a name="l00048"></a>00048 <span class="preprocessor"></span> <a name="l00049"></a>00049 <span class="preprocessor">#ifdef U_HIDE_DEPRECATED_API</span> <a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/udeprctd.h"</span> <a name="l00051"></a>00051 <span class="preprocessor">#endif</span> <a name="l00052"></a>00052 <span class="preprocessor"></span> <a name="l00053"></a>00053 <span class="preprocessor">#ifdef U_HIDE_DEPRECATED_API</span> <a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/uobslete.h"</span> <a name="l00055"></a>00055 <span class="preprocessor">#endif</span> <a name="l00056"></a>00056 <span class="preprocessor"></span> <a name="l00057"></a>00057 <span class="preprocessor">#ifdef U_HIDE_INTERNAL_API</span> <a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/uintrnal.h"</span> <a name="l00059"></a>00059 <span class="preprocessor">#endif</span> <a name="l00060"></a>00060 <span class="preprocessor"></span> <a name="l00061"></a>00061 <span class="preprocessor">#ifdef U_HIDE_SYSTEM_API</span> <a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/usystem.h"</span> <a name="l00063"></a>00063 <span class="preprocessor">#endif</span> <a name="l00064"></a>00064 <span class="preprocessor"></span> <a name="l00075"></a>00075 <span class="comment">/*===========================================================================*/</span> <a name="l00076"></a>00076 <span class="comment">/* char Character set family */</span> <a name="l00077"></a>00077 <span class="comment">/*===========================================================================*/</span> <a name="l00078"></a>00078 <a name="l00083"></a><a class="code" href="utypes_8h.html#48bd28fbb2fb30ac2b033ae7826bf0df">00083</a> <span class="preprocessor">#define U_ASCII_FAMILY 0</span> <a name="l00084"></a>00084 <span class="preprocessor"></span> <a name="l00089"></a><a class="code" href="utypes_8h.html#57fd5d4a2dde0385be2c094ef2cb4af0">00089</a> <span class="preprocessor">#define U_EBCDIC_FAMILY 1</span> <a name="l00090"></a>00090 <span class="preprocessor"></span> <a name="l00134"></a>00134 <span class="preprocessor">#ifndef U_CHARSET_FAMILY</span> <a name="l00135"></a><a class="code" href="utypes_8h.html#3ae4697420a1038d0860785f3215f696">00135</a> <span class="preprocessor"></span><span class="preprocessor"># define U_CHARSET_FAMILY 0</span> <a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00137"></a>00137 <span class="preprocessor"></span> <a name="l00138"></a>00138 <span class="comment">/*===========================================================================*/</span> <a name="l00139"></a>00139 <span class="comment">/* ICUDATA naming scheme */</span> <a name="l00140"></a>00140 <span class="comment">/*===========================================================================*/</span> <a name="l00141"></a>00141 <a name="l00158"></a>00158 <span class="preprocessor">#if U_CHARSET_FAMILY</span> <a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor"># if U_IS_BIG_ENDIAN</span> <a name="l00160"></a>00160 <span class="preprocessor"></span> <span class="comment">/* EBCDIC - should always be BE */</span> <a name="l00161"></a>00161 <span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "e"</span> <a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER e</span> <a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor"># else</span> <a name="l00164"></a>00164 <span class="preprocessor"></span><span class="preprocessor"># error "Don't know what to do with little endian EBCDIC!"</span> <a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "x"</span> <a name="l00166"></a>00166 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER x</span> <a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor"># if U_IS_BIG_ENDIAN</span> <a name="l00170"></a>00170 <span class="preprocessor"></span> <span class="comment">/* Big-endian ASCII */</span> <a name="l00171"></a>00171 <span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "b"</span> <a name="l00172"></a>00172 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER b</span> <a name="l00173"></a>00173 <span class="preprocessor"></span><span class="preprocessor"># else</span> <a name="l00174"></a>00174 <span class="preprocessor"></span> <span class="comment">/* Little-endian ASCII */</span> <a name="l00175"></a><a class="code" href="utypes_8h.html#eadcef6340f863ffdeee53b0ac8ccbcb">00175</a> <span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "l"</span> <a name="l00176"></a><a class="code" href="utypes_8h.html#884e510c7dd066164f0d9dfc4c576a30">00176</a> <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER l</span> <a name="l00177"></a>00177 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00179"></a>00179 <span class="preprocessor"></span> <a name="l00185"></a><a class="code" href="utypes_8h.html#0104ec1d36fc3db3fcd3b75c4cb3b88c">00185</a> <span class="preprocessor">#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER</span> <a name="l00186"></a>00186 <span class="preprocessor"></span> <a name="l00187"></a>00187 <a name="l00199"></a><a class="code" href="utypes_8h.html#bcd6592ee70dbfeec33ead974bfc240f">00199</a> <span class="preprocessor">#define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)</span> <a name="l00200"></a>00200 <span class="preprocessor"></span> <a name="l00205"></a><a class="code" href="utypes_8h.html#1539f9f89c35f6084a2014758490a5fa">00205</a> <span class="preprocessor">#define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)</span> <a name="l00206"></a>00206 <span class="preprocessor"></span> <a name="l00210"></a><a class="code" href="utypes_8h.html#65d99f2be7d231a7077fbe517c848ace">00210</a> <span class="preprocessor">#define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat</span> <a name="l00211"></a>00211 <span class="preprocessor"></span> <a name="l00223"></a>00223 <span class="preprocessor">#if defined(OS390) && (__COMPILER_VER__ < 0x41020000) && defined(XP_CPLUSPLUS)</span> <a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor"># define U_CALLCONV __cdecl</span> <a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00226"></a><a class="code" href="utypes_8h.html#a01405512c1c5c5309bbe18e09006031">00226</a> <span class="preprocessor"></span><span class="preprocessor"># define U_CALLCONV U_EXPORT2</span> <a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00228"></a>00228 <span class="preprocessor"></span> <a name="l00234"></a>00234 <span class="preprocessor">#ifndef NULL</span> <a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#ifdef XP_CPLUSPLUS</span> <a name="l00236"></a>00236 <span class="preprocessor"></span><span class="preprocessor">#define NULL 0</span> <a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00238"></a><a class="code" href="utypes_8h.html#73db6a27182fb6f49fadbdad318845ce">00238</a> <span class="preprocessor"></span><span class="preprocessor">#define NULL ((void *)0)</span> <a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00241"></a>00241 <span class="preprocessor"></span> <a name="l00242"></a>00242 <span class="comment">/*===========================================================================*/</span> <a name="l00243"></a>00243 <span class="comment">/* Calendar/TimeZone data types */</span> <a name="l00244"></a>00244 <span class="comment">/*===========================================================================*/</span> <a name="l00245"></a>00245 <a name="l00253"></a><a class="code" href="utypes_8h.html#e96c34189656815fe8f67e288f9bf8bf">00253</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="utypes_8h.html#e96c34189656815fe8f67e288f9bf8bf">UDate</a>; <a name="l00254"></a>00254 <a name="l00256"></a><a class="code" href="utypes_8h.html#b39b06e5d6e19f4b9d121b255bbf9a4d">00256</a> <span class="preprocessor">#define U_MILLIS_PER_SECOND (1000)</span> <a name="l00257"></a>00257 <span class="preprocessor"></span> <a name="l00258"></a><a class="code" href="utypes_8h.html#4070e030e7901e5d20d34be644edcbb5">00258</a> <span class="preprocessor">#define U_MILLIS_PER_MINUTE (60000)</span> <a name="l00259"></a>00259 <span class="preprocessor"></span> <a name="l00260"></a><a class="code" href="utypes_8h.html#86aecc416b9a9321177101ebee5fb967">00260</a> <span class="preprocessor">#define U_MILLIS_PER_HOUR (3600000)</span> <a name="l00261"></a>00261 <span class="preprocessor"></span> <a name="l00262"></a><a class="code" href="utypes_8h.html#0a5484638ddfe313cdcbe7024282717a">00262</a> <span class="preprocessor">#define U_MILLIS_PER_DAY (86400000)</span> <a name="l00263"></a>00263 <span class="preprocessor"></span> <a name="l00264"></a>00264 <a name="l00265"></a>00265 <span class="comment">/*===========================================================================*/</span> <a name="l00266"></a>00266 <span class="comment">/* UClassID-based RTTI */</span> <a name="l00267"></a>00267 <span class="comment">/*===========================================================================*/</span> <a name="l00268"></a>00268 <a name="l00311"></a><a class="code" href="utypes_8h.html#452dc3c7d14eb1a1837ae1aa0b2d6724">00311</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span>* <a class="code" href="utypes_8h.html#452dc3c7d14eb1a1837ae1aa0b2d6724">UClassID</a>; <a name="l00312"></a>00312 <a name="l00313"></a>00313 <span class="comment">/*===========================================================================*/</span> <a name="l00314"></a>00314 <span class="comment">/* Shared library/DLL import-export API control */</span> <a name="l00315"></a>00315 <span class="comment">/*===========================================================================*/</span> <a name="l00316"></a>00316 <a name="l00317"></a>00317 <span class="comment">/*</span> <a name="l00318"></a>00318 <span class="comment"> * Control of symbol import/export.</span> <a name="l00319"></a>00319 <span class="comment"> * ICU is separated into three libraries.</span> <a name="l00320"></a>00320 <span class="comment"> */</span> <a name="l00321"></a>00321 <a name="l00322"></a>00322 <span class="comment">/*</span> <a name="l00323"></a>00323 <span class="comment"> * \def U_COMBINED_IMPLEMENTATION</span> <a name="l00324"></a>00324 <span class="comment"> * Set to export library symbols from inside the ICU library</span> <a name="l00325"></a>00325 <span class="comment"> * when all of ICU is in a single library.</span> <a name="l00326"></a>00326 <span class="comment"> * This can be set as a compiler option while building ICU, and it</span> <a name="l00327"></a>00327 <span class="comment"> * needs to be the first one tested to override U_COMMON_API, U_I18N_API, etc.</span> <a name="l00328"></a>00328 <span class="comment"> * @stable ICU 2.0</span> <a name="l00329"></a>00329 <span class="comment"> */</span> <a name="l00330"></a>00330 <a name="l00380"></a>00380 <span class="preprocessor">#if defined(U_COMBINED_IMPLEMENTATION)</span> <a name="l00381"></a>00381 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_EXPORT</span> <a name="l00382"></a>00382 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_EXPORT</span> <a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_EXPORT</span> <a name="l00384"></a>00384 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_EXPORT</span> <a name="l00385"></a>00385 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_EXPORT</span> <a name="l00386"></a>00386 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_EXPORT</span> <a name="l00387"></a>00387 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_EXPORT</span> <a name="l00388"></a>00388 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_STATIC_IMPLEMENTATION)</span> <a name="l00389"></a>00389 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API</span> <a name="l00390"></a>00390 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API</span> <a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API</span> <a name="l00392"></a>00392 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API</span> <a name="l00393"></a>00393 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API</span> <a name="l00394"></a>00394 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API</span> <a name="l00395"></a>00395 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API</span> <a name="l00396"></a>00396 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_COMMON_IMPLEMENTATION)</span> <a name="l00397"></a>00397 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00398"></a>00398 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_EXPORT</span> <a name="l00399"></a>00399 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00400"></a>00400 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00401"></a>00401 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00402"></a>00402 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00403"></a>00403 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00404"></a>00404 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_I18N_IMPLEMENTATION)</span> <a name="l00405"></a>00405 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00406"></a>00406 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00407"></a>00407 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_EXPORT</span> <a name="l00408"></a>00408 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00410"></a>00410 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00411"></a>00411 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_LAYOUT_IMPLEMENTATION)</span> <a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00414"></a>00414 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00415"></a>00415 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00416"></a>00416 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_EXPORT</span> <a name="l00417"></a>00417 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00419"></a>00419 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00420"></a>00420 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_LAYOUTEX_IMPLEMENTATION)</span> <a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00422"></a>00422 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00423"></a>00423 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00424"></a>00424 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00425"></a>00425 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_EXPORT</span> <a name="l00426"></a>00426 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00428"></a>00428 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_IO_IMPLEMENTATION)</span> <a name="l00429"></a>00429 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00430"></a>00430 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00431"></a>00431 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00432"></a>00432 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00433"></a>00433 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00434"></a>00434 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_EXPORT</span> <a name="l00435"></a>00435 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00436"></a>00436 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_TOOLUTIL_IMPLEMENTATION)</span> <a name="l00437"></a>00437 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00438"></a>00438 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00439"></a>00439 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00440"></a>00440 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00441"></a>00441 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00443"></a>00443 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_EXPORT</span> <a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00445"></a><a class="code" href="utypes_8h.html#14dca205133514e3340692ed59cc3da6">00445</a> <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00446"></a><a class="code" href="utypes_8h.html#394335b549a811cf26891e043f211e9d">00446</a> <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00447"></a><a class="code" href="utypes_8h.html#3a1f02ad21823a0b4e4f69d4b82dee4b">00447</a> <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00448"></a><a class="code" href="utypes_8h.html#345b2b46596b129b1c209845b50018ed">00448</a> <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00449"></a><a class="code" href="utypes_8h.html#07ae1cbf5e212ee5cb996dce19730568">00449</a> <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00450"></a><a class="code" href="utypes_8h.html#f99ad1b5605ad920cdf4e0e366bf5a2d">00450</a> <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00451"></a><a class="code" href="utypes_8h.html#4680f0d6e7ee4c33f52de2e0497e5d7a">00451</a> <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00453"></a>00453 <span class="preprocessor"></span> <a name="l00459"></a>00459 <span class="preprocessor">#ifdef __cplusplus</span> <a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor">#define U_STANDARD_CPP_NAMESPACE ::</span> <a name="l00461"></a>00461 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00462"></a><a class="code" href="utypes_8h.html#f1709440395c7f5f4034df3ad43d797e">00462</a> <span class="preprocessor"></span><span class="preprocessor">#define U_STANDARD_CPP_NAMESPACE</span> <a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00464"></a>00464 <span class="preprocessor"></span> <a name="l00465"></a>00465 <a name="l00466"></a>00466 <span class="comment">/*===========================================================================*/</span> <a name="l00467"></a>00467 <span class="comment">/* Global delete operator */</span> <a name="l00468"></a>00468 <span class="comment">/*===========================================================================*/</span> <a name="l00469"></a>00469 <a name="l00470"></a>00470 <span class="comment">/*</span> <a name="l00471"></a>00471 <span class="comment"> * The ICU4C library must not use the global new and delete operators.</span> <a name="l00472"></a>00472 <span class="comment"> * These operators here are defined to enable testing for this.</span> <a name="l00473"></a>00473 <span class="comment"> * See Jitterbug 2581 for details of why this is necessary.</span> <a name="l00474"></a>00474 <span class="comment"> *</span> <a name="l00475"></a>00475 <span class="comment"> * Verification that ICU4C's memory usage is correct, i.e.,</span> <a name="l00476"></a>00476 <span class="comment"> * that global new/delete are not used:</span> <a name="l00477"></a>00477 <span class="comment"> *</span> <a name="l00478"></a>00478 <span class="comment"> * a) Check for imports of global new/delete (see uobject.cpp for details)</span> <a name="l00479"></a>00479 <span class="comment"> * b) Verify that new is never imported.</span> <a name="l00480"></a>00480 <span class="comment"> * c) Verify that delete is only imported from object code for interface/mixin classes.</span> <a name="l00481"></a>00481 <span class="comment"> * d) Add global delete and delete[] only for the ICU4C library itself</span> <a name="l00482"></a>00482 <span class="comment"> * and define them in a way that crashes or otherwise easily shows a problem.</span> <a name="l00483"></a>00483 <span class="comment"> *</span> <a name="l00484"></a>00484 <span class="comment"> * The following implements d).</span> <a name="l00485"></a>00485 <span class="comment"> * The operator implementations crash; this is intentional and used for library debugging.</span> <a name="l00486"></a>00486 <span class="comment"> *</span> <a name="l00487"></a>00487 <span class="comment"> * Note: This is currently only done on Windows because</span> <a name="l00488"></a>00488 <span class="comment"> * some Linux/Unix compilers have problems with defining global new/delete.</span> <a name="l00489"></a>00489 <span class="comment"> * On Windows, WIN32 is defined, and it is _MSC_VER>=1200 for MSVC 6.0 and higher.</span> <a name="l00490"></a>00490 <span class="comment"> */</span> <a name="l00491"></a>00491 <span class="preprocessor">#if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && (_MSC_VER>=1200) && U_DEBUG && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION))</span> <a name="l00492"></a>00492 <span class="preprocessor"></span> <a name="l00493"></a>00493 <span class="preprocessor">#ifndef U_HIDE_INTERNAL_API</span> <a name="l00494"></a>00494 <span class="preprocessor"></span> <a name="l00499"></a>00499 <span class="keyword">inline</span> <span class="keywordtype">void</span> * <a name="l00500"></a>00500 operator new(size_t <span class="comment">/*size*/</span>) { <a name="l00501"></a>00501 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#73db6a27182fb6f49fadbdad318845ce">NULL</a>; <a name="l00502"></a>00502 *q=5; <span class="comment">/* break it */</span> <a name="l00503"></a>00503 <span class="keywordflow">return</span> q; <a name="l00504"></a>00504 } <a name="l00505"></a>00505 <a name="l00511"></a>00511 <span class="keyword">inline</span> <span class="keywordtype">void</span> * <a name="l00512"></a>00512 operator new[](size_t <span class="comment">/*size*/</span>) { <a name="l00513"></a>00513 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#73db6a27182fb6f49fadbdad318845ce">NULL</a>; <a name="l00514"></a>00514 *q=5; <span class="comment">/* break it */</span> <a name="l00515"></a>00515 <span class="keywordflow">return</span> q; <a name="l00516"></a>00516 } <a name="l00517"></a>00517 <a name="l00523"></a>00523 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l00524"></a>00524 operator delete(<span class="keywordtype">void</span> * <span class="comment">/*p*/</span>) { <a name="l00525"></a>00525 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#73db6a27182fb6f49fadbdad318845ce">NULL</a>; <a name="l00526"></a>00526 *q=5; <span class="comment">/* break it */</span> <a name="l00527"></a>00527 } <a name="l00528"></a>00528 <a name="l00534"></a>00534 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l00535"></a>00535 operator delete[](<span class="keywordtype">void</span> * <span class="comment">/*p*/</span>) { <a name="l00536"></a>00536 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#73db6a27182fb6f49fadbdad318845ce">NULL</a>; <a name="l00537"></a>00537 *q=5; <span class="comment">/* break it */</span> <a name="l00538"></a>00538 } <a name="l00539"></a>00539 <a name="l00540"></a>00540 <span class="preprocessor">#endif </span><span class="comment">/* U_HIDE_INTERNAL_API */</span> <a name="l00541"></a>00541 <span class="preprocessor">#endif</span> <a name="l00542"></a>00542 <span class="preprocessor"></span> <a name="l00543"></a>00543 <span class="comment">/*===========================================================================*/</span> <a name="l00544"></a>00544 <span class="comment">/* UErrorCode */</span> <a name="l00545"></a>00545 <span class="comment">/*===========================================================================*/</span> <a name="l00546"></a>00546 <a name="l00561"></a><a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe">00561</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe">UErrorCode</a> { <a name="l00562"></a>00562 <span class="comment">/* The ordering of U_ERROR_INFO_START Vs U_USING_FALLBACK_WARNING looks weird</span> <a name="l00563"></a>00563 <span class="comment"> * and is that way because VC++ debugger displays first encountered constant,</span> <a name="l00564"></a>00564 <span class="comment"> * which is not the what the code is used for</span> <a name="l00565"></a>00565 <span class="comment"> */</span> <a name="l00566"></a>00566 <a name="l00567"></a>00567 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe4a6e285ddb140062637e038b619d8002">U_USING_FALLBACK_WARNING</a> = -128, <a name="l00569"></a>00569 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe3c12d02a9a926b06ebc1f817b5399493">U_ERROR_WARNING_START</a> = -128, <a name="l00571"></a>00571 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe36443941423bca6662b15d117c5aede2">U_USING_DEFAULT_WARNING</a> = -127, <a name="l00573"></a>00573 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe117e88b9933a0765bcd3f3846b524b1d">U_SAFECLONE_ALLOCATED_WARNING</a> = -126, <a name="l00575"></a>00575 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe294bc5fe5532ce3de80011ec3a7c8a83">U_STATE_OLD_WARNING</a> = -125, <a name="l00577"></a>00577 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabed5cfe58423ffcaa195b716cc7bd697da">U_STRING_NOT_TERMINATED_WARNING</a> = -124, <a name="l00579"></a>00579 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabebc749cdad5a2400ab1374b5c7f0a4473">U_SORT_KEY_TOO_SHORT_WARNING</a> = -123, <a name="l00581"></a>00581 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe07165cbd209f4fca77714b97fd20d364">U_AMBIGUOUS_ALIAS_WARNING</a> = -122, <a name="l00583"></a>00583 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe7c30aa8ad3658fd1524f9a8a4dd94192">U_DIFFERENT_UCA_VERSION</a> = -121, <a name="l00585"></a>00585 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe03081560b8f36c41bc8e79ef08b101f7">U_ERROR_WARNING_LIMIT</a>, <a name="l00588"></a>00588 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe3734e0f4726e8f9f03ad0372fe1d7c4d">U_ZERO_ERROR</a> = 0, <a name="l00590"></a>00590 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe7a419798533ed143ab13cc0057e65341">U_ILLEGAL_ARGUMENT_ERROR</a> = 1, <a name="l00591"></a>00591 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe590d221256c63f4d63b235af1b3ccba9">U_MISSING_RESOURCE_ERROR</a> = 2, <a name="l00592"></a>00592 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe45720948de6fca6bbf8cc3587a77bee0">U_INVALID_FORMAT_ERROR</a> = 3, <a name="l00593"></a>00593 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2ede6dc18d322679f4df997221ab52ea">U_FILE_ACCESS_ERROR</a> = 4, <a name="l00594"></a>00594 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe896a617e434aa5c00603eff1609a6e71">U_INTERNAL_PROGRAM_ERROR</a> = 5, <a name="l00595"></a>00595 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee871fe58561504c202d8a68496788101">U_MESSAGE_PARSE_ERROR</a> = 6, <a name="l00596"></a>00596 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe0d53bc91d2639fd934ca8e8a77848882">U_MEMORY_ALLOCATION_ERROR</a> = 7, <a name="l00597"></a>00597 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeeb207c3be85ec25903f3c1c35252487d">U_INDEX_OUTOFBOUNDS_ERROR</a> = 8, <a name="l00598"></a>00598 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe3c3c4220d33c0da594f7934ee26c1dc9">U_PARSE_ERROR</a> = 9, <a name="l00599"></a>00599 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe9de60dad590465cafbdd2075bdecdacd">U_INVALID_CHAR_FOUND</a> = 10, <a name="l00600"></a>00600 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabedd86b7bc8ba441163ffb5dca07375865">U_TRUNCATED_CHAR_FOUND</a> = 11, <a name="l00601"></a>00601 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee2cec4cf3fa8e8d583f187bfa5cd5937">U_ILLEGAL_CHAR_FOUND</a> = 12, <a name="l00602"></a>00602 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5263c453503f7efc788ea4caf50d8ff4">U_INVALID_TABLE_FORMAT</a> = 13, <a name="l00603"></a>00603 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabebe1405e756a0e7b001a8da7a2c3c728e">U_INVALID_TABLE_FILE</a> = 14, <a name="l00604"></a>00604 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5412119ca15b645e65f102102bbb7a27">U_BUFFER_OVERFLOW_ERROR</a> = 15, <a name="l00605"></a>00605 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee8ddbfd21e57fe0d4a4afc7703068477">U_UNSUPPORTED_ERROR</a> = 16, <a name="l00606"></a>00606 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe338bd93558c80e631e1f030e3fbb869d">U_RESOURCE_TYPE_MISMATCH</a> = 17, <a name="l00607"></a>00607 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeb4e1a7bec8c315ea4414cdab75ec4823">U_ILLEGAL_ESCAPE_SEQUENCE</a> = 18, <a name="l00608"></a>00608 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe73daf3bd2c844d4c3ef5b0c93832a84f">U_UNSUPPORTED_ESCAPE_SEQUENCE</a> = 19, <a name="l00609"></a>00609 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee46598d505c4f1df4b76e9abcffc642c">U_NO_SPACE_AVAILABLE</a> = 20, <a name="l00610"></a>00610 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2b1d3c95196c3fcefd71617bf342d936">U_CE_NOT_FOUND_ERROR</a> = 21, <a name="l00611"></a>00611 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe865ff33cc976b183026ce5d885437dd2">U_PRIMARY_TOO_LONG_ERROR</a> = 22, <a name="l00612"></a>00612 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee7f582136b70ffcaf497ed7f38236e37">U_STATE_TOO_OLD_ERROR</a> = 23, <a name="l00613"></a>00613 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe3a1f1c0f12a8fca3cf5707e07429c1ad">U_TOO_MANY_ALIASES_ERROR</a> = 24, <a name="l00615"></a>00615 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe4a2803ff8e557dad5a3de86e21b6df67">U_ENUM_OUT_OF_SYNC_ERROR</a> = 25, <a name="l00616"></a>00616 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe8eb806a0bbb5cecf1a0aeba5c18557c2">U_INVARIANT_CONVERSION_ERROR</a> = 26, <a name="l00617"></a>00617 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee0c0235f3d6d5a45747f5916b965edd5">U_INVALID_STATE_ERROR</a> = 27, <a name="l00618"></a>00618 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe57c6831943a7cf11cd16b9f62f785591">U_COLLATOR_VERSION_MISMATCH</a> = 28, <a name="l00619"></a>00619 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabefa9ab4151fad5612315d29ff670aa1ba">U_USELESS_COLLATOR_ERROR</a> = 29, <a name="l00620"></a>00620 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe681abc2afde29c3d610e9f4bf4c968c3">U_NO_WRITE_PERMISSION</a> = 30, <a name="l00622"></a>00622 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2c0a94b3595718177c841446e6373c16">U_STANDARD_ERROR_LIMIT</a>, <a name="l00623"></a>00623 <span class="comment">/*</span> <a name="l00624"></a>00624 <span class="comment"> * the error code range 0x10000 0x10100 are reserved for Transliterator</span> <a name="l00625"></a>00625 <span class="comment"> */</span> <a name="l00626"></a>00626 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe611c9be819bbbb6f39d94f6b05468883">U_BAD_VARIABLE_DEFINITION</a>=0x10000, <a name="l00627"></a>00627 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe6d6fea2af39baefcbe6ed3ba346d3693">U_PARSE_ERROR_START</a> = 0x10000, <a name="l00628"></a>00628 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe1d293cce51d64468c92a51946f592960">U_MALFORMED_RULE</a>, <a name="l00629"></a>00629 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5c66d25eac95d89aa377c74c34578b07">U_MALFORMED_SET</a>, <a name="l00630"></a>00630 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeaa40dac63ac797d45c53f41ece9bdcc1">U_MALFORMED_SYMBOL_REFERENCE</a>, <a name="l00631"></a>00631 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeb37efc78b3c5d00ab98524fd7322e094">U_MALFORMED_UNICODE_ESCAPE</a>, <a name="l00632"></a>00632 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5f99c5de559d6ac9ad8cb572eed46d3b">U_MALFORMED_VARIABLE_DEFINITION</a>, <a name="l00633"></a>00633 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee519d2bd4a559519307a80f5e32da412">U_MALFORMED_VARIABLE_REFERENCE</a>, <a name="l00634"></a>00634 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe369b31780d8474e90d49a0cb14171cb5">U_MISMATCHED_SEGMENT_DELIMITERS</a>, <a name="l00635"></a>00635 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe9f6c9d8c1ab5ccb84b61e16d860c79f1">U_MISPLACED_ANCHOR_START</a>, <a name="l00636"></a>00636 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe62984dd2293687d903369182aac838fb">U_MISPLACED_CURSOR_OFFSET</a>, <a name="l00637"></a>00637 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe198273890351e6bfa128e3a8ec6c602d">U_MISPLACED_QUANTIFIER</a>, <a name="l00638"></a>00638 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabedcf099db43d1e6498efde2d007c05a5c">U_MISSING_OPERATOR</a>, <a name="l00639"></a>00639 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe095c154af9c0c0d03fd9877b466b01f3">U_MISSING_SEGMENT_CLOSE</a>, <a name="l00640"></a>00640 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabea0797a9c7b832b9d69342618f4a8cef2">U_MULTIPLE_ANTE_CONTEXTS</a>, <a name="l00641"></a>00641 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabea22e6e65aae0bed6ca6b3e15711fba0d">U_MULTIPLE_CURSORS</a>, <a name="l00642"></a>00642 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2aa12c5dde1e62274d7793ee380e1106">U_MULTIPLE_POST_CONTEXTS</a>, <a name="l00643"></a>00643 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabed941750274033657371053710490016a">U_TRAILING_BACKSLASH</a>, <a name="l00644"></a>00644 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe43628da19111f1aae626978d1a10d9a5">U_UNDEFINED_SEGMENT_REFERENCE</a>, <a name="l00645"></a>00645 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabed732c7c66e017d327a8302e2cf3e9069">U_UNDEFINED_VARIABLE</a>, <a name="l00646"></a>00646 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe33e1d76000ffce416e8b020fc5118407">U_UNQUOTED_SPECIAL</a>, <a name="l00647"></a>00647 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabed6368f567f344d0a27c1f80e674770f7">U_UNTERMINATED_QUOTE</a>, <a name="l00648"></a>00648 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5f2ba3fe9ba0844ab6288313015c0c99">U_RULE_MASK_ERROR</a>, <a name="l00649"></a>00649 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe8a83b89bf45b00cacd86694300ac9aed">U_MISPLACED_COMPOUND_FILTER</a>, <a name="l00650"></a>00650 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2b73051b7921a04c665cca5ae2826dd4">U_MULTIPLE_COMPOUND_FILTERS</a>, <a name="l00651"></a>00651 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabef2eb6df47b171d554ff41107b99a099d">U_INVALID_RBT_SYNTAX</a>, <a name="l00652"></a>00652 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeff239dcda3f2bf41fe673df3b52cca74">U_INVALID_PROPERTY_PATTERN</a>, <a name="l00653"></a>00653 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeaedc67e12c07a5774a35b082590c4d7a">U_MALFORMED_PRAGMA</a>, <a name="l00654"></a>00654 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe195c4c0d4d80b2ec6f8388d7df731095">U_UNCLOSED_SEGMENT</a>, <a name="l00655"></a>00655 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabea633eaea1203fed6e2de02044440bd33">U_ILLEGAL_CHAR_IN_SEGMENT</a>, <a name="l00656"></a>00656 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe85fc04b9c3118fe6757796b04f0c9631">U_VARIABLE_RANGE_EXHAUSTED</a>, <a name="l00657"></a>00657 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeef602fbefe7f5b1246a96a23bc86e442">U_VARIABLE_RANGE_OVERLAP</a>, <a name="l00658"></a>00658 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabead9a88d7fa5f0dce75af33fbb5442f77">U_ILLEGAL_CHARACTER</a>, <a name="l00659"></a>00659 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5abaeb113edb6eb4ca4548ca05685261">U_INTERNAL_TRANSLITERATOR_ERROR</a>, <a name="l00660"></a>00660 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeaa70a7d6c91633f3db793a3e731eb3f6">U_INVALID_ID</a>, <a name="l00661"></a>00661 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabed72cdadf0a9ecdcfaf3d4d1144dec588">U_INVALID_FUNCTION</a>, <a name="l00662"></a>00662 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2813526c1459fb6be52103f9a2f41e75">U_PARSE_ERROR_LIMIT</a>, <a name="l00664"></a>00664 <span class="comment">/*</span> <a name="l00665"></a>00665 <span class="comment"> * the error code range 0x10100 0x10200 are reserved for formatting API parsing error</span> <a name="l00666"></a>00666 <span class="comment"> */</span> <a name="l00667"></a>00667 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5761bb84005ae3bde94ee4cfddaed1e8">U_UNEXPECTED_TOKEN</a>=0x10100, <a name="l00668"></a>00668 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe44392fdd2e8578ff5fbf73e967d9fb81">U_FMT_PARSE_ERROR_START</a>=0x10100, <a name="l00669"></a>00669 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe38e2ce1e8043f2c456ea86b1f73e85f5">U_MULTIPLE_DECIMAL_SEPARATORS</a>, <a name="l00670"></a>00670 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe7a0effe538aed333ba95e8f56d9eba45">U_MULTIPLE_DECIMAL_SEPERATORS</a> = <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe38e2ce1e8043f2c456ea86b1f73e85f5">U_MULTIPLE_DECIMAL_SEPARATORS</a>, <a name="l00671"></a>00671 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabed00404bac4d9a115069a3bc8b593e2c2">U_MULTIPLE_EXPONENTIAL_SYMBOLS</a>, <a name="l00672"></a>00672 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe4898e989fb8d7d35b246dd03027ed511">U_MALFORMED_EXPONENTIAL_PATTERN</a>, <a name="l00673"></a>00673 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabee7e2bfc844dcf8110c626cc9a42b8c71">U_MULTIPLE_PERCENT_SYMBOLS</a>, <a name="l00674"></a>00674 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabedfb2401eb7f6927dc0d00d274ebf21a7">U_MULTIPLE_PERMILL_SYMBOLS</a>, <a name="l00675"></a>00675 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe838d75a2858ff8e71b0660c37db6dd3a">U_MULTIPLE_PAD_SPECIFIERS</a>, <a name="l00676"></a>00676 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabef66dafa49c614e9cc5f04c65b4985c4d">U_PATTERN_SYNTAX_ERROR</a>, <a name="l00677"></a>00677 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe9897ea9c7e451b94610e0f72aca5cd1d">U_ILLEGAL_PAD_POSITION</a>, <a name="l00678"></a>00678 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe00c0c39fbaabeb187d63f33b56e1aae3">U_UNMATCHED_BRACES</a>, <a name="l00679"></a>00679 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe8448b1b445163ab8cdb3546112aff41c">U_UNSUPPORTED_PROPERTY</a>, <a name="l00680"></a>00680 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe695c55e8364440725d703644341efe0f">U_UNSUPPORTED_ATTRIBUTE</a>, <a name="l00681"></a>00681 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe778dafc2b96eeae76ac321a3c3ab9b6b">U_FMT_PARSE_ERROR_LIMIT</a>, <a name="l00683"></a>00683 <span class="comment">/*</span> <a name="l00684"></a>00684 <span class="comment"> * the error code range 0x10200 0x102ff are reserved for Break Iterator related error</span> <a name="l00685"></a>00685 <span class="comment"> */</span> <a name="l00686"></a>00686 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe4711c31356a8fb09e2b92e33583bafba">U_BRK_INTERNAL_ERROR</a>=0x10200, <a name="l00687"></a>00687 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabecdc8a0324b87e35ad6171688b2f68d1b">U_BRK_ERROR_START</a>=0x10200, <a name="l00688"></a>00688 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe110f7dd54e9a04efa3981a1e4a992516">U_BRK_HEX_DIGITS_EXPECTED</a>, <a name="l00689"></a>00689 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe068ce64a52e203523fdbc81376b242ec">U_BRK_SEMICOLON_EXPECTED</a>, <a name="l00690"></a>00690 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe6c9b27f2ad2469bf6d16ec08389a04b2">U_BRK_RULE_SYNTAX</a>, <a name="l00691"></a>00691 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabec602e4cecc63666a9f0365967ddb3f37">U_BRK_UNCLOSED_SET</a>, <a name="l00692"></a>00692 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe501fed595ad84c716845513a8ec0c802">U_BRK_ASSIGN_ERROR</a>, <a name="l00693"></a>00693 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabecf06f41159852cc6383f21af41259da6">U_BRK_VARIABLE_REDFINITION</a>, <a name="l00694"></a>00694 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2e70015b1006b0c269aced85a098e601">U_BRK_MISMATCHED_PAREN</a>, <a name="l00695"></a>00695 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe493edad434f49c3f0a762aee83ddf678">U_BRK_NEW_LINE_IN_QUOTED_STRING</a>, <a name="l00696"></a>00696 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeb949719b6f160bd9259f00047d5619cc">U_BRK_UNDEFINED_VARIABLE</a>, <a name="l00697"></a>00697 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5d98a519b1aec70a05fb064ae2b292c2">U_BRK_INIT_ERROR</a>, <a name="l00698"></a>00698 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe107e6db7b02daeb9556e5ce7bbc0d85f">U_BRK_RULE_EMPTY_SET</a>, <a name="l00699"></a>00699 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5de879fda11b6daa5da3164eaa244e62">U_BRK_UNRECOGNIZED_OPTION</a>, <a name="l00700"></a>00700 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabec4ae60d3de91b9fc0d04bbb6d0d4355b">U_BRK_MALFORMED_RULE_TAG</a>, <a name="l00701"></a>00701 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeace338d61192292a37e325d3eeb09d73">U_BRK_ERROR_LIMIT</a>, <a name="l00703"></a>00703 <span class="comment">/*</span> <a name="l00704"></a>00704 <span class="comment"> * The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs</span> <a name="l00705"></a>00705 <span class="comment"> */</span> <a name="l00706"></a>00706 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe7d99f6e0814d3462aa219e59d39a5969">U_REGEX_INTERNAL_ERROR</a>=0x10300, <a name="l00707"></a>00707 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe28f3ece6b811ce40376b0ded5f20978f">U_REGEX_ERROR_START</a>=0x10300, <a name="l00708"></a>00708 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabefc35db96088505752f6934a6871fc6bd">U_REGEX_RULE_SYNTAX</a>, <a name="l00709"></a>00709 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe9d7571511878459f3dc3344af5460ee4">U_REGEX_INVALID_STATE</a>, <a name="l00710"></a>00710 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe7867d02e2b9828b173fc86027f8c6a9f">U_REGEX_BAD_ESCAPE_SEQUENCE</a>, <a name="l00711"></a>00711 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe676c0664f6ab034708010174c276abab">U_REGEX_PROPERTY_SYNTAX</a>, <a name="l00712"></a>00712 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabec7e57867c429d69172dddd5ad5b565d6">U_REGEX_UNIMPLEMENTED</a>, <a name="l00713"></a>00713 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe7d2f784760ed444da8049940b8d614c8">U_REGEX_MISMATCHED_PAREN</a>, <a name="l00714"></a>00714 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeb2827e6f25b2afed2793519a759ac917">U_REGEX_NUMBER_TOO_BIG</a>, <a name="l00715"></a>00715 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe2092e0ea548113bd6522146aca9bc983">U_REGEX_BAD_INTERVAL</a>, <a name="l00716"></a>00716 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabefc9469f407094f85cd5042ce9683549a">U_REGEX_MAX_LT_MIN</a>, <a name="l00717"></a>00717 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabec4bd840abd0cad399d823527986d71a3">U_REGEX_INVALID_BACK_REF</a>, <a name="l00718"></a>00718 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabeee45749dab5b9bbfda49c16d48743936">U_REGEX_INVALID_FLAG</a>, <a name="l00719"></a>00719 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabecfe684affefabf0c1c42f83f5ec22f38">U_REGEX_LOOK_BEHIND_LIMIT</a>, <a name="l00720"></a>00720 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe19d69a14acf0e7d9560c796d6200f52c">U_REGEX_SET_CONTAINS_STRING</a>, <a name="l00721"></a>00721 <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe5054b0312b89bbaa39d0add30d712507">U_REGEX_ERROR_LIMIT</a>, <a name="l00723"></a>00723 <span class="comment">/*</span> <a name="l00724"></a>00724 <span class="comment"> * The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes</span> <a name="l00725"></a>00725 <span class="comment"> */</span> <a name="l00726"></a>00726 U_IDNA_PROHIBITED_ERROR=0x10400, <a name="l00727"></a>00727 U_IDNA_ERROR_START=0x10400, <a name="l00728"></a>00728 U_IDNA_UNASSIGNED_ERROR, <a name="l00729"></a>00729 U_IDNA_CHECK_BIDI_ERROR, <a name="l00730"></a>00730 U_IDNA_STD3_ASCII_RULES_ERROR, <a name="l00731"></a>00731 U_IDNA_ACE_PREFIX_ERROR, <a name="l00732"></a>00732 U_IDNA_VERIFICATION_ERROR, <a name="l00733"></a>00733 U_IDNA_LABEL_TOO_LONG_ERROR, <a name="l00734"></a>00734 U_IDNA_ZERO_LENGTH_LABEL_ERROR, <a name="l00735"></a>00735 U_IDNA_ERROR_LIMIT, <a name="l00736"></a>00736 <span class="comment">/*</span> <a name="l00737"></a>00737 <span class="comment"> * Aliases for StringPrep</span> <a name="l00738"></a>00738 <span class="comment"> */</span> <a name="l00739"></a>00739 U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR, <a name="l00740"></a>00740 U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR, <a name="l00741"></a>00741 U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR, <a name="l00742"></a>00742 <a name="l00743"></a>00743 <a name="l00744"></a><a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabef607510d3b8e2e6f900e7a5a60913bf2">00744</a> <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabef607510d3b8e2e6f900e7a5a60913bf2">U_ERROR_LIMIT</a>=U_IDNA_ERROR_LIMIT <a name="l00745"></a>00745 } <a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe">UErrorCode</a>; <a name="l00746"></a>00746 <a name="l00747"></a>00747 <span class="comment">/* Use the following to determine if an UErrorCode represents */</span> <a name="l00748"></a>00748 <span class="comment">/* operational success or failure. */</span> <a name="l00749"></a>00749 <a name="l00750"></a>00750 <span class="preprocessor">#ifdef XP_CPLUSPLUS</span> <a name="l00751"></a>00751 <span class="preprocessor"></span> <a name="l00755"></a>00755 <span class="keyword">static</span> <a name="l00756"></a>00756 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#d373ce262c37cc047b0df2ad7b5dbba7">UBool</a> <a class="code" href="utypes_8h.html#66bf50e5fe117e762c90f1a1fd9c297e">U_SUCCESS</a>(<a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe">UErrorCode</a> code) { <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#d373ce262c37cc047b0df2ad7b5dbba7">UBool</a>)(code<=<a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe3734e0f4726e8f9f03ad0372fe1d7c4d">U_ZERO_ERROR</a>); } <a name="l00761"></a>00761 <span class="keyword">static</span> <a name="l00762"></a>00762 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#d373ce262c37cc047b0df2ad7b5dbba7">UBool</a> <a class="code" href="utypes_8h.html#488895ec2af6692af4afe1ddb1908155">U_FAILURE</a>(<a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe">UErrorCode</a> code) { <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#d373ce262c37cc047b0df2ad7b5dbba7">UBool</a>)(code><a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe3734e0f4726e8f9f03ad0372fe1d7c4d">U_ZERO_ERROR</a>); } <a name="l00763"></a>00763 <span class="preprocessor">#else</span> <a name="l00764"></a>00764 <span class="preprocessor"></span> <a name="l00768"></a><a class="code" href="utypes_8h.html#66bf50e5fe117e762c90f1a1fd9c297e">00768</a> <span class="preprocessor"># define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)</span> <a name="l00769"></a>00769 <span class="preprocessor"></span> <a name="l00773"></a><a class="code" href="utypes_8h.html#488895ec2af6692af4afe1ddb1908155">00773</a> <span class="preprocessor"># define U_FAILURE(x) ((x)>U_ZERO_ERROR)</span> <a name="l00774"></a>00774 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00775"></a>00775 <span class="preprocessor"></span> <a name="l00782"></a>00782 <a class="code" href="umachine_8h.html#827899f75db3ae4cfde9ad08fc2853a0">U_STABLE</a> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="platform_8h.html#d665df105e679e1428e48dc5cb90a756">U_EXPORT2</a> <a name="l00783"></a>00783 <a class="code" href="utypes_8h.html#bc4fffb476a2d2c2068dcd8b956dc7b3">u_errorName</a>(<a class="code" href="utypes_8h.html#863c11989634c998849cc946d04dfabe">UErrorCode</a> code); <a name="l00784"></a>00784 <a name="l00785"></a>00785 <a name="l00786"></a>00786 <span class="preprocessor">#endif </span><span class="comment">/* _UTYPES */</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Dec 13 17:29:51 2011 for ICU 3.6 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address> </body> </html>