From 7248a3e27f18dba05ac6d5696db4554be88d4e42 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Wed, 8 Oct 2025 06:17:01 +0100 Subject: [PATCH] add function to get a char from a string_iterator in line_gap.sml --- src/line_gap.sml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/line_gap.sml b/src/line_gap.sml index 4cf301d..418e409 100644 --- a/src/line_gap.sml +++ b/src/line_gap.sml @@ -39,6 +39,7 @@ sig val makeStringIterator: t -> string_iterator val moveIteratorToIdx: int * string_iterator -> string_iterator + val subIterator: int * string_iterator -> char (* for testing *) val verifyIndex: t -> unit @@ -3381,6 +3382,16 @@ struct else moveIteratorRight (findIdx, idx, leftStrings, rightStrings) + fun subIterator (findIdx, {idx, leftStrings, rightStrings}) = + if findIdx >= idx then + case rightStrings of + hd :: tl => subRight (findIdx, idx, hd, tl) + | [] => raise Fail "not found" + else + case leftStrings of + hd :: tl => subLeft (findIdx, idx, hd, tl) + | [] => raise Fail "not found" + (* TEST CODE *) local fun lineBreaksToString vec =