<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>ICU 4.4.1: unistr.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.2-20100208 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </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>unistr.h</h1><a href="unistr_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) 1998-2010, 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 unistr.h</span> <a name="l00008"></a>00008 <span class="comment">*</span> <a name="l00009"></a>00009 <span class="comment">* Modification History:</span> <a name="l00010"></a>00010 <span class="comment">*</span> <a name="l00011"></a>00011 <span class="comment">* Date Name Description</span> <a name="l00012"></a>00012 <span class="comment">* 09/25/98 stephen Creation.</span> <a name="l00013"></a>00013 <span class="comment">* 11/11/98 stephen Changed per 11/9 code review.</span> <a name="l00014"></a>00014 <span class="comment">* 04/20/99 stephen Overhauled per 4/16 code review.</span> <a name="l00015"></a>00015 <span class="comment">* 11/18/99 aliu Made to inherit from Replaceable. Added method</span> <a name="l00016"></a>00016 <span class="comment">* handleReplaceBetween(); other methods unchanged.</span> <a name="l00017"></a>00017 <span class="comment">* 06/25/01 grhoten Remove dependency on iostream.</span> <a name="l00018"></a>00018 <span class="comment">******************************************************************************</span> <a name="l00019"></a>00019 <span class="comment">*/</span> <a name="l00020"></a>00020 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef UNISTR_H</span> <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define UNISTR_H</span> <a name="l00023"></a>00023 <span class="preprocessor"></span> <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">unicode/utypes.h</a>"</span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="rep_8h.html" title="C++ API: Replaceable String.">unicode/rep.h</a>"</span> <a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="std__string_8h.html" title="C++ API: Central ICU header for including the C++ standard &lt;string&gt; header...">unicode/std_string.h</a>"</span> <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="stringpiece_8h.html" title="C++ API: StringPiece: Read-only byte string wrapper class.">unicode/stringpiece.h</a>"</span> <a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="bytestream_8h.html" title="C++ API: Interface for writing bytes, and implementation classes.">unicode/bytestream.h</a>"</span> <a name="l00034"></a>00034 <a name="l00035"></a>00035 <span class="keyword">struct </span><a class="code" href="ucnv__err_8h.html#a0c2dcfbf71ad577f5285869e1ceb26b1">UConverter</a>; <span class="comment">// unicode/ucnv.h</span> <a name="l00036"></a>00036 <span class="keyword">class </span>StringThreadTest; <a name="l00037"></a>00037 <a name="l00038"></a>00038 <span class="preprocessor">#ifndef U_COMPARE_CODE_POINT_ORDER</span> <a name="l00039"></a>00039 <span class="preprocessor"></span><span class="comment">/* see also ustring.h and unorm.h */</span> <a name="l00045"></a><a class="code" href="unistr_8h.html#a7fd781b068b28ee2db708090aa32df8f">00045</a> <span class="preprocessor">#define U_COMPARE_CODE_POINT_ORDER 0x8000</span> <a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00047"></a>00047 <span class="preprocessor"></span> <a name="l00048"></a>00048 <span class="preprocessor">#ifndef USTRING_H</span> <a name="l00049"></a>00049 <span class="preprocessor"></span> <a name="l00052"></a>00052 <a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> int32_t <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> <a name="l00053"></a>00053 <a class="code" href="group__ustring__ustrlen.html#gac4d8a5581fc5bde71d62ebd0a7a84ec5" title="Determine the length of an array of UChar.">u_strlen</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *s); <a name="l00054"></a>00054 <span class="preprocessor">#endif</span> <a name="l00055"></a>00055 <span class="preprocessor"></span> <a name="l00056"></a>00056 <a class="code" href="uversion_8h.html#a7d9374e037299886d4192b763b4c5e8b" title="This is used to begin a declaration of a public ICU C++ API.">U_NAMESPACE_BEGIN</a> <a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="keyword">class </span><a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a>; <span class="comment">// unicode/locid.h</span> <a name="l00059"></a>00059 <span class="keyword">class </span><a class="code" href="classStringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code...">StringCharacterIterator</a>; <a name="l00060"></a>00060 <span class="keyword">class </span><a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>; <span class="comment">// unicode/brkiter.h</span> <a name="l00061"></a>00061 <a name="l00062"></a>00062 <span class="comment">/* The <iostream> include has been moved to unicode/ustream.h */</span> <a name="l00063"></a>00063 <a name="l00074"></a><a class="code" href="unistr_8h.html#a308c066384b8560030fb3482bcb13381">00074</a> <span class="preprocessor">#define US_INV U_NAMESPACE_QUALIFIER UnicodeString::kInvariant</span> <a name="l00075"></a>00075 <span class="preprocessor"></span> <a name="l00093"></a>00093 <span class="preprocessor">#if defined(U_DECLARE_UTF16)</span> <a name="l00094"></a><a class="code" href="unistr_8h.html#aeab1ff09f666cf5fce35fc88cf37d714">00094</a> <span class="preprocessor"></span><span class="preprocessor"># define UNICODE_STRING(cs, _length) U_NAMESPACE_QUALIFIER UnicodeString(TRUE, (const UChar *)U_DECLARE_UTF16(cs), _length)</span> <a name="l00095"></a>00095 <span class="preprocessor"></span><span class="preprocessor">#elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))</span> <a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor"># define UNICODE_STRING(cs, _length) U_NAMESPACE_QUALIFIER UnicodeString(TRUE, (const UChar *)L ## cs, _length)</span> <a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor">#elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY</span> <a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor"># define UNICODE_STRING(cs, _length) U_NAMESPACE_QUALIFIER UnicodeString(TRUE, (const UChar *)cs, _length)</span> <a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor"># define UNICODE_STRING(cs, _length) U_NAMESPACE_QUALIFIER UnicodeString(cs, _length, US_INV)</span> <a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00102"></a>00102 <span class="preprocessor"></span> <a name="l00116"></a><a class="code" href="unistr_8h.html#a6cd56429cbf4fe567a97c9d1a46e96ae">00116</a> <span class="preprocessor">#define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1)</span> <a name="l00117"></a>00117 <span class="preprocessor"></span> <a name="l00187"></a><a class="code" href="classUnicodeString.html">00187</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#a559955ec3bc692657c5d8b1c6de8e334" title="Set to export library symbols from inside the common library, and to import them...">U_COMMON_API</a> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> : <span class="keyword">public</span> <a class="code" href="classReplaceable.html" title="Replaceable is an abstract base class representing a string of characters that supports...">Replaceable</a> <a name="l00188"></a>00188 { <a name="l00189"></a>00189 <span class="keyword">public</span>: <a name="l00190"></a>00190 <a name="l00199"></a><a class="code" href="classUnicodeString.html#a7ffe265551a9bf6ea0e4c0cb508cea8a">00199</a> <span class="keyword">enum</span> <a class="code" href="classUnicodeString.html#a7ffe265551a9bf6ea0e4c0cb508cea8a" title="Constant to be used in the UnicodeString(char *, int32_t, EInvariant) constructor...">EInvariant</a> { <a name="l00204"></a><a class="code" href="classUnicodeString.html#a7ffe265551a9bf6ea0e4c0cb508cea8aaf60977cf9e4fde77211e7828f0d2ec5b">00204</a> kInvariant <a name="l00205"></a>00205 }; <a name="l00206"></a>00206 <a name="l00207"></a>00207 <span class="comment">//========================================</span> <a name="l00208"></a>00208 <span class="comment">// Read-only operations</span> <a name="l00209"></a>00209 <span class="comment">//========================================</span> <a name="l00210"></a>00210 <a name="l00211"></a>00211 <span class="comment">/* Comparison - bitwise only - for international comparison use collation */</span> <a name="l00212"></a>00212 <a name="l00220"></a>00220 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="stringpiece_8h.html#a7652049cbac0bfeae2cd2aa4514a3352" title="Global operator == for StringPiece.">operator== </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00221"></a>00221 <a name="l00229"></a>00229 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="stringpiece_8h.html#abf0ccab9536bab551afc07de65eb5d95" title="Global operator != for StringPiece.">operator!= </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00230"></a>00230 <a name="l00238"></a>00238 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> operator> (<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00239"></a>00239 <a name="l00247"></a>00247 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> operator< (<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00248"></a>00248 <a name="l00256"></a>00256 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> operator>= (<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00257"></a>00257 <a name="l00265"></a>00265 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> operator<= (<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00266"></a>00266 <a name="l00278"></a>00278 <span class="keyword">inline</span> int8_t compare(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00279"></a>00279 <a name="l00294"></a>00294 <span class="keyword">inline</span> int8_t compare(int32_t start, <a name="l00295"></a>00295 int32_t length, <a name="l00296"></a>00296 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00297"></a>00297 <a name="l00315"></a>00315 <span class="keyword">inline</span> int8_t compare(int32_t start, <a name="l00316"></a>00316 int32_t length, <a name="l00317"></a>00317 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00318"></a>00318 int32_t srcStart, <a name="l00319"></a>00319 int32_t srcLength) <span class="keyword">const</span>; <a name="l00320"></a>00320 <a name="l00333"></a>00333 <span class="keyword">inline</span> int8_t compare(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00334"></a>00334 int32_t srcLength) <span class="keyword">const</span>; <a name="l00335"></a>00335 <a name="l00350"></a>00350 <span class="keyword">inline</span> int8_t compare(int32_t start, <a name="l00351"></a>00351 int32_t length, <a name="l00352"></a>00352 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars) <span class="keyword">const</span>; <a name="l00353"></a>00353 <a name="l00371"></a>00371 <span class="keyword">inline</span> int8_t compare(int32_t start, <a name="l00372"></a>00372 int32_t length, <a name="l00373"></a>00373 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00374"></a>00374 int32_t srcStart, <a name="l00375"></a>00375 int32_t srcLength) <span class="keyword">const</span>; <a name="l00376"></a>00376 <a name="l00394"></a>00394 <span class="keyword">inline</span> int8_t compareBetween(int32_t start, <a name="l00395"></a>00395 int32_t limit, <a name="l00396"></a>00396 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00397"></a>00397 int32_t srcStart, <a name="l00398"></a>00398 int32_t srcLimit) <span class="keyword">const</span>; <a name="l00399"></a>00399 <a name="l00417"></a>00417 <span class="keyword">inline</span> int8_t compareCodePointOrder(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00418"></a>00418 <a name="l00438"></a>00438 <span class="keyword">inline</span> int8_t compareCodePointOrder(int32_t start, <a name="l00439"></a>00439 int32_t length, <a name="l00440"></a>00440 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <span class="keyword">const</span>; <a name="l00441"></a>00441 <a name="l00463"></a>00463 <span class="keyword">inline</span> int8_t compareCodePointOrder(int32_t start, <a name="l00464"></a>00464 int32_t length, <a name="l00465"></a>00465 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00466"></a>00466 int32_t srcStart, <a name="l00467"></a>00467 int32_t srcLength) <span class="keyword">const</span>; <a name="l00468"></a>00468 <a name="l00487"></a>00487 <span class="keyword">inline</span> int8_t compareCodePointOrder(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00488"></a>00488 int32_t srcLength) <span class="keyword">const</span>; <a name="l00489"></a>00489 <a name="l00509"></a>00509 <span class="keyword">inline</span> int8_t compareCodePointOrder(int32_t start, <a name="l00510"></a>00510 int32_t length, <a name="l00511"></a>00511 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars) <span class="keyword">const</span>; <a name="l00512"></a>00512 <a name="l00534"></a>00534 <span class="keyword">inline</span> int8_t compareCodePointOrder(int32_t start, <a name="l00535"></a>00535 int32_t length, <a name="l00536"></a>00536 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00537"></a>00537 int32_t srcStart, <a name="l00538"></a>00538 int32_t srcLength) <span class="keyword">const</span>; <a name="l00539"></a>00539 <a name="l00561"></a>00561 <span class="keyword">inline</span> int8_t compareCodePointOrderBetween(int32_t start, <a name="l00562"></a>00562 int32_t limit, <a name="l00563"></a>00563 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00564"></a>00564 int32_t srcStart, <a name="l00565"></a>00565 int32_t srcLimit) <span class="keyword">const</span>; <a name="l00566"></a>00566 <a name="l00585"></a>00585 <span class="keyword">inline</span> int8_t caseCompare(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, uint32_t options) <span class="keyword">const</span>; <a name="l00586"></a>00586 <a name="l00607"></a>00607 <span class="keyword">inline</span> int8_t caseCompare(int32_t start, <a name="l00608"></a>00608 int32_t length, <a name="l00609"></a>00609 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00610"></a>00610 uint32_t options) <span class="keyword">const</span>; <a name="l00611"></a>00611 <a name="l00634"></a>00634 <span class="keyword">inline</span> int8_t caseCompare(int32_t start, <a name="l00635"></a>00635 int32_t length, <a name="l00636"></a>00636 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00637"></a>00637 int32_t srcStart, <a name="l00638"></a>00638 int32_t srcLength, <a name="l00639"></a>00639 uint32_t options) <span class="keyword">const</span>; <a name="l00640"></a>00640 <a name="l00660"></a>00660 <span class="keyword">inline</span> int8_t caseCompare(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00661"></a>00661 int32_t srcLength, <a name="l00662"></a>00662 uint32_t options) <span class="keyword">const</span>; <a name="l00663"></a>00663 <a name="l00684"></a>00684 <span class="keyword">inline</span> int8_t caseCompare(int32_t start, <a name="l00685"></a>00685 int32_t length, <a name="l00686"></a>00686 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00687"></a>00687 uint32_t options) <span class="keyword">const</span>; <a name="l00688"></a>00688 <a name="l00711"></a>00711 <span class="keyword">inline</span> int8_t caseCompare(int32_t start, <a name="l00712"></a>00712 int32_t length, <a name="l00713"></a>00713 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00714"></a>00714 int32_t srcStart, <a name="l00715"></a>00715 int32_t srcLength, <a name="l00716"></a>00716 uint32_t options) <span class="keyword">const</span>; <a name="l00717"></a>00717 <a name="l00740"></a>00740 <span class="keyword">inline</span> int8_t caseCompareBetween(int32_t start, <a name="l00741"></a>00741 int32_t limit, <a name="l00742"></a>00742 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00743"></a>00743 int32_t srcStart, <a name="l00744"></a>00744 int32_t srcLimit, <a name="l00745"></a>00745 uint32_t options) <span class="keyword">const</span>; <a name="l00746"></a>00746 <a name="l00754"></a>00754 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> startsWith(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00755"></a>00755 <a name="l00766"></a>00766 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> startsWith(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00767"></a>00767 int32_t srcStart, <a name="l00768"></a>00768 int32_t srcLength) <span class="keyword">const</span>; <a name="l00769"></a>00769 <a name="l00778"></a>00778 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> startsWith(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00779"></a>00779 int32_t srcLength) <span class="keyword">const</span>; <a name="l00780"></a>00780 <a name="l00790"></a>00790 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> startsWith(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00791"></a>00791 int32_t srcStart, <a name="l00792"></a>00792 int32_t srcLength) <span class="keyword">const</span>; <a name="l00793"></a>00793 <a name="l00801"></a>00801 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> endsWith(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00802"></a>00802 <a name="l00813"></a>00813 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> endsWith(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00814"></a>00814 int32_t srcStart, <a name="l00815"></a>00815 int32_t srcLength) <span class="keyword">const</span>; <a name="l00816"></a>00816 <a name="l00825"></a>00825 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> endsWith(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00826"></a>00826 int32_t srcLength) <span class="keyword">const</span>; <a name="l00827"></a>00827 <a name="l00838"></a>00838 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> endsWith(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00839"></a>00839 int32_t srcStart, <a name="l00840"></a>00840 int32_t srcLength) <span class="keyword">const</span>; <a name="l00841"></a>00841 <a name="l00842"></a>00842 <a name="l00843"></a>00843 <span class="comment">/* Searching - bitwise only */</span> <a name="l00844"></a>00844 <a name="l00853"></a>00853 <span class="keyword">inline</span> int32_t indexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l00854"></a>00854 <a name="l00864"></a>00864 <span class="keyword">inline</span> int32_t indexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l00865"></a>00865 int32_t start) <span class="keyword">const</span>; <a name="l00866"></a>00866 <a name="l00878"></a>00878 <span class="keyword">inline</span> int32_t indexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l00879"></a>00879 int32_t start, <a name="l00880"></a>00880 int32_t length) <span class="keyword">const</span>; <a name="l00881"></a>00881 <a name="l00898"></a>00898 <span class="keyword">inline</span> int32_t indexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l00899"></a>00899 int32_t srcStart, <a name="l00900"></a>00900 int32_t srcLength, <a name="l00901"></a>00901 int32_t start, <a name="l00902"></a>00902 int32_t length) <span class="keyword">const</span>; <a name="l00903"></a>00903 <a name="l00915"></a>00915 <span class="keyword">inline</span> int32_t indexOf(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00916"></a>00916 int32_t srcLength, <a name="l00917"></a>00917 int32_t start) <span class="keyword">const</span>; <a name="l00918"></a>00918 <a name="l00931"></a>00931 <span class="keyword">inline</span> int32_t indexOf(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00932"></a>00932 int32_t srcLength, <a name="l00933"></a>00933 int32_t start, <a name="l00934"></a>00934 int32_t length) <span class="keyword">const</span>; <a name="l00935"></a>00935 <a name="l00952"></a>00952 int32_t indexOf(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l00953"></a>00953 int32_t srcStart, <a name="l00954"></a>00954 int32_t srcLength, <a name="l00955"></a>00955 int32_t start, <a name="l00956"></a>00956 int32_t length) <span class="keyword">const</span>; <a name="l00957"></a>00957 <a name="l00965"></a>00965 <span class="keyword">inline</span> int32_t indexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c) <span class="keyword">const</span>; <a name="l00966"></a>00966 <a name="l00975"></a>00975 <span class="keyword">inline</span> int32_t indexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c) <span class="keyword">const</span>; <a name="l00976"></a>00976 <a name="l00985"></a>00985 <span class="keyword">inline</span> int32_t indexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l00986"></a>00986 int32_t start) <span class="keyword">const</span>; <a name="l00987"></a>00987 <a name="l00997"></a>00997 <span class="keyword">inline</span> int32_t indexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l00998"></a>00998 int32_t start) <span class="keyword">const</span>; <a name="l00999"></a>00999 <a name="l01010"></a>01010 <span class="keyword">inline</span> int32_t indexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l01011"></a>01011 int32_t start, <a name="l01012"></a>01012 int32_t length) <span class="keyword">const</span>; <a name="l01013"></a>01013 <a name="l01025"></a>01025 <span class="keyword">inline</span> int32_t indexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l01026"></a>01026 int32_t start, <a name="l01027"></a>01027 int32_t length) <span class="keyword">const</span>; <a name="l01028"></a>01028 <a name="l01037"></a>01037 <span class="keyword">inline</span> int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text) <span class="keyword">const</span>; <a name="l01038"></a>01038 <a name="l01048"></a>01048 <span class="keyword">inline</span> int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l01049"></a>01049 int32_t start) <span class="keyword">const</span>; <a name="l01050"></a>01050 <a name="l01062"></a>01062 <span class="keyword">inline</span> int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l01063"></a>01063 int32_t start, <a name="l01064"></a>01064 int32_t length) <span class="keyword">const</span>; <a name="l01065"></a>01065 <a name="l01082"></a>01082 <span class="keyword">inline</span> int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l01083"></a>01083 int32_t srcStart, <a name="l01084"></a>01084 int32_t srcLength, <a name="l01085"></a>01085 int32_t start, <a name="l01086"></a>01086 int32_t length) <span class="keyword">const</span>; <a name="l01087"></a>01087 <a name="l01098"></a>01098 <span class="keyword">inline</span> int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l01099"></a>01099 int32_t srcLength, <a name="l01100"></a>01100 int32_t start) <span class="keyword">const</span>; <a name="l01101"></a>01101 <a name="l01114"></a>01114 <span class="keyword">inline</span> int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l01115"></a>01115 int32_t srcLength, <a name="l01116"></a>01116 int32_t start, <a name="l01117"></a>01117 int32_t length) <span class="keyword">const</span>; <a name="l01118"></a>01118 <a name="l01135"></a>01135 int32_t lastIndexOf(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l01136"></a>01136 int32_t srcStart, <a name="l01137"></a>01137 int32_t srcLength, <a name="l01138"></a>01138 int32_t start, <a name="l01139"></a>01139 int32_t length) <span class="keyword">const</span>; <a name="l01140"></a>01140 <a name="l01148"></a>01148 <span class="keyword">inline</span> int32_t lastIndexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c) <span class="keyword">const</span>; <a name="l01149"></a>01149 <a name="l01158"></a>01158 <span class="keyword">inline</span> int32_t lastIndexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c) <span class="keyword">const</span>; <a name="l01159"></a>01159 <a name="l01168"></a>01168 <span class="keyword">inline</span> int32_t lastIndexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l01169"></a>01169 int32_t start) <span class="keyword">const</span>; <a name="l01170"></a>01170 <a name="l01180"></a>01180 <span class="keyword">inline</span> int32_t lastIndexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l01181"></a>01181 int32_t start) <span class="keyword">const</span>; <a name="l01182"></a>01182 <a name="l01193"></a>01193 <span class="keyword">inline</span> int32_t lastIndexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l01194"></a>01194 int32_t start, <a name="l01195"></a>01195 int32_t length) <span class="keyword">const</span>; <a name="l01196"></a>01196 <a name="l01208"></a>01208 <span class="keyword">inline</span> int32_t lastIndexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l01209"></a>01209 int32_t start, <a name="l01210"></a>01210 int32_t length) <span class="keyword">const</span>; <a name="l01211"></a>01211 <a name="l01212"></a>01212 <a name="l01213"></a>01213 <span class="comment">/* Character access */</span> <a name="l01214"></a>01214 <a name="l01223"></a>01223 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> <a class="code" href="classReplaceable.html#a78909dd61599c6f2d8af7a9d3bf5dd0f" title="Returns the 16-bit code unit at the given offset into the text.">charAt</a>(int32_t offset) <span class="keyword">const</span>; <a name="l01224"></a>01224 <a name="l01232"></a>01232 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> operator[] (int32_t offset) <span class="keyword">const</span>; <a name="l01233"></a>01233 <a name="l01245"></a>01245 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> <a class="code" href="classReplaceable.html#ac7e972cbbe070b5fb1d0f824d2badb2c" title="Returns the 32-bit code point at the given 16-bit offset into the text.">char32At</a>(int32_t offset) <span class="keyword">const</span>; <a name="l01246"></a>01246 <a name="l01262"></a>01262 <span class="keyword">inline</span> int32_t getChar32Start(int32_t offset) <span class="keyword">const</span>; <a name="l01263"></a>01263 <a name="l01280"></a>01280 <span class="keyword">inline</span> int32_t getChar32Limit(int32_t offset) <span class="keyword">const</span>; <a name="l01281"></a>01281 <a name="l01332"></a>01332 int32_t moveIndex32(int32_t index, int32_t delta) <span class="keyword">const</span>; <a name="l01333"></a>01333 <a name="l01334"></a>01334 <span class="comment">/* Substring extraction */</span> <a name="l01335"></a>01335 <a name="l01351"></a>01351 <span class="keyword">inline</span> <span class="keywordtype">void</span> extract(int32_t start, <a name="l01352"></a>01352 int32_t length, <a name="l01353"></a>01353 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *dst, <a name="l01354"></a>01354 int32_t dstStart = 0) <span class="keyword">const</span>; <a name="l01355"></a>01355 <a name="l01377"></a>01377 int32_t <a name="l01378"></a>01378 extract(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *dest, int32_t destCapacity, <a name="l01379"></a>01379 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &errorCode) <span class="keyword">const</span>; <a name="l01380"></a>01380 <a name="l01391"></a>01391 <span class="keyword">inline</span> <span class="keywordtype">void</span> extract(int32_t start, <a name="l01392"></a>01392 int32_t length, <a name="l01393"></a>01393 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& target) <span class="keyword">const</span>; <a name="l01394"></a>01394 <a name="l01406"></a>01406 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classReplaceable.html#abdf76adaff91c3310a70ae4297734bf4" title="Copies characters in the range [start, limit) into the UnicodeString target.">extractBetween</a>(int32_t start, <a name="l01407"></a>01407 int32_t limit, <a name="l01408"></a>01408 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *dst, <a name="l01409"></a>01409 int32_t dstStart = 0) <span class="keyword">const</span>; <a name="l01410"></a>01410 <a name="l01420"></a>01420 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classReplaceable.html#abdf76adaff91c3310a70ae4297734bf4" title="Copies characters in the range [start, limit) into the UnicodeString target.">extractBetween</a>(int32_t start, <a name="l01421"></a>01421 int32_t limit, <a name="l01422"></a>01422 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& target) <span class="keyword">const</span>; <a name="l01423"></a>01423 <a name="l01445"></a>01445 int32_t extract(int32_t start, <a name="l01446"></a>01446 int32_t startLength, <a name="l01447"></a>01447 <span class="keywordtype">char</span> *target, <a name="l01448"></a>01448 int32_t targetCapacity, <a name="l01449"></a>01449 <span class="keyword">enum</span> EInvariant inv) <span class="keyword">const</span>; <a name="l01450"></a>01450 <a name="l01451"></a>01451 <span class="preprocessor">#if U_CHARSET_IS_UTF8 || !UCONFIG_NO_CONVERSION</span> <a name="l01452"></a>01452 <span class="preprocessor"></span> <a name="l01472"></a>01472 int32_t extract(int32_t start, <a name="l01473"></a>01473 int32_t startLength, <a name="l01474"></a>01474 <span class="keywordtype">char</span> *target, <a name="l01475"></a>01475 uint32_t targetLength) <span class="keyword">const</span>; <a name="l01476"></a>01476 <a name="l01477"></a>01477 <span class="preprocessor">#endif</span> <a name="l01478"></a>01478 <span class="preprocessor"></span> <a name="l01479"></a>01479 <span class="preprocessor">#if !UCONFIG_NO_CONVERSION</span> <a name="l01480"></a>01480 <span class="preprocessor"></span> <a name="l01506"></a>01506 <span class="keyword">inline</span> int32_t extract(int32_t start, <a name="l01507"></a>01507 int32_t startLength, <a name="l01508"></a>01508 <span class="keywordtype">char</span> *target, <a name="l01509"></a>01509 <span class="keyword">const</span> <span class="keywordtype">char</span> *codepage = 0) <span class="keyword">const</span>; <a name="l01510"></a>01510 <a name="l01540"></a>01540 int32_t extract(int32_t start, <a name="l01541"></a>01541 int32_t startLength, <a name="l01542"></a>01542 <span class="keywordtype">char</span> *target, <a name="l01543"></a>01543 uint32_t targetLength, <a name="l01544"></a>01544 <span class="keyword">const</span> <span class="keywordtype">char</span> *codepage) <span class="keyword">const</span>; <a name="l01545"></a>01545 <a name="l01563"></a>01563 int32_t extract(<span class="keywordtype">char</span> *dest, int32_t destCapacity, <a name="l01564"></a>01564 <a class="code" href="ucnv__err_8h.html#a0c2dcfbf71ad577f5285869e1ceb26b1">UConverter</a> *cnv, <a name="l01565"></a>01565 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &errorCode) <span class="keyword">const</span>; <a name="l01566"></a>01566 <a name="l01567"></a>01567 <span class="preprocessor">#endif</span> <a name="l01568"></a>01568 <span class="preprocessor"></span> <a name="l01582"></a>01582 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> tempSubString(int32_t start=0, int32_t length=<a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>) <span class="keyword">const</span>; <a name="l01583"></a>01583 <a name="l01594"></a>01594 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> tempSubStringBetween(int32_t start, int32_t limit=<a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>) <span class="keyword">const</span>; <a name="l01595"></a>01595 <a name="l01606"></a>01606 <span class="keywordtype">void</span> toUTF8(<a class="code" href="classByteSink.html" title="A ByteSink can be filled with bytes.">ByteSink</a> &sink) <span class="keyword">const</span>; <a name="l01607"></a>01607 <a name="l01608"></a>01608 <span class="preprocessor">#if U_HAVE_STD_STRING</span> <a name="l01609"></a>01609 <span class="preprocessor"></span> <a name="l01622"></a>01622 <span class="keyword">template</span><<span class="keyword">typename</span> StringClass> <a name="l01623"></a><a class="code" href="classUnicodeString.html#ae8dbe5f2578a1d7b8741491076f2fbe9">01623</a> StringClass &<a class="code" href="classUnicodeString.html#ae8dbe5f2578a1d7b8741491076f2fbe9" title="Convert the UnicodeString to UTF-8 and append the result to a standard string.">toUTF8String</a>(StringClass &result)<span class="keyword"> const </span>{ <a name="l01624"></a>01624 <a class="code" href="classStringByteSink.html" title="Implementation of ByteSink that writes to a &quot;string&quot;.">StringByteSink<StringClass></a> sbs(&result); <a name="l01625"></a>01625 toUTF8(sbs); <a name="l01626"></a>01626 <span class="keywordflow">return</span> result; <a name="l01627"></a>01627 } <a name="l01628"></a>01628 <a name="l01629"></a>01629 <span class="preprocessor">#endif</span> <a name="l01630"></a>01630 <span class="preprocessor"></span> <a name="l01646"></a>01646 int32_t toUTF32(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> *utf32, int32_t capacity, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &errorCode) <span class="keyword">const</span>; <a name="l01647"></a>01647 <a name="l01648"></a>01648 <span class="comment">/* Length operations */</span> <a name="l01649"></a>01649 <a name="l01658"></a>01658 <span class="keyword">inline</span> int32_t <a class="code" href="classReplaceable.html#a81c2af838cfaf3c2a0d46b7fa727e8d0" title="Returns the number of 16-bit code units in the text.">length</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l01659"></a>01659 <a name="l01673"></a>01673 int32_t <a name="l01674"></a>01674 countChar32(int32_t start=0, int32_t length=<a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>) <span class="keyword">const</span>; <a name="l01675"></a>01675 <a name="l01699"></a>01699 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l01700"></a>01700 hasMoreChar32Than(int32_t start, int32_t length, int32_t number) <span class="keyword">const</span>; <a name="l01701"></a>01701 <a name="l01707"></a>01707 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isEmpty(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l01708"></a>01708 <a name="l01718"></a>01718 <span class="keyword">inline</span> int32_t getCapacity(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l01719"></a>01719 <a name="l01720"></a>01720 <span class="comment">/* Other operations */</span> <a name="l01721"></a>01721 <a name="l01727"></a>01727 <span class="keyword">inline</span> int32_t hashCode(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l01728"></a>01728 <a name="l01741"></a>01741 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isBogus(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l01742"></a>01742 <a name="l01743"></a>01743 <a name="l01744"></a>01744 <span class="comment">//========================================</span> <a name="l01745"></a>01745 <span class="comment">// Write operations</span> <a name="l01746"></a>01746 <span class="comment">//========================================</span> <a name="l01747"></a>01747 <a name="l01748"></a>01748 <span class="comment">/* Assignment operations */</span> <a name="l01749"></a>01749 <a name="l01757"></a>01757 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &operator=(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &srcText); <a name="l01758"></a>01758 <a name="l01779"></a>01779 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &fastCopyFrom(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &src); <a name="l01780"></a>01780 <a name="l01788"></a>01788 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& operator= (<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> ch); <a name="l01789"></a>01789 <a name="l01797"></a>01797 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& operator= (<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> ch); <a name="l01798"></a>01798 <a name="l01810"></a>01810 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setTo(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l01811"></a>01811 int32_t srcStart); <a name="l01812"></a>01812 <a name="l01826"></a>01826 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setTo(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l01827"></a>01827 int32_t srcStart, <a name="l01828"></a>01828 int32_t srcLength); <a name="l01829"></a>01829 <a name="l01838"></a>01838 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setTo(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText); <a name="l01839"></a>01839 <a name="l01848"></a>01848 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setTo(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l01849"></a>01849 int32_t srcLength); <a name="l01850"></a>01850 <a name="l01859"></a>01859 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setTo(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar); <a name="l01860"></a>01860 <a name="l01869"></a>01869 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setTo(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar); <a name="l01870"></a>01870 <a name="l01891"></a>01891 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &setTo(<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isTerminated, <a name="l01892"></a>01892 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *text, <a name="l01893"></a>01893 int32_t textLength); <a name="l01894"></a>01894 <a name="l01914"></a>01914 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &setTo(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *buffer, <a name="l01915"></a>01915 int32_t buffLength, <a name="l01916"></a>01916 int32_t buffCapacity); <a name="l01917"></a>01917 <a name="l01958"></a>01958 <span class="keywordtype">void</span> setToBogus(); <a name="l01959"></a>01959 <a name="l01967"></a>01967 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& setCharAt(int32_t offset, <a name="l01968"></a>01968 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> ch); <a name="l01969"></a>01969 <a name="l01970"></a>01970 <a name="l01971"></a>01971 <span class="comment">/* Append operations */</span> <a name="l01972"></a>01972 <a name="l01980"></a>01980 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& operator+= (<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> ch); <a name="l01981"></a>01981 <a name="l01989"></a>01989 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& operator+= (<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> ch); <a name="l01990"></a>01990 <a name="l01999"></a>01999 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& operator+= (<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText); <a name="l02000"></a>02000 <a name="l02015"></a>02015 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& append(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l02016"></a>02016 int32_t srcStart, <a name="l02017"></a>02017 int32_t srcLength); <a name="l02018"></a>02018 <a name="l02026"></a>02026 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& append(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText); <a name="l02027"></a>02027 <a name="l02041"></a>02041 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& append(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l02042"></a>02042 int32_t srcStart, <a name="l02043"></a>02043 int32_t srcLength); <a name="l02044"></a>02044 <a name="l02053"></a>02053 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& append(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l02054"></a>02054 int32_t srcLength); <a name="l02055"></a>02055 <a name="l02062"></a>02062 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& append(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar); <a name="l02063"></a>02063 <a name="l02070"></a>02070 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& append(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar); <a name="l02071"></a>02071 <a name="l02072"></a>02072 <a name="l02073"></a>02073 <span class="comment">/* Insert operations */</span> <a name="l02074"></a>02074 <a name="l02088"></a>02088 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& insert(int32_t start, <a name="l02089"></a>02089 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l02090"></a>02090 int32_t srcStart, <a name="l02091"></a>02091 int32_t srcLength); <a name="l02092"></a>02092 <a name="l02101"></a>02101 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& insert(int32_t start, <a name="l02102"></a>02102 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText); <a name="l02103"></a>02103 <a name="l02117"></a>02117 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& insert(int32_t start, <a name="l02118"></a>02118 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l02119"></a>02119 int32_t srcStart, <a name="l02120"></a>02120 int32_t srcLength); <a name="l02121"></a>02121 <a name="l02131"></a>02131 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& insert(int32_t start, <a name="l02132"></a>02132 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l02133"></a>02133 int32_t srcLength); <a name="l02134"></a>02134 <a name="l02143"></a>02143 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& insert(int32_t start, <a name="l02144"></a>02144 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar); <a name="l02145"></a>02145 <a name="l02154"></a>02154 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& insert(int32_t start, <a name="l02155"></a>02155 <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar); <a name="l02156"></a>02156 <a name="l02157"></a>02157 <a name="l02158"></a>02158 <span class="comment">/* Replace operations */</span> <a name="l02159"></a>02159 <a name="l02177"></a>02177 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replace(int32_t start, <a name="l02178"></a>02178 int32_t length, <a name="l02179"></a>02179 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l02180"></a>02180 int32_t srcStart, <a name="l02181"></a>02181 int32_t srcLength); <a name="l02182"></a>02182 <a name="l02195"></a>02195 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replace(int32_t start, <a name="l02196"></a>02196 int32_t length, <a name="l02197"></a>02197 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText); <a name="l02198"></a>02198 <a name="l02216"></a>02216 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replace(int32_t start, <a name="l02217"></a>02217 int32_t length, <a name="l02218"></a>02218 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l02219"></a>02219 int32_t srcStart, <a name="l02220"></a>02220 int32_t srcLength); <a name="l02221"></a>02221 <a name="l02234"></a>02234 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replace(int32_t start, <a name="l02235"></a>02235 int32_t length, <a name="l02236"></a>02236 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l02237"></a>02237 int32_t srcLength); <a name="l02238"></a>02238 <a name="l02250"></a>02250 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replace(int32_t start, <a name="l02251"></a>02251 int32_t length, <a name="l02252"></a>02252 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar); <a name="l02253"></a>02253 <a name="l02265"></a>02265 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replace(int32_t start, <a name="l02266"></a>02266 int32_t length, <a name="l02267"></a>02267 <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar); <a name="l02268"></a>02268 <a name="l02278"></a>02278 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replaceBetween(int32_t start, <a name="l02279"></a>02279 int32_t limit, <a name="l02280"></a>02280 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText); <a name="l02281"></a>02281 <a name="l02296"></a>02296 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& replaceBetween(int32_t start, <a name="l02297"></a>02297 int32_t limit, <a name="l02298"></a>02298 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l02299"></a>02299 int32_t srcStart, <a name="l02300"></a>02300 int32_t srcLimit); <a name="l02301"></a>02301 <a name="l02312"></a>02312 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classReplaceable.html#ae403fe2b8d99c4dd1081417d77ca1e99" title="Replaces a substring of this object with the given text.">handleReplaceBetween</a>(int32_t start, <a name="l02313"></a>02313 int32_t limit, <a name="l02314"></a>02314 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text); <a name="l02315"></a>02315 <a name="l02321"></a>02321 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classReplaceable.html#ad4ae052a7be93bb0a69a6a55ff45ca43" title="Returns true if this object contains metadata.">hasMetaData</a>() <span class="keyword">const</span>; <a name="l02322"></a>02322 <a name="l02338"></a>02338 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classReplaceable.html#aa99cf49af5401c5bc89cd6894c67e2e8" title="Copies a substring of this object, retaining metadata.">copy</a>(int32_t start, int32_t limit, int32_t dest); <a name="l02339"></a>02339 <a name="l02340"></a>02340 <span class="comment">/* Search and replace operations */</span> <a name="l02341"></a>02341 <a name="l02350"></a>02350 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& findAndReplace(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& oldText, <a name="l02351"></a>02351 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& newText); <a name="l02352"></a>02352 <a name="l02364"></a>02364 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& findAndReplace(int32_t start, <a name="l02365"></a>02365 int32_t length, <a name="l02366"></a>02366 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& oldText, <a name="l02367"></a>02367 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& newText); <a name="l02368"></a>02368 <a name="l02386"></a>02386 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& findAndReplace(int32_t start, <a name="l02387"></a>02387 int32_t length, <a name="l02388"></a>02388 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& oldText, <a name="l02389"></a>02389 int32_t oldStart, <a name="l02390"></a>02390 int32_t oldLength, <a name="l02391"></a>02391 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& newText, <a name="l02392"></a>02392 int32_t newStart, <a name="l02393"></a>02393 int32_t newLength); <a name="l02394"></a>02394 <a name="l02395"></a>02395 <a name="l02396"></a>02396 <span class="comment">/* Remove operations */</span> <a name="l02397"></a>02397 <a name="l02403"></a>02403 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <span class="keyword">remove</span>(void); <a name="l02404"></a>02404 <a name="l02413"></a>02413 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <span class="keyword">remove</span>(int32_t start, <a name="l02414"></a>02414 int32_t length = (int32_t)<a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>); <a name="l02415"></a>02415 <a name="l02424"></a>02424 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& removeBetween(int32_t start, <a name="l02425"></a>02425 int32_t limit = (int32_t)<a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>); <a name="l02426"></a>02426 <a name="l02436"></a>02436 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &retainBetween(int32_t start, int32_t limit = <a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>); <a name="l02437"></a>02437 <a name="l02438"></a>02438 <span class="comment">/* Length operations */</span> <a name="l02439"></a>02439 <a name="l02451"></a>02451 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> padLeading(int32_t targetLength, <a name="l02452"></a>02452 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> padChar = 0x0020); <a name="l02453"></a>02453 <a name="l02465"></a>02465 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> padTrailing(int32_t targetLength, <a name="l02466"></a>02466 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> padChar = 0x0020); <a name="l02467"></a>02467 <a name="l02474"></a>02474 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> truncate(int32_t targetLength); <a name="l02475"></a>02475 <a name="l02481"></a>02481 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& trim(<span class="keywordtype">void</span>); <a name="l02482"></a>02482 <a name="l02483"></a>02483 <a name="l02484"></a>02484 <span class="comment">/* Miscellaneous operations */</span> <a name="l02485"></a>02485 <a name="l02491"></a>02491 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& reverse(<span class="keywordtype">void</span>); <a name="l02492"></a>02492 <a name="l02501"></a>02501 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& reverse(int32_t start, <a name="l02502"></a>02502 int32_t length); <a name="l02503"></a>02503 <a name="l02510"></a>02510 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& toUpper(<span class="keywordtype">void</span>); <a name="l02511"></a>02511 <a name="l02519"></a>02519 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& toUpper(<span class="keyword">const</span> <a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a>& locale); <a name="l02520"></a>02520 <a name="l02527"></a>02527 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& toLower(<span class="keywordtype">void</span>); <a name="l02528"></a>02528 <a name="l02536"></a>02536 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& toLower(<span class="keyword">const</span> <a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a>& locale); <a name="l02537"></a>02537 <a name="l02538"></a>02538 <span class="preprocessor">#if !UCONFIG_NO_BREAK_ITERATION</span> <a name="l02539"></a>02539 <span class="preprocessor"></span> <a name="l02566"></a>02566 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &toTitle(<a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> *titleIter); <a name="l02567"></a>02567 <a name="l02595"></a>02595 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &toTitle(<a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> *titleIter, <span class="keyword">const</span> <a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> &locale); <a name="l02596"></a>02596 <a name="l02628"></a>02628 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &toTitle(<a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> *titleIter, <span class="keyword">const</span> <a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> &locale, uint32_t options); <a name="l02629"></a>02629 <a name="l02630"></a>02630 <span class="preprocessor">#endif</span> <a name="l02631"></a>02631 <span class="preprocessor"></span> <a name="l02643"></a>02643 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &foldCase(uint32_t options=0 <span class="comment">/*U_FOLD_CASE_DEFAULT*/</span>); <a name="l02644"></a>02644 <a name="l02645"></a>02645 <span class="comment">//========================================</span> <a name="l02646"></a>02646 <span class="comment">// Access to the internal buffer</span> <a name="l02647"></a>02647 <span class="comment">//========================================</span> <a name="l02648"></a>02648 <a name="l02692"></a>02692 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *getBuffer(int32_t minCapacity); <a name="l02693"></a>02693 <a name="l02714"></a>02714 <span class="keywordtype">void</span> releaseBuffer(int32_t newLength=-1); <a name="l02715"></a>02715 <a name="l02746"></a>02746 <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *getBuffer() <span class="keyword">const</span>; <a name="l02747"></a>02747 <a name="l02781"></a>02781 <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *getTerminatedBuffer(); <a name="l02782"></a>02782 <a name="l02783"></a>02783 <span class="comment">//========================================</span> <a name="l02784"></a>02784 <span class="comment">// Constructors</span> <a name="l02785"></a>02785 <span class="comment">//========================================</span> <a name="l02786"></a>02786 <a name="l02790"></a>02790 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(); <a name="l02791"></a>02791 <a name="l02803"></a>02803 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(int32_t capacity, <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, int32_t count); <a name="l02804"></a>02804 <a name="l02810"></a>02810 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> ch); <a name="l02811"></a>02811 <a name="l02817"></a>02817 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> ch); <a name="l02818"></a>02818 <a name="l02825"></a>02825 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *text); <a name="l02826"></a>02826 <a name="l02834"></a>02834 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *text, <a name="l02835"></a>02835 int32_t textLength); <a name="l02836"></a>02836 <a name="l02856"></a>02856 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isTerminated, <a name="l02857"></a>02857 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *text, <a name="l02858"></a>02858 int32_t textLength); <a name="l02859"></a>02859 <a name="l02878"></a>02878 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *buffer, int32_t buffLength, int32_t buffCapacity); <a name="l02879"></a>02879 <a name="l02880"></a>02880 <span class="preprocessor">#if U_CHARSET_IS_UTF8 || !UCONFIG_NO_CONVERSION</span> <a name="l02881"></a>02881 <span class="preprocessor"></span> <a name="l02888"></a>02888 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *codepageData); <a name="l02889"></a>02889 <a name="l02896"></a>02896 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *codepageData, int32_t dataLength); <a name="l02897"></a>02897 <a name="l02898"></a>02898 <span class="preprocessor">#endif</span> <a name="l02899"></a>02899 <span class="preprocessor"></span> <a name="l02900"></a>02900 <span class="preprocessor">#if !UCONFIG_NO_CONVERSION</span> <a name="l02901"></a>02901 <span class="preprocessor"></span> <a name="l02919"></a>02919 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *codepageData, <span class="keyword">const</span> <span class="keywordtype">char</span> *codepage); <a name="l02920"></a>02920 <a name="l02938"></a>02938 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *codepageData, int32_t dataLength, <span class="keyword">const</span> <span class="keywordtype">char</span> *codepage); <a name="l02939"></a>02939 <a name="l02961"></a>02961 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>( <a name="l02962"></a>02962 <span class="keyword">const</span> <span class="keywordtype">char</span> *src, int32_t srcLength, <a name="l02963"></a>02963 <a class="code" href="ucnv__err_8h.html#a0c2dcfbf71ad577f5285869e1ceb26b1">UConverter</a> *cnv, <a name="l02964"></a>02964 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &errorCode); <a name="l02965"></a>02965 <a name="l02966"></a>02966 <span class="preprocessor">#endif</span> <a name="l02967"></a>02967 <span class="preprocessor"></span> <a name="l02992"></a>02992 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *src, int32_t length, <span class="keyword">enum</span> EInvariant inv); <a name="l02993"></a>02993 <a name="l02994"></a>02994 <a name="l03000"></a>03000 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& that); <a name="l03001"></a>03001 <a name="l03008"></a>03008 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& src, int32_t srcStart); <a name="l03009"></a>03009 <a name="l03017"></a>03017 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& src, int32_t srcStart, int32_t srcLength); <a name="l03018"></a>03018 <a name="l03035"></a>03035 <span class="keyword">virtual</span> <a class="code" href="classReplaceable.html" title="Replaceable is an abstract base class representing a string of characters that supports...">Replaceable</a> *<a class="code" href="classReplaceable.html#a6e976bb4e1517d753fed1ea82539657b" title="Clone this object, an instance of a subclass of Replaceable.">clone</a>() <span class="keyword">const</span>; <a name="l03036"></a>03036 <a name="l03040"></a>03040 <span class="keyword">virtual</span> ~<a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>(); <a name="l03041"></a>03041 <a name="l03055"></a>03055 <span class="keyword">static</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> fromUTF8(<span class="keyword">const</span> <a class="code" href="classStringPiece.html" title="A string-like object that points to a sized piece of memory.">StringPiece</a> &utf8); <a name="l03056"></a>03056 <a name="l03068"></a>03068 <span class="keyword">static</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> fromUTF32(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> *utf32, int32_t length); <a name="l03069"></a>03069 <a name="l03070"></a>03070 <span class="comment">/* Miscellaneous operations */</span> <a name="l03071"></a>03071 <a name="l03106"></a>03106 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> unescape() <span class="keyword">const</span>; <a name="l03107"></a>03107 <a name="l03127"></a>03127 <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> unescapeAt(int32_t &offset) <span class="keyword">const</span>; <a name="l03128"></a>03128 <a name="l03134"></a>03134 <span class="keyword">static</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> getStaticClassID(); <a name="l03135"></a>03135 <a name="l03141"></a>03141 <span class="keyword">virtual</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classUObject.html#a9b1acc95efd89cb86ec31f2dc947a262" title="ICU4C &quot;poor man&#39;s RTTI&quot;, returns a UClassID for the actual ICU class...">getDynamicClassID</a>() <span class="keyword">const</span>; <a name="l03142"></a>03142 <a name="l03143"></a>03143 <span class="comment">//========================================</span> <a name="l03144"></a>03144 <span class="comment">// Implementation methods</span> <a name="l03145"></a>03145 <span class="comment">//========================================</span> <a name="l03146"></a>03146 <a name="l03147"></a>03147 <span class="keyword">protected</span>: <a name="l03152"></a>03152 <span class="keyword">virtual</span> int32_t <a class="code" href="classReplaceable.html#aaa70d54cdfecf5e6a0a86566c8f75809" title="Virtual version of length().">getLength</a>() <span class="keyword">const</span>; <a name="l03153"></a>03153 <a name="l03159"></a>03159 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> <a class="code" href="classReplaceable.html#a5cb36727170bbcc883a0c5846a6c4484" title="Virtual version of charAt().">getCharAt</a>(int32_t offset) <span class="keyword">const</span>; <a name="l03160"></a>03160 <a name="l03166"></a>03166 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> <a class="code" href="classReplaceable.html#a6305704f7ac09b06c85fd7698f7ac384" title="Virtual version of char32At().">getChar32At</a>(int32_t offset) <span class="keyword">const</span>; <a name="l03167"></a>03167 <a name="l03168"></a>03168 <span class="keyword">private</span>: <a name="l03169"></a>03169 <span class="comment">// For char* constructors. Could be made public.</span> <a name="l03170"></a>03170 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &setToUTF8(<span class="keyword">const</span> <a class="code" href="classStringPiece.html" title="A string-like object that points to a sized piece of memory.">StringPiece</a> &utf8); <a name="l03171"></a>03171 <span class="comment">// For extract(char*).</span> <a name="l03172"></a>03172 <span class="comment">// We could make a toUTF8(target, capacity, errorCode) public but not</span> <a name="l03173"></a>03173 <span class="comment">// this version: New API will be cleaner if we make callers create substrings</span> <a name="l03174"></a>03174 <span class="comment">// rather than having start+length on every method,</span> <a name="l03175"></a>03175 <span class="comment">// and it should take a UErrorCode&.</span> <a name="l03176"></a>03176 int32_t <a name="l03177"></a>03177 toUTF8(int32_t start, int32_t len, <a name="l03178"></a>03178 <span class="keywordtype">char</span> *target, int32_t capacity) <span class="keyword">const</span>; <a name="l03179"></a>03179 <a name="l03180"></a>03180 <a name="l03181"></a>03181 <span class="keyword">inline</span> int8_t <a name="l03182"></a>03182 doCompare(int32_t start, <a name="l03183"></a>03183 int32_t length, <a name="l03184"></a>03184 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03185"></a>03185 int32_t srcStart, <a name="l03186"></a>03186 int32_t srcLength) <span class="keyword">const</span>; <a name="l03187"></a>03187 <a name="l03188"></a>03188 int8_t doCompare(int32_t start, <a name="l03189"></a>03189 int32_t length, <a name="l03190"></a>03190 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03191"></a>03191 int32_t srcStart, <a name="l03192"></a>03192 int32_t srcLength) <span class="keyword">const</span>; <a name="l03193"></a>03193 <a name="l03194"></a>03194 <span class="keyword">inline</span> int8_t <a name="l03195"></a>03195 doCompareCodePointOrder(int32_t start, <a name="l03196"></a>03196 int32_t length, <a name="l03197"></a>03197 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03198"></a>03198 int32_t srcStart, <a name="l03199"></a>03199 int32_t srcLength) <span class="keyword">const</span>; <a name="l03200"></a>03200 <a name="l03201"></a>03201 int8_t doCompareCodePointOrder(int32_t start, <a name="l03202"></a>03202 int32_t length, <a name="l03203"></a>03203 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03204"></a>03204 int32_t srcStart, <a name="l03205"></a>03205 int32_t srcLength) <span class="keyword">const</span>; <a name="l03206"></a>03206 <a name="l03207"></a>03207 <span class="keyword">inline</span> int8_t <a name="l03208"></a>03208 doCaseCompare(int32_t start, <a name="l03209"></a>03209 int32_t length, <a name="l03210"></a>03210 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &srcText, <a name="l03211"></a>03211 int32_t srcStart, <a name="l03212"></a>03212 int32_t srcLength, <a name="l03213"></a>03213 uint32_t options) <span class="keyword">const</span>; <a name="l03214"></a>03214 <a name="l03215"></a>03215 int8_t <a name="l03216"></a>03216 doCaseCompare(int32_t start, <a name="l03217"></a>03217 int32_t length, <a name="l03218"></a>03218 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03219"></a>03219 int32_t srcStart, <a name="l03220"></a>03220 int32_t srcLength, <a name="l03221"></a>03221 uint32_t options) <span class="keyword">const</span>; <a name="l03222"></a>03222 <a name="l03223"></a>03223 int32_t doIndexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l03224"></a>03224 int32_t start, <a name="l03225"></a>03225 int32_t length) <span class="keyword">const</span>; <a name="l03226"></a>03226 <a name="l03227"></a>03227 int32_t doIndexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l03228"></a>03228 int32_t start, <a name="l03229"></a>03229 int32_t length) <span class="keyword">const</span>; <a name="l03230"></a>03230 <a name="l03231"></a>03231 int32_t doLastIndexOf(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l03232"></a>03232 int32_t start, <a name="l03233"></a>03233 int32_t length) <span class="keyword">const</span>; <a name="l03234"></a>03234 <a name="l03235"></a>03235 int32_t doLastIndexOf(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l03236"></a>03236 int32_t start, <a name="l03237"></a>03237 int32_t length) <span class="keyword">const</span>; <a name="l03238"></a>03238 <a name="l03239"></a>03239 <span class="keywordtype">void</span> doExtract(int32_t start, <a name="l03240"></a>03240 int32_t length, <a name="l03241"></a>03241 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *dst, <a name="l03242"></a>03242 int32_t dstStart) <span class="keyword">const</span>; <a name="l03243"></a>03243 <a name="l03244"></a>03244 <span class="keyword">inline</span> <span class="keywordtype">void</span> doExtract(int32_t start, <a name="l03245"></a>03245 int32_t length, <a name="l03246"></a>03246 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& target) <span class="keyword">const</span>; <a name="l03247"></a>03247 <a name="l03248"></a>03248 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> doCharAt(int32_t offset) <span class="keyword">const</span>; <a name="l03249"></a>03249 <a name="l03250"></a>03250 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& doReplace(int32_t start, <a name="l03251"></a>03251 int32_t length, <a name="l03252"></a>03252 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03253"></a>03253 int32_t srcStart, <a name="l03254"></a>03254 int32_t srcLength); <a name="l03255"></a>03255 <a name="l03256"></a>03256 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& doReplace(int32_t start, <a name="l03257"></a>03257 int32_t length, <a name="l03258"></a>03258 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03259"></a>03259 int32_t srcStart, <a name="l03260"></a>03260 int32_t srcLength); <a name="l03261"></a>03261 <a name="l03262"></a>03262 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& doReverse(int32_t start, <a name="l03263"></a>03263 int32_t length); <a name="l03264"></a>03264 <a name="l03265"></a>03265 <span class="comment">// calculate hash code</span> <a name="l03266"></a>03266 int32_t doHashCode(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l03267"></a>03267 <a name="l03268"></a>03268 <span class="comment">// get pointer to start of array</span> <a name="l03269"></a>03269 <span class="comment">// these do not check for kOpenGetBuffer, unlike the public getBuffer() function</span> <a name="l03270"></a>03270 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a>* getArrayStart(<span class="keywordtype">void</span>); <a name="l03271"></a>03271 <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a>* getArrayStart(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l03272"></a>03272 <a name="l03273"></a>03273 <span class="comment">// A UnicodeString object (not necessarily its current buffer)</span> <a name="l03274"></a>03274 <span class="comment">// is writable unless it isBogus() or it has an "open" getBuffer(minCapacity).</span> <a name="l03275"></a>03275 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isWritable() <span class="keyword">const</span>; <a name="l03276"></a>03276 <a name="l03277"></a>03277 <span class="comment">// Is the current buffer writable?</span> <a name="l03278"></a>03278 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isBufferWritable() <span class="keyword">const</span>; <a name="l03279"></a>03279 <a name="l03280"></a>03280 <span class="comment">// None of the following does releaseArray().</span> <a name="l03281"></a>03281 <span class="keyword">inline</span> <span class="keywordtype">void</span> setLength(int32_t len); <span class="comment">// sets only fShortLength and fLength</span> <a name="l03282"></a>03282 <span class="keyword">inline</span> <span class="keywordtype">void</span> setToEmpty(); <span class="comment">// sets fFlags=kShortString</span> <a name="l03283"></a>03283 <span class="keyword">inline</span> <span class="keywordtype">void</span> setArray(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *array, int32_t len, int32_t capacity); <span class="comment">// does not set fFlags</span> <a name="l03284"></a>03284 <a name="l03285"></a>03285 <span class="comment">// allocate the array; result may be fStackBuffer</span> <a name="l03286"></a>03286 <span class="comment">// sets refCount to 1 if appropriate</span> <a name="l03287"></a>03287 <span class="comment">// sets fArray, fCapacity, and fFlags</span> <a name="l03288"></a>03288 <span class="comment">// returns boolean for success or failure</span> <a name="l03289"></a>03289 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> allocate(int32_t capacity); <a name="l03290"></a>03290 <a name="l03291"></a>03291 <span class="comment">// release the array if owned</span> <a name="l03292"></a>03292 <span class="keywordtype">void</span> releaseArray(<span class="keywordtype">void</span>); <a name="l03293"></a>03293 <a name="l03294"></a>03294 <span class="comment">// turn a bogus string into an empty one</span> <a name="l03295"></a>03295 <span class="keywordtype">void</span> unBogus(); <a name="l03296"></a>03296 <a name="l03297"></a>03297 <span class="comment">// implements assigment operator, copy constructor, and fastCopyFrom()</span> <a name="l03298"></a>03298 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &copyFrom(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &src, <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> fastCopy=<a class="code" href="umachine_8h.html#aa93f0eb578d23995850d61f7d61c55c1" title="The FALSE value of a UBool.">FALSE</a>); <a name="l03299"></a>03299 <a name="l03300"></a>03300 <span class="comment">// Pin start and limit to acceptable values.</span> <a name="l03301"></a>03301 <span class="keyword">inline</span> <span class="keywordtype">void</span> pinIndex(int32_t& start) <span class="keyword">const</span>; <a name="l03302"></a>03302 <span class="keyword">inline</span> <span class="keywordtype">void</span> pinIndices(int32_t& start, <a name="l03303"></a>03303 int32_t& length) <span class="keyword">const</span>; <a name="l03304"></a>03304 <a name="l03305"></a>03305 <span class="preprocessor">#if !UCONFIG_NO_CONVERSION</span> <a name="l03306"></a>03306 <span class="preprocessor"></span> <a name="l03307"></a>03307 <span class="comment">/* Internal extract() using UConverter. */</span> <a name="l03308"></a>03308 int32_t doExtract(int32_t start, int32_t length, <a name="l03309"></a>03309 <span class="keywordtype">char</span> *dest, int32_t destCapacity, <a name="l03310"></a>03310 <a class="code" href="ucnv__err_8h.html#a0c2dcfbf71ad577f5285869e1ceb26b1">UConverter</a> *cnv, <a name="l03311"></a>03311 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &errorCode) <span class="keyword">const</span>; <a name="l03312"></a>03312 <a name="l03313"></a>03313 <span class="comment">/*</span> <a name="l03314"></a>03314 <span class="comment"> * Real constructor for converting from codepage data.</span> <a name="l03315"></a>03315 <span class="comment"> * It assumes that it is called with !fRefCounted.</span> <a name="l03316"></a>03316 <span class="comment"> *</span> <a name="l03317"></a>03317 <span class="comment"> * If <code>codepage==0</code>, then the default converter</span> <a name="l03318"></a>03318 <span class="comment"> * is used for the platform encoding.</span> <a name="l03319"></a>03319 <span class="comment"> * If <code>codepage</code> is an empty string (<code>""</code>),</span> <a name="l03320"></a>03320 <span class="comment"> * then a simple conversion is performed on the codepage-invariant</span> <a name="l03321"></a>03321 <span class="comment"> * subset ("invariant characters") of the platform encoding. See utypes.h.</span> <a name="l03322"></a>03322 <span class="comment"> */</span> <a name="l03323"></a>03323 <span class="keywordtype">void</span> doCodepageCreate(<span class="keyword">const</span> <span class="keywordtype">char</span> *codepageData, <a name="l03324"></a>03324 int32_t dataLength, <a name="l03325"></a>03325 <span class="keyword">const</span> <span class="keywordtype">char</span> *codepage); <a name="l03326"></a>03326 <a name="l03327"></a>03327 <span class="comment">/*</span> <a name="l03328"></a>03328 <span class="comment"> * Worker function for creating a UnicodeString from</span> <a name="l03329"></a>03329 <span class="comment"> * a codepage string using a UConverter.</span> <a name="l03330"></a>03330 <span class="comment"> */</span> <a name="l03331"></a>03331 <span class="keywordtype">void</span> <a name="l03332"></a>03332 doCodepageCreate(<span class="keyword">const</span> <span class="keywordtype">char</span> *codepageData, <a name="l03333"></a>03333 int32_t dataLength, <a name="l03334"></a>03334 <a class="code" href="ucnv__err_8h.html#a0c2dcfbf71ad577f5285869e1ceb26b1">UConverter</a> *converter, <a name="l03335"></a>03335 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l03336"></a>03336 <a name="l03337"></a>03337 <span class="preprocessor">#endif</span> <a name="l03338"></a>03338 <span class="preprocessor"></span> <a name="l03339"></a>03339 <span class="comment">/*</span> <a name="l03340"></a>03340 <span class="comment"> * This function is called when write access to the array</span> <a name="l03341"></a>03341 <span class="comment"> * is necessary.</span> <a name="l03342"></a>03342 <span class="comment"> *</span> <a name="l03343"></a>03343 <span class="comment"> * We need to make a copy of the array if</span> <a name="l03344"></a>03344 <span class="comment"> * the buffer is read-only, or</span> <a name="l03345"></a>03345 <span class="comment"> * the buffer is refCounted (shared), and refCount>1, or</span> <a name="l03346"></a>03346 <span class="comment"> * the buffer is too small.</span> <a name="l03347"></a>03347 <span class="comment"> *</span> <a name="l03348"></a>03348 <span class="comment"> * Return FALSE if memory could not be allocated.</span> <a name="l03349"></a>03349 <span class="comment"> */</span> <a name="l03350"></a>03350 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> cloneArrayIfNeeded(int32_t newCapacity = -1, <a name="l03351"></a>03351 int32_t growCapacity = -1, <a name="l03352"></a>03352 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> doCopyArray = <a class="code" href="umachine_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d" title="The TRUE value of a UBool.">TRUE</a>, <a name="l03353"></a>03353 int32_t **pBufferToDelete = 0, <a name="l03354"></a>03354 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> forceClone = <a class="code" href="umachine_8h.html#aa93f0eb578d23995850d61f7d61c55c1" title="The FALSE value of a UBool.">FALSE</a>); <a name="l03355"></a>03355 <a name="l03356"></a>03356 <span class="comment">// common function for case mappings</span> <a name="l03357"></a>03357 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> & <a name="l03358"></a>03358 caseMap(<a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> *titleIter, <a name="l03359"></a>03359 <span class="keyword">const</span> <span class="keywordtype">char</span> *locale, <a name="l03360"></a>03360 uint32_t options, <a name="l03361"></a>03361 int32_t toWhichCase); <a name="l03362"></a>03362 <a name="l03363"></a>03363 <span class="comment">// ref counting</span> <a name="l03364"></a>03364 <span class="keywordtype">void</span> addRef(<span class="keywordtype">void</span>); <a name="l03365"></a>03365 int32_t removeRef(<span class="keywordtype">void</span>); <a name="l03366"></a>03366 int32_t refCount(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l03367"></a>03367 <a name="l03368"></a>03368 <span class="comment">// constants</span> <a name="l03369"></a>03369 <span class="keyword">enum</span> { <a name="l03370"></a>03370 <span class="comment">// Set the stack buffer size so that sizeof(UnicodeString) is a multiple of sizeof(pointer):</span> <a name="l03371"></a>03371 <span class="comment">// 32-bit pointers: 4+1+1+13*2 = 32 bytes</span> <a name="l03372"></a>03372 <span class="comment">// 64-bit pointers: 8+1+1+15*2 = 40 bytes</span> <a name="l03373"></a>03373 US_STACKBUF_SIZE= <span class="keyword">sizeof</span>(<span class="keywordtype">void</span> *)==4 ? 13 : 15, <span class="comment">// Size of stack buffer for small strings</span> <a name="l03374"></a>03374 kInvalidUChar=0xffff, <span class="comment">// invalid UChar index</span> <a name="l03375"></a>03375 kGrowSize=128, <span class="comment">// grow size for this buffer</span> <a name="l03376"></a>03376 kInvalidHashCode=0, <span class="comment">// invalid hash code</span> <a name="l03377"></a>03377 kEmptyHashCode=1, <span class="comment">// hash code for empty string</span> <a name="l03378"></a>03378 <a name="l03379"></a>03379 <span class="comment">// bit flag values for fFlags</span> <a name="l03380"></a>03380 kIsBogus=1, <span class="comment">// this string is bogus, i.e., not valid or NULL</span> <a name="l03381"></a>03381 kUsingStackBuffer=2,<span class="comment">// fArray==fStackBuffer</span> <a name="l03382"></a>03382 kRefCounted=4, <span class="comment">// there is a refCount field before the characters in fArray</span> <a name="l03383"></a>03383 kBufferIsReadonly=8,<span class="comment">// do not write to this buffer</span> <a name="l03384"></a>03384 kOpenGetBuffer=16, <span class="comment">// getBuffer(minCapacity) was called (is "open"),</span> <a name="l03385"></a>03385 <span class="comment">// and releaseBuffer(newLength) must be called</span> <a name="l03386"></a>03386 <a name="l03387"></a>03387 <span class="comment">// combined values for convenience</span> <a name="l03388"></a>03388 kShortString=kUsingStackBuffer, <a name="l03389"></a>03389 kLongString=kRefCounted, <a name="l03390"></a>03390 kReadonlyAlias=kBufferIsReadonly, <a name="l03391"></a>03391 kWritableAlias=0 <a name="l03392"></a>03392 }; <a name="l03393"></a>03393 <a name="l03394"></a>03394 <span class="keyword">friend</span> <span class="keyword">class </span>StringThreadTest; <a name="l03395"></a>03395 <a name="l03396"></a>03396 <span class="keyword">union </span>StackBufferOrFields; <span class="comment">// forward declaration necessary before friend declaration</span> <a name="l03397"></a>03397 <span class="keyword">friend</span> <span class="keyword">union </span>StackBufferOrFields; <span class="comment">// make US_STACKBUF_SIZE visible inside fUnion</span> <a name="l03398"></a>03398 <a name="l03399"></a>03399 <span class="comment">/*</span> <a name="l03400"></a>03400 <span class="comment"> * The following are all the class fields that are stored</span> <a name="l03401"></a>03401 <span class="comment"> * in each UnicodeString object.</span> <a name="l03402"></a>03402 <span class="comment"> * Note that UnicodeString has virtual functions,</span> <a name="l03403"></a>03403 <span class="comment"> * therefore there is an implicit vtable pointer</span> <a name="l03404"></a>03404 <span class="comment"> * as the first real field.</span> <a name="l03405"></a>03405 <span class="comment"> * The fields should be aligned such that no padding is</span> <a name="l03406"></a>03406 <span class="comment"> * necessary, mostly by having larger types first.</span> <a name="l03407"></a>03407 <span class="comment"> * On 32-bit machines, the size should be 32 bytes,</span> <a name="l03408"></a>03408 <span class="comment"> * on 64-bit machines (8-byte pointers), it should be 40 bytes.</span> <a name="l03409"></a>03409 <span class="comment"> */</span> <a name="l03410"></a>03410 <span class="comment">// (implicit) *vtable;</span> <a name="l03411"></a>03411 int8_t fShortLength; <span class="comment">// 0..127: length <0: real length is in fUnion.fFields.fLength</span> <a name="l03412"></a>03412 uint8_t fFlags; <span class="comment">// bit flags: see constants above</span> <a name="l03413"></a>03413 <span class="keyword">union </span>StackBufferOrFields { <a name="l03414"></a>03414 <span class="comment">// fStackBuffer is used iff (fFlags&kUsingStackBuffer)</span> <a name="l03415"></a>03415 <span class="comment">// else fFields is used</span> <a name="l03416"></a>03416 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> fStackBuffer [US_STACKBUF_SIZE]; <span class="comment">// buffer for small strings</span> <a name="l03417"></a>03417 <span class="keyword">struct </span>{ <a name="l03418"></a>03418 uint16_t fPadding; <span class="comment">// align the following field at 8B (32b pointers) or 12B (64b)</span> <a name="l03419"></a>03419 int32_t fLength; <span class="comment">// number of characters in fArray if >127; else undefined</span> <a name="l03420"></a>03420 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *fArray; <span class="comment">// the Unicode data (aligned at 12B (32b pointers) or 16B (64b))</span> <a name="l03421"></a>03421 int32_t fCapacity; <span class="comment">// sizeof fArray</span> <a name="l03422"></a>03422 } fFields; <a name="l03423"></a>03423 } fUnion; <a name="l03424"></a>03424 }; <a name="l03425"></a>03425 <a name="l03434"></a>03434 <a class="code" href="utypes_8h.html#a559955ec3bc692657c5d8b1c6de8e334" title="Set to export library symbols from inside the common library, and to import them...">U_COMMON_API</a> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> <a name="l03435"></a>03435 <a class="code" href="unistr_8h.html#a9ba928a0602f95e68a1973dc26970ca5" title="Create a new UnicodeString with the concatenation of two others.">operator+ </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &s1, <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &s2); <a name="l03436"></a>03436 <a name="l03437"></a>03437 <span class="comment">//========================================</span> <a name="l03438"></a>03438 <span class="comment">// Inline members</span> <a name="l03439"></a>03439 <span class="comment">//========================================</span> <a name="l03440"></a>03440 <a name="l03441"></a>03441 <span class="comment">//========================================</span> <a name="l03442"></a>03442 <span class="comment">// Privates</span> <a name="l03443"></a>03443 <span class="comment">//========================================</span> <a name="l03444"></a>03444 <a name="l03445"></a>03445 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l03446"></a>03446 UnicodeString::pinIndex(int32_t& start)<span class="keyword"> const</span> <a name="l03447"></a>03447 <span class="keyword"></span>{ <a name="l03448"></a>03448 <span class="comment">// pin index</span> <a name="l03449"></a>03449 <span class="keywordflow">if</span>(start < 0) { <a name="l03450"></a>03450 start = 0; <a name="l03451"></a>03451 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(start > <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) { <a name="l03452"></a>03452 start = <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(); <a name="l03453"></a>03453 } <a name="l03454"></a>03454 } <a name="l03455"></a>03455 <a name="l03456"></a>03456 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l03457"></a>03457 UnicodeString::pinIndices(int32_t& start, <a name="l03458"></a>03458 int32_t& _length)<span class="keyword"> const</span> <a name="l03459"></a>03459 <span class="keyword"></span>{ <a name="l03460"></a>03460 <span class="comment">// pin indices</span> <a name="l03461"></a>03461 int32_t len = <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(); <a name="l03462"></a>03462 <span class="keywordflow">if</span>(start < 0) { <a name="l03463"></a>03463 start = 0; <a name="l03464"></a>03464 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(start > len) { <a name="l03465"></a>03465 start = len; <a name="l03466"></a>03466 } <a name="l03467"></a>03467 <span class="keywordflow">if</span>(_length < 0) { <a name="l03468"></a>03468 _length = 0; <a name="l03469"></a>03469 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(_length > (len - start)) { <a name="l03470"></a>03470 _length = (len - start); <a name="l03471"></a>03471 } <a name="l03472"></a>03472 } <a name="l03473"></a>03473 <a name="l03474"></a>03474 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a>* <a name="l03475"></a>03475 UnicodeString::getArrayStart() <a name="l03476"></a>03476 { <span class="keywordflow">return</span> (fFlags&kUsingStackBuffer) ? fUnion.fStackBuffer : fUnion.fFields.fArray; } <a name="l03477"></a>03477 <a name="l03478"></a>03478 <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a>* <a name="l03479"></a>03479 UnicodeString::getArrayStart()<span class="keyword"> const</span> <a name="l03480"></a>03480 <span class="keyword"></span>{ <span class="keywordflow">return</span> (fFlags&kUsingStackBuffer) ? fUnion.fStackBuffer : fUnion.fFields.fArray; } <a name="l03481"></a>03481 <a name="l03482"></a>03482 <span class="comment">//========================================</span> <a name="l03483"></a>03483 <span class="comment">// Read-only implementation methods</span> <a name="l03484"></a>03484 <span class="comment">//========================================</span> <a name="l03485"></a>03485 <span class="keyword">inline</span> int32_t <a name="l03486"></a><a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6">03486</a> <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">UnicodeString::length</a>()<span class="keyword"> const</span> <a name="l03487"></a>03487 <span class="keyword"></span>{ <span class="keywordflow">return</span> fShortLength>=0 ? fShortLength : fUnion.fFields.fLength; } <a name="l03488"></a>03488 <a name="l03489"></a>03489 <span class="keyword">inline</span> int32_t <a name="l03490"></a><a class="code" href="classUnicodeString.html#a924521b1d7d9828ac9374e467144b0cc">03490</a> <a class="code" href="classUnicodeString.html#a924521b1d7d9828ac9374e467144b0cc" title="Return the capacity of the internal buffer of the UnicodeString object.">UnicodeString::getCapacity</a>()<span class="keyword"> const</span> <a name="l03491"></a>03491 <span class="keyword"></span>{ <span class="keywordflow">return</span> (fFlags&kUsingStackBuffer) ? US_STACKBUF_SIZE : fUnion.fFields.fCapacity; } <a name="l03492"></a>03492 <a name="l03493"></a>03493 <span class="keyword">inline</span> int32_t <a name="l03494"></a><a class="code" href="classUnicodeString.html#a6724ae76d51cf802ded394eaedd7b3fd">03494</a> <a class="code" href="classUnicodeString.html#a6724ae76d51cf802ded394eaedd7b3fd" title="Generate a hash code for this object.">UnicodeString::hashCode</a>()<span class="keyword"> const</span> <a name="l03495"></a>03495 <span class="keyword"></span>{ <span class="keywordflow">return</span> doHashCode(); } <a name="l03496"></a>03496 <a name="l03497"></a>03497 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03498"></a><a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401">03498</a> <a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">UnicodeString::isBogus</a>()<span class="keyword"> const</span> <a name="l03499"></a>03499 <span class="keyword"></span>{ <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>)(fFlags & kIsBogus); } <a name="l03500"></a>03500 <a name="l03501"></a>03501 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03502"></a>03502 UnicodeString::isWritable()<span class="keyword"> const</span> <a name="l03503"></a>03503 <span class="keyword"></span>{ <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>)!(fFlags&(kOpenGetBuffer|kIsBogus)); } <a name="l03504"></a>03504 <a name="l03505"></a>03505 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03506"></a>03506 UnicodeString::isBufferWritable()<span class="keyword"> const</span> <a name="l03507"></a>03507 <span class="keyword"></span>{ <a name="l03508"></a>03508 <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>)( <a name="l03509"></a>03509 !(fFlags&(kOpenGetBuffer|kIsBogus|kBufferIsReadonly)) && <a name="l03510"></a>03510 (!(fFlags&kRefCounted) || refCount()==1)); <a name="l03511"></a>03511 } <a name="l03512"></a>03512 <a name="l03513"></a>03513 <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> * <a name="l03514"></a><a class="code" href="classUnicodeString.html#a34eda92a2c60797052116eb7acada1dc">03514</a> <a class="code" href="classUnicodeString.html#a34eda92a2c60797052116eb7acada1dc" title="Get a read-only pointer to the internal buffer.">UnicodeString::getBuffer</a>()<span class="keyword"> const </span>{ <a name="l03515"></a>03515 <span class="keywordflow">if</span>(fFlags&(kIsBogus|kOpenGetBuffer)) { <a name="l03516"></a>03516 <span class="keywordflow">return</span> 0; <a name="l03517"></a>03517 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fFlags&kUsingStackBuffer) { <a name="l03518"></a>03518 <span class="keywordflow">return</span> fUnion.fStackBuffer; <a name="l03519"></a>03519 } <span class="keywordflow">else</span> { <a name="l03520"></a>03520 <span class="keywordflow">return</span> fUnion.fFields.fArray; <a name="l03521"></a>03521 } <a name="l03522"></a>03522 } <a name="l03523"></a>03523 <a name="l03524"></a>03524 <span class="comment">//========================================</span> <a name="l03525"></a>03525 <span class="comment">// Read-only alias methods</span> <a name="l03526"></a>03526 <span class="comment">//========================================</span> <a name="l03527"></a>03527 <span class="keyword">inline</span> int8_t <a name="l03528"></a>03528 UnicodeString::doCompare(int32_t start, <a name="l03529"></a>03529 int32_t thisLength, <a name="l03530"></a>03530 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03531"></a>03531 int32_t srcStart, <a name="l03532"></a>03532 int32_t srcLength)<span class="keyword"> const</span> <a name="l03533"></a>03533 <span class="keyword"></span>{ <a name="l03534"></a>03534 <span class="keywordflow">if</span>(srcText.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>()) { <a name="l03535"></a>03535 <span class="keywordflow">return</span> (int8_t)!<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>(); <span class="comment">// 0 if both are bogus, 1 otherwise</span> <a name="l03536"></a>03536 } <span class="keywordflow">else</span> { <a name="l03537"></a>03537 srcText.pinIndices(srcStart, srcLength); <a name="l03538"></a>03538 <span class="keywordflow">return</span> doCompare(start, thisLength, srcText.getArrayStart(), srcStart, srcLength); <a name="l03539"></a>03539 } <a name="l03540"></a>03540 } <a name="l03541"></a>03541 <a name="l03542"></a>03542 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03543"></a><a class="code" href="classUnicodeString.html#a0dca5ffc55b3f73e9b7382749cffcc76">03543</a> <a class="code" href="classUnicodeString.html#a0dca5ffc55b3f73e9b7382749cffcc76" title="Equality operator.">UnicodeString::operator== </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03544"></a>03544 <span class="keyword"></span>{ <a name="l03545"></a>03545 <span class="keywordflow">if</span>(<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>()) { <a name="l03546"></a>03546 <span class="keywordflow">return</span> text.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>(); <a name="l03547"></a>03547 } <span class="keywordflow">else</span> { <a name="l03548"></a>03548 int32_t len = <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), textLength = text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(); <a name="l03549"></a>03549 <span class="keywordflow">return</span> <a name="l03550"></a>03550 !text.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>() && <a name="l03551"></a>03551 len == textLength && <a name="l03552"></a>03552 doCompare(0, len, text, 0, textLength) == 0; <a name="l03553"></a>03553 } <a name="l03554"></a>03554 } <a name="l03555"></a>03555 <a name="l03556"></a>03556 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03557"></a><a class="code" href="classUnicodeString.html#a77b6ddf0e458fa0c1c9378484305f695">03557</a> <a class="code" href="classUnicodeString.html#a77b6ddf0e458fa0c1c9378484305f695" title="Inequality operator.">UnicodeString::operator!= </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03558"></a>03558 <span class="keyword"></span>{ <span class="keywordflow">return</span> (! <span class="keyword">operator</span>==(text)); } <a name="l03559"></a>03559 <a name="l03560"></a>03560 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03561"></a><a class="code" href="classUnicodeString.html#a3e51f324b52e9f1b563e7da39138215d">03561</a> <a class="code" href="classUnicodeString.html#a3e51f324b52e9f1b563e7da39138215d" title="Greater than operator.">UnicodeString::operator> </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03562"></a>03562 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) == 1; } <a name="l03563"></a>03563 <a name="l03564"></a>03564 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03565"></a><a class="code" href="classUnicodeString.html#a52ac4f79ff0c1dee2f39e38c9abcf030">03565</a> <a class="code" href="classUnicodeString.html#a52ac4f79ff0c1dee2f39e38c9abcf030" title="Less than operator.">UnicodeString::operator< </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03566"></a>03566 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) == -1; } <a name="l03567"></a>03567 <a name="l03568"></a>03568 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03569"></a><a class="code" href="classUnicodeString.html#ab5d1ffd7cdd87e3756a991c489f8f8f1">03569</a> <a class="code" href="classUnicodeString.html#ab5d1ffd7cdd87e3756a991c489f8f8f1" title="Greater than or equal operator.">UnicodeString::operator>= </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03570"></a>03570 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) != -1; } <a name="l03571"></a>03571 <a name="l03572"></a>03572 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03573"></a><a class="code" href="classUnicodeString.html#ac6c53077851d1b6af4c45a268638d46e">03573</a> <a class="code" href="classUnicodeString.html#ac6c53077851d1b6af4c45a268638d46e" title="Less than or equal operator.">UnicodeString::operator<= </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03574"></a>03574 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) != 1; } <a name="l03575"></a>03575 <a name="l03576"></a>03576 <span class="keyword">inline</span> int8_t <a name="l03577"></a><a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e">03577</a> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">UnicodeString::compare</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03578"></a>03578 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03579"></a>03579 <a name="l03580"></a>03580 <span class="keyword">inline</span> int8_t <a name="l03581"></a><a class="code" href="classUnicodeString.html#a5b0909813b13e3cebb0ea8915e822dd8">03581</a> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">UnicodeString::compare</a>(int32_t start, <a name="l03582"></a>03582 int32_t _length, <a name="l03583"></a>03583 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText)<span class="keyword"> const</span> <a name="l03584"></a>03584 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(start, _length, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03585"></a>03585 <a name="l03586"></a>03586 <span class="keyword">inline</span> int8_t <a name="l03587"></a><a class="code" href="classUnicodeString.html#a831c909209e45615aa0c4c368b7d600f">03587</a> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">UnicodeString::compare</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03588"></a>03588 int32_t srcLength)<span class="keyword"> const</span> <a name="l03589"></a>03589 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcChars, 0, srcLength); } <a name="l03590"></a>03590 <a name="l03591"></a>03591 <span class="keyword">inline</span> int8_t <a name="l03592"></a><a class="code" href="classUnicodeString.html#afedda065f5a283232bffd434a3765af1">03592</a> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">UnicodeString::compare</a>(int32_t start, <a name="l03593"></a>03593 int32_t _length, <a name="l03594"></a>03594 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03595"></a>03595 int32_t srcStart, <a name="l03596"></a>03596 int32_t srcLength)<span class="keyword"> const</span> <a name="l03597"></a>03597 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(start, _length, srcText, srcStart, srcLength); } <a name="l03598"></a>03598 <a name="l03599"></a>03599 <span class="keyword">inline</span> int8_t <a name="l03600"></a><a class="code" href="classUnicodeString.html#abf1a9b87377c49721ec32371afabb5a6">03600</a> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">UnicodeString::compare</a>(int32_t start, <a name="l03601"></a>03601 int32_t _length, <a name="l03602"></a>03602 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars)<span class="keyword"> const</span> <a name="l03603"></a>03603 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(start, _length, srcChars, 0, _length); } <a name="l03604"></a>03604 <a name="l03605"></a>03605 <span class="keyword">inline</span> int8_t <a name="l03606"></a><a class="code" href="classUnicodeString.html#a14d0ef73e76d1c90702ee5d4923ae8f9">03606</a> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">UnicodeString::compare</a>(int32_t start, <a name="l03607"></a>03607 int32_t _length, <a name="l03608"></a>03608 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03609"></a>03609 int32_t srcStart, <a name="l03610"></a>03610 int32_t srcLength)<span class="keyword"> const</span> <a name="l03611"></a>03611 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(start, _length, srcChars, srcStart, srcLength); } <a name="l03612"></a>03612 <a name="l03613"></a>03613 <span class="keyword">inline</span> int8_t <a name="l03614"></a><a class="code" href="classUnicodeString.html#a7d1d10ff930be9e96c21307360010e47">03614</a> <a class="code" href="classUnicodeString.html#a7d1d10ff930be9e96c21307360010e47" title="Compare the characters bitwise in the range [start, limit) with the characters in...">UnicodeString::compareBetween</a>(int32_t start, <a name="l03615"></a>03615 int32_t limit, <a name="l03616"></a>03616 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03617"></a>03617 int32_t srcStart, <a name="l03618"></a>03618 int32_t srcLimit)<span class="keyword"> const</span> <a name="l03619"></a>03619 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(start, limit - start, <a name="l03620"></a>03620 srcText, srcStart, srcLimit - srcStart); } <a name="l03621"></a>03621 <a name="l03622"></a>03622 <span class="keyword">inline</span> int8_t <a name="l03623"></a>03623 UnicodeString::doCompareCodePointOrder(int32_t start, <a name="l03624"></a>03624 int32_t thisLength, <a name="l03625"></a>03625 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03626"></a>03626 int32_t srcStart, <a name="l03627"></a>03627 int32_t srcLength)<span class="keyword"> const</span> <a name="l03628"></a>03628 <span class="keyword"></span>{ <a name="l03629"></a>03629 <span class="keywordflow">if</span>(srcText.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>()) { <a name="l03630"></a>03630 <span class="keywordflow">return</span> (int8_t)!<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>(); <span class="comment">// 0 if both are bogus, 1 otherwise</span> <a name="l03631"></a>03631 } <span class="keywordflow">else</span> { <a name="l03632"></a>03632 srcText.pinIndices(srcStart, srcLength); <a name="l03633"></a>03633 <span class="keywordflow">return</span> doCompareCodePointOrder(start, thisLength, srcText.getArrayStart(), srcStart, srcLength); <a name="l03634"></a>03634 } <a name="l03635"></a>03635 } <a name="l03636"></a>03636 <a name="l03637"></a>03637 <span class="keyword">inline</span> int8_t <a name="l03638"></a><a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7">03638</a> <a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrder</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03639"></a>03639 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03640"></a>03640 <a name="l03641"></a>03641 <span class="keyword">inline</span> int8_t <a name="l03642"></a><a class="code" href="classUnicodeString.html#ac128831d632b323894b7f5851f2f6cbb">03642</a> <a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrder</a>(int32_t start, <a name="l03643"></a>03643 int32_t _length, <a name="l03644"></a>03644 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText)<span class="keyword"> const</span> <a name="l03645"></a>03645 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(start, _length, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03646"></a>03646 <a name="l03647"></a>03647 <span class="keyword">inline</span> int8_t <a name="l03648"></a><a class="code" href="classUnicodeString.html#a0992f7174f19a7060c88849867d1c676">03648</a> <a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrder</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03649"></a>03649 int32_t srcLength)<span class="keyword"> const</span> <a name="l03650"></a>03650 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcChars, 0, srcLength); } <a name="l03651"></a>03651 <a name="l03652"></a>03652 <span class="keyword">inline</span> int8_t <a name="l03653"></a><a class="code" href="classUnicodeString.html#ab4d8310695ede2cb2ae567b42b4be23d">03653</a> <a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrder</a>(int32_t start, <a name="l03654"></a>03654 int32_t _length, <a name="l03655"></a>03655 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03656"></a>03656 int32_t srcStart, <a name="l03657"></a>03657 int32_t srcLength)<span class="keyword"> const</span> <a name="l03658"></a>03658 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(start, _length, srcText, srcStart, srcLength); } <a name="l03659"></a>03659 <a name="l03660"></a>03660 <span class="keyword">inline</span> int8_t <a name="l03661"></a><a class="code" href="classUnicodeString.html#a6f4f499a6a85494afe6a59bb1fbbe757">03661</a> <a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrder</a>(int32_t start, <a name="l03662"></a>03662 int32_t _length, <a name="l03663"></a>03663 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars)<span class="keyword"> const</span> <a name="l03664"></a>03664 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(start, _length, srcChars, 0, _length); } <a name="l03665"></a>03665 <a name="l03666"></a>03666 <span class="keyword">inline</span> int8_t <a name="l03667"></a><a class="code" href="classUnicodeString.html#aa71f8cb059b71c6ca80b8539740d6cac">03667</a> <a class="code" href="classUnicodeString.html#ae478d3988b5e05e0c552fbd766de69f7" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrder</a>(int32_t start, <a name="l03668"></a>03668 int32_t _length, <a name="l03669"></a>03669 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03670"></a>03670 int32_t srcStart, <a name="l03671"></a>03671 int32_t srcLength)<span class="keyword"> const</span> <a name="l03672"></a>03672 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(start, _length, srcChars, srcStart, srcLength); } <a name="l03673"></a>03673 <a name="l03674"></a>03674 <span class="keyword">inline</span> int8_t <a name="l03675"></a><a class="code" href="classUnicodeString.html#a0de2de75dc86112cb63a5fc6c9cd874f">03675</a> <a class="code" href="classUnicodeString.html#a0de2de75dc86112cb63a5fc6c9cd874f" title="Compare two Unicode strings in code point order.">UnicodeString::compareCodePointOrderBetween</a>(int32_t start, <a name="l03676"></a>03676 int32_t limit, <a name="l03677"></a>03677 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03678"></a>03678 int32_t srcStart, <a name="l03679"></a>03679 int32_t srcLimit)<span class="keyword"> const</span> <a name="l03680"></a>03680 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompareCodePointOrder(start, limit - start, <a name="l03681"></a>03681 srcText, srcStart, srcLimit - srcStart); } <a name="l03682"></a>03682 <a name="l03683"></a>03683 <span class="keyword">inline</span> int8_t <a name="l03684"></a>03684 UnicodeString::doCaseCompare(int32_t start, <a name="l03685"></a>03685 int32_t thisLength, <a name="l03686"></a>03686 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &srcText, <a name="l03687"></a>03687 int32_t srcStart, <a name="l03688"></a>03688 int32_t srcLength, <a name="l03689"></a>03689 uint32_t options)<span class="keyword"> const</span> <a name="l03690"></a>03690 <span class="keyword"></span>{ <a name="l03691"></a>03691 <span class="keywordflow">if</span>(srcText.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>()) { <a name="l03692"></a>03692 <span class="keywordflow">return</span> (int8_t)!<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>(); <span class="comment">// 0 if both are bogus, 1 otherwise</span> <a name="l03693"></a>03693 } <span class="keywordflow">else</span> { <a name="l03694"></a>03694 srcText.pinIndices(srcStart, srcLength); <a name="l03695"></a>03695 <span class="keywordflow">return</span> doCaseCompare(start, thisLength, srcText.getArrayStart(), srcStart, srcLength, options); <a name="l03696"></a>03696 } <a name="l03697"></a>03697 } <a name="l03698"></a>03698 <a name="l03699"></a>03699 <span class="keyword">inline</span> int8_t <a name="l03700"></a><a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939">03700</a> <a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompare</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &text, uint32_t options)<span class="keyword"> const </span>{ <a name="l03701"></a>03701 <span class="keywordflow">return</span> doCaseCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), options); <a name="l03702"></a>03702 } <a name="l03703"></a>03703 <a name="l03704"></a>03704 <span class="keyword">inline</span> int8_t <a name="l03705"></a><a class="code" href="classUnicodeString.html#a92f1f3ddf35f61e0bb0a05055f9e72c7">03705</a> <a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompare</a>(int32_t start, <a name="l03706"></a>03706 int32_t _length, <a name="l03707"></a>03707 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &srcText, <a name="l03708"></a>03708 uint32_t options)<span class="keyword"> const </span>{ <a name="l03709"></a>03709 <span class="keywordflow">return</span> doCaseCompare(start, _length, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), options); <a name="l03710"></a>03710 } <a name="l03711"></a>03711 <a name="l03712"></a>03712 <span class="keyword">inline</span> int8_t <a name="l03713"></a><a class="code" href="classUnicodeString.html#aa86524e659199fa9a3d0c6d8e4c89f2d">03713</a> <a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompare</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03714"></a>03714 int32_t srcLength, <a name="l03715"></a>03715 uint32_t options)<span class="keyword"> const </span>{ <a name="l03716"></a>03716 <span class="keywordflow">return</span> doCaseCompare(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcChars, 0, srcLength, options); <a name="l03717"></a>03717 } <a name="l03718"></a>03718 <a name="l03719"></a>03719 <span class="keyword">inline</span> int8_t <a name="l03720"></a><a class="code" href="classUnicodeString.html#a6c7c33986b62cb279c06a601e7405db4">03720</a> <a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompare</a>(int32_t start, <a name="l03721"></a>03721 int32_t _length, <a name="l03722"></a>03722 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &srcText, <a name="l03723"></a>03723 int32_t srcStart, <a name="l03724"></a>03724 int32_t srcLength, <a name="l03725"></a>03725 uint32_t options)<span class="keyword"> const </span>{ <a name="l03726"></a>03726 <span class="keywordflow">return</span> doCaseCompare(start, _length, srcText, srcStart, srcLength, options); <a name="l03727"></a>03727 } <a name="l03728"></a>03728 <a name="l03729"></a>03729 <span class="keyword">inline</span> int8_t <a name="l03730"></a><a class="code" href="classUnicodeString.html#a4f970386c68b335bd5a953c990437eb2">03730</a> <a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompare</a>(int32_t start, <a name="l03731"></a>03731 int32_t _length, <a name="l03732"></a>03732 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03733"></a>03733 uint32_t options)<span class="keyword"> const </span>{ <a name="l03734"></a>03734 <span class="keywordflow">return</span> doCaseCompare(start, _length, srcChars, 0, _length, options); <a name="l03735"></a>03735 } <a name="l03736"></a>03736 <a name="l03737"></a>03737 <span class="keyword">inline</span> int8_t <a name="l03738"></a><a class="code" href="classUnicodeString.html#a949a065b923a5da215c6e35aea741e03">03738</a> <a class="code" href="classUnicodeString.html#ac633b7697029cfe347dcae70ce732939" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompare</a>(int32_t start, <a name="l03739"></a>03739 int32_t _length, <a name="l03740"></a>03740 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03741"></a>03741 int32_t srcStart, <a name="l03742"></a>03742 int32_t srcLength, <a name="l03743"></a>03743 uint32_t options)<span class="keyword"> const </span>{ <a name="l03744"></a>03744 <span class="keywordflow">return</span> doCaseCompare(start, _length, srcChars, srcStart, srcLength, options); <a name="l03745"></a>03745 } <a name="l03746"></a>03746 <a name="l03747"></a>03747 <span class="keyword">inline</span> int8_t <a name="l03748"></a><a class="code" href="classUnicodeString.html#a17b496f8cfa59eb453d0af3c35cf52d8">03748</a> <a class="code" href="classUnicodeString.html#a17b496f8cfa59eb453d0af3c35cf52d8" title="Compare two strings case-insensitively using full case folding.">UnicodeString::caseCompareBetween</a>(int32_t start, <a name="l03749"></a>03749 int32_t limit, <a name="l03750"></a>03750 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &srcText, <a name="l03751"></a>03751 int32_t srcStart, <a name="l03752"></a>03752 int32_t srcLimit, <a name="l03753"></a>03753 uint32_t options)<span class="keyword"> const </span>{ <a name="l03754"></a>03754 <span class="keywordflow">return</span> doCaseCompare(start, limit - start, srcText, srcStart, srcLimit - srcStart, options); <a name="l03755"></a>03755 } <a name="l03756"></a>03756 <a name="l03757"></a>03757 <span class="keyword">inline</span> int32_t <a name="l03758"></a><a class="code" href="classUnicodeString.html#a1100d0d24f929546012ea6f71dc4809d">03758</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03759"></a>03759 int32_t srcStart, <a name="l03760"></a>03760 int32_t srcLength, <a name="l03761"></a>03761 int32_t start, <a name="l03762"></a>03762 int32_t _length)<span class="keyword"> const</span> <a name="l03763"></a>03763 <span class="keyword"></span>{ <a name="l03764"></a>03764 <span class="keywordflow">if</span>(!srcText.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>()) { <a name="l03765"></a>03765 srcText.pinIndices(srcStart, srcLength); <a name="l03766"></a>03766 <span class="keywordflow">if</span>(srcLength > 0) { <a name="l03767"></a>03767 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(srcText.getArrayStart(), srcStart, srcLength, start, _length); <a name="l03768"></a>03768 } <a name="l03769"></a>03769 } <a name="l03770"></a>03770 <span class="keywordflow">return</span> -1; <a name="l03771"></a>03771 } <a name="l03772"></a>03772 <a name="l03773"></a>03773 <span class="keyword">inline</span> int32_t <a name="l03774"></a><a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21">03774</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03775"></a>03775 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03776"></a>03776 <a name="l03777"></a>03777 <span class="keyword">inline</span> int32_t <a name="l03778"></a><a class="code" href="classUnicodeString.html#a8cc509d7e8167d4f3cb54279c92f0140">03778</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l03779"></a>03779 int32_t start)<span class="keyword"> const </span>{ <a name="l03780"></a>03780 pinIndex(start); <a name="l03781"></a>03781 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03782"></a>03782 } <a name="l03783"></a>03783 <a name="l03784"></a>03784 <span class="keyword">inline</span> int32_t <a name="l03785"></a><a class="code" href="classUnicodeString.html#a6fd64f74511b448ec9ee15434fb3a09b">03785</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l03786"></a>03786 int32_t start, <a name="l03787"></a>03787 int32_t _length)<span class="keyword"> const</span> <a name="l03788"></a>03788 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), start, _length); } <a name="l03789"></a>03789 <a name="l03790"></a>03790 <span class="keyword">inline</span> int32_t <a name="l03791"></a><a class="code" href="classUnicodeString.html#a2979c7d50ff98dc4778f66b6bc3c2eba">03791</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03792"></a>03792 int32_t srcLength, <a name="l03793"></a>03793 int32_t start)<span class="keyword"> const </span>{ <a name="l03794"></a>03794 pinIndex(start); <a name="l03795"></a>03795 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(srcChars, 0, srcLength, start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03796"></a>03796 } <a name="l03797"></a>03797 <a name="l03798"></a>03798 <span class="keyword">inline</span> int32_t <a name="l03799"></a><a class="code" href="classUnicodeString.html#afef7ea1a41634a2cb705181a0901acf8">03799</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03800"></a>03800 int32_t srcLength, <a name="l03801"></a>03801 int32_t start, <a name="l03802"></a>03802 int32_t _length)<span class="keyword"> const</span> <a name="l03803"></a>03803 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(srcChars, 0, srcLength, start, _length); } <a name="l03804"></a>03804 <a name="l03805"></a>03805 <span class="keyword">inline</span> int32_t <a name="l03806"></a><a class="code" href="classUnicodeString.html#aaf31e1fcb5b1d50af7a66111da937097">03806</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l03807"></a>03807 int32_t start, <a name="l03808"></a>03808 int32_t _length)<span class="keyword"> const</span> <a name="l03809"></a>03809 <span class="keyword"></span>{ <span class="keywordflow">return</span> doIndexOf(c, start, _length); } <a name="l03810"></a>03810 <a name="l03811"></a>03811 <span class="keyword">inline</span> int32_t <a name="l03812"></a><a class="code" href="classUnicodeString.html#a4317a47256f75125bbda1e8e4b3e6028">03812</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l03813"></a>03813 int32_t start, <a name="l03814"></a>03814 int32_t _length)<span class="keyword"> const</span> <a name="l03815"></a>03815 <span class="keyword"></span>{ <span class="keywordflow">return</span> doIndexOf(c, start, _length); } <a name="l03816"></a>03816 <a name="l03817"></a>03817 <span class="keyword">inline</span> int32_t <a name="l03818"></a><a class="code" href="classUnicodeString.html#a87e9187b51ea0ec9f09fef60bfba675c">03818</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c)<span class="keyword"> const</span> <a name="l03819"></a>03819 <span class="keyword"></span>{ <span class="keywordflow">return</span> doIndexOf(c, 0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03820"></a>03820 <a name="l03821"></a>03821 <span class="keyword">inline</span> int32_t <a name="l03822"></a><a class="code" href="classUnicodeString.html#a30bdd224b64c0e6267595a15c93fc3a7">03822</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c)<span class="keyword"> const</span> <a name="l03823"></a>03823 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(c, 0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03824"></a>03824 <a name="l03825"></a>03825 <span class="keyword">inline</span> int32_t <a name="l03826"></a><a class="code" href="classUnicodeString.html#afbdcf763ceb9b97ab0616342a4f8f973">03826</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l03827"></a>03827 int32_t start)<span class="keyword"> const </span>{ <a name="l03828"></a>03828 pinIndex(start); <a name="l03829"></a>03829 <span class="keywordflow">return</span> doIndexOf(c, start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03830"></a>03830 } <a name="l03831"></a>03831 <a name="l03832"></a>03832 <span class="keyword">inline</span> int32_t <a name="l03833"></a><a class="code" href="classUnicodeString.html#ae47d3da37887c5be54e30ee9274b09e6">03833</a> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">UnicodeString::indexOf</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l03834"></a>03834 int32_t start)<span class="keyword"> const </span>{ <a name="l03835"></a>03835 pinIndex(start); <a name="l03836"></a>03836 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a95d26a26d753346832a09d8f3fbc5c21" title="Locate in this the first occurrence of the characters in text, using bitwise comparison...">indexOf</a>(c, start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03837"></a>03837 } <a name="l03838"></a>03838 <a name="l03839"></a>03839 <span class="keyword">inline</span> int32_t <a name="l03840"></a><a class="code" href="classUnicodeString.html#a70730e2064ad98a0f5cd377145a4d978">03840</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03841"></a>03841 int32_t srcLength, <a name="l03842"></a>03842 int32_t start, <a name="l03843"></a>03843 int32_t _length)<span class="keyword"> const</span> <a name="l03844"></a>03844 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(srcChars, 0, srcLength, start, _length); } <a name="l03845"></a>03845 <a name="l03846"></a>03846 <span class="keyword">inline</span> int32_t <a name="l03847"></a><a class="code" href="classUnicodeString.html#a888a5eef6a80755f1e3455b6c5fb40f1">03847</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03848"></a>03848 int32_t srcLength, <a name="l03849"></a>03849 int32_t start)<span class="keyword"> const </span>{ <a name="l03850"></a>03850 pinIndex(start); <a name="l03851"></a>03851 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(srcChars, 0, srcLength, start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03852"></a>03852 } <a name="l03853"></a>03853 <a name="l03854"></a>03854 <span class="keyword">inline</span> int32_t <a name="l03855"></a><a class="code" href="classUnicodeString.html#a819576d305c2d69e6a8aa1d47dd27635">03855</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03856"></a>03856 int32_t srcStart, <a name="l03857"></a>03857 int32_t srcLength, <a name="l03858"></a>03858 int32_t start, <a name="l03859"></a>03859 int32_t _length)<span class="keyword"> const</span> <a name="l03860"></a>03860 <span class="keyword"></span>{ <a name="l03861"></a>03861 <span class="keywordflow">if</span>(!srcText.<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>()) { <a name="l03862"></a>03862 srcText.pinIndices(srcStart, srcLength); <a name="l03863"></a>03863 <span class="keywordflow">if</span>(srcLength > 0) { <a name="l03864"></a>03864 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(srcText.getArrayStart(), srcStart, srcLength, start, _length); <a name="l03865"></a>03865 } <a name="l03866"></a>03866 } <a name="l03867"></a>03867 <span class="keywordflow">return</span> -1; <a name="l03868"></a>03868 } <a name="l03869"></a>03869 <a name="l03870"></a>03870 <span class="keyword">inline</span> int32_t <a name="l03871"></a><a class="code" href="classUnicodeString.html#a22eb2250c71d81826e74ec80b7efd71f">03871</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l03872"></a>03872 int32_t start, <a name="l03873"></a>03873 int32_t _length)<span class="keyword"> const</span> <a name="l03874"></a>03874 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), start, _length); } <a name="l03875"></a>03875 <a name="l03876"></a>03876 <span class="keyword">inline</span> int32_t <a name="l03877"></a><a class="code" href="classUnicodeString.html#a24b0b6c1064d0c2c7a96bf67f3704390">03877</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text, <a name="l03878"></a>03878 int32_t start)<span class="keyword"> const </span>{ <a name="l03879"></a>03879 pinIndex(start); <a name="l03880"></a>03880 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03881"></a>03881 } <a name="l03882"></a>03882 <a name="l03883"></a>03883 <span class="keyword">inline</span> int32_t <a name="l03884"></a><a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681">03884</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03885"></a>03885 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03886"></a>03886 <a name="l03887"></a>03887 <span class="keyword">inline</span> int32_t <a name="l03888"></a><a class="code" href="classUnicodeString.html#aa1d1bdeca0ea48faeff72e1fa0ac96c1">03888</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l03889"></a>03889 int32_t start, <a name="l03890"></a>03890 int32_t _length)<span class="keyword"> const</span> <a name="l03891"></a>03891 <span class="keyword"></span>{ <span class="keywordflow">return</span> doLastIndexOf(c, start, _length); } <a name="l03892"></a>03892 <a name="l03893"></a>03893 <span class="keyword">inline</span> int32_t <a name="l03894"></a><a class="code" href="classUnicodeString.html#ab10f3a578417944a4bf82fe251874ef1">03894</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l03895"></a>03895 int32_t start, <a name="l03896"></a>03896 int32_t _length)<span class="keyword"> const </span>{ <a name="l03897"></a>03897 <span class="keywordflow">return</span> doLastIndexOf(c, start, _length); <a name="l03898"></a>03898 } <a name="l03899"></a>03899 <a name="l03900"></a>03900 <span class="keyword">inline</span> int32_t <a name="l03901"></a><a class="code" href="classUnicodeString.html#a1e47f5a816151974defc56044f69b5f0">03901</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c)<span class="keyword"> const</span> <a name="l03902"></a>03902 <span class="keyword"></span>{ <span class="keywordflow">return</span> doLastIndexOf(c, 0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03903"></a>03903 <a name="l03904"></a>03904 <span class="keyword">inline</span> int32_t <a name="l03905"></a><a class="code" href="classUnicodeString.html#a05607edd87bf7d42ba92437d4acd3201">03905</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c)<span class="keyword"> const </span>{ <a name="l03906"></a>03906 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(c, 0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); <a name="l03907"></a>03907 } <a name="l03908"></a>03908 <a name="l03909"></a>03909 <span class="keyword">inline</span> int32_t <a name="l03910"></a><a class="code" href="classUnicodeString.html#a4b36bd76b30462f824dbd50c83ddc1c7">03910</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c, <a name="l03911"></a>03911 int32_t start)<span class="keyword"> const </span>{ <a name="l03912"></a>03912 pinIndex(start); <a name="l03913"></a>03913 <span class="keywordflow">return</span> doLastIndexOf(c, start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03914"></a>03914 } <a name="l03915"></a>03915 <a name="l03916"></a>03916 <span class="keyword">inline</span> int32_t <a name="l03917"></a><a class="code" href="classUnicodeString.html#af32e8297171296abc6f5f65a6532e982">03917</a> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">UnicodeString::lastIndexOf</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c, <a name="l03918"></a>03918 int32_t start)<span class="keyword"> const </span>{ <a name="l03919"></a>03919 pinIndex(start); <a name="l03920"></a>03920 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#ac4b5689a7a60e28378dd6bf9f06d8681" title="Locate in this the last occurrence of the characters in text, using bitwise comparison...">lastIndexOf</a>(c, start, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - start); <a name="l03921"></a>03921 } <a name="l03922"></a>03922 <a name="l03923"></a>03923 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03924"></a><a class="code" href="classUnicodeString.html#ab0e077b76c436892cd654438cac91158">03924</a> <a class="code" href="classUnicodeString.html#ab0e077b76c436892cd654438cac91158" title="Determine if this starts with the characters in text.">UnicodeString::startsWith</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03925"></a>03925 <span class="keyword"></span>{ <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#aceb5ebe345197e0932d6b1c49a63493e" title="Compare the characters bitwise in this UnicodeString to the characters in text.">compare</a>(0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) == 0; } <a name="l03926"></a>03926 <a name="l03927"></a>03927 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03928"></a><a class="code" href="classUnicodeString.html#afd20f639672a52e36825458462ddcd7f">03928</a> <a class="code" href="classUnicodeString.html#ab0e077b76c436892cd654438cac91158" title="Determine if this starts with the characters in text.">UnicodeString::startsWith</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03929"></a>03929 int32_t srcStart, <a name="l03930"></a>03930 int32_t srcLength)<span class="keyword"> const</span> <a name="l03931"></a>03931 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, srcLength, srcText, srcStart, srcLength) == 0; } <a name="l03932"></a>03932 <a name="l03933"></a>03933 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03934"></a><a class="code" href="classUnicodeString.html#ad12b7ef01da4555975a5cf9a4600d23e">03934</a> <a class="code" href="classUnicodeString.html#ab0e077b76c436892cd654438cac91158" title="Determine if this starts with the characters in text.">UnicodeString::startsWith</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03935"></a>03935 int32_t srcLength)<span class="keyword"> const</span> <a name="l03936"></a>03936 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, srcLength, srcChars, 0, srcLength) == 0; } <a name="l03937"></a>03937 <a name="l03938"></a>03938 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03939"></a><a class="code" href="classUnicodeString.html#a9f2cd1d245ca229be31991f3ed9d835a">03939</a> <a class="code" href="classUnicodeString.html#ab0e077b76c436892cd654438cac91158" title="Determine if this starts with the characters in text.">UnicodeString::startsWith</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03940"></a>03940 int32_t srcStart, <a name="l03941"></a>03941 int32_t srcLength)<span class="keyword"> const</span> <a name="l03942"></a>03942 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(0, srcLength, srcChars, srcStart, srcLength) == 0;} <a name="l03943"></a>03943 <a name="l03944"></a>03944 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03945"></a><a class="code" href="classUnicodeString.html#ab720aa6e352deda84f988bc0e8fe2db4">03945</a> <a class="code" href="classUnicodeString.html#ab720aa6e352deda84f988bc0e8fe2db4" title="Determine if this ends with the characters in text.">UnicodeString::endsWith</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& text)<span class="keyword"> const</span> <a name="l03946"></a>03946 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCompare(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), <a name="l03947"></a>03947 text, 0, text.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) == 0; } <a name="l03948"></a>03948 <a name="l03949"></a>03949 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03950"></a><a class="code" href="classUnicodeString.html#a8eb8e157edc82cdcc51d9420ff3f610c">03950</a> <a class="code" href="classUnicodeString.html#ab720aa6e352deda84f988bc0e8fe2db4" title="Determine if this ends with the characters in text.">UnicodeString::endsWith</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03951"></a>03951 int32_t srcStart, <a name="l03952"></a>03952 int32_t srcLength)<span class="keyword"> const </span>{ <a name="l03953"></a>03953 srcText.pinIndices(srcStart, srcLength); <a name="l03954"></a>03954 <span class="keywordflow">return</span> doCompare(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - srcLength, srcLength, <a name="l03955"></a>03955 srcText, srcStart, srcLength) == 0; <a name="l03956"></a>03956 } <a name="l03957"></a>03957 <a name="l03958"></a>03958 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03959"></a><a class="code" href="classUnicodeString.html#afe8c45af2965c45d76a387be46f57bc5">03959</a> <a class="code" href="classUnicodeString.html#ab720aa6e352deda84f988bc0e8fe2db4" title="Determine if this ends with the characters in text.">UnicodeString::endsWith</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03960"></a>03960 int32_t srcLength)<span class="keyword"> const </span>{ <a name="l03961"></a>03961 <span class="keywordflow">if</span>(srcLength < 0) { <a name="l03962"></a>03962 srcLength = <a class="code" href="group__ustring__ustrlen.html#gac4d8a5581fc5bde71d62ebd0a7a84ec5" title="Determine the length of an array of UChar.">u_strlen</a>(srcChars); <a name="l03963"></a>03963 } <a name="l03964"></a>03964 <span class="keywordflow">return</span> doCompare(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - srcLength, srcLength, <a name="l03965"></a>03965 srcChars, 0, srcLength) == 0; <a name="l03966"></a>03966 } <a name="l03967"></a>03967 <a name="l03968"></a>03968 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l03969"></a><a class="code" href="classUnicodeString.html#a3fd044063a86573cd5f0b74bb58bd99a">03969</a> <a class="code" href="classUnicodeString.html#ab720aa6e352deda84f988bc0e8fe2db4" title="Determine if this ends with the characters in text.">UnicodeString::endsWith</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l03970"></a>03970 int32_t srcStart, <a name="l03971"></a>03971 int32_t srcLength)<span class="keyword"> const </span>{ <a name="l03972"></a>03972 <span class="keywordflow">if</span>(srcLength < 0) { <a name="l03973"></a>03973 srcLength = <a class="code" href="group__ustring__ustrlen.html#gac4d8a5581fc5bde71d62ebd0a7a84ec5" title="Determine the length of an array of UChar.">u_strlen</a>(srcChars + srcStart); <a name="l03974"></a>03974 } <a name="l03975"></a>03975 <span class="keywordflow">return</span> doCompare(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - srcLength, srcLength, <a name="l03976"></a>03976 srcChars, srcStart, srcLength) == 0; <a name="l03977"></a>03977 } <a name="l03978"></a>03978 <a name="l03979"></a>03979 <span class="comment">//========================================</span> <a name="l03980"></a>03980 <span class="comment">// replace</span> <a name="l03981"></a>03981 <span class="comment">//========================================</span> <a name="l03982"></a>03982 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l03983"></a><a class="code" href="classUnicodeString.html#a53f142e2db860dcb7d9544b01904eb8c">03983</a> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">UnicodeString::replace</a>(int32_t start, <a name="l03984"></a>03984 int32_t _length, <a name="l03985"></a>03985 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <a name="l03986"></a>03986 { <span class="keywordflow">return</span> doReplace(start, _length, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l03987"></a>03987 <a name="l03988"></a>03988 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l03989"></a><a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476">03989</a> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">UnicodeString::replace</a>(int32_t start, <a name="l03990"></a>03990 int32_t _length, <a name="l03991"></a>03991 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l03992"></a>03992 int32_t srcStart, <a name="l03993"></a>03993 int32_t srcLength) <a name="l03994"></a>03994 { <span class="keywordflow">return</span> doReplace(start, _length, srcText, srcStart, srcLength); } <a name="l03995"></a>03995 <a name="l03996"></a>03996 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l03997"></a><a class="code" href="classUnicodeString.html#a250f55bd8fbd8490852a0c90c5bcec4f">03997</a> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">UnicodeString::replace</a>(int32_t start, <a name="l03998"></a>03998 int32_t _length, <a name="l03999"></a>03999 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04000"></a>04000 int32_t srcLength) <a name="l04001"></a>04001 { <span class="keywordflow">return</span> doReplace(start, _length, srcChars, 0, srcLength); } <a name="l04002"></a>04002 <a name="l04003"></a>04003 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04004"></a><a class="code" href="classUnicodeString.html#a67b906be4fc94fe57feb34ab10355922">04004</a> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">UnicodeString::replace</a>(int32_t start, <a name="l04005"></a>04005 int32_t _length, <a name="l04006"></a>04006 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04007"></a>04007 int32_t srcStart, <a name="l04008"></a>04008 int32_t srcLength) <a name="l04009"></a>04009 { <span class="keywordflow">return</span> doReplace(start, _length, srcChars, srcStart, srcLength); } <a name="l04010"></a>04010 <a name="l04011"></a>04011 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04012"></a><a class="code" href="classUnicodeString.html#af048ddbf8ecdcb90105b90f50375209c">04012</a> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">UnicodeString::replace</a>(int32_t start, <a name="l04013"></a>04013 int32_t _length, <a name="l04014"></a>04014 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar) <a name="l04015"></a>04015 { <span class="keywordflow">return</span> doReplace(start, _length, &srcChar, 0, 1); } <a name="l04016"></a>04016 <a name="l04017"></a>04017 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04018"></a><a class="code" href="classUnicodeString.html#aa363771bfbdcb732ceccffbc2030b5ed">04018</a> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">UnicodeString::replace</a>(int32_t start, <a name="l04019"></a>04019 int32_t _length, <a name="l04020"></a>04020 <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar) { <a name="l04021"></a>04021 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> buffer[<a class="code" href="utf16_8h.html#ab14454ab71a81f0cf86e523e50690eee" title="The maximum number of 16-bit code units per Unicode code point (U+0000..U+10ffff)...">U16_MAX_LENGTH</a>]; <a name="l04022"></a>04022 int32_t count = 0; <a name="l04023"></a>04023 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isError = <a class="code" href="umachine_8h.html#aa93f0eb578d23995850d61f7d61c55c1" title="The FALSE value of a UBool.">FALSE</a>; <a name="l04024"></a>04024 <a class="code" href="utf16_8h.html#a30e185424986bca1790c1ffe1e2a93b5" title="Append a code point to a string, overwriting 1 or 2 code units.">U16_APPEND</a>(buffer, count, <a class="code" href="utf16_8h.html#ab14454ab71a81f0cf86e523e50690eee" title="The maximum number of 16-bit code units per Unicode code point (U+0000..U+10ffff)...">U16_MAX_LENGTH</a>, srcChar, isError); <a name="l04025"></a>04025 <span class="keywordflow">return</span> doReplace(start, _length, buffer, 0, count); <a name="l04026"></a>04026 } <a name="l04027"></a>04027 <a name="l04028"></a>04028 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04029"></a><a class="code" href="classUnicodeString.html#a3e971aecee8c927be11601d022d3a2a4">04029</a> <a class="code" href="classUnicodeString.html#a3e971aecee8c927be11601d022d3a2a4" title="Replace the characters in the range [start, limit) with the characters in srcText...">UnicodeString::replaceBetween</a>(int32_t start, <a name="l04030"></a>04030 int32_t limit, <a name="l04031"></a>04031 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <a name="l04032"></a>04032 { <span class="keywordflow">return</span> doReplace(start, limit - start, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04033"></a>04033 <a name="l04034"></a>04034 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04035"></a><a class="code" href="classUnicodeString.html#a8cb0ad3a526ebb049c25fc541bac2543">04035</a> <a class="code" href="classUnicodeString.html#a3e971aecee8c927be11601d022d3a2a4" title="Replace the characters in the range [start, limit) with the characters in srcText...">UnicodeString::replaceBetween</a>(int32_t start, <a name="l04036"></a>04036 int32_t limit, <a name="l04037"></a>04037 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l04038"></a>04038 int32_t srcStart, <a name="l04039"></a>04039 int32_t srcLimit) <a name="l04040"></a>04040 { <span class="keywordflow">return</span> doReplace(start, limit - start, srcText, srcStart, srcLimit - srcStart); } <a name="l04041"></a>04041 <a name="l04042"></a>04042 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04043"></a><a class="code" href="classUnicodeString.html#a332cce292be22e3bc76a53f17c4ad6ff">04043</a> <a class="code" href="classUnicodeString.html#a332cce292be22e3bc76a53f17c4ad6ff" title="Replace all occurrences of characters in oldText with the characters in newText.">UnicodeString::findAndReplace</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& oldText, <a name="l04044"></a>04044 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& newText) <a name="l04045"></a>04045 { <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a332cce292be22e3bc76a53f17c4ad6ff" title="Replace all occurrences of characters in oldText with the characters in newText.">findAndReplace</a>(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), oldText, 0, oldText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), <a name="l04046"></a>04046 newText, 0, newText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04047"></a>04047 <a name="l04048"></a>04048 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04049"></a><a class="code" href="classUnicodeString.html#ae3ed2d6a16b461c531ad1a3f0bc66c91">04049</a> <a class="code" href="classUnicodeString.html#a332cce292be22e3bc76a53f17c4ad6ff" title="Replace all occurrences of characters in oldText with the characters in newText.">UnicodeString::findAndReplace</a>(int32_t start, <a name="l04050"></a>04050 int32_t _length, <a name="l04051"></a>04051 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& oldText, <a name="l04052"></a>04052 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& newText) <a name="l04053"></a>04053 { <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a332cce292be22e3bc76a53f17c4ad6ff" title="Replace all occurrences of characters in oldText with the characters in newText.">findAndReplace</a>(start, _length, oldText, 0, oldText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), <a name="l04054"></a>04054 newText, 0, newText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04055"></a>04055 <a name="l04056"></a>04056 <span class="comment">// ============================</span> <a name="l04057"></a>04057 <span class="comment">// extract</span> <a name="l04058"></a>04058 <span class="comment">// ============================</span> <a name="l04059"></a>04059 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04060"></a>04060 UnicodeString::doExtract(int32_t start, <a name="l04061"></a>04061 int32_t _length, <a name="l04062"></a>04062 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& target)<span class="keyword"> const</span> <a name="l04063"></a>04063 <span class="keyword"></span>{ target.<a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">replace</a>(0, target.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), *<span class="keyword">this</span>, start, _length); } <a name="l04064"></a>04064 <a name="l04065"></a>04065 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04066"></a><a class="code" href="classUnicodeString.html#a9b2d4e417740becdb24a59fab263b8e3">04066</a> <a class="code" href="classUnicodeString.html#a9b2d4e417740becdb24a59fab263b8e3" title="Copy the characters in the range [start, start + length) into the array dst, beginning...">UnicodeString::extract</a>(int32_t start, <a name="l04067"></a>04067 int32_t _length, <a name="l04068"></a>04068 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *target, <a name="l04069"></a>04069 int32_t targetStart)<span class="keyword"> const</span> <a name="l04070"></a>04070 <span class="keyword"></span>{ doExtract(start, _length, target, targetStart); } <a name="l04071"></a>04071 <a name="l04072"></a>04072 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04073"></a><a class="code" href="classUnicodeString.html#a36effb107202af602f11e587375357f8">04073</a> <a class="code" href="classUnicodeString.html#a9b2d4e417740becdb24a59fab263b8e3" title="Copy the characters in the range [start, start + length) into the array dst, beginning...">UnicodeString::extract</a>(int32_t start, <a name="l04074"></a>04074 int32_t _length, <a name="l04075"></a>04075 <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& target)<span class="keyword"> const</span> <a name="l04076"></a>04076 <span class="keyword"></span>{ doExtract(start, _length, target); } <a name="l04077"></a>04077 <a name="l04078"></a>04078 <span class="preprocessor">#if !UCONFIG_NO_CONVERSION</span> <a name="l04079"></a>04079 <span class="preprocessor"></span> <a name="l04080"></a>04080 <span class="keyword">inline</span> int32_t <a name="l04081"></a><a class="code" href="classUnicodeString.html#ac15fabe40a5101c6419492dc751da345">04081</a> <a class="code" href="classUnicodeString.html#a9b2d4e417740becdb24a59fab263b8e3" title="Copy the characters in the range [start, start + length) into the array dst, beginning...">UnicodeString::extract</a>(int32_t start, <a name="l04082"></a>04082 int32_t _length, <a name="l04083"></a>04083 <span class="keywordtype">char</span> *dst, <a name="l04084"></a>04084 <span class="keyword">const</span> <span class="keywordtype">char</span> *codepage)<span class="keyword"> const</span> <a name="l04085"></a>04085 <span class="keyword"></span> <a name="l04086"></a>04086 <span class="keyword"></span>{ <a name="l04087"></a>04087 <span class="comment">// This dstSize value will be checked explicitly</span> <a name="l04088"></a>04088 <span class="preprocessor">#if defined(__GNUC__)</span> <a name="l04089"></a>04089 <span class="preprocessor"></span> <span class="comment">// Ticket #7039: Clip length to the maximum valid length to the end of addressable memory given the starting address</span> <a name="l04090"></a>04090 <span class="comment">// This is only an issue when using GCC and certain optimizations are turned on.</span> <a name="l04091"></a>04091 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a9b2d4e417740becdb24a59fab263b8e3" title="Copy the characters in the range [start, start + length) into the array dst, beginning...">extract</a>(start, _length, dst, dst!=0 ? ((dst >= (<span class="keywordtype">char</span>*)((<span class="keywordtype">size_t</span>)-1) - <a class="code" href="umachine_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd" title="The largest value a 32 bit unsigned integer can hold.">UINT32_MAX</a>) ? (((<span class="keywordtype">char</span>*)<a class="code" href="umachine_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd" title="The largest value a 32 bit unsigned integer can hold.">UINT32_MAX</a>) - dst) : UINT32_MAX) : 0, codepage); <a name="l04092"></a>04092 <span class="preprocessor">#else</span> <a name="l04093"></a>04093 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a9b2d4e417740becdb24a59fab263b8e3" title="Copy the characters in the range [start, start + length) into the array dst, beginning...">extract</a>(start, _length, dst, dst!=0 ? 0xffffffff : 0, codepage); <a name="l04094"></a>04094 <span class="preprocessor">#endif</span> <a name="l04095"></a>04095 <span class="preprocessor"></span>} <a name="l04096"></a>04096 <a name="l04097"></a>04097 <span class="preprocessor">#endif</span> <a name="l04098"></a>04098 <span class="preprocessor"></span> <a name="l04099"></a>04099 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04100"></a><a class="code" href="classUnicodeString.html#ad5dbb294a5eb01e1b4af82abc8eceeed">04100</a> <a class="code" href="classUnicodeString.html#ad5dbb294a5eb01e1b4af82abc8eceeed" title="Copy the characters in the range [start, limit) into the array dst, beginning at...">UnicodeString::extractBetween</a>(int32_t start, <a name="l04101"></a>04101 int32_t limit, <a name="l04102"></a>04102 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *dst, <a name="l04103"></a>04103 int32_t dstStart)<span class="keyword"> const </span>{ <a name="l04104"></a>04104 pinIndex(start); <a name="l04105"></a>04105 pinIndex(limit); <a name="l04106"></a>04106 doExtract(start, limit - start, dst, dstStart); <a name="l04107"></a>04107 } <a name="l04108"></a>04108 <a name="l04109"></a>04109 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> <a name="l04110"></a><a class="code" href="classUnicodeString.html#a46e2d39320a4676b00ea9f1bb9ef0ec2">04110</a> <a class="code" href="classUnicodeString.html#a46e2d39320a4676b00ea9f1bb9ef0ec2" title="Create a temporary substring for the specified range.">UnicodeString::tempSubStringBetween</a>(int32_t start, int32_t limit)<span class="keyword"> const </span>{ <a name="l04111"></a>04111 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a30401646a2726ade768c56b0b219faa0" title="Create a temporary substring for the specified range.">tempSubString</a>(start, limit - start); <a name="l04112"></a>04112 } <a name="l04113"></a>04113 <a name="l04114"></a>04114 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> <a name="l04115"></a>04115 UnicodeString::doCharAt(int32_t offset)<span class="keyword"> const</span> <a name="l04116"></a>04116 <span class="keyword"></span>{ <a name="l04117"></a>04117 <span class="keywordflow">if</span>((uint32_t)offset < (uint32_t)<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) { <a name="l04118"></a>04118 <span class="keywordflow">return</span> getArrayStart()[offset]; <a name="l04119"></a>04119 } <span class="keywordflow">else</span> { <a name="l04120"></a>04120 <span class="keywordflow">return</span> kInvalidUChar; <a name="l04121"></a>04121 } <a name="l04122"></a>04122 } <a name="l04123"></a>04123 <a name="l04124"></a>04124 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> <a name="l04125"></a><a class="code" href="classUnicodeString.html#ae3ffb6e15396dff152cb459ce4008f90">04125</a> <a class="code" href="classUnicodeString.html#ae3ffb6e15396dff152cb459ce4008f90" title="Return the code unit at offset offset.">UnicodeString::charAt</a>(int32_t offset)<span class="keyword"> const</span> <a name="l04126"></a>04126 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCharAt(offset); } <a name="l04127"></a>04127 <a name="l04128"></a>04128 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> <a name="l04129"></a><a class="code" href="classUnicodeString.html#acc98e688603bf1b2dbfd6303ec8783f5">04129</a> <a class="code" href="classUnicodeString.html#acc98e688603bf1b2dbfd6303ec8783f5" title="Return the code unit at offset offset.">UnicodeString::operator[] </a>(int32_t offset)<span class="keyword"> const</span> <a name="l04130"></a>04130 <span class="keyword"></span>{ <span class="keywordflow">return</span> doCharAt(offset); } <a name="l04131"></a>04131 <a name="l04132"></a>04132 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> <a name="l04133"></a><a class="code" href="classUnicodeString.html#a9ca80740ef5199cf1809c66a4ef6ba3d">04133</a> <a class="code" href="classUnicodeString.html#a9ca80740ef5199cf1809c66a4ef6ba3d" title="Return the code point that contains the code unit at offset offset.">UnicodeString::char32At</a>(int32_t offset)<span class="keyword"> const</span> <a name="l04134"></a>04134 <span class="keyword"></span>{ <a name="l04135"></a>04135 int32_t len = <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(); <a name="l04136"></a>04136 <span class="keywordflow">if</span>((uint32_t)offset < (uint32_t)len) { <a name="l04137"></a>04137 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *array = getArrayStart(); <a name="l04138"></a>04138 <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c; <a name="l04139"></a>04139 <a class="code" href="utf16_8h.html#aa354b12f5f755fe734f957cde6d68bbe" title="Get a code point from a string at a random-access offset, without changing the offset...">U16_GET</a>(array, 0, offset, len, c); <a name="l04140"></a>04140 <span class="keywordflow">return</span> c; <a name="l04141"></a>04141 } <span class="keywordflow">else</span> { <a name="l04142"></a>04142 <span class="keywordflow">return</span> kInvalidUChar; <a name="l04143"></a>04143 } <a name="l04144"></a>04144 } <a name="l04145"></a>04145 <a name="l04146"></a>04146 <span class="keyword">inline</span> int32_t <a name="l04147"></a><a class="code" href="classUnicodeString.html#a121c8e74fb409a9b2e3a503f965f75f1">04147</a> <a class="code" href="classUnicodeString.html#a121c8e74fb409a9b2e3a503f965f75f1" title="Adjust a random-access offset so that it points to the beginning of a Unicode character...">UnicodeString::getChar32Start</a>(int32_t offset)<span class="keyword"> const </span>{ <a name="l04148"></a>04148 <span class="keywordflow">if</span>((uint32_t)offset < (uint32_t)<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) { <a name="l04149"></a>04149 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *array = getArrayStart(); <a name="l04150"></a>04150 <a class="code" href="utf16_8h.html#a31c914801f71204ee90caa6c4d0c3c1b" title="Adjust a random-access offset to a code point boundary at the start of a code point...">U16_SET_CP_START</a>(array, 0, offset); <a name="l04151"></a>04151 <span class="keywordflow">return</span> offset; <a name="l04152"></a>04152 } <span class="keywordflow">else</span> { <a name="l04153"></a>04153 <span class="keywordflow">return</span> 0; <a name="l04154"></a>04154 } <a name="l04155"></a>04155 } <a name="l04156"></a>04156 <a name="l04157"></a>04157 <span class="keyword">inline</span> int32_t <a name="l04158"></a><a class="code" href="classUnicodeString.html#a20f1e4c661d0fc07c800ad8b4ec37587">04158</a> <a class="code" href="classUnicodeString.html#a20f1e4c661d0fc07c800ad8b4ec37587" title="Adjust a random-access offset so that it points behind a Unicode character.">UnicodeString::getChar32Limit</a>(int32_t offset)<span class="keyword"> const </span>{ <a name="l04159"></a>04159 int32_t len = <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(); <a name="l04160"></a>04160 <span class="keywordflow">if</span>((uint32_t)offset < (uint32_t)len) { <a name="l04161"></a>04161 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *array = getArrayStart(); <a name="l04162"></a>04162 <a class="code" href="utf16_8h.html#a3d5ff64af4bf16cbf9a830743a5c74a4" title="Adjust a random-access offset to a code point boundary after a code point.">U16_SET_CP_LIMIT</a>(array, 0, offset, len); <a name="l04163"></a>04163 <span class="keywordflow">return</span> offset; <a name="l04164"></a>04164 } <span class="keywordflow">else</span> { <a name="l04165"></a>04165 <span class="keywordflow">return</span> len; <a name="l04166"></a>04166 } <a name="l04167"></a>04167 } <a name="l04168"></a>04168 <a name="l04169"></a>04169 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l04170"></a><a class="code" href="classUnicodeString.html#aeefca846dd927d3db49c0cdc45ce744c">04170</a> <a class="code" href="classUnicodeString.html#aeefca846dd927d3db49c0cdc45ce744c" title="Determine if this string is empty.">UnicodeString::isEmpty</a>()<span class="keyword"> const </span>{ <a name="l04171"></a>04171 <span class="keywordflow">return</span> fShortLength == 0; <a name="l04172"></a>04172 } <a name="l04173"></a>04173 <a name="l04174"></a>04174 <span class="comment">//========================================</span> <a name="l04175"></a>04175 <span class="comment">// Write implementation methods</span> <a name="l04176"></a>04176 <span class="comment">//========================================</span> <a name="l04177"></a>04177 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04178"></a>04178 UnicodeString::setLength(int32_t len) { <a name="l04179"></a>04179 <span class="keywordflow">if</span>(len <= 127) { <a name="l04180"></a>04180 fShortLength = (int8_t)len; <a name="l04181"></a>04181 } <span class="keywordflow">else</span> { <a name="l04182"></a>04182 fShortLength = (int8_t)-1; <a name="l04183"></a>04183 fUnion.fFields.fLength = len; <a name="l04184"></a>04184 } <a name="l04185"></a>04185 } <a name="l04186"></a>04186 <a name="l04187"></a>04187 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04188"></a>04188 UnicodeString::setToEmpty() { <a name="l04189"></a>04189 fShortLength = 0; <a name="l04190"></a>04190 fFlags = kShortString; <a name="l04191"></a>04191 } <a name="l04192"></a>04192 <a name="l04193"></a>04193 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l04194"></a>04194 UnicodeString::setArray(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *array, int32_t len, int32_t capacity) { <a name="l04195"></a>04195 setLength(len); <a name="l04196"></a>04196 fUnion.fFields.fArray = array; <a name="l04197"></a>04197 fUnion.fFields.fCapacity = capacity; <a name="l04198"></a>04198 } <a name="l04199"></a>04199 <a name="l04200"></a>04200 <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> * <a name="l04201"></a><a class="code" href="classUnicodeString.html#a8aecf2249fdb51e284270a6f31e2cd75">04201</a> <a class="code" href="classUnicodeString.html#a8aecf2249fdb51e284270a6f31e2cd75" title="Get a read-only pointer to the internal buffer, making sure that it is NUL-terminated...">UnicodeString::getTerminatedBuffer</a>() { <a name="l04202"></a>04202 <span class="keywordflow">if</span>(!isWritable()) { <a name="l04203"></a>04203 <span class="keywordflow">return</span> 0; <a name="l04204"></a>04204 } <span class="keywordflow">else</span> { <a name="l04205"></a>04205 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *array = getArrayStart(); <a name="l04206"></a>04206 int32_t len = <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(); <a name="l04207"></a>04207 <span class="keywordflow">if</span>(len < <a class="code" href="classUnicodeString.html#a924521b1d7d9828ac9374e467144b0cc" title="Return the capacity of the internal buffer of the UnicodeString object.">getCapacity</a>() && ((fFlags&kRefCounted) == 0 || refCount() == 1)) { <a name="l04208"></a>04208 <span class="comment">/*</span> <a name="l04209"></a>04209 <span class="comment"> * kRefCounted: Do not write the NUL if the buffer is shared.</span> <a name="l04210"></a>04210 <span class="comment"> * That is mostly safe, except when the length of one copy was modified</span> <a name="l04211"></a>04211 <span class="comment"> * without copy-on-write, e.g., via truncate(newLength) or remove(void).</span> <a name="l04212"></a>04212 <span class="comment"> * Then the NUL would be written into the middle of another copy's string.</span> <a name="l04213"></a>04213 <span class="comment"> */</span> <a name="l04214"></a>04214 <span class="keywordflow">if</span>(!(fFlags&kBufferIsReadonly)) { <a name="l04215"></a>04215 <span class="comment">/*</span> <a name="l04216"></a>04216 <span class="comment"> * We must not write to a readonly buffer, but it is known to be</span> <a name="l04217"></a>04217 <span class="comment"> * NUL-terminated if len<capacity.</span> <a name="l04218"></a>04218 <span class="comment"> * A shared, allocated buffer (refCount()>1) must not have its contents</span> <a name="l04219"></a>04219 <span class="comment"> * modified, but the NUL at [len] is beyond the string contents,</span> <a name="l04220"></a>04220 <span class="comment"> * and multiple string objects and threads writing the same NUL into the</span> <a name="l04221"></a>04221 <span class="comment"> * same location is harmless.</span> <a name="l04222"></a>04222 <span class="comment"> * In all other cases, the buffer is fully writable and it is anyway safe</span> <a name="l04223"></a>04223 <span class="comment"> * to write the NUL.</span> <a name="l04224"></a>04224 <span class="comment"> *</span> <a name="l04225"></a>04225 <span class="comment"> * Note: An earlier version of this code tested whether there is a NUL</span> <a name="l04226"></a>04226 <span class="comment"> * at [len] already, but, while safe, it generated lots of warnings from</span> <a name="l04227"></a>04227 <span class="comment"> * tools like valgrind and Purify.</span> <a name="l04228"></a>04228 <span class="comment"> */</span> <a name="l04229"></a>04229 array[len] = 0; <a name="l04230"></a>04230 } <a name="l04231"></a>04231 <span class="keywordflow">return</span> array; <a name="l04232"></a>04232 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(cloneArrayIfNeeded(len+1)) { <a name="l04233"></a>04233 array = getArrayStart(); <a name="l04234"></a>04234 array[len] = 0; <a name="l04235"></a>04235 <span class="keywordflow">return</span> array; <a name="l04236"></a>04236 } <span class="keywordflow">else</span> { <a name="l04237"></a>04237 <span class="keywordflow">return</span> 0; <a name="l04238"></a>04238 } <a name="l04239"></a>04239 } <a name="l04240"></a>04240 } <a name="l04241"></a>04241 <a name="l04242"></a>04242 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04243"></a><a class="code" href="classUnicodeString.html#a1d75d4701b858d95a49dbc07f8d1ba6c">04243</a> <a class="code" href="classUnicodeString.html#a5dd1ec62e48abc757646189cbcf2baa7" title="Assignment operator.">UnicodeString::operator= </a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> ch) <a name="l04244"></a>04244 { <span class="keywordflow">return</span> doReplace(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), &ch, 0, 1); } <a name="l04245"></a>04245 <a name="l04246"></a>04246 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04247"></a><a class="code" href="classUnicodeString.html#a0d1a2c1f297ceab74014d51e45c421f4">04247</a> <a class="code" href="classUnicodeString.html#a5dd1ec62e48abc757646189cbcf2baa7" title="Assignment operator.">UnicodeString::operator= </a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> ch) <a name="l04248"></a>04248 { <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">replace</a>(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), ch); } <a name="l04249"></a>04249 <a name="l04250"></a>04250 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04251"></a><a class="code" href="classUnicodeString.html#ac38d68fb81c7421b654d3287d9d54206">04251</a> <a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e" title="Set the text in the UnicodeString object to the characters in srcText in the range...">UnicodeString::setTo</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l04252"></a>04252 int32_t srcStart, <a name="l04253"></a>04253 int32_t srcLength) <a name="l04254"></a>04254 { <a name="l04255"></a>04255 unBogus(); <a name="l04256"></a>04256 <span class="keywordflow">return</span> doReplace(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcText, srcStart, srcLength); <a name="l04257"></a>04257 } <a name="l04258"></a>04258 <a name="l04259"></a>04259 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04260"></a><a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e">04260</a> <a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e" title="Set the text in the UnicodeString object to the characters in srcText in the range...">UnicodeString::setTo</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l04261"></a>04261 int32_t srcStart) <a name="l04262"></a>04262 { <a name="l04263"></a>04263 unBogus(); <a name="l04264"></a>04264 srcText.pinIndex(srcStart); <a name="l04265"></a>04265 <span class="keywordflow">return</span> doReplace(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcText, srcStart, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>() - srcStart); <a name="l04266"></a>04266 } <a name="l04267"></a>04267 <a name="l04268"></a>04268 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04269"></a><a class="code" href="classUnicodeString.html#a318d7dc15dfce8ff8e46721ccd5c1899">04269</a> <a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e" title="Set the text in the UnicodeString object to the characters in srcText in the range...">UnicodeString::setTo</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <a name="l04270"></a>04270 { <a name="l04271"></a>04271 unBogus(); <a name="l04272"></a>04272 <span class="keywordflow">return</span> doReplace(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); <a name="l04273"></a>04273 } <a name="l04274"></a>04274 <a name="l04275"></a>04275 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04276"></a><a class="code" href="classUnicodeString.html#a5bae314691db9ce0a805343bde6ea2b3">04276</a> <a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e" title="Set the text in the UnicodeString object to the characters in srcText in the range...">UnicodeString::setTo</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04277"></a>04277 int32_t srcLength) <a name="l04278"></a>04278 { <a name="l04279"></a>04279 unBogus(); <a name="l04280"></a>04280 <span class="keywordflow">return</span> doReplace(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcChars, 0, srcLength); <a name="l04281"></a>04281 } <a name="l04282"></a>04282 <a name="l04283"></a>04283 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04284"></a><a class="code" href="classUnicodeString.html#a56c98d01627a9407cdb4605242ce4d73">04284</a> <a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e" title="Set the text in the UnicodeString object to the characters in srcText in the range...">UnicodeString::setTo</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar) <a name="l04285"></a>04285 { <a name="l04286"></a>04286 unBogus(); <a name="l04287"></a>04287 <span class="keywordflow">return</span> doReplace(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), &srcChar, 0, 1); <a name="l04288"></a>04288 } <a name="l04289"></a>04289 <a name="l04290"></a>04290 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04291"></a><a class="code" href="classUnicodeString.html#a79ab8bb668477b4ccebbdc894c1d321b">04291</a> <a class="code" href="classUnicodeString.html#a3897abda046dd38819aa8f2c8078861e" title="Set the text in the UnicodeString object to the characters in srcText in the range...">UnicodeString::setTo</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar) <a name="l04292"></a>04292 { <a name="l04293"></a>04293 unBogus(); <a name="l04294"></a>04294 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">replace</a>(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), srcChar); <a name="l04295"></a>04295 } <a name="l04296"></a>04296 <a name="l04297"></a>04297 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04298"></a><a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867">04298</a> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">UnicodeString::append</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l04299"></a>04299 int32_t srcStart, <a name="l04300"></a>04300 int32_t srcLength) <a name="l04301"></a>04301 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, srcText, srcStart, srcLength); } <a name="l04302"></a>04302 <a name="l04303"></a>04303 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04304"></a><a class="code" href="classUnicodeString.html#a7030e96f6700e4877fe280b576b26e5b">04304</a> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">UnicodeString::append</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <a name="l04305"></a>04305 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04306"></a>04306 <a name="l04307"></a>04307 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04308"></a><a class="code" href="classUnicodeString.html#a6aceed0319029d2a606981840568821a">04308</a> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">UnicodeString::append</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04309"></a>04309 int32_t srcStart, <a name="l04310"></a>04310 int32_t srcLength) <a name="l04311"></a>04311 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, srcChars, srcStart, srcLength); } <a name="l04312"></a>04312 <a name="l04313"></a>04313 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04314"></a><a class="code" href="classUnicodeString.html#a8b8cd6ab8a7e406badf887291d26514c">04314</a> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">UnicodeString::append</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04315"></a>04315 int32_t srcLength) <a name="l04316"></a>04316 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, srcChars, 0, srcLength); } <a name="l04317"></a>04317 <a name="l04318"></a>04318 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04319"></a><a class="code" href="classUnicodeString.html#a0b81068905fd081b01b06c0094ef3ca9">04319</a> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">UnicodeString::append</a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar) <a name="l04320"></a>04320 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, &srcChar, 0, 1); } <a name="l04321"></a>04321 <a name="l04322"></a>04322 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04323"></a><a class="code" href="classUnicodeString.html#a6c5d32e904ccac606dfc49afa4b35c17">04323</a> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">UnicodeString::append</a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar) { <a name="l04324"></a>04324 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> buffer[<a class="code" href="utf16_8h.html#ab14454ab71a81f0cf86e523e50690eee" title="The maximum number of 16-bit code units per Unicode code point (U+0000..U+10ffff)...">U16_MAX_LENGTH</a>]; <a name="l04325"></a>04325 int32_t _length = 0; <a name="l04326"></a>04326 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isError = <a class="code" href="umachine_8h.html#aa93f0eb578d23995850d61f7d61c55c1" title="The FALSE value of a UBool.">FALSE</a>; <a name="l04327"></a>04327 <a class="code" href="utf16_8h.html#a30e185424986bca1790c1ffe1e2a93b5" title="Append a code point to a string, overwriting 1 or 2 code units.">U16_APPEND</a>(buffer, _length, <a class="code" href="utf16_8h.html#ab14454ab71a81f0cf86e523e50690eee" title="The maximum number of 16-bit code units per Unicode code point (U+0000..U+10ffff)...">U16_MAX_LENGTH</a>, srcChar, isError); <a name="l04328"></a>04328 <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, buffer, 0, _length); <a name="l04329"></a>04329 } <a name="l04330"></a>04330 <a name="l04331"></a>04331 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04332"></a><a class="code" href="classUnicodeString.html#a3ac2e89f8f74c45ff13bf71e6062734b">04332</a> <a class="code" href="classUnicodeString.html#a3ac2e89f8f74c45ff13bf71e6062734b" title="Append operator.">UnicodeString::operator+= </a>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> ch) <a name="l04333"></a>04333 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, &ch, 0, 1); } <a name="l04334"></a>04334 <a name="l04335"></a>04335 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04336"></a><a class="code" href="classUnicodeString.html#a6e1482ab21f7ef9e5439981bad06f1ee">04336</a> <a class="code" href="classUnicodeString.html#a3ac2e89f8f74c45ff13bf71e6062734b" title="Append operator.">UnicodeString::operator+= </a>(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> ch) { <a name="l04337"></a>04337 <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#af7f9ab456ac8c07c5a24f15f5d7d4867" title="Append the characters in srcText in the range [srcStart, srcStart + srcLength) to...">append</a>(ch); <a name="l04338"></a>04338 } <a name="l04339"></a>04339 <a name="l04340"></a>04340 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04341"></a><a class="code" href="classUnicodeString.html#a7091ecbd1353a22279a93d95e05da385">04341</a> <a class="code" href="classUnicodeString.html#a3ac2e89f8f74c45ff13bf71e6062734b" title="Append operator.">UnicodeString::operator+= </a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <a name="l04342"></a>04342 { <span class="keywordflow">return</span> doReplace(<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>(), 0, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04343"></a>04343 <a name="l04344"></a>04344 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04345"></a><a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e">04345</a> <a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e" title="Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into...">UnicodeString::insert</a>(int32_t start, <a name="l04346"></a>04346 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText, <a name="l04347"></a>04347 int32_t srcStart, <a name="l04348"></a>04348 int32_t srcLength) <a name="l04349"></a>04349 { <span class="keywordflow">return</span> doReplace(start, 0, srcText, srcStart, srcLength); } <a name="l04350"></a>04350 <a name="l04351"></a>04351 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04352"></a><a class="code" href="classUnicodeString.html#aa44156212bb0ce6418ccbf1976fe126e">04352</a> <a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e" title="Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into...">UnicodeString::insert</a>(int32_t start, <a name="l04353"></a>04353 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& srcText) <a name="l04354"></a>04354 { <span class="keywordflow">return</span> doReplace(start, 0, srcText, 0, srcText.<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04355"></a>04355 <a name="l04356"></a>04356 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04357"></a><a class="code" href="classUnicodeString.html#ac9388b206d00f8ca47d5dc417ef23211">04357</a> <a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e" title="Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into...">UnicodeString::insert</a>(int32_t start, <a name="l04358"></a>04358 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04359"></a>04359 int32_t srcStart, <a name="l04360"></a>04360 int32_t srcLength) <a name="l04361"></a>04361 { <span class="keywordflow">return</span> doReplace(start, 0, srcChars, srcStart, srcLength); } <a name="l04362"></a>04362 <a name="l04363"></a>04363 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04364"></a><a class="code" href="classUnicodeString.html#a97683dc8790f9310cec85002422540ab">04364</a> <a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e" title="Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into...">UnicodeString::insert</a>(int32_t start, <a name="l04365"></a>04365 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *srcChars, <a name="l04366"></a>04366 int32_t srcLength) <a name="l04367"></a>04367 { <span class="keywordflow">return</span> doReplace(start, 0, srcChars, 0, srcLength); } <a name="l04368"></a>04368 <a name="l04369"></a>04369 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04370"></a><a class="code" href="classUnicodeString.html#aad4e081871687bb09edfde9ef87f6ef0">04370</a> <a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e" title="Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into...">UnicodeString::insert</a>(int32_t start, <a name="l04371"></a>04371 <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> srcChar) <a name="l04372"></a>04372 { <span class="keywordflow">return</span> doReplace(start, 0, &srcChar, 0, 1); } <a name="l04373"></a>04373 <a name="l04374"></a>04374 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04375"></a><a class="code" href="classUnicodeString.html#a59e54dc726e396baab496e0fb6467d51">04375</a> <a class="code" href="classUnicodeString.html#a179a24c3973d134ca3e160a5def2ad1e" title="Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into...">UnicodeString::insert</a>(int32_t start, <a name="l04376"></a>04376 <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> srcChar) <a name="l04377"></a>04377 { <span class="keywordflow">return</span> <a class="code" href="classUnicodeString.html#a9a321102fc38bec175fa21b1f1aa2476" title="Replace the characters in the range [start, start + length) with the characters in...">replace</a>(start, 0, srcChar); } <a name="l04378"></a>04378 <a name="l04379"></a>04379 <a name="l04380"></a>04380 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04381"></a><a class="code" href="classUnicodeString.html#aee0fec9568ee616e330627bf371eda8d">04381</a> <a class="code" href="classUnicodeString.html#aee0fec9568ee616e330627bf371eda8d" title="Remove all characters from the UnicodeString object.">UnicodeString::remove</a>() <a name="l04382"></a>04382 { <a name="l04383"></a>04383 <span class="comment">// remove() of a bogus string makes the string empty and non-bogus</span> <a name="l04384"></a>04384 <span class="comment">// we also un-alias a read-only alias to deal with NUL-termination</span> <a name="l04385"></a>04385 <span class="comment">// issues with getTerminatedBuffer()</span> <a name="l04386"></a>04386 <span class="keywordflow">if</span>(fFlags & (kIsBogus|kBufferIsReadonly)) { <a name="l04387"></a>04387 setToEmpty(); <a name="l04388"></a>04388 } <span class="keywordflow">else</span> { <a name="l04389"></a>04389 fShortLength = 0; <a name="l04390"></a>04390 } <a name="l04391"></a>04391 <span class="keywordflow">return</span> *<span class="keyword">this</span>; <a name="l04392"></a>04392 } <a name="l04393"></a>04393 <a name="l04394"></a>04394 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04395"></a><a class="code" href="classUnicodeString.html#ab54182e0d304a37c883d8c74df6139df">04395</a> <a class="code" href="classUnicodeString.html#aee0fec9568ee616e330627bf371eda8d" title="Remove all characters from the UnicodeString object.">UnicodeString::remove</a>(int32_t start, <a name="l04396"></a>04396 int32_t _length) <a name="l04397"></a>04397 { <a name="l04398"></a>04398 <span class="keywordflow">if</span>(start <= 0 && _length == <a class="code" href="umachine_8h.html#a181807730d4a375f848ba139813ce04f" title="The largest value a 32 bit signed integer can hold.">INT32_MAX</a>) { <a name="l04399"></a>04399 <span class="comment">// remove(guaranteed everything) of a bogus string makes the string empty and non-bogus</span> <a name="l04400"></a>04400 <span class="keywordflow">return</span> <span class="keyword">remove</span>(); <a name="l04401"></a>04401 } <a name="l04402"></a>04402 <span class="keywordflow">return</span> doReplace(start, _length, <a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>, 0, 0); <a name="l04403"></a>04403 } <a name="l04404"></a>04404 <a name="l04405"></a>04405 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04406"></a><a class="code" href="classUnicodeString.html#a6a901da92dd8e9bc1e1f168033175240">04406</a> <a class="code" href="classUnicodeString.html#a6a901da92dd8e9bc1e1f168033175240" title="Remove the characters in the range [start, limit) from the UnicodeString object.">UnicodeString::removeBetween</a>(int32_t start, <a name="l04407"></a>04407 int32_t limit) <a name="l04408"></a>04408 { <span class="keywordflow">return</span> doReplace(start, limit - start, <a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>, 0, 0); } <a name="l04409"></a>04409 <a name="l04410"></a>04410 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> & <a name="l04411"></a><a class="code" href="classUnicodeString.html#a7925ea8813653cde409f3a615c70ee8e">04411</a> <a class="code" href="classUnicodeString.html#a7925ea8813653cde409f3a615c70ee8e" title="Retain only the characters in the range [start, limit) from the UnicodeString object...">UnicodeString::retainBetween</a>(int32_t start, int32_t limit) { <a name="l04412"></a>04412 <a class="code" href="classUnicodeString.html#ad8fe3cabef409468a11b77111de45ebc" title="Truncate this UnicodeString to the targetLength.">truncate</a>(limit); <a name="l04413"></a>04413 <span class="keywordflow">return</span> doReplace(0, start, <a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>, 0, 0); <a name="l04414"></a>04414 } <a name="l04415"></a>04415 <a name="l04416"></a>04416 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a name="l04417"></a><a class="code" href="classUnicodeString.html#ad8fe3cabef409468a11b77111de45ebc">04417</a> <a class="code" href="classUnicodeString.html#ad8fe3cabef409468a11b77111de45ebc" title="Truncate this UnicodeString to the targetLength.">UnicodeString::truncate</a>(int32_t targetLength) <a name="l04418"></a>04418 { <a name="l04419"></a>04419 <span class="keywordflow">if</span>(<a class="code" href="classUnicodeString.html#af61191bafca3f7ed295a9eba2a1eb401" title="Determine if this object contains a valid string.">isBogus</a>() && targetLength == 0) { <a name="l04420"></a>04420 <span class="comment">// truncate(0) of a bogus string makes the string empty and non-bogus</span> <a name="l04421"></a>04421 unBogus(); <a name="l04422"></a>04422 <span class="keywordflow">return</span> <a class="code" href="umachine_8h.html#aa93f0eb578d23995850d61f7d61c55c1" title="The FALSE value of a UBool.">FALSE</a>; <a name="l04423"></a>04423 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((uint32_t)targetLength < (uint32_t)<a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()) { <a name="l04424"></a>04424 setLength(targetLength); <a name="l04425"></a>04425 <span class="keywordflow">if</span>(fFlags&kBufferIsReadonly) { <a name="l04426"></a>04426 fUnion.fFields.fCapacity = targetLength; <span class="comment">// not NUL-terminated any more</span> <a name="l04427"></a>04427 } <a name="l04428"></a>04428 <span class="keywordflow">return</span> <a class="code" href="umachine_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d" title="The TRUE value of a UBool.">TRUE</a>; <a name="l04429"></a>04429 } <span class="keywordflow">else</span> { <a name="l04430"></a>04430 <span class="keywordflow">return</span> <a class="code" href="umachine_8h.html#aa93f0eb578d23995850d61f7d61c55c1" title="The FALSE value of a UBool.">FALSE</a>; <a name="l04431"></a>04431 } <a name="l04432"></a>04432 } <a name="l04433"></a>04433 <a name="l04434"></a>04434 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04435"></a><a class="code" href="classUnicodeString.html#ab1c93f89741c3307063dda2ab183ad9d">04435</a> <a class="code" href="classUnicodeString.html#ab1c93f89741c3307063dda2ab183ad9d" title="Reverse this UnicodeString in place.">UnicodeString::reverse</a>() <a name="l04436"></a>04436 { <span class="keywordflow">return</span> doReverse(0, <a class="code" href="classUnicodeString.html#ac4cf80391a0e523c27aacaba796aede6" title="Return the length of the UnicodeString object.">length</a>()); } <a name="l04437"></a>04437 <a name="l04438"></a>04438 <span class="keyword">inline</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& <a name="l04439"></a><a class="code" href="classUnicodeString.html#afbc7e70810c42b8c5d28606124826b3f">04439</a> <a class="code" href="classUnicodeString.html#ab1c93f89741c3307063dda2ab183ad9d" title="Reverse this UnicodeString in place.">UnicodeString::reverse</a>(int32_t start, <a name="l04440"></a>04440 int32_t _length) <a name="l04441"></a>04441 { <span class="keywordflow">return</span> doReverse(start, _length); } <a name="l04442"></a>04442 <a name="l04443"></a>04443 <a class="code" href="uversion_8h.html#a3da1f00f3b02976ac53c014a3e4c0933" title="This is used to end a declaration of a public ICU C++ API.">U_NAMESPACE_END</a> <a name="l04444"></a>04444 <a name="l04445"></a>04445 <span class="preprocessor">#endif</span> </pre></div></div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>