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 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,
346 * <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code> or
347 * <code>UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the text to reorder
354 * If reordering option <code>UBIDI_OPTION_INSERT_MARKS</code> is set, an RLM may
372 * <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code> or
373 * <code>UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the text to reorder
381 * If reordering option <code>UBIDI_OPTION_INSERT_MARKS</code> is set, an RLM may
395 * (The maximum resolved level can be up to <code>UBIDI_MAX_EXPLICIT_LEVEL+1</code>).
410 * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is specified. This can also happen
412 * by option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
422 * <code>UBiDiDirection</code> values indicate the text direction.
428 * <li>As return value for <code>ubidi_getDirection()</code>, it means
431 * <li> As return value for <code>ubidi_getBaseDirection()</code>, it
440 * <li>As return value for <code>ubidi_getDirection()</code>, it means
443 * <li> As return value for <code>ubidi_getBaseDirection()</code>, it
451 * <p>As return value for <code>ubidi_getDirection()</code>, it means
458 * <p>As return value for <code>ubidi_getBaseDirection()</code>, it means
470 * Forward declaration of the <code>UBiDi</code> structure for the declaration of
485 * Allocate a <code>UBiDi</code> structure.
488 * by <code>ubidi_setPara()</code>
490 * <code>ubidi_setLine()</code>.<p>
492 * by calling <code>ubidi_close()</code>.<p>
493 * <code>ubidi_setPara()</code> and <code>ubidi_setLine()</code> will allocate
496 * @return An empty <code>UBiDi</code> object.
503 * Allocate a <code>UBiDi</code> structure with preallocated memory
505 * This function provides a <code>UBiDi</code> object like <code>ubidi_open()</code>
512 * <code>maxRunCount</code> cannot be reasonably predetermined and should not
513 * be set to <code>maxLength</code> (the only failproof value) to avoid
514 * wasting memory, then <code>maxRunCount</code> could be set to 0 here
516 * on demand, just like with <code>ubidi_open()</code>.
529 * 1 and <code>maxLength</code>. It is typically small.
531 * @param pErrorCode must be a valid pointer to an error code value.
533 * @return An empty <code>UBiDi</code> object with preallocated memory.
540 * <code>ubidi_close()</code> must be called to free the memory
544 * A parent <code>UBiDi</code> object must not be destroyed or reused if
546 * If a <code>UBiDi</code> object has become the <i>child</i>
548 * <code>ubidi_setLine()</code>, then the child object must
550 * <code>ubidi_setPara()</code> or <code>ubidi_setLine()</code>)
553 * @param pBiDi is a <code>UBiDi</code> object.
584 * must be called before <code>ubidi_setPara()</code>.
597 * <p>With <code>isInverse</code> set to <code>TRUE</code>,
604 * <p>Output runs should be retrieved using <code>ubidi_getVisualRun()</code>.
606 * <code>ubidi_getVisualRun()</code> gets the reordered runs, these are actually
609 * <p>Calling this function with argument <code>isInverse</code> set to
610 * <code>TRUE</code> is equivalent to calling
611 * <code>ubidi_setReorderingMode</code> with argument
612 * <code>reorderingMode</code>
613 * set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br>
614 * Calling this function with argument <code>isInverse</code> set to
615 * <code>FALSE</code> is equivalent to calling
616 * <code>ubidi_setReorderingMode</code> with argument
617 * <code>reorderingMode</code>
618 * set to <code>#UBIDI_REORDER_DEFAULT</code>.
620 * @param pBiDi is a <code>UBiDi</code> object.
635 * <code>ubidi_setReorderingMode</code> will return <code>TRUE</code> if the
636 * reordering mode was set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>,
637 * <code>FALSE</code> for all other values.</p>
639 * @param pBiDi is a <code>UBiDi</code> object.
654 * This function must be called before <code>ubidi_setPara()</code>.
663 * @param pBiDi is a <code>UBiDi</code> object.
678 * @param pBiDi is a <code>UBiDi</code> object.
689 * <code>UBiDiReorderingMode</code> values indicate which variant of the Bidi
711 * <code>#UBIDI_OPTION_INSERT_MARKS</code>, some Bidi controls in the source
717 * (same algorithm as selected by <code>ubidi_setInverse(TRUE)</code>.
726 * <code>UBIDI_REORDER_NUMBERS_SPECIAL</code> Bidi algorithm.
742 * This function must be called before <code>ubidi_setPara()</code>, and stays
751 * <code>#UBIDI_REORDER_DEFAULT</code>, this function changes the behavior of
766 * <li>When the reordering mode is set to <code>#UBIDI_REORDER_DEFAULT</code>,
770 * <code>#UBIDI_REORDER_NUMBERS_SPECIAL</code>,
772 * <code>ubidi_setPara</code> should approximate the algorithm used in
787 * <code>#UBIDI_REORDER_GROUP_NUMBERS_WITH_R</code>,
801 * <code>#UBIDI_REORDER_RUNS_ONLY</code>,
804 * <li>If the default text level of the source text (argument <code>paraLevel</code>
805 * in <code>ubidi_setPara</code>) is even, the source text will be handled as
829 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>, an "inverse Bidi" algorithm
833 * reordered sequence (the option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> can
834 * be used with function <code>ubidi_writeReordered</code> to this end. This
835 * mode is equivalent to calling <code>ubidi_setInverse()</code> with
836 * argument <code>isInverse</code> set to <code>TRUE</code>.</li>
839 * <code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>, the "direct" Logical to Visual
841 * This mode is similar to mode <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>
847 * with mode <code>UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br>
849 * <code>#UBIDI_OPTION_INSERT_MARKS</code>, this mode generally
851 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> with option
852 * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to
853 * <code>ubidi_writeReordered</code>.</li>
856 * <code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the Logical to Visual
864 * (i.e. those with a name starting with <code>UBIDI_REORDER_INVERSE</code>),
866 * <code>ubidi_getVisualRun()</code>, and the output text with
867 * <code>ubidi_writeReordered()</code>. The caller should keep in mind that in
869 * reordered output returned by <code>ubidi_getVisualRun()</code> or
870 * <code>ubidi_writeReordered()</code> are actually runs or character string
875 * <p>Note that option <code>#UBIDI_OUTPUT_REVERSE</code> of
876 * <code>ubidi_writeReordered</code> has no useful meaning and should not be
878 * "inverse Bidi" or with value <code>UBIDI_REORDER_RUNS_ONLY</code>.
880 * @param pBiDi is a <code>UBiDi</code> object.
895 * @param pBiDi is a <code>UBiDi</code> object.
904 * <code>UBiDiReorderingOption</code> values indicate which options are
912 * option value for <code>ubidi_setReorderingOptions</code>:
920 * option bit for <code>ubidi_setReorderingOptions</code>:
925 * <code>ubidi_setPara</code>.</p>
930 * <li><code>#UBIDI_REORDER_RUNS_ONLY</code></li>
931 * <li><code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code></li>
932 * <li><code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code></li>
933 * <li><code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code></li>
937 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> or with calling
938 * <code>ubidi_setInverse(TRUE)</code>, it implies
939 * option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code>
940 * in calls to function <code>ubidi_writeReordered()</code>.</p>
946 * (option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> set before calling
947 * <code>ubidi_setPara()</code> or option <code>#UBIDI_REMOVE_BIDI_CONTROLS</code>
948 * in <code>ubidi_writeReordered</code>), the result will be identical to the
952 * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>. It inhibits option
953 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to function
954 * <code>ubidi_writeReordered()</code> and it implies option
955 * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to function
956 * <code>ubidi_writeReordered()</code> if the reordering mode is
957 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.</p>
966 * option bit for <code>ubidi_setReorderingOptions</code>:
970 * <code>ubidi_setPara</code>.</p>
972 * <p>This option nullifies option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
973 * It inhibits option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls
974 * to function <code>ubidi_writeReordered()</code> and it implies option
975 * <code>#UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to that function.</p>
984 * option bit for <code>ubidi_setReorderingOptions</code>:
988 * <code>ubidi_setPara</code>.</p>
995 * <p>When this option bit is on, <code>ubidi_setPara()</code> may process
997 * boundary. The caller should call <code>ubidi_getProcessedLength()</code>
998 * immediately after calling <code>ubidi_setPara()</code> in order to
1001 * <code>ubidi_setPara</code>. The processed length may be less than
1013 * <code>UBIDI_OPTION_STREAMING</code>.</li></ul>
1017 * <p>When the <code>UBIDI_OPTION_STREAMING</code> option is used,
1018 * it is recommended to call <code>ubidi_orderParagraphsLTR()</code> with
1019 * argument <code>orderParagraphsLTR</code> set to <code>TRUE</code> before
1020 * calling <code>ubidi_setPara</code> so that later paragraphs may be
1036 * @param pBiDi is a <code>UBiDi</code> object.
1039 * <code>#UBIDI_OPTION_DEFAULT</code>, <code>#UBIDI_OPTION_INSERT_MARKS</code>,
1040 * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>, <code>#UBIDI_OPTION_STREAMING</code>.
1051 * @param pBiDi is a <code>UBiDi</code> object.
1091 * Note 1: if <code>ubidi_setContext</code> is called repeatedly without
1092 * calling <code>ubidi_setPara</code>, the earlier calls have no effect,
1094 * <code>ubidi_setPara</code>.<p>
1096 * Note 2: calling <code>ubidi_setContext(pBiDi, NULL, 0, NULL, 0, &errorCode)</code>
1098 * The next call to <code>ubidi_setPara()</code> will process no
1107 * prologue = "<code>abc DE</code>"<br>
1109 * main text = "<code>FGH xyz</code>"<br>
1111 * display without prologue = "<code>HGF xyz</code>"
1113 * display with prologue = "<code>abc HGFED xyz</code>"
1116 * @param pBiDi is a paragraph <code>UBiDi</code> object.
1120 * If there is no prologue to consider, then <code>proLength</code>
1123 * @param proLength is the length of the prologue; if <code>proLength==-1</code>
1125 * Otherwise proLength must be >= 0. If <code>proLength==0</code>, it means
1130 * If there is no epilogue to consider, then <code>epiLength</code>
1133 * @param epiLength is the length of the epilogue; if <code>epiLength==-1</code>
1135 * Otherwise epiLength must be >= 0. If <code>epiLength==0</code>, it means
1138 * @param pErrorCode must be a valid pointer to an error code value.
1176 * @param pBiDi A <code>UBiDi</code> object allocated with <code>ubidi_open()</code>
1178 * especially the resolved levels for all the characters in <code>text</code>.
1182 * with <code>ubidi_getText()</code>.<br>
1183 * <strong>Note:</strong> the text must be (at least) <code>length</code> long.
1185 * @param length is the length of the text; if <code>length==-1</code> then
1191 * then <code>paraLevel</code> can be set to
1192 * either <code>#UBIDI_DEFAULT_LTR</code>
1193 * or <code>#UBIDI_DEFAULT_RTL</code>; if the text contains multiple
1197 * Any other value between 0 and <code>#UBIDI_MAX_EXPLICIT_LEVEL</code>
1204 * <code>#UBIDI_LEVEL_OVERRIDE</code> bit set.<br><br>
1206 * <code>paraLevel<=embeddingLevels[]<=UBIDI_MAX_EXPLICIT_LEVEL</code>,
1209 * this only works reliably if <code>#UBIDI_LEVEL_OVERRIDE</code>
1214 * will be stored in the <code>UBiDi</code> object;
1215 * the <code>embeddingLevels</code> array must not be
1216 * deallocated before the <code>UBiDi</code> structure is destroyed or reused,
1217 * and the <code>embeddingLevels</code>
1219 * However, the <code>ubidi_setPara()</code> and
1220 * <code>ubidi_setLine()</code> functions may modify some or all of the levels.<br><br>
1221 * After the <code>UBiDi</code> object is reused or destroyed, the caller
1222 * must take care of the deallocation of the <code>embeddingLevels</code> array.<br><br>
1223 * <strong>Note:</strong> the <code>embeddingLevels</code> array must be
1224 * at least <code>length</code> long.
1225 * This pointer can be <code>NULL</code> if this
1228 * @param pErrorCode must be a valid pointer to an error code value.
1237 * <code>ubidi_setLine()</code> sets a <code>UBiDi</code> to
1240 * specified by referring to a <code>UBiDi</code> object representing
1243 * In the new line object, the indexes will range from 0 to <code>limit-start-1</code>.<p>
1245 * This is used after calling <code>ubidi_setPara()</code>
1251 * a <code>UBiDi</code> object that represents a line.<p>
1253 * <strong>Important: </strong><code>pLineBiDi</code> shares data with
1254 * <code>pParaBiDi</code>.
1255 * You must destroy or reuse <code>pLineBiDi</code> before <code>pParaBiDi</code>.
1256 * In other words, you must destroy or reuse the <code>UBiDi</code> object for a line
1259 * The text pointer that was stored in <code>pParaBiDi</code> is also copied,
1260 * and <code>start</code> is added to it so that it points to the beginning of the
1270 * It must be <code>0<=start<limit<=</code>containing paragraph limit.
1272 * will terminate with error code U_ILLEGAL_ARGUMENT_ERROR.
1276 * @param pErrorCode must be a valid pointer to an error code value.
1291 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1293 * @return a value of <code>UBIDI_LTR</code>, <code>UBIDI_RTL</code>
1294 * or <code>UBIDI_MIXED</code>
1298 * Note - The value <code>UBIDI_NEUTRAL</code> is never returned from this method.
1311 * <code>UBIDI_LTR</code> is returned. If the first such character has
1312 * type R or AL, <code>UBIDI_RTL</code> is returned. If the string does
1314 * <code>UBIDI_NEUTRAL</code> is returned.
1324 * if <code>length==-1</code> then the text
1327 * @return <code>UBIDI_LTR</code>, <code>UBIDI_RTL</code>,
1328 * <code>UBIDI_NEUTRAL</code>
1339 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1353 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1364 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1382 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1396 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1399 * range <code>[0..ubidi_getProcessedLength(pBiDi)-1]</code>.
1403 * This pointer can be <code>NULL</code> if this
1409 * <code>charIndex</code>.
1410 * This pointer can be <code>NULL</code> if this
1414 * This pointer can be <code>NULL</code> if this
1417 * @param pErrorCode must be a valid pointer to an error code value.
1434 * @param pBiDi is the paragraph <code>UBiDi</code> object.
1437 * range <code>[0..ubidi_countParagraphs(pBiDi)-1]</code>.
1441 * This pointer can be <code>NULL</code> if this
1445 * This pointer can be <code>NULL</code> if this
1449 * This pointer can be <code>NULL</code> if this
1452 * @param pErrorCode must be a valid pointer to an error code value.
1464 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1483 * circumstances, unlike <code>ubidi_getLevelAt()</code>.
1485 * @param pBiDi is the paragraph or line <code>UBiDi</code> object, whose
1488 * @param pErrorCode must be a valid pointer to an error code value.
1491 * or <code>NULL</code> if an error occurs.
1506 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1513 * <code>logicalPosition</code>.
1514 * This pointer can be <code>NULL</code> if this
1518 * This pointer can be <code>NULL</code> if this
1531 * <code>UBiDi</code> object, after <code>ubidi_setPara()</code>
1533 * <code>ubidi_countRuns()</code> may have to allocate memory,
1536 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1538 * @param pErrorCode must be a valid pointer to an error code value.
1552 * <code>ubidi_countRuns()</code> should be called
1555 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1558 * range <code>[0..ubidi_countRuns(pBiDi)-1]</code>.
1561 * The pointer may be <code>NULL</code> if this index is not needed.
1564 * The pointer may be <code>NULL</code> if this is not needed.
1567 * <code>UBIDI_LTR==0</code> or <code>UBIDI_RTL==1</code>,
1568 * never <code>UBIDI_MIXED</code>,
1569 * never <code>UBIDI_NEUTRAL</code>.
1575 * \code
1593 * Note that in right-to-left runs, code like this places
1597 * Use of <code>ubidi_writeReordered()</code>, optionally with the
1598 * <code>#UBIDI_KEEP_BASE_COMBINING</code> option, can be considered in order
1609 * <code>UBiDi</code> object, then calling
1610 * <code>ubidi_getLogicalMap()</code> is more efficient.<p>
1612 * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no
1614 * removed from output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>.
1617 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1618 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1619 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the visual position returned may not
1621 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1626 * Use of <code>ubidi_writeReordered()</code>, optionally with the
1627 * <code>#UBIDI_KEEP_BASE_COMBINING</code> option can be considered instead
1630 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1634 * @param pErrorCode must be a valid pointer to an error code value.
1649 * <code>UBiDi</code> object, then calling
1650 * <code>ubidi_getVisualMap()</code> is more efficient.<p>
1652 * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no
1654 * inserted in the output by option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
1656 * This is the inverse function to <code>ubidi_getVisualIndex()</code>.
1659 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1660 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1661 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the logical position returned may not
1663 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1665 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1669 * @param pErrorCode must be a valid pointer to an error code value.
1685 * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the
1687 * output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>.
1690 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1691 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1692 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the visual positions returned may not
1694 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1699 * Use of <code>ubidi_writeReordered()</code>, optionally with the
1700 * <code>#UBIDI_KEEP_BASE_COMBINING</code> option can be considered instead
1703 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1705 * @param indexMap is a pointer to an array of <code>ubidi_getProcessedLength()</code>
1707 * If option <code>#UBIDI_OPTION_INSERT_MARKS</code> is set, the number
1708 * of elements allocated in <code>indexMap</code> must be no less than
1709 * <code>ubidi_getResultLength()</code>.
1711 * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.
1713 * @param pErrorCode must be a valid pointer to an error code value.
1728 * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the
1730 * by the option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
1733 * <code>ubidi_writeReordered()</code> such as <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
1734 * <code>UBIDI_KEEP_BASE_COMBINING</code>, <code>UBIDI_OUTPUT_REVERSE</code>,
1735 * <code>UBIDI_REMOVE_BIDI_CONTROLS</code>, the logical positions returned may not
1737 * such as <code>UBIDI_OPTION_INSERT_MARKS</code> and <code>UBIDI_OPTION_REMOVE_CONTROLS</code>.
1739 * @param pBiDi is the paragraph or line <code>UBiDi</code> object.
1741 * @param indexMap is a pointer to an array of <code>ubidi_getResultLength()</code>
1743 * If option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is set, the number
1744 * of elements allocated in <code>indexMap</code> must be no less than
1745 * <code>ubidi_getProcessedLength()</code>.
1747 * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.
1749 * @param pErrorCode must be a valid pointer to an error code value.
1764 * This is equivalent to using <code>ubidi_getLogicalMap()</code> on a
1765 * <code>UBiDi</code> object.
1767 * @param levels is an array with <code>length</code> levels that have been determined by
1772 * It must be <code>length>0</code>.
1774 * @param indexMap is a pointer to an array of <code>length</code>
1777 * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.
1787 * This is equivalent to using <code>ubidi_getVisualMap()</code> on a
1788 * <code>UBiDi</code> object.
1790 * @param levels is an array with <code>length</code> levels that have been determined by
1795 * It must be <code>length>0</code>.
1797 * @param indexMap is a pointer to an array of <code>length</code>
1800 * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.
1811 * @param srcMap is an array with <code>length</code> elements
1813 * <code>length</code> elements to a destination array.
1816 * the special value <code>UBIDI_MAP_NOWHERE</code>.
1817 * All elements must be >=0 or equal to <code>UBIDI_MAP_NOWHERE</code>.
1818 * Some elements may have a value >= <code>length</code>, if the
1821 * same value except <code>UBIDI_MAP_NOWHERE</code>).
1824 * value in <code>srcMap</code>.
1825 * <code>destMap</code> will be filled with the inverse mapping.
1826 * If element with index i in <code>srcMap</code> has a value k different
1827 * from <code>UBIDI_MAP_NOWHERE</code>, this means that element i of
1832 * inverse map will have a value equal to <code>UBIDI_MAP_NOWHERE</code>.
1893 * <p>This has the same effect as calling <code>ubidi_writeReordered()</code>
1895 * <code>ubidi_writeReverse()</code> without mirroring.
1907 * <code>ubidi_setPara()</code>. This length may be different from the length
1908 * of the source text if option <code>#UBIDI_OPTION_STREAMING</code>
1913 * except for <code>ubidi_setPara</code> (which receives unprocessed source
1914 * text) and <code>ubidi_getLength</code> (which returns the original length
1919 * <li>maximum value of the <code>limit</code> argument of
1920 * <code>ubidi_setLine</code></li>
1921 * <li>maximum value of the <code>charIndex</code> argument of
1922 * <code>ubidi_getParagraph</code></li>
1923 * <li>maximum value of the <code>charIndex</code> argument of
1924 * <code>ubidi_getLevelAt</code></li>
1925 * <li>number of elements in the array returned by <code>ubidi_getLevels</code></li>
1926 * <li>maximum value of the <code>logicalStart</code> argument of
1927 * <code>ubidi_getLogicalRun</code></li>
1928 * <li>maximum value of the <code>logicalIndex</code> argument of
1929 * <code>ubidi_getVisualIndex</code></li>
1930 * <li>number of elements filled in the <code>*indexMap</code> argument of
1931 * <code>ubidi_getLogicalMap</code></li>
1932 * <li>length of text processed by <code>ubidi_writeReordered</code></li>
1935 * @param pBiDi is the paragraph <code>UBiDi</code> object.
1938 * the last call to <code>ubidi_setPara</code>.
1948 * <code>ubidi_setPara()</code>. This length may be different from the length
1949 * of the source text if option <code>#UBIDI_OPTION_INSERT_MARKS</code>
1950 * or option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> has been set.
1954 * <li>maximum value of the <code>visualIndex</code> argument of
1955 * <code>ubidi_getLogicalIndex</code></li>
1956 * <li>number of elements of the <code>*indexMap</code> argument of
1957 * <code>ubidi_getVisualMap</code></li>
1961 * <code>ubidi_writeReordered</code>, or if option
1962 * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> has been set.
1964 * @param pBiDi is the paragraph <code>UBiDi</code> object.
1967 * the last call to <code>ubidi_setPara</code>.
1980 * Value returned by <code>UBiDiClassCallback</code> callbacks when
1981 * there is no need to override the standard Bidi class for a given code point.
1994 * <p>Usually, the function pointer will be propagated to a <code>UBiDi</code>
1995 * object by calling the <code>ubidi_setClassCallback()</code> function;
2001 * @param c is the code point to get a Bidi class for.
2003 * @return The directional property / Bidi class for the given code point
2004 * <code>c</code> if the default class has been overridden, or
2005 * <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
2006 * if the standard Bidi class value for <code>c</code> is to be used.
2017 * Retrieve the Bidi class for a given code point.
2018 * <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a
2019 * value other than <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
2022 * @param pBiDi is the paragraph <code>UBiDi</code> object.
2024 * @param c is the code point whose Bidi class must be retrieved.
2026 * @return The Bidi class for character <code>c</code> based
2027 * on the given <code>pBiDi</code> instance.
2044 * @param pBiDi is the paragraph <code>UBiDi</code> object.
2056 * @param pErrorCode must be a valid pointer to an error code value.
2069 * @param pBiDi is the paragraph <code>UBiDi</code> object.
2082 * Take a <code>UBiDi</code> object containing the reordering
2084 * <code>ubidi_setPara()</code> or for a line of text set by
2085 * <code>ubidi_setLine()</code> and write a reordered string to the
2089 * code units and (optionally) combining characters.
2096 * characters; see the description of the <code>destSize</code>
2097 * and <code>options</code> parameters and of the option bit flags.
2099 * @param pBiDi A pointer to a <code>UBiDi</code> object that
2100 * is set by <code>ubidi_setPara()</code> or
2101 * <code>ubidi_setLine()</code> and contains the reordering
2106 * since the <code>ubidi_setPara()</code> call.
2109 * The source text and <code>dest[destSize]</code>
2112 * @param destSize The size of the <code>dest</code> buffer,
2114 * If the <code>UBIDI_INSERT_LRM_FOR_NUMERIC</code>
2117 * <code>ubidi_getLength(pBiDi)+2*ubidi_countRuns(pBiDi)</code>.
2118 * If the <code>UBIDI_REMOVE_BIDI_CONTROLS</code> option
2120 * <code>ubidi_getLength(pBiDi)</code>.
2122 * will be exactly <code>ubidi_getProcessedLength(pBiDi)</code>.
2126 * The options include mirroring the characters on a code
2133 * <code>#UBIDI_DO_MIRRORING</code>,
2134 * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code>,
2135 * <code>#UBIDI_KEEP_BASE_COMBINING</code>,
2136 * <code>#UBIDI_OUTPUT_REVERSE</code>,
2137 * <code>#UBIDI_REMOVE_BIDI_CONTROLS</code>
2139 * @param pErrorCode must be a valid pointer to an error code value.
2156 * code units and (optionally) combining characters.
2166 * of <code>ubidi_writeReordered()</code>. For detailed descriptions
2169 * will never exceed <code>srcLength</code>.
2178 * <code>src[srcLength]</code> and <code>dest[destSize]</code>
2181 * @param destSize The size of the <code>dest</code> buffer,
2183 * If the <code>UBIDI_REMOVE_BIDI_CONTROLS</code> option
2185 * <code>srcLength</code>.
2187 * will be exactly <code>srcLength</code>.
2191 * See the <code>options</code> parameter in <code>ubidi_writeReordered()</code>.
2193 * @param pErrorCode must be a valid pointer to an error code value.