diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-08-04 13:19:56 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-08-04 13:19:56 -0700 |
commit | 563b99c33a704f653674d761a6873efc5e58b36b (patch) | |
tree | 0312ec4257db7a4940a03f81239e80f17d3aaf33 | |
parent | 146be7095129a8542474f6ca867ecda01d0a042b (diff) | |
download | mu-563b99c33a704f653674d761a6873efc5e58b36b.tar.gz |
1928 - bugfix: ctrl-u
-rw-r--r-- | edit.mu | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/edit.mu b/edit.mu index b4e43541..8351ad10 100644 --- a/edit.mu +++ b/edit.mu @@ -2181,8 +2181,11 @@ recipe delete-to-start-of-line [ # snip it out start-next:address:address:duplex-list <- get-address *start, next:offset *start-next <- copy end - end-prev:address:address:duplex-list <- get-address *end, prev:offset - *end-prev <- copy start + { + break-unless end + end-prev:address:address:duplex-list <- get-address *end, prev:offset + *end-prev <- copy start + } # adjust cursor *before-cursor <- prev-duplex end left:number <- get *editor, left:offset @@ -2238,6 +2241,30 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u-3 [ ] ] +scenario editor-deletes-to-start-of-final-line-with-ctrl-u [ + assume-screen 10/width, 5/height + 1:address:array:character <- new [123 +456] + 2:address:editor-data <- new-editor 1:address:array:character, screen:address, 0/left, 10/right + # start past end of final line, press ctrl-u + assume-console [ + left-click 2, 3 + type [u] # ctrl-u + ] + 3:event/ctrl-u <- merge 0/text, 21/ctrl-u, 0/dummy, 0/dummy + replace-in-console 117/u, 3:event/ctrl-u + run [ + editor-event-loop screen:address, console:address, 2:address:editor-data + ] + # cursor deletes to start of line + screen-should-contain [ + . . + .123 . + . . + . . + ] +] + # ctrl-k - delete text from cursor to end of line (but not the newline) scenario editor-deletes-to-end-of-line-with-ctrl-k [ |