Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-updates > by-pkgid > d0692892f07ae4c20db779a6c5775cd2 > files > 1371

icu-doc-53.1-12.7.mga5.noarch.rpm

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>ICU 53.1: unorm2.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ICU 53.1
   &#160;<span id="projectnumber">53.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.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)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_55bf5c6bcedc2c5705af95fc7596ac50.html">icu</a></li><li class="navelem"><a class="el" href="dir_17c4e3d278dd0be6889e0e8c41145d45.html">source</a></li><li class="navelem"><a class="el" href="dir_9d30126de01c6acabed440c3eefed2e6.html">common</a></li><li class="navelem"><a class="el" href="dir_09927d28e4089b088d7b70dcc744d58d.html">unicode</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">unorm2.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>C API: New API for Unicode Normalization.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="utypes_8h_source.html">unicode/utypes.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="localpointer_8h_source.html">unicode/localpointer.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="uset_8h_source.html">unicode/uset.h</a>&quot;</code><br/>
</div>
<p><a href="unorm2_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceicu"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceicu.html">icu</a></td></tr>
<tr class="memdesc:namespaceicu"><td class="mdescLeft">&#160;</td><td class="mdescRight">File <a class="el" href="coll_8h.html" title="C++ API: Collation Service. ">coll.h</a>. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a31b4684d696c9b9c6eb3e0509245535b"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/>
<a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a31b4684d696c9b9c6eb3e0509245535b">UNormalizationCheckResult</a></td></tr>
<tr class="memdesc:a31b4684d696c9b9c6eb3e0509245535b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values for normalization quick check functions.  <a href="#a31b4684d696c9b9c6eb3e0509245535b">More...</a><br/></td></tr>
<tr class="separator:a31b4684d696c9b9c6eb3e0509245535b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6cec882b8db0db15e33e6f21c51919e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a></td></tr>
<tr class="memdesc:af6cec882b8db0db15e33e6f21c51919e"><td class="mdescLeft">&#160;</td><td class="mdescRight">C typedef for struct UNormalizer2.  <a href="#af6cec882b8db0db15e33e6f21c51919e">More...</a><br/></td></tr>
<tr class="separator:af6cec882b8db0db15e33e6f21c51919e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a3cf189b046fe90ca167d2294275f4ab5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5">UNormalization2Mode</a> { <a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5a4038a316229eef7d76901b704b0148bf">UNORM2_COMPOSE</a>, 
<a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5ab176fcf0362623fb45b1b0f1ae22e7ac">UNORM2_DECOMPOSE</a>, 
<a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5a6dbe9da1d7d77d2902d7ef197cb1619b">UNORM2_FCD</a>, 
<a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5aa8a0f3c152f66297036c8fbfd955f9b8">UNORM2_COMPOSE_CONTIGUOUS</a>
 }</td></tr>
<tr class="memdesc:a3cf189b046fe90ca167d2294275f4ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants for normalization modes.  <a href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5">More...</a><br/></td></tr>
<tr class="separator:a3cf189b046fe90ca167d2294275f4ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01b7464189aef5dae63c0c759e84bece"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a> { <a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84becea17a2e3aec6aef936136f04cf8af29de3">UNORM_NO</a>, 
<a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84becea055e9208c9a15913ed2849243fb617c4">UNORM_YES</a>, 
<a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84becea05c9a1f19c022c5399e64ff8cb852558">UNORM_MAYBE</a>
 }</td></tr>
