Handbook
Glossary
run-selection-span ( ctline run start end -- span/f )
Vocabulary
core-text
Inputs
ctline
an
object
run
an
object
start
an
object
end
an
object
Outputs
span/f
an
object
Definition
USING:
accessors
arrays
core-foundation
kernel
math
math.order
;
IN:
core-text
::
run-selection-span
( ctline run start end -- span/f )
run
CTRunGetStringRange
[
location>>
]
[
length>>
]
bi
over
+
:>
( a b ) start a
max
:>
lo end b
min
:>
hi lo hi
<
[
run
run-x
:>
left run 0 0
<CFRange>
f
f
f
CTRunGetTypographicBounds
left
+
:>
right run
CTRunGetStatus
kCTRunStatusRightToLeft
bitand
zero?
[
left right
]
[
right left
]
if
:>
( leading trailing ) lo a
=
[
leading
]
[
ctline lo
f
CTLineGetOffsetForStringIndex
]
if
hi b
=
[
trailing
]
[
ctline hi
f
CTLineGetOffsetForStringIndex
]
if
[
min
]
[
max
]
2bi
2array
]
[
f
]
if
;