Skip to content

Commit 280d6a8

Browse files
committed
Fixes EraseForward in VirtualTerminal
1 parent 994602a commit 280d6a8

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

‎src/System/Terminal/Virtual.hs‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,17 +219,18 @@ eraseInLine t m = do
219219
eraseInDisplay :: VirtualTerminal -> EraseMode -> STM ()
220220
eraseInDisplay t m = do
221221
Size h w <- virtualWindowSize (virtualSettings t)
222-
Position r _ <- readTVar (virtualCursor t)
222+
Position r c <- readTVar (virtualCursor t)
223223
wndw <- readTVar (virtualWindow t)
224224
let w1 = take r wndw
225-
w1E = replicate r (replicate w ' ')
225+
w1E = replicate r (replicate w ' ')
226226
w2 = [wndw !! r]
227+
w2C = [take c (wndw !! r) <> replicate (w - c) ' ']
227228
w2E = [replicate w ' ']
228229
w3 = drop (r + 1) wndw
229230
w3E = replicate (h - r - 1) (replicate w ' ')
230231
writeTVar (virtualWindow t) $ case m of
231232
EraseBackward -> w1E <> w2 <> w3
232-
EraseForward -> w1 <> w2 <> w3E
233+
EraseForward -> w1 <> w2C <> w3E
233234
EraseAll -> w1E <> w2E <> w3E
234235

235236
setAutoWrap :: VirtualTerminal -> Bool -> STM ()

0 commit comments

Comments
 (0)