<tr class="memdesc:a01b7464189aef5dae63c0c759e84bece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values for normalization quick check functions.  <a href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">More...</a><br/></td></tr>
<tr class="separator:a01b7464189aef5dae63c0c759e84bece"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa5578c95c23f6a859525e2645f84c56b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#aa5578c95c23f6a859525e2645f84c56b">unorm2_getNFCInstance</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:aa5578c95c23f6a859525e2645f84c56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a UNormalizer2 instance for Unicode NFC normalization.  <a href="#aa5578c95c23f6a859525e2645f84c56b">More...</a><br/></td></tr>
<tr class="separator:aa5578c95c23f6a859525e2645f84c56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a551b7e3a67b648f526498b3b76189d93"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a551b7e3a67b648f526498b3b76189d93">unorm2_getNFDInstance</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a551b7e3a67b648f526498b3b76189d93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a UNormalizer2 instance for Unicode NFD normalization.  <a href="#a551b7e3a67b648f526498b3b76189d93">More...</a><br/></td></tr>
<tr class="separator:a551b7e3a67b648f526498b3b76189d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cffad9d0fd8eda950631faa2457da44"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a0cffad9d0fd8eda950631faa2457da44">unorm2_getNFKCInstance</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a0cffad9d0fd8eda950631faa2457da44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a UNormalizer2 instance for Unicode NFKC normalization.  <a href="#a0cffad9d0fd8eda950631faa2457da44">More...</a><br/></td></tr>
<tr class="separator:a0cffad9d0fd8eda950631faa2457da44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a336a835e78d98503c0da6a3910a28c66"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a336a835e78d98503c0da6a3910a28c66">unorm2_getNFKDInstance</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a336a835e78d98503c0da6a3910a28c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a UNormalizer2 instance for Unicode NFKD normalization.  <a href="#a336a835e78d98503c0da6a3910a28c66">More...</a><br/></td></tr>
<tr class="separator:a336a835e78d98503c0da6a3910a28c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31dd7a1489513e940da239921265da32"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a31dd7a1489513e940da239921265da32">unorm2_getNFKCCasefoldInstance</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a31dd7a1489513e940da239921265da32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a UNormalizer2 instance for Unicode NFKC_Casefold normalization.  <a href="#a31dd7a1489513e940da239921265da32">More...</a><br/></td></tr>
<tr class="separator:a31dd7a1489513e940da239921265da32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aada0d2d95913d0cc3329e9e7fd571630"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#aada0d2d95913d0cc3329e9e7fd571630">unorm2_getInstance</a> (const char *packageName, const char *name, <a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5">UNormalization2Mode</a> mode, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:aada0d2d95913d0cc3329e9e7fd571630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a UNormalizer2 instance which uses the specified data file (packageName/name similar to <a class="el" href="ucnv_8h.html#a7e3fc1e59ac1404120f242b8911cadbb">ucnv_openPackage()</a> and <a class="el" href="ures_8h.html#ac4d72fc9f7cc63a05f646cabee4be167" title="Opens a UResourceBundle, from which users can extract strings by using their corresponding keys...">ures_open()</a>/ResourceBundle) and which composes or decomposes text according to the specified mode.  <a href="#aada0d2d95913d0cc3329e9e7fd571630">More...</a><br/></td></tr>
<tr class="separator:aada0d2d95913d0cc3329e9e7fd571630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f6ce2fa8c5e5fa3b1b9a141e1032e15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a7f6ce2fa8c5e5fa3b1b9a141e1032e15">unorm2_openFiltered</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, const <a class="el" href="ucnv_8h.html#adce3fef7c15d7c78196bf977ac96ec9c">USet</a> *filterSet, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a7f6ce2fa8c5e5fa3b1b9a141e1032e15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a filtered normalizer wrapping any UNormalizer2 instance and a filter set.  <a href="#a7f6ce2fa8c5e5fa3b1b9a141e1032e15">More...</a><br/></td></tr>
<tr class="separator:a7f6ce2fa8c5e5fa3b1b9a141e1032e15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8b1599dfe72053c3b1c217aba1d8aac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#aa8b1599dfe72053c3b1c217aba1d8aac">unorm2_close</a> (<a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2)</td></tr>
<tr class="memdesc:aa8b1599dfe72053c3b1c217aba1d8aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a UNormalizer2 instance from <a class="el" href="unorm2_8h.html#a7f6ce2fa8c5e5fa3b1b9a141e1032e15" title="Constructs a filtered normalizer wrapping any UNormalizer2 instance and a filter set. ">unorm2_openFiltered()</a>.  <a href="#aa8b1599dfe72053c3b1c217aba1d8aac">More...</a><br/></td></tr>
<tr class="separator:aa8b1599dfe72053c3b1c217aba1d8aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a596802db767da410b4b04cb75cbc53"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a0a596802db767da410b4b04cb75cbc53">unorm2_normalize</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *src, int32_t length, <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *dest, int32_t capacity, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a0a596802db767da410b4b04cb75cbc53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the normalized form of the source string to the destination string (replacing its contents) and returns the length of the destination string.  <a href="#a0a596802db767da410b4b04cb75cbc53">More...</a><br/></td></tr>
<tr class="separator:a0a596802db767da410b4b04cb75cbc53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa10f3463975d69064234452d6fc82234"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#aa10f3463975d69064234452d6fc82234">unorm2_normalizeSecondAndAppend</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *first, int32_t firstLength, int32_t firstCapacity, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *second, int32_t secondLength, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:aa10f3463975d69064234452d6fc82234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the normalized form of the second string to the first string (merging them at the boundary) and returns the length of the first string.  <a href="#aa10f3463975d69064234452d6fc82234">More...</a><br/></td></tr>
<tr class="separator:aa10f3463975d69064234452d6fc82234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd6fb5de5d9f989980a1d6a81b04f0ee"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#afd6fb5de5d9f989980a1d6a81b04f0ee">unorm2_append</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *first, int32_t firstLength, int32_t firstCapacity, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *second, int32_t secondLength, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:afd6fb5de5d9f989980a1d6a81b04f0ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the second string to the first string (merging them at the boundary) and returns the length of the first string.  <a href="#afd6fb5de5d9f989980a1d6a81b04f0ee">More...</a><br/></td></tr>
<tr class="separator:afd6fb5de5d9f989980a1d6a81b04f0ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a9caba78ab42fe17b3b2d7f94457309"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a5a9caba78ab42fe17b3b2d7f94457309">unorm2_getDecomposition</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c, <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *decomposition, int32_t capacity, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a5a9caba78ab42fe17b3b2d7f94457309"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the decomposition mapping of c.  <a href="#a5a9caba78ab42fe17b3b2d7f94457309">More...</a><br/></td></tr>
<tr class="separator:a5a9caba78ab42fe17b3b2d7f94457309"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0551019637648af4638435d79f24be17"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a0551019637648af4638435d79f24be17">unorm2_getRawDecomposition</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c, <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *decomposition, int32_t capacity, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a0551019637648af4638435d79f24be17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the raw decomposition mapping of c.  <a href="#a0551019637648af4638435d79f24be17">More...</a><br/></td></tr>
<tr class="separator:a0551019637648af4638435d79f24be17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e9bd9cc10c008cc907392f4c5022858"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a8e9bd9cc10c008cc907392f4c5022858">unorm2_composePair</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> a, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> b)</td></tr>
<tr class="memdesc:a8e9bd9cc10c008cc907392f4c5022858"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs pairwise composition of a &amp; b and returns the composite if there is one.  <a href="#a8e9bd9cc10c008cc907392f4c5022858">More...</a><br/></td></tr>
<tr class="separator:a8e9bd9cc10c008cc907392f4c5022858"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ee6434c3bff7c414650962f50847981"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a4ee6434c3bff7c414650962f50847981">unorm2_getCombiningClass</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c)</td></tr>
<tr class="memdesc:a4ee6434c3bff7c414650962f50847981"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the combining class of c.  <a href="#a4ee6434c3bff7c414650962f50847981">More...</a><br/></td></tr>
<tr class="separator:a4ee6434c3bff7c414650962f50847981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff442b2c792244e95f1649bf31d36426"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#aff442b2c792244e95f1649bf31d36426">unorm2_isNormalized</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *s, int32_t length, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:aff442b2c792244e95f1649bf31d36426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the string is normalized.  <a href="#aff442b2c792244e95f1649bf31d36426">More...</a><br/></td></tr>
<tr class="separator:aff442b2c792244e95f1649bf31d36426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad81711834f00bbeb97738004f4f08450"><td class="memItemLeft" align="right" valign="top"><a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#ad81711834f00bbeb97738004f4f08450">unorm2_quickCheck</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *s, int32_t length, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:ad81711834f00bbeb97738004f4f08450"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the string is normalized.  <a href="#ad81711834f00bbeb97738004f4f08450">More...</a><br/></td></tr>
<tr class="separator:ad81711834f00bbeb97738004f4f08450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04d7c52b719cfaceba3657d1340114e1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a04d7c52b719cfaceba3657d1340114e1">unorm2_spanQuickCheckYes</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *s, int32_t length, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a04d7c52b719cfaceba3657d1340114e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the end of the normalized substring of the input string.  <a href="#a04d7c52b719cfaceba3657d1340114e1">More...</a><br/></td></tr>
<tr class="separator:a04d7c52b719cfaceba3657d1340114e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa96a430bda580fb3551e0f5adc0aa6b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#aa96a430bda580fb3551e0f5adc0aa6b1">unorm2_hasBoundaryBefore</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c)</td></tr>
<tr class="memdesc:aa96a430bda580fb3551e0f5adc0aa6b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the character always has a normalization boundary before it, regardless of context.  <a href="#aa96a430bda580fb3551e0f5adc0aa6b1">More...</a><br/></td></tr>
<tr class="separator:aa96a430bda580fb3551e0f5adc0aa6b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0653490112118874c8dc23f2c33bc785"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a0653490112118874c8dc23f2c33bc785">unorm2_hasBoundaryAfter</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c)</td></tr>
<tr class="memdesc:a0653490112118874c8dc23f2c33bc785"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the character always has a normalization boundary after it, regardless of context.  <a href="#a0653490112118874c8dc23f2c33bc785">More...</a><br/></td></tr>
<tr class="separator:a0653490112118874c8dc23f2c33bc785"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a356cb1f20b745293e262b9ef6378fe16"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unorm2_8h.html#a356cb1f20b745293e262b9ef6378fe16">unorm2_isInert</a> (const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *norm2, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c)</td></tr>
<tr class="memdesc:a356cb1f20b745293e262b9ef6378fe16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the character is normalization-inert.  <a href="#a356cb1f20b745293e262b9ef6378fe16">More...</a><br/></td></tr>
<tr class="separator:a356cb1f20b745293e262b9ef6378fe16"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C API: New API for Unicode Normalization. </p>
<p>Unicode normalization functionality for standard Unicode normalization or for using custom mapping tables. All instances of UNormalizer2 are unmodifiable/immutable. Instances returned by <a class="el" href="unorm2_8h.html#aada0d2d95913d0cc3329e9e7fd571630" title="Returns a UNormalizer2 instance which uses the specified data file (packageName/name similar to ucnv_...">unorm2_getInstance()</a> are singletons that must not be deleted by the caller. For more details see the Normalizer2 C++ class. </p>

