HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/alt-nodejs18/root/usr/share/doc/alt-nodejs18-libicu-doc/ucpmap_8h.html
<!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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ICU 74.2: common/unicode/ucpmap.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="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 id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ICU 74.2
   &#160;<span id="projectnumber">74.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_f59c6450ff718ff1b085cfd1c36acbd7.html">unicode</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<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">ucpmap.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>C API: This file defines an abstract map from Unicode code points to integer values.  
<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 />
</div>
<p><a href="ucpmap_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="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a9c6c7990f59dde516616d829d37e8408"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a></td></tr>
<tr class="memdesc:a9c6c7990f59dde516616d829d37e8408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.  <a href="#a9c6c7990f59dde516616d829d37e8408">More...</a><br /></td></tr>
<tr class="separator:a9c6c7990f59dde516616d829d37e8408"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d302e405f2ea7dd5f65990460f2dbae"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ucpmap_8h.html#a2d302e405f2ea7dd5f65990460f2dbae">UCPMapValueFilter</a>(const void *context, uint32_t value)</td></tr>
<tr class="memdesc:a2d302e405f2ea7dd5f65990460f2dbae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function type: Modifies a map value.  <a href="#a2d302e405f2ea7dd5f65990460f2dbae">More...</a><br /></td></tr>
<tr class="separator:a2d302e405f2ea7dd5f65990460f2dbae"><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:aa32ef75912d4bbf21792256d17f16b9c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9c">UCPMapRangeOption</a> { <a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9ca3013a1d6bd08b42e51c8042326148292">UCPMAP_RANGE_NORMAL</a>, 
<a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9ca1d55bad68abc75852e1347d9127a70af">UCPMAP_RANGE_FIXED_LEAD_SURROGATES</a>, 
<a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9caac22324c4dfa013345c627f994149017">UCPMAP_RANGE_FIXED_ALL_SURROGATES</a>
 }</td></tr>
