equal
deleted
inserted
replaced
242 fun pad [] = [] |
242 fun pad [] = [] |
243 | pad [(s, _)] = [s] |
243 | pad [(s, _)] = [s] |
244 | pad ((s1, pos1) :: (rest as (_, pos2) :: _)) = |
244 | pad ((s1, pos1) :: (rest as (_, pos2) :: _)) = |
245 let |
245 let |
246 val end_pos1 = Position.advance s1 pos1; |
246 val end_pos1 = Position.advance s1 pos1; |
247 val d = Int.max (0, Position.distance_of end_pos1 pos2); |
247 val d = Int.max (0, the_default 0 (Position.distance_of (end_pos1, pos2))); |
248 in s1 :: replicate d Symbol.DEL @ pad rest end; |
248 in s1 :: replicate d Symbol.DEL @ pad rest end; |
249 |
249 |
250 val implode = implode o pad; |
250 val implode = implode o pad; |
251 |
251 |
252 fun implode_range (pos1, pos2) syms = |
252 fun implode_range (pos1, pos2) syms = |