<p>Definition in file <a class="el" href="unorm2_8h_source.html">unorm2.h</a>.</p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a31b4684d696c9b9c6eb3e0509245535b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a>  <a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Result values for normalization quick check functions. </p>
<p>For details see <a href="http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms">http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002102">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="af6cec882b8db0db15e33e6f21c51919e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>C typedef for struct UNormalizer2. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002104">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

<p>Definition at line <a class="el" href="unorm2_8h_source.html#l00117">117</a> of file <a class="el" href="unorm2_8h_source.html">unorm2.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a3cf189b046fe90ca167d2294275f4ab5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5">UNormalization2Mode</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constants for normalization modes. </p>
<p>For details about standard Unicode normalization forms and about the algorithms which are also used with custom mapping tables see <a href="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002101">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a3cf189b046fe90ca167d2294275f4ab5a4038a316229eef7d76901b704b0148bf"></a>UNORM2_COMPOSE</em>&#160;</td><td class="fielddoc">
<p>Decomposition followed by composition. </p>
<p>Same as standard NFC when using an "nfc" instance. Same as standard NFKC when using an "nfkc" instance. For details about standard Unicode normalization forms see <a href="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002126">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3cf189b046fe90ca167d2294275f4ab5ab176fcf0362623fb45b1b0f1ae22e7ac"></a>UNORM2_DECOMPOSE</em>&#160;</td><td class="fielddoc">
<p>Map, and reorder canonically. </p>
<p>Same as standard NFD when using an "nfc" instance. Same as standard NFKD when using an "nfkc" instance. For details about standard Unicode normalization forms see <a href="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002127">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3cf189b046fe90ca167d2294275f4ab5a6dbe9da1d7d77d2902d7ef197cb1619b"></a>UNORM2_FCD</em>&#160;</td><td class="fielddoc">
<p>"Fast C or D" form. </p>
<p>If a string is in this form, then further decomposition <em>without reordering</em> would yield the same form as DECOMPOSE. Text in "Fast C or D" form can be processed efficiently with data tables that are "canonically closed", that is, that provide equivalent data for equivalent text, without having to be fully normalized. Not a standard Unicode normalization form. Not a unique form: Different FCD strings can be canonically equivalent. For details see <a href="http://www.unicode.org/notes/tn5/#FCD">http://www.unicode.org/notes/tn5/#FCD</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002128">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3cf189b046fe90ca167d2294275f4ab5aa8a0f3c152f66297036c8fbfd955f9b8"></a>UNORM2_COMPOSE_CONTIGUOUS</em>&#160;</td><td class="fielddoc">
<p>Compose only contiguously. </p>
<p>Also known as "FCC" or "Fast C Contiguous". The result will often but not always be in NFC. The result will conform to FCD which is useful for processing. Not a standard Unicode normalization form. For details see <a href="http://www.unicode.org/notes/tn5/#FCC">http://www.unicode.org/notes/tn5/#FCC</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002129">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>
</td></tr>
</table>

