pull/3769/head
Junegunn Choi 2 weeks ago
parent 9c4df5a7c2
commit e4104724c1
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627

@ -292,7 +292,7 @@ func extractColor(str string, state *ansiState, proc func(string, *ansiState) bo
func parseAnsiCode(s string, delimiter byte) (int, byte, string) {
var remaining string
i := -1
var i int
if delimiter == 0 {
// Faster than strings.IndexAny(";:")
i = strings.IndexByte(s, ';')

@ -1089,7 +1089,7 @@ Loop:
break
}
cs := string(action[0])
ce := ")"
var ce string
switch action[0] {
case ':':
masked += strings.Repeat(" ", len(action))
@ -2317,7 +2317,9 @@ func parseOptions(opts *Options, allArgs []string) error {
} else if match, value := optString(arg, "--scrollbar="); match {
opts.Scrollbar = &value
} else if match, value := optString(arg, "--toggle-sort="); match {
parseToggleSort(opts.Keymap, value)
if err := parseToggleSort(opts.Keymap, value); err != nil {
return err
}
} else if match, value := optString(arg, "--expect="); match {
chords, err := parseKeyChords(value, "key names required")
if err != nil {
@ -2339,7 +2341,9 @@ func parseOptions(opts *Options, allArgs []string) error {
return err
}
} else if match, value := optString(arg, "--history="); match {
setHistory(value)
if err := setHistory(value); err != nil {
return err
}
} else if match, value := optString(arg, "--history-size="); match {
n, err := atoi(value)
if err != nil {
@ -2359,7 +2363,9 @@ func parseOptions(opts *Options, allArgs []string) error {
} else if match, value := optString(arg, "--preview="); match {
opts.Preview.command = value
} else if match, value := optString(arg, "--preview-window="); match {
parsePreviewWindow(&opts.Preview, value)
if err := parsePreviewWindow(&opts.Preview, value); err != nil {
return err
}
} else if match, value := optString(arg, "--margin="); match {
if opts.Margin, err = parseMargin("margin", value); err != nil {
return err

@ -2739,15 +2739,16 @@ func (t *Terminal) executeCommand(template string, forcePlus bool, background bo
if capture {
out, _ := cmd.StdoutPipe()
reader := bufio.NewReader(out)
cmd.Start()
if firstLineOnly {
line, _ = reader.ReadString('\n')
line = strings.TrimRight(line, "\r\n")
} else {
bytes, _ := io.ReadAll(reader)
line = string(bytes)
if err := cmd.Start(); err != nil {
if firstLineOnly {
line, _ = reader.ReadString('\n')
line = strings.TrimRight(line, "\r\n")
} else {
bytes, _ := io.ReadAll(reader)
line = string(bytes)
}
cmd.Wait()
}
cmd.Wait()
} else {
cmd.Run()
}
@ -2963,6 +2964,7 @@ func (t *Terminal) Loop() error {
t.mutex.Lock()
if err := t.initFunc(); err != nil {
t.mutex.Unlock()
cancel()
return err
}
t.termSize = t.tui.Size()

Loading…
Cancel
Save