Only set buffer type to stdout when no file args are passed

Fixes #2600
This commit is contained in:
Andy Kluger
2025-11-13 12:50:30 -05:00
parent 70dfc7fcb4
commit c80e5cd97f

View File

@@ -163,11 +163,6 @@ func LoadInput(args []string) []*buffer.Buffer {
var err error
buffers := make([]*buffer.Buffer, 0, len(args))
btype := buffer.BTDefault
if !isatty.IsTerminal(os.Stdout.Fd()) {
btype = buffer.BTStdout
}
files := make([]string, 0, len(args))
flagStartPos := buffer.Loc{-1, -1}
@@ -222,7 +217,7 @@ func LoadInput(args []string) []*buffer.Buffer {
// Option 1
// We go through each file and load it
for i := 0; i < len(files); i++ {
buf, err := buffer.NewBufferFromFileWithCommand(files[i], btype, command)
buf, err := buffer.NewBufferFromFileWithCommand(files[i], buffer.BTDefault, command)
if err != nil {
screen.TermMessage(err)
continue
@@ -230,19 +225,26 @@ func LoadInput(args []string) []*buffer.Buffer {
// If the file didn't exist, input will be empty, and we'll open an empty buffer
buffers = append(buffers, buf)
}
} else if !isatty.IsTerminal(os.Stdin.Fd()) {
// Option 2
// The input is not a terminal, so something is being piped in
// and we should read from stdin
input, err = io.ReadAll(os.Stdin)
if err != nil {
screen.TermMessage("Error reading from stdin: ", err)
input = []byte{}
}
buffers = append(buffers, buffer.NewBufferFromStringWithCommand(string(input), filename, btype, command))
} else {
// Option 3, just open an empty buffer
buffers = append(buffers, buffer.NewBufferFromStringWithCommand(string(input), filename, btype, command))
btype := buffer.BTDefault
if !isatty.IsTerminal(os.Stdout.Fd()) {
btype = buffer.BTStdout
}
if !isatty.IsTerminal(os.Stdin.Fd()) {
// Option 2
// The input is not a terminal, so something is being piped in
// and we should read from stdin
input, err = io.ReadAll(os.Stdin)
if err != nil {
screen.TermMessage("Error reading from stdin: ", err)
input = []byte{}
}
buffers = append(buffers, buffer.NewBufferFromStringWithCommand(string(input), filename, btype, command))
} else {
// Option 3, just open an empty buffer
buffers = append(buffers, buffer.NewBufferFromStringWithCommand(string(input), filename, btype, command))
}
}
return buffers