     [let [ start>> ] [ end>> ] [ string>> ] tri :> ( start end string )
      start end [ 0 swap string subseq utf16n encode length 2 /i ] bi@
     ]
-    [ f CTLineGetOffsetForStringIndex round ] bi-curry@ bi
+    [ f CTLineGetOffsetForStringIndex ] bi-curry@ bi
     [ drop nip 0 ] [ swap - swap second ] 3bi <CGRect> ;
 
 : CGRect-translate-x ( CGRect x -- CGRect' )


    line render-loc>> :> loc
    line render-dim>> :> dim

    line dim [
        {
            [ font dim fill-background ]
            [ loc dim ctline string fill-selection-background ]

        ctline line-rect :> rect
        rect origin>> CGPoint>loc :> (loc)
        rect size>> CGSize>dim :> (dim)

        (loc) vfloor :> loc
        (dim) vceiling :> dim
        dim [ >integer 1 + ] map :> ext

        loc line render-loc<<
        dim line render-dim<<
        ext line render-ext<<

        line metrics>> loc dim line-loc line loc<<

