• Home
  • Raw
  • Download

Lines Matching full:code

43  * In functions with an error code parameter,
44 * the <code>pErrorCode</code> pointer must be valid
61 * <h4> Sample code for the ICU Bidi API </h4>
65 * This is (hypothetical) sample code that illustrates
67 * Rendering code depends highly on the graphics system,
68 * therefore this sample code must make a lot of assumptions,
76 * characters (code units) in logical order.</li>
79 * and therefore its implementation omitted from this sample code.</li>
83 * \code
299 * <code>paraLevel</code> and <code>embeddingLevels</code>
300 * arguments of <code>ubidi_setPara()</code>; there:
302 * <li>bit&nbsp;7 of an <code>embeddingLevels[]</code>
306 * <li><code>paraLevel</code> can be set to the
307 * pseudo-level values <code>UBIDI_DEFAULT_LTR</code>
308 * and <code>UBIDI_DEFAULT_RTL</code>.</li>
314 * <code>UBIDI_DEFAULT_XXX</code> can be used to specify
316 * when the <code>ubidi_setPara()</code> function
320 * Note that the value for <code>UBIDI_DEFAULT_LTR</code> is even
321 * and the one for <code>UBIDI_DEFAULT_RTL</code> is odd,
342 * <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code> or
343 * <code>UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the text to reorder
350 * If reordering option <code>UBIDI_OPTION_INSERT_MARKS</code> is set, an RLM may
368 * <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code> or
369 * <code>UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the text to reorder
377 * If reordering option <code>UBIDI_OPTION_INSERT_MARKS</code> is set, an RLM may
389 * (The maximum resolved level can be up to <code>UBIDI_MAX_EXPLICIT_LEVEL+1</code>).
404 * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is specified. This can also happen
406 * by option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
416 * <code>UBiDiDirection</code> values indicate the text direction.
422 * <li>As return value for <code>ubidi_getDirection()</code>, it means
425 * <li> As return value for <code>ubidi_getBaseDirection()</code>, it
434 * <li>As return value for <code>ubidi_getDirection()</code>, it means
437 * <li> As return value for <code>ubidi_getBaseDirection()</code>, it
445 * <p>As return value for <code>ubidi_getDirection()</code>, it means
452 * <p>As return value for <code>ubidi_getBaseDirection()</code>, it means
464 * Forward declaration of the <code>UBiDi</code> structure for the declaration of
479 * Allocate a <code>UBiDi</code> structure.
482 * by <code>ubidi_setPara()</code>
484 * <code>ubidi_setLine()</code>.<p>
486 * by calling <code>ubidi_close()</code>.<p>
487 * <code>ubidi_setPara()</code> and <code>ubidi_setLine()</code> will allocate
490 * @return An empty <code>UBiDi</code> object.
497 * Allocate a <code>UBiDi</code> structure with preallocated memory
499 * This function provides a <code>UBiDi</code> object like <code>ubidi_open()</code>
506 * <code>maxRunCount</code> cannot be reasonably predetermined and should not
507 * be set to <code>maxLength</code> (the only failproof value) to avoid
508 * wasting memory, then <code>maxRunCount</code> could be set to 0 here
510 * on demand, just like with <code>ubidi_open()</code>.
523 * 1 and <code>maxLength</code>. It is typically small.
525 * @param pErrorCode must be a valid pointer to an error code value.
527 * @return An empty <code>UBiDi</code> object with preallocated memory.
534 * <code>ubidi_close()</code> must be called to free the memory
538 * A parent <code>UBiDi</code> object must not be destroyed or reused if
540 * If a <code>UBiDi</code> object has become the <i>child</i>
542 * <code>ubidi_setLine()</code>, then the child object must
544 * <code>ubidi_setPara()</code> or <code>ubidi_setLine()</code>)
547 * @param pBiDi is a <code>UBiDi</code> object.
578 * must be called before <code>ubidi_setPara()</code>.
591 * <p>With <code>isInverse</code> set to <code>TRUE</code>,
598 * <p>Output runs should be retrieved using <code>ubidi_getVisualRun()</code>.
600 * <code>ubidi_getVisualRun()</code> gets the reordered runs, these are actually
603 * <p>Calling this function with argument <code>isInverse</code> set to
604 * <code>TRUE</code> is equivalent to calling
605 * <code>ubidi_setReorderingMode</code> with argument
606 * <code>reorderingMode</code>
607 * set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br>
608 * Calling this function with argument <code>isInverse</code> set to
609 * <code>FALSE</code> is equivalent to calling
610 * <code>ubidi_setReorderingMode</code> with argument
611 * <code>reorderingMode</code>
612 * set to <code>#UBIDI_REORDER_DEFAULT</code>.
614 * @param pBiDi is a <code>UBiDi</code> object.
629 * <code>ubidi_setReorderingMode</code> will return <code>TRUE</code> if the
630 * reordering mode was set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>,
631 * <code>FALSE</code> for all other values.</p>
633 * @param pBiDi is a <code>UBiDi</code> object.
648 * This function must be called before <code>ubidi_setPara()</code>.
657 * @param pBiDi is a <code>UBiDi</code> object.
672 * @param pBiDi is a <code>UBiDi</code> object.
683 * <code>UBiDiReorderingMode</code> values indicate which variant of the Bidi
705 * <code>#UBIDI_OPTION_INSERT_MARKS</code>, some Bidi controls in the source
711 * (same algorithm as selected by <code>ubidi_setInverse(TRUE)</code>.
720 * <code>UBIDI_REORDER_NUMBERS_SPECIAL</code> Bidi algorithm.
736 * This function must be called before <code>ubidi_setPara()</code>, and stays
745 * <code>#UBIDI_REORDER_DEFAULT</code>, this function changes the behavior of
760 * <li>When the reordering mode is set to <code>#UBIDI_REORDER_DEFAULT</code>,
764 * <code>#UBIDI_REORDER_NUMBERS_SPECIAL</code>,
766 * <code>ubidi_setPara</code> should approximate the algorithm used in
781 * <code>#UBIDI_REORDER_GROUP_NUMBERS_WITH_R</code>,
795 * <code>#UBIDI_REORDER_RUNS_ONLY</code>,
798 * <li>If the default text level of the source text (argument <code>paraLevel</code>
799 * in <code>ubidi_setPara</code>) is even, the source text will be handled as
823 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>, an "inverse Bidi" algorithm
827 * reordered sequence (the option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> can
828 * be used with function <code>ubidi_writeReordered</code> to this end. This
829 * mode is equivalent to calling <code>ubidi_setInverse()</code> with
830 * argument <code>isInverse</code> set to <code>TRUE</code>.</li>
833 * <code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>, the "direct" Logical to Visual
835 * This mode is similar to mode <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>
841 * with mode <code>UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br>
843 * <code>#UBIDI_OPTION_INSERT_MARKS</code>, this mode generally
845 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> with option
846 * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to
847 * <code>ubidi_writeReordered</code>.</li>
850 * <code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the Logical to Visual
858 * (i.e. those with a name starting with <code>UBIDI_REORDER_INVERSE</code>),
860 * <code>ubidi_getVisualRun()</code>, and the output text with
861 * <code>ubidi_writeReordered()</code>. The caller should keep in mind that in
863 * reordered output returned by <code>ubidi_getVisualRun()</code> or
864 * <code>ubidi_writeReordered()</code> are actually runs or character string
869 * <p>Note that option <code>#UBIDI_OUTPUT_REVERSE</code> of
870 * <code>ubidi_writeReordered</code> has no useful meaning and should not be
872 * "inverse Bidi" or with value <code>UBIDI_REORDER_RUNS_ONLY</code>.
874 * @param pBiDi is a <code>UBiDi</code> object.
889 * @param pBiDi is a <code>UBiDi</code> object.
898 * <code>UBiDiReorderingOption</code> values indicate which options are
906 * option value for <code>ubidi_setReorderingOptions</code>:
914 * option bit for <code>ubidi_setReorderingOptions</code>:
919 * <code>ubidi_setPara</code>.</p>
924 * <li><code>#UBIDI_REORDER_RUNS_ONLY</code></li>
925 * <li><code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code></li>
926 * <li><code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code></li>
927 * <li><code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code></li>
931 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> or with calling
932 * <code>ubidi_setInverse(TRUE)</code>, it implies
933 * option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code>
934 * in calls to function <code>ubidi_writeReordered()</code>.</p>
940 * (option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> set before calling
941 * <code>ubidi_setPara()</code> or option <code>#UBIDI_REMOVE_BIDI_CONTROLS</code>
942 * in <code>ubidi_writeReordered</code>), the result will be identical to the
946 * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>. It inhibits option
947 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to function
948 * <code>ubidi_writeReordered()</code> and it implies option
949 * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to function
950 * <code>ubidi_writeReordered()</code> if the reordering mode is
951 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.</p>
960 * option bit for <code>ubidi_setReorderingOptions</code>:
964 * <code>ubidi_setPara</code>.</p>
966 * <p>This option nullifies option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
967 * It inhibits option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls
968 * to function <code>ubidi_writeReordered()</code> and it implies option
969 * <code>#UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to that function.</p>
978 * option bit for <code>ubidi_setReorderingOptions</code>:
982 * <code>ubidi_setPara</code>.</p>
989 * <p>When this option bit is on, <code>ubidi_setPara()</code> may process
991 * boundary. The caller should call <code>ubidi_getProcessedLength()</code>
992 * immediately after calling <code>ubidi_setPara()</code> in order to
995 * <code>ubidi_setPara</code>. The processed length may be less than
1007 * <code>UBIDI_OPTION_STREAMING</code>.</li></ul>
1011 * <p>When the <code>UBIDI_OPTION_STREAMING</code> option is used,
1012 * it is recommended to call <code>ubidi_orderParagraphsLTR()</code> with
1013 * argument <code>orderParagraphsLTR</code> set to <code>TRUE</code> before
1014 * calling <code>ubidi_setPara</code> so that later paragraphs may be
1030 * @param pBiDi is a <code>UBiDi</code> object.
1033 * <code>#UBIDI_OPTION_DEFAULT</code>, <code>#UBIDI_OPTION_INSERT_MARKS</code>,
1034 * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>, <code>#UBIDI_OPTION_STREAMING</code>.
1045 * @param pBiDi is a <code>UBiDi</code> object.
1085 * Note 1: if <code>ubidi_setContext</code> is called repeatedly without
1086 * calling <code>ubidi_setPara</code>, the earlier calls have no effect,
1088 * <code>ubidi_setPara</code>.<p>
1090 * Note 2: calling <code>ubidi_setContext(pBiDi, NULL, 0, NULL, 0, &errorCode)</code>
1092 * The next call to <code>ubidi_setPara()</code> will process no
1101 * &nbsp;&nbsp;prologue = "<code>abc DE</code>"<br>
1103 * &nbsp;&nbsp;main text = "<code>FGH xyz</code>"<br>
1105 * &nbsp;&nbsp;display without prologue = "<code>HGF xyz</code>"
1107 * &nbsp;&nbsp;display with prologue = "<code>abc HGFED xyz</code>"
1110 * @param pBiDi is a paragraph <code>UBiDi</code> object.
1114 * If there is no prologue to consider, then <code>proLength</code>
1117 * @param proLength is the length of the prologue; if <code>proLength==-1</code>
1119 * Otherwise proLength must be >= 0. If <code>proLength==0</code>, it means
1124 * If there is no epilogue to consider, then <code>epiLength</code>
1127 * @param epiLength is the length of the epilogue; if <code>epiLength==-1</code>
1129 * Otherwise epiLength must be >= 0. If <code>epiLength==0</code>, it means
1132 * @param pErrorCode must be a valid pointer to an error code value.
1170 * @param pBiDi A <code>UBiDi</code> object allocated with <code>ubidi_open()</code>
1172 * especially the resolved levels for all the characters in <code>text</code>.
1176 * with <code>ubidi_getText()</code>.<br>
1177 * <strong>Note:</strong> the text must be (at least) <code>length</code> long.
1179 * @param length is the length of the text; if <code>length==-1</code> then
1185 * then <code>paraLevel</code> can be set to
1186 * either <code>#UBIDI_DEFAULT_LTR</code>
1187 * or <code>#UBIDI_DEFAULT_RTL</code>; if the text contains multiple
1191 * Any other value between 0 and <code>#UBIDI_MAX_EXPLICIT_LEVEL</code>
1198 * <code>#UBIDI_LEVEL_OVERRIDE</code> bit set.<br><br>
1200 * <code>paraLevel<=embeddingLevels[]<=UBIDI_MAX_EXPLICIT_LEVEL</code>,
1202 * separator even if <code>paraLevel>0</code> when multiple paragraphs
1203 * are submitted in the same call to <code>ubidi_setPara()</code>.<br><br>
1205 * will be stored in the <code>UBiDi</code> object;
1206 * the <code>embeddingLevels</code> array must not be
1207 * deallocated before the <code>UBiDi</code> structure is destroyed or reused,
1208 * and the <code>embeddingLevels</code>
1210 * However, the <code>ubidi_setPara()</code> and
1211 * <code>ubidi_setLine()</code> functions may modify some or all of the levels.<br><br>
1212 * After the <code>UBiDi</code> object is reused or destroyed, the caller
1213 * must take care of the deallocation of the <code>embeddingLevels</code> array.<br><br>
1214 * <strong>Note:</strong> the <code>embeddingLevels</code> array must be
1215 * at least <code>length</code> long.
1216 * This pointer can be <code>NULL</code> if this
1219 * @param pErrorCode must be a valid pointer to an error code value.
1228 * <code>ubidi_setLine()</code> sets a <code>UBiDi</code> to
1231 * specified by referring to a <code>UBiDi</code> object representing
1234 * In the new line object, the indexes will range from 0 to <code>limit-start-1</code>.<p>
1236 * This is used after calling <code>ubidi_setPara()</code>
1242 * a <code>UBiDi</code> object that represents a line.<p>
1244 * <strong>Important: </strong><code>pLineBiDi</code> shares data with
1245 * <code>pParaBiDi</code>.
1246 * You must destroy or reuse <code>pLineBiDi</code> before <code>pParaBiDi</code>.
1247 * In other words, you must destroy or reuse the <code>UBiDi</code> object for a line
1250 * The text pointer that was stored in <code>pParaBiDi</code> is also copied,
1251 * and <code>start</code> is added to it so that it points to the beginning of the
1261 * It must be <code>0<=start<limit<=</code>containing paragraph limit.
1263 * will terminate with error code U_ILLEGAL_ARGUMENT_ERROR.
1267 * @param pErrorCode must be a valid pointer to an error code value.
1282 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1284 * @return a value of <code>UBIDI_LTR</code>, <code>UBIDI_RTL</code>
1285 * or <code>UBIDI_MIXED</code>
1289 * Note - The value <code>UBIDI_NEUTRAL</code> is never returned from this method.
1302 * <code>UBIDI_LTR</code> is returned. If the first such character has
1303 * type R or AL, <code>UBIDI_RTL</code> is returned. If the string does
1305 * <code>UBIDI_NEUTRAL</code> is returned.
1315 * if <code>length==-1</code> then the text
1318 * @return <code>UBIDI_LTR</code>, <code>UBIDI_RTL</code>,
1319 * <code>UBIDI_NEUTRAL</code>
1330 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1344 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1355 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1373 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1387 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1390 * range <code>[0..ubidi_getProcessedLength(pBiDi)-1]</code>.
1394 * This pointer can be <code>NULL</code> if this
1400 * <code>charIndex</code>.
1401 * This pointer can be <code>NULL</code> if this
1405 * This pointer can be <code>NULL</code> if this
1408 * @param pErrorCode must be a valid pointer to an error code value.
1425 * @param pBiDi is the paragraph <code>UBiDi</code> object.
1428 * range <code>[0..ubidi_countParagraphs(pBiDi)-1]</code>.
1432 * This pointer can be <code>NULL</code> if this
1436 * This pointer can be <code>NULL</code> if this
1440 * This pointer can be <code>NULL</code> if this
1443 * @param pErrorCode must be a valid pointer to an error code value.
1455 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1474 * circumstances, unlike <code>ubidi_getLevelAt()</code>.
1476 * @param pBiDi is the paragraph or line <code>UBiDi</code> object, whose
1479 * @param pErrorCode must be a valid pointer to an error code value.
1482 * or <code>NULL</code> if an error occurs.
1497 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1504 * <code>logicalPosition</code>.
1505 * This pointer can be <code>NULL</code> if this
1509 * This pointer can be <code>NULL</code> if this
1522 * <code>UBiDi</code> object, after <code>ubidi_setPara()</code>
1524 * <code>ubidi_countRuns()</code> may have to allocate memory,
1527 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1529 * @param pErrorCode must be a valid pointer to an error code value.
1543 * <code>ubidi_countRuns()</code> should be called
1546 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1549 * range <code>[0..ubidi_countRuns(pBiDi)-1]</code>.
1552 * The pointer may be <code>NULL</code> if this index is not needed.
1555 * The pointer may be <code>NULL</code> if this is not needed.
1558 * <code>UBIDI_LTR==0</code> or <code>UBIDI_RTL==1</code>,
1559 * never <code>UBIDI_MIXED</code>,
1560 * never <code>UBIDI_NEUTRAL</code>.
1566 * \code
1584 * Note that in right-to-left runs, code like this places
1588 * Use of <code>ubidi_writeReordered()</code>, optionally with the
1589 * <code>#UBIDI_KEEP_BASE_COMBINING</code> option, can be considered in order
1600 * <code>UBiDi</code> object, then calling
1601 * <code>ubidi_getLogicalMap()</code> is more efficient.<p>
1603 * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no
1605 * removed from output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>.
1608 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1609 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1610 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the visual position returned may not
1612 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1617 * Use of <code>ubidi_writeReordered()</code>, optionally with the
1618 * <code>#UBIDI_KEEP_BASE_COMBINING</code> option can be considered instead
1621 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1625 * @param pErrorCode must be a valid pointer to an error code value.
1640 * <code>UBiDi</code> object, then calling
1641 * <code>ubidi_getVisualMap()</code> is more efficient.<p>
1643 * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no
1645 * inserted in the output by option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
1647 * This is the inverse function to <code>ubidi_getVisualIndex()</code>.
1650 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1651 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1652 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the logical position returned may not
1654 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1656 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1660 * @param pErrorCode must be a valid pointer to an error code value.
1676 * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the
1678 * output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>.
1681 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1682 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1683 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the visual positions returned may not
1685 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1690 * Use of <code>ubidi_writeReordered()</code>, optionally with the
1691 * <code>#UBIDI_KEEP_BASE_COMBINING</code> option can be considered instead
1694 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1696 * @param indexMap is a pointer to an array of <code>ubidi_getProcessedLength()</code>
1698 * If option <code>#UBIDI_OPTION_INSERT_MARKS</code> is set, the number
1699 * of elements allocated in <code>indexMap</code> must be no less than
1700 * <code>ubidi_getResultLength()</code>.
1702 * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.
1704 * @param pErrorCode must be a valid pointer to an error code value.
1719 * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the
1721 * by the option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
1724 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1725 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1726 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the logical positions returned may not
1728 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1730 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1732 * @param indexMap is a pointer to an array of <code>ubidi_getResultLength()</code>
1734 * If option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is set, the number
1735 * of elements allocated in <code>indexMap</code> must be no less than
1736 * <code>ubidi_getProcessedLength()</code>.
1738 * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.
1740 * @param pErrorCode must be a valid pointer to an error code value.
1755 * This is equivalent to using <code>ubidi_getLogicalMap()</code> on a
1756 * <code>UBiDi</code> object.
1758 * @param levels is an array with <code>length</code> levels that have been determined by
1763 * It must be <code>length>0</code>.
1765 * @param indexMap is a pointer to an array of <code>length</code>
1768 * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.
1778 * This is equivalent to using <code>ubidi_getVisualMap()</code> on a
1779 * <code>UBiDi</code> object.
1781 * @param levels is an array with <code>length</code> levels that have been determined by
1786 * It must be <code>length>0</code>.
1788 * @param indexMap is a pointer to an array of <code>length</code>
1791 * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.
1802 * @param srcMap is an array with <code>length</code> elements
1804 * <code>length</code> elements to a destination array.
1807 * the special value <code>UBIDI_MAP_NOWHERE</code>.
1808 * All elements must be >=0 or equal to <code>UBIDI_MAP_NOWHERE</code>.
1809 * Some elements may have a value >= <code>length</code>, if the
1812 * same value except <code>UBIDI_MAP_NOWHERE</code>).
1815 * value in <code>srcMap</code>.
1816 * <code>destMap</code> will be filled with the inverse mapping.
1817 * If element with index i in <code>srcMap</code> has a value k different
1818 * from <code>UBIDI_MAP_NOWHERE</code>, this means that element i of
1823 * inverse map will have a value equal to <code>UBIDI_MAP_NOWHERE</code>.
1884 * <p>This has the same effect as calling <code>ubidi_writeReordered()</code>
1886 * <code>ubidi_writeReverse()</code> without mirroring.
1898 * <code>ubidi_setPara()</code>. This length may be different from the length
1899 * of the source text if option <code>#UBIDI_OPTION_STREAMING</code>
1904 * except for <code>ubidi_setPara</code> (which receives unprocessed source
1905 * text) and <code>ubidi_getLength</code> (which returns the original length
1910 * <li>maximum value of the <code>limit</code> argument of
1911 * <code>ubidi_setLine</code></li>
1912 * <li>maximum value of the <code>charIndex</code> argument of
1913 * <code>ubidi_getParagraph</code></li>
1914 * <li>maximum value of the <code>charIndex</code> argument of
1915 * <code>ubidi_getLevelAt</code></li>
1916 * <li>number of elements in the array returned by <code>ubidi_getLevels</code></li>
1917 * <li>maximum value of the <code>logicalStart</code> argument of
1918 * <code>ubidi_getLogicalRun</code></li>
1919 * <li>maximum value of the <code>logicalIndex</code> argument of
1920 * <code>ubidi_getVisualIndex</code></li>
1921 * <li>number of elements filled in the <code>*indexMap</code> argument of
1922 * <code>ubidi_getLogicalMap</code></li>
1923 * <li>length of text processed by <code>ubidi_writeReordered</code></li>
1926 * @param pBiDi is the paragraph <code>UBiDi</code> object.
1929 * the last call to <code>ubidi_setPara</code>.
1939 * <code>ubidi_setPara()</code>. This length may be different from the length
1940 * of the source text if option <code>#UBIDI_OPTION_INSERT_MARKS</code>
1941 * or option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> has been set.
1945 * <li>maximum value of the <code>visualIndex</code> argument of
1946 * <code>ubidi_getLogicalIndex</code></li>
1947 * <li>number of elements of the <code>*indexMap</code> argument of
1948 * <code>ubidi_getVisualMap</code></li>
1952 * <code>ubidi_writeReordered</code>, or if option
1953 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> has been set.
1955 * @param pBiDi is the paragraph <code>UBiDi</code> object.
1958 * the last call to <code>ubidi_setPara</code>.
1971 * Value returned by <code>UBiDiClassCallback</code> callbacks when
1972 * there is no need to override the standard Bidi class for a given code point.
1985 * <p>Usually, the function pointer will be propagated to a <code>UBiDi</code>
1986 * object by calling the <code>ubidi_setClassCallback()</code> function;
1992 * @param c is the code point to get a Bidi class for.
1994 * @return The directional property / Bidi class for the given code point
1995 * <code>c</code> if the default class has been overridden, or
1996 * <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
1997 * if the standard Bidi class value for <code>c</code> is to be used.
2008 * Retrieve the Bidi class for a given code point.
2009 * <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a
2010 * value other than <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
2013 * @param pBiDi is the paragraph <code>UBiDi</code> object.
2015 * @param c is the code point whose Bidi class must be retrieved.
2017 * @return The Bidi class for character <code>c</code> based
2018 * on the given <code>pBiDi</code> instance.
2035 * @param pBiDi is the paragraph <code>UBiDi</code> object.
2047 * @param pErrorCode must be a valid pointer to an error code value.
2060 * @param pBiDi is the paragraph <code>UBiDi</code> object.
2073 * Take a <code>UBiDi</code> object containing the reordering
2075 * <code>ubidi_setPara()</code> or for a line of text set by
2076 * <code>ubidi_setLine()</code> and write a reordered string to the
2080 * code units and (optionally) combining characters.
2087 * characters; see the description of the <code>destSize</code>
2088 * and <code>options</code> parameters and of the option bit flags.
2090 * @param pBiDi A pointer to a <code>UBiDi</code> object that
2091 * is set by <code>ubidi_setPara()</code> or
2092 * <code>ubidi_setLine()</code> and contains the reordering
2097 * since the <code>ubidi_setPara()</code> call.
2100 * The source text and <code>dest[destSize]</code>
2103 * @param destSize The size of the <code>dest</code> buffer,
2105 * If the <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>
2108 * <code>ubidi_getLength(pBiDi)+2*ubidi_countRuns(pBiDi)</code>.
2109 * If the <code>UBIDI_REMOVE_BIDI_CONTROLS</code> option
2111 * <code>ubidi_getLength(pBiDi)</code>.
2113 * will be exactly <code>ubidi_getProcessedLength(pBiDi)</code>.
2117 * The options include mirroring the characters on a code
2124 * <code>#UBIDI_DO_MIRRORING</code>,
2125 * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
2126 * <code>#UBIDI_KEEP_BASE_COMBINING</code>,
2127 * <code>#UBIDI_OUTPUT_REVERSE</code>,
2128 * <code>#UBIDI_REMOVE_BIDI_CONTROLS</code>
2130 * @param pErrorCode must be a valid pointer to an error code value.
2147 * code units and (optionally) combining characters.
2157 * of <code>ubidi_writeReordered()</code>. For detailed descriptions
2160 * will never exceed <code>srcLength</code>.
2169 * <code>src[srcLength]</code> and <code>dest[destSize]</code>
2172 * @param destSize The size of the <code>dest</code> buffer,
2174 * If the <code>UBIDI_REMOVE_BIDI_CONTROLS</code> option
2176 * <code>srcLength</code>.
2178 * will be exactly <code>srcLength</code>.
2182 * See the <code>options</code> parameter in <code>ubidi_writeReordered()</code>.
2184 * @param pErrorCode must be a valid pointer to an error code value.