<tr class="memdesc:aa32ef75912d4bbf21792256d17f16b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selectors for how <a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange()</a> etc.  <a href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9c">More...</a><br /></td></tr>
<tr class="separator:aa32ef75912d4bbf21792256d17f16b9c"><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:a6cf3c411f95c508bb8d81dadf7941c4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ucpmap_8h.html#a6cf3c411f95c508bb8d81dadf7941c4f">ucpmap_get</a> (const <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a> *map, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c)</td></tr>
<tr class="memdesc:a6cf3c411f95c508bb8d81dadf7941c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value for a code point as stored in the map, with range checking.  <a href="#a6cf3c411f95c508bb8d81dadf7941c4f">More...</a><br /></td></tr>
<tr class="separator:a6cf3c411f95c508bb8d81dadf7941c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10d657a1110c6d55a10ee4fb2396ad00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00">ucpmap_getRange</a> (const <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a> *map, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> start, <a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9c">UCPMapRangeOption</a> option, uint32_t surrogateValue, <a class="el" href="ucpmap_8h.html#a2d302e405f2ea7dd5f65990460f2dbae">UCPMapValueFilter</a> *filter, const void *context, uint32_t *pValue)</td></tr>
<tr class="memdesc:a10d657a1110c6d55a10ee4fb2396ad00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last code point such that all those from start to there have the same value.  <a href="#a10d657a1110c6d55a10ee4fb2396ad00">More...</a><br /></td></tr>
<tr class="separator:a10d657a1110c6d55a10ee4fb2396ad00"><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: This file defines an abstract map from Unicode code points to integer values. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408" title="Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values. ">UCPMap</a> </dd>
<dd>
<a class="el" href="structUCPTrie.html" title="Immutable Unicode code point trie structure. ">UCPTrie</a> </dd>
<dd>
<a class="el" href="umutablecptrie_8h.html#ad8945cf34ca9d40596a66a1395baa19b" title="Mutable Unicode code point trie. ">UMutableCPTrie</a> </dd></dl>

<p class="definition">Definition in file <a class="el" href="ucpmap_8h_source.html">ucpmap.h</a>.</p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a9c6c7990f59dde516616d829d37e8408"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c6c7990f59dde516616d829d37e8408">&#9670;&nbsp;</a></span>UCPMap</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a> <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCPTrie.html" title="Immutable Unicode code point trie structure. ">UCPTrie</a> </dd>
<dd>
<a class="el" href="umutablecptrie_8h.html#ad8945cf34ca9d40596a66a1395baa19b" title="Mutable Unicode code point trie. ">UMutableCPTrie</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002021">Stable:</a></b></dt><dd>ICU 63 </dd></dl>

<p class="definition">Definition at line <a class="el" href="ucpmap_8h_source.html#l00030">30</a> of file <a class="el" href="ucpmap_8h_source.html">ucpmap.h</a>.</p>

</div>
</div>
<a id="a2d302e405f2ea7dd5f65990460f2dbae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d302e405f2ea7dd5f65990460f2dbae">&#9670;&nbsp;</a></span>UCPMapValueFilter</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t UCPMapValueFilter(const void *context, uint32_t value)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Callback function type: Modifies a map value. </p>
<p>Optionally called by <a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange()</a>/ucptrie_getRange()/umutablecptrie_getRange(). The modified value will be returned by the getRange function.</p>
<p>Can be used to ignore some of the value bits, make a filter for one of several values, return a value index computed from the map value, etc.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>an opaque pointer, as passed into the getRange function </td></tr>
    <tr><td class="paramname">value</td><td>a value from the map </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the modified value </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002024">Stable:</a></b></dt><dd>ICU 63 </dd></dl>

<p class="definition">Definition at line <a class="el" href="ucpmap_8h_source.html#l00113">113</a> of file <a class="el" href="ucpmap_8h_source.html">ucpmap.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="aa32ef75912d4bbf21792256d17f16b9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa32ef75912d4bbf21792256d17f16b9c">&#9670;&nbsp;</a></span>UCPMapRangeOption</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9c">UCPMapRangeOption</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selectors for how <a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange()</a> etc. </p>
<p>should report value ranges overlapping with surrogates. Most users should use UCPMAP_RANGE_NORMAL.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange</a> </dd>
<dd>
<a class="el" href="ucptrie_8h.html#a6d6bdc9d8f313be0e4d151f0cfc0086c" title="Returns the last code point such that all those from start to there have the same value...">ucptrie_getRange</a> </dd>
<dd>
<a class="el" href="umutablecptrie_8h.html#a6e72b8f34d568a92c81f7a23f59fbb34" title="Returns the last code point such that all those from start to there have the same value...">umutablecptrie_getRange</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002022">Stable:</a></b></dt><dd>ICU 63 </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa32ef75912d4bbf21792256d17f16b9ca3013a1d6bd08b42e51c8042326148292"></a>UCPMAP_RANGE_NORMAL&#160;</td><td class="fielddoc"><p><a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange()</a> enumerates all same-value ranges as stored in the map. </p>
<p>Most users should use this option. </p><dl class="stable"><dt><b><a class="el" href="stable.html#_stable002026">Stable:</a></b></dt><dd>ICU 63 </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="aa32ef75912d4bbf21792256d17f16b9ca1d55bad68abc75852e1347d9127a70af"></a>UCPMAP_RANGE_FIXED_LEAD_SURROGATES&#160;</td><td class="fielddoc"><p><a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange()</a> enumerates all same-value ranges as stored in the map, except that lead surrogates (U+D800..U+DBFF) are treated as having the surrogateValue, which is passed to getRange() as a separate parameter. </p>
<p>The surrogateValue is not transformed via filter(). See <a class="el" href="utf_8h.html#a8c2a23cf4c14a0c89070319b76e0bc58" title="Is this code point a lead surrogate (U+d800..U+dbff)? ">U_IS_LEAD(c)</a>.</p>
<p>Most users should use UCPMAP_RANGE_NORMAL instead.</p>
<p>This option is useful for maps that map surrogate code <em>units</em> to special values optimized for UTF-16 string processing or for special error behavior for unpaired surrogates, but those values are not to be associated with the lead surrogate code <em>points</em>. </p><dl class="stable"><dt><b><a class="el" href="stable.html#_stable002027">Stable:</a></b></dt><dd>ICU 63 </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="aa32ef75912d4bbf21792256d17f16b9caac22324c4dfa013345c627f994149017"></a>UCPMAP_RANGE_FIXED_ALL_SURROGATES&#160;</td><td class="fielddoc"><p><a class="el" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00" title="Returns the last code point such that all those from start to there have the same value...">ucpmap_getRange()</a> enumerates all same-value ranges as stored in the map, except that all surrogates (U+D800..U+DFFF) are treated as having the surrogateValue, which is passed to getRange() as a separate parameter. </p>
<p>The surrogateValue is not transformed via filter(). See <a class="el" href="utf_8h.html#a0ec1c520a06d1e8e3ca431a2ff8e6b02" title="Is this code point a surrogate (U+d800..U+dfff)? ">U_IS_SURROGATE(c)</a>.</p>
<p>Most users should use UCPMAP_RANGE_NORMAL instead.</p>
<p>This option is useful for maps that map surrogate code <em>units</em> to special values optimized for UTF-16 string processing or for special error behavior for unpaired surrogates, but those values are not to be associated with the lead surrogate code <em>points</em>. </p><dl class="stable"><dt><b><a class="el" href="stable.html#_stable002028">Stable:</a></b></dt><dd>ICU 63 </dd></dl>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ucpmap_8h_source.html#l00041">41</a> of file <a class="el" href="ucpmap_8h_source.html">ucpmap.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a6cf3c411f95c508bb8d81dadf7941c4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cf3c411f95c508bb8d81dadf7941c4f">&#9670;&nbsp;</a></span>ucpmap_get()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> uint32_t ucpmap_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a> *&#160;</td>
          <td class="paramname"><em>map</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>Returns the value for a code point as stored in the map, with range checking. </p>
<p>Returns an implementation-defined error value if c is not in the range 0..U+10FFFF.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map </td></tr>
    <tr><td class="paramname">c</td><td>the code point </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the map value, or an implementation-defined error value if the code point is not in the range 0..U+10FFFF </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002023">Stable:</a></b></dt><dd>ICU 63 </dd></dl>

</div>
</div>
<a id="a10d657a1110c6d55a10ee4fb2396ad00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10d657a1110c6d55a10ee4fb2396ad00">&#9670;&nbsp;</a></span>ucpmap_getRange()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> ucpmap_getRange </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="ucpmap_8h.html#a9c6c7990f59dde516616d829d37e8408">UCPMap</a> *&#160;</td>
          <td class="paramname"><em>map</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>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9c">UCPMapRangeOption</a>&#160;</td>
          <td class="paramname"><em>option</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>surrogateValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ucpmap_8h.html#a2d302e405f2ea7dd5f65990460f2dbae">UCPMapValueFilter</a> *&#160;</td>
          <td class="paramname"><em>filter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>pValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the last code point such that all those from start to there have the same value. </p>
<p>Can be used to efficiently iterate over all same-value ranges in a map. (This is normally faster than iterating over code points and get()ting each value, but much slower than a data structure that stores ranges directly.)</p>
<p>If the UCPMapValueFilter function pointer is not NULL, then the value to be delivered is passed through that function, and the return value is the end of the range where all values are modified to the same actual value. The value is unchanged if that function pointer is NULL.</p>
<p>Example: </p><div class="fragment"><div class="line"><a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> start = 0, end;</div><div class="line">uint32_t value;</div><div class="line"><span class="keywordflow">while</span> ((end = <a class="code" href="ucpmap_8h.html#a10d657a1110c6d55a10ee4fb2396ad00">ucpmap_getRange</a>(map, start, <a class="code" href="ucpmap_8h.html#aa32ef75912d4bbf21792256d17f16b9ca3013a1d6bd08b42e51c8042326148292">UCPMAP_RANGE_NORMAL</a>, 0,</div><div class="line">                              <a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, &amp;value)) &gt;= 0) {</div><div class="line">    <span class="comment">// Work with the range start..end and its value.</span></div><div class="line">    start = end + 1;</div><div class="line">}</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map </td></tr>
    <tr><td class="paramname">start</td><td>range start </td></tr>
    <tr><td class="paramname">option</td><td>defines whether surrogates are treated normally, or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL </td></tr>
    <tr><td class="paramname">surrogateValue</td><td>value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL </td></tr>
    <tr><td class="paramname">filter</td><td>a pointer to a function that may modify the map data value, or NULL if the values from the map are to be used unmodified </td></tr>
    <tr><td class="paramname">context</td><td>an opaque pointer that is passed on to the filter function </td></tr>
    <tr><td class="paramname">pValue</td><td>if not NULL, receives the value that every code point start..end has; may have been modified by filter(context, map value) if that function pointer is not NULL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the range end code point, or -1 if start is not a valid code point </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable002025">Stable:</a></b></dt><dd>ICU 63 </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.14
</small></address>
</body>
</html>