amend another Vector tabulate bug

This commit is contained in:
2024-07-18 23:16:24 +01:00
parent 120a84fd28
commit 34139e616b

View File

@@ -1095,20 +1095,22 @@ struct
if Vector.length rightLinesHd > 0 then
let
val _ = println "996"
val lineDeleteEnd = binSearch
(String.size newStr - 1, rightLinesHd)
val lineDeleteStart =
Vector.length rightLinesHd - lineDeleteEnd
val lineDeleteLength = lineDeleteEnd - lineDeleteStart
forwardBinSearch (newStrStart, rightLinesHd)
val _ = println ("1100 = " ^ Int.toString newStrStart)
in
if lineDeleteEnd >= 0 then
Vector.tabulate (lineDeleteLength + 1, fn idx =>
Vector.sub (rightLinesHd, idx + lineDeleteStart)
- newStrStart)
if lineDeleteStart < Vector.length rightLinesHd then
let
val lineDeleteLength =
Vector.length rightLinesHd - lineDeleteStart
val _ = println "1105"
in
Vector.tabulate (lineDeleteLength, fn idx =>
Vector.sub (rightLinesHd, idx + lineDeleteStart)
- newStrStart)
end
else
(* Subtract by difference in length, which is same as
* newStrStart. *)
Vector.map (fn idx => idx - newStrStart) rightLinesHd
Vector.fromList []
end
else
rightLinesHd (* empty vector *)