<p>Definition at line <a class="el" href="unorm2_8h_source.html#l00042">42</a> of file <a class="el" href="unorm2_8h_source.html">unorm2.h</a>.</p>

</div>
</div>
<a class="anchor" id="a01b7464189aef5dae63c0c759e84bece"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Result values for normalization quick check functions. </p>
<p>For details see <a href="http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms">http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms</a> </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002102">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a01b7464189aef5dae63c0c759e84becea17a2e3aec6aef936136f04cf8af29de3"></a>UNORM_NO</em>&#160;</td><td class="fielddoc">
<p>The input string is not in the normalization form. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002130">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a01b7464189aef5dae63c0c759e84becea055e9208c9a15913ed2849243fb617c4"></a>UNORM_YES</em>&#160;</td><td class="fielddoc">
<p>The input string is in the normalization form. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002131">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a01b7464189aef5dae63c0c759e84becea05c9a1f19c022c5399e64ff8cb852558"></a>UNORM_MAYBE</em>&#160;</td><td class="fielddoc">
<p>The input string may or may not be in the normalization form. </p>
<p>This value is only returned for composition forms like NFC and FCC, when a backward-combining character is found for which the surrounding text would have to be analyzed further. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002132">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>
</td></tr>
</table>

<p>Definition at line <a class="el" href="unorm2_8h_source.html#l00091">91</a> of file <a class="el" href="unorm2_8h_source.html">unorm2.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="afd6fb5de5d9f989980a1d6a81b04f0ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t unorm2_append </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>firstLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>firstCapacity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>second</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>secondLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Appends the second string to the first string (merging them at the boundary) and returns the length of the first string. </p>
<p>The result is normalized if both the strings were normalized. The first and second strings must be different buffers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">first</td><td>string, should be normalized </td></tr>
    <tr><td class="paramname">firstLength</td><td>length of the first string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">firstCapacity</td><td>number of UChars that can be written to first </td></tr>
    <tr><td class="paramname">second</td><td>string, should be normalized </td></tr>
    <tr><td class="paramname">secondLength</td><td>length of the source string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>first </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002115">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="aa8b1599dfe72053c3b1c217aba1d8aac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void unorm2_close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Closes a UNormalizer2 instance from <a class="el" href="unorm2_8h.html#a7f6ce2fa8c5e5fa3b1b9a141e1032e15" title="Constructs a filtered normalizer wrapping any UNormalizer2 instance and a filter set. ">unorm2_openFiltered()</a>. </p>
