adds Config option to disable bell; DisableBell

This commit is contained in:
henderjon 2023-09-21 09:01:28 -05:00
parent 7f93d88cd5
commit d25ac56026
No known key found for this signature in database
GPG Key ID: B64029804B7D23DB
2 changed files with 21 additions and 16 deletions

View File

@ -1,20 +1,20 @@
// Readline is a pure go implementation for GNU-Readline kind library.
//
// example:
// rl, err := readline.New("> ")
// if err != nil {
// panic(err)
// }
// defer rl.Close()
//
// for {
// line, err := rl.Readline()
// if err != nil { // io.EOF
// break
// }
// println(line)
// }
// rl, err := readline.New("> ")
// if err != nil {
// panic(err)
// }
// defer rl.Close()
//
// for {
// line, err := rl.Readline()
// if err != nil { // io.EOF
// break
// }
// println(line)
// }
package readline
import (
@ -68,6 +68,8 @@ type Config struct {
// it use in IM usually.
UniqueEditLine bool
DisableBell bool
// filter input runes (may be used to disable CtrlZ or for translating some keys to different actions)
// -> output = new (translated) rune and true/false if continue with processing this one
FuncFilterInputRune func(rune) (rune, bool)
@ -301,9 +303,10 @@ func (i *Instance) Write(b []byte) (int, error) {
// WriteStdin prefill the next Stdin fetch
// Next time you call ReadLine() this value will be writen before the user input
// ie :
// i := readline.New()
// i.WriteStdin([]byte("test"))
// _, _= i.Readline()
//
// i := readline.New()
// i.WriteStdin([]byte("test"))
// _, _= i.Readline()
//
// gives
//

View File

@ -214,7 +214,9 @@ func (t *Terminal) ioloop() {
}
func (t *Terminal) Bell() {
fmt.Fprintf(t, "%c", CharBell)
if !t.cfg.DisableBell {
fmt.Fprintf(t, "%c", CharBell)
}
}
func (t *Terminal) Close() error {