| | ATSUI Programming Guide: Caret Handling |
 | | In such a case, the caret position is on the trailing and leading edges of characters that are contiguous in the text buffer; it thus corresponds directly to a single offset in the buffer. |
 | | The moving caret is also called a jumping caret because its position jumps between the primary and secondary caret positions as the user switches the keyboard script between the two text directions represented. |
 | | Using the definitions of caret position given earlier, however, it is possible to define the selection range as two separate rectangles, one extending from offset 4 to offset 2, and another extending from offset 12 to offset 6 (assuming for the ambiguous offsets—4 and 12—that the current text direction equals the primary line direction). |
| developer.apple.com /documentation/Carbon/Conceptual/ATSUI_Concepts/atsui_chap2/chapter_2_section_9.html (2257 words) |