<p>Do not close instances from <a class="el" href="unorm2_8h.html#aada0d2d95913d0cc3329e9e7fd571630" title="Returns a UNormalizer2 instance which uses the specified data file (packageName/name similar to ucnv_...">unorm2_getInstance()</a>! </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance to be closed </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002112">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a8e9bd9cc10c008cc907392f4c5022858"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> unorm2_composePair </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs pairwise composition of a &amp; b and returns the composite if there is one. </p>
<p>Returns a composite code point c only if c has a two-way mapping to a+b. In standard Unicode normalization, this means that c has a canonical decomposition to a+b and c does not have the Full_Composition_Exclusion property.</p>
<p>This function is independent of the mode of the UNormalizer2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">a</td><td>A (normalization starter) code point. </td></tr>
    <tr><td class="paramname">b</td><td>Another code point. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The non-negative composite code point if there is one; otherwise a negative value. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002118">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a4ee6434c3bff7c414650962f50847981"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t unorm2_getCombiningClass </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the combining class of c. </p>
<p>The default implementation returns 0 but all standard implementations return the Unicode Canonical_Combining_Class value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">c</td><td>code point </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>c's combining class </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002119">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a5a9caba78ab42fe17b3b2d7f94457309"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t unorm2_getDecomposition </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>decomposition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>capacity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the decomposition mapping of c. </p>
<p>Roughly equivalent to normalizing the String form of c on a UNORM2_DECOMPOSE UNormalizer2 instance, but much faster, and except that this function returns a negative value and does not write a string if c does not have a decomposition mapping in this instance's data. This function is independent of the mode of the UNormalizer2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">c</td><td>code point </td></tr>
    <tr><td class="paramname">decomposition</td><td>String buffer which will be set to c's decomposition mapping, if there is one. </td></tr>
    <tr><td class="paramname">capacity</td><td>number of UChars that can be written to decomposition </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the non-negative length of c's decomposition, if there is one; otherwise a negative value </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002116">Stable:</a></b></dt><dd>ICU 4.6 </dd></dl>

