summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/options.go2
-rw-r--r--src/terminal.go5
2 files changed, 7 insertions, 0 deletions
diff --git a/src/options.go b/src/options.go
index 730c1167..160fdd01 100644
--- a/src/options.go
+++ b/src/options.go
@@ -662,6 +662,8 @@ func parseKeymap(keymap map[int][]action, str string) {
appendAction(actAbort)
case "accept":
appendAction(actAccept)
+ case "accept-non-empty":
+ appendAction(actAcceptNonEmpty)
case "print-query":
appendAction(actPrintQuery)
case "replace-query":
diff --git a/src/terminal.go b/src/terminal.go
index 82f0ac9f..6881cdb5 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -170,6 +170,7 @@ const (
actBeginningOfLine
actAbort
actAccept
+ actAcceptNonEmpty
actBackwardChar
actBackwardDeleteChar
actBackwardWord
@@ -1656,6 +1657,10 @@ func (t *Terminal) Loop() {
req(reqList)
case actAccept:
req(reqClose)
+ case actAcceptNonEmpty:
+ if len(t.selected) > 0 || t.merger.Length() > 0 || !t.reading && t.count == 0 {
+ req(reqClose)
+ }
case actClearScreen:
req(reqRedraw)
case actTop: