diff --git a/main.go b/main.go index 2f9e9f05..a03a6894 100644 --- a/main.go +++ b/main.go @@ -93,14 +93,8 @@ func main() { for sess.Active { line, err := sess.ReadLine() if err != nil { - if err == io.EOF { - continue - } else if err.Error() == "Interrupt" { - var ans string - fmt.Printf("Are you sure you want to quit this session? y/n ") - fmt.Scan(&ans) - - if strings.ToLower(ans) == "y" { + if err == io.EOF || err.Error() == "Interrupt" { + if exitPrompt() { sess.Run("exit") os.Exit(0) } @@ -117,3 +111,11 @@ func main() { } } } + +func exitPrompt() bool { + var ans string + fmt.Printf("Are you sure you want to quit this session? y/n ") + fmt.Scan(&ans) + + return strings.ToLower(ans) == "y" +} diff --git a/session/session_setup.go b/session/session_setup.go index 3992c8e7..6f97f96e 100644 --- a/session/session_setup.go +++ b/session/session_setup.go @@ -74,7 +74,7 @@ func (s *Session) setupReadline() (err error) { cfg := readline.Config{ HistoryFile: history, InterruptPrompt: "^C", - EOFPrompt: "exit", + EOFPrompt: "^D", AutoComplete: readline.NewPrefixCompleter(prefixCompleters...), }