</div>
</div>
<a class="anchor" id="aada0d2d95913d0cc3329e9e7fd571630"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_getInstance </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>packageName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unorm2_8h.html#a3cf189b046fe90ca167d2294275f4ab5">UNormalization2Mode</a>&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a UNormalizer2 instance which uses the specified data file (packageName/name similar to <a class="el" href="ucnv_8h.html#a7e3fc1e59ac1404120f242b8911cadbb">ucnv_openPackage()</a> and <a class="el" href="ures_8h.html#ac4d72fc9f7cc63a05f646cabee4be167" title="Opens a UResourceBundle, from which users can extract strings by using their corresponding keys...">ures_open()</a>/ResourceBundle) and which composes or decomposes text according to the specified mode. </p>
<p>Returns an unmodifiable singleton instance. Do not delete it.</p>
<p>Use packageName=NULL for data files that are part of ICU's own data. Use name="nfc" and UNORM2_COMPOSE/UNORM2_DECOMPOSE for Unicode standard NFC/NFD. Use name="nfkc" and UNORM2_COMPOSE/UNORM2_DECOMPOSE for Unicode standard NFKC/NFKD. Use name="nfkc_cf" and UNORM2_COMPOSE for Unicode standard NFKC_CF=NFKC_Casefold.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">packageName</td><td>NULL for ICU built-in data, otherwise application data package name </td></tr>
    <tr><td class="paramname">name</td><td>"nfc" or "nfkc" or "nfkc_cf" or name of custom data file </td></tr>
    <tr><td class="paramname">mode</td><td>normalization mode (compose or decompose etc.) </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested UNormalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002110">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="aa5578c95c23f6a859525e2645f84c56b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_getNFCInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a UNormalizer2 instance for Unicode NFC normalization. </p>
<p>Same as unorm2_getInstance(NULL, "nfc", UNORM2_COMPOSE, pErrorCode). Returns an unmodifiable singleton instance. Do not delete it. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested Normalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002105">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a551b7e3a67b648f526498b3b76189d93"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_getNFDInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a UNormalizer2 instance for Unicode NFD normalization. </p>
<p>Same as unorm2_getInstance(NULL, "nfc", UNORM2_DECOMPOSE, pErrorCode). Returns an unmodifiable singleton instance. Do not delete it. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested Normalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002106">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a31dd7a1489513e940da239921265da32"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_getNFKCCasefoldInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a UNormalizer2 instance for Unicode NFKC_Casefold normalization. </p>
<p>Same as unorm2_getInstance(NULL, "nfkc_cf", UNORM2_COMPOSE, pErrorCode). Returns an unmodifiable singleton instance. Do not delete it. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested Normalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002109">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a0cffad9d0fd8eda950631faa2457da44"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_getNFKCInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a UNormalizer2 instance for Unicode NFKC normalization. </p>
<p>Same as unorm2_getInstance(NULL, "nfkc", UNORM2_COMPOSE, pErrorCode). Returns an unmodifiable singleton instance. Do not delete it. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested Normalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002107">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a336a835e78d98503c0da6a3910a28c66"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_getNFKDInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a UNormalizer2 instance for Unicode NFKD normalization. </p>
<p>Same as unorm2_getInstance(NULL, "nfkc", UNORM2_DECOMPOSE, pErrorCode). Returns an unmodifiable singleton instance. Do not delete it. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested Normalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002108">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a0551019637648af4638435d79f24be17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t unorm2_getRawDecomposition </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>decomposition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>capacity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the raw decomposition mapping of c. </p>
<p>This is similar to the <a class="el" href="unorm2_8h.html#a5a9caba78ab42fe17b3b2d7f94457309" title="Gets the decomposition mapping of c. ">unorm2_getDecomposition()</a> function but returns the raw decomposition mapping as specified in UnicodeData.txt or (for custom data) in the mapping files processed by the gennorm2 tool. By contrast, <a class="el" href="unorm2_8h.html#a5a9caba78ab42fe17b3b2d7f94457309" title="Gets the decomposition mapping of c. ">unorm2_getDecomposition()</a> returns the processed, recursively-decomposed version of this mapping.</p>
<p>When used on a standard NFKC Normalizer2 instance, <a class="el" href="unorm2_8h.html#a0551019637648af4638435d79f24be17" title="Gets the raw decomposition mapping of c. ">unorm2_getRawDecomposition()</a> returns the Unicode Decomposition_Mapping (dm) property.</p>
<p>When used on a standard NFC Normalizer2 instance, it returns the Decomposition_Mapping only if the Decomposition_Type (dt) is Canonical (Can); in this case, the result contains either one or two code points (=1..4 UChars).</p>
<p>This function is independent of the mode of the UNormalizer2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">c</td><td>code point </td></tr>
    <tr><td class="paramname">decomposition</td><td>String buffer which will be set to c's raw decomposition mapping, if there is one. </td></tr>
    <tr><td class="paramname">capacity</td><td>number of UChars that can be written to decomposition </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the non-negative length of c's raw decomposition, if there is one; otherwise a negative value </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002117">Stable:</a></b></dt><dd>ICU 49 </dd></dl>

</div>
</div>
<a class="anchor" id="a0653490112118874c8dc23f2c33bc785"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> unorm2_hasBoundaryAfter </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if the character always has a normalization boundary after it, regardless of context. </p>
<p>For details see the Normalizer2 base class documentation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">c</td><td>character to test </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if c has a normalization boundary after it </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002124">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="aa96a430bda580fb3551e0f5adc0aa6b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> unorm2_hasBoundaryBefore </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if the character always has a normalization boundary before it, regardless of context. </p>
<p>For details see the Normalizer2 base class documentation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">c</td><td>character to test </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if c has a normalization boundary before it </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002123">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a356cb1f20b745293e262b9ef6378fe16"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> unorm2_isInert </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if the character is normalization-inert. </p>
<p>For details see the Normalizer2 base class documentation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">c</td><td>character to test </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if c is normalization-inert </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002125">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="aff442b2c792244e95f1649bf31d36426"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> unorm2_isNormalized </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if the string is normalized. </p>
<p>Internally, in cases where the quickCheck() method would return "maybe" (which is only possible for the two COMPOSE modes) this method resolves to "yes" or "no" to provide a definitive result, at the cost of doing more work in those cases. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">s</td><td>input string </td></tr>
    <tr><td class="paramname">length</td><td>length of the string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if s is normalized </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002120">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a0a596802db767da410b4b04cb75cbc53"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t unorm2_normalize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>capacity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes the normalized form of the source string to the destination string (replacing its contents) and returns the length of the destination string. </p>
<p>The source and destination strings must be different buffers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">src</td><td>source string </td></tr>
    <tr><td class="paramname">length</td><td>length of the source string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">dest</td><td>destination string; its contents is replaced with normalized src </td></tr>
    <tr><td class="paramname">capacity</td><td>number of UChars that can be written to dest </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>dest </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002113">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="aa10f3463975d69064234452d6fc82234"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t unorm2_normalizeSecondAndAppend </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>firstLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>firstCapacity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>second</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>secondLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Appends the normalized form of the second string to the first string (merging them at the boundary) and returns the length of the first string. </p>
<p>The result is normalized if the first string was normalized. The first and second strings must be different buffers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">first</td><td>string, should be normalized </td></tr>
    <tr><td class="paramname">firstLength</td><td>length of the first string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">firstCapacity</td><td>number of UChars that can be written to first </td></tr>
    <tr><td class="paramname">second</td><td>string, will be normalized </td></tr>
    <tr><td class="paramname">secondLength</td><td>length of the source string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>first </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002114">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a7f6ce2fa8c5e5fa3b1b9a141e1032e15"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a>* unorm2_openFiltered </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="ucnv_8h.html#adce3fef7c15d7c78196bf977ac96ec9c">USet</a> *&#160;</td>
          <td class="paramname"><em>filterSet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs a filtered normalizer wrapping any UNormalizer2 instance and a filter set. </p>
<p>Both are aliased and must not be modified or deleted while this object is used. The filter set should be frozen; otherwise the performance will suffer greatly. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>wrapped UNormalizer2 instance </td></tr>
    <tr><td class="paramname">filterSet</td><td>USet which determines the characters to be normalized </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested UNormalizer2, if successful </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002111">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="ad81711834f00bbeb97738004f4f08450"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unorm2_8h.html#a01b7464189aef5dae63c0c759e84bece">UNormalizationCheckResult</a> unorm2_quickCheck </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if the string is normalized. </p>
<p>For the two COMPOSE modes, the result could be "maybe" in cases that would take a little more work to resolve definitively. Use spanQuickCheckYes() and normalizeSecondAndAppend() for a faster combination of quick check + normalization, to avoid re-checking the "yes" prefix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">s</td><td>input string </td></tr>
    <tr><td class="paramname">length</td><td>length of the string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>UNormalizationCheckResult </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002121">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a04d7c52b719cfaceba3657d1340114e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t unorm2_spanQuickCheckYes </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="unorm2_8h.html#af6cec882b8db0db15e33e6f21c51919e">UNormalizer2</a> *&#160;</td>
          <td class="paramname"><em>norm2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the end of the normalized substring of the input string. </p>
<p>In other words, with <code>end=spanQuickCheckYes(s, ec);</code> the substring <code>UnicodeString(s, 0, end)</code> will pass the quick check with a "yes" result.</p>
<p>The returned end index is usually one or more characters before the "no" or "maybe" character: The end index is at a normalization boundary. (See the class documentation for more about normalization boundaries.)</p>
<p>When the goal is a normalized string and most input strings are expected to be normalized already, then call this method, and if it returns a prefix shorter than the input string, copy that prefix and use normalizeSecondAndAppend() for the remainder. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">norm2</td><td>UNormalizer2 instance </td></tr>
    <tr><td class="paramname">s</td><td>input string </td></tr>
    <tr><td class="paramname">length</td><td>length of the string, or -1 if NUL-terminated </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Standard ICU error code. Its input value must pass the <a class="el" href="utypes_8h.html#a527f2c69e6b2e3b2c53ad8a99fb36711" title="Does the error code indicate success? ">U_SUCCESS()</a> test, or else the function returns immediately. Check for <a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE()</a> on output or use with function chaining. (See User Guide for details.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>"yes" span end index </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002122">Stable:</a></b></dt><dd>ICU 4.4 </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>