feat(quickfix): support -q - to read 'errorfile' from stdin (#27303)

Note that this only works when stdin is a pipe.
This commit is contained in:
zeertzjq
2024-02-02 21:17:37 +08:00
committed by GitHub
parent 1bf645918e
commit e98decf9a6
6 changed files with 90 additions and 23 deletions

View File

@@ -25,10 +25,6 @@
#include "nvim/rbuffer_defs.h"
#include "nvim/types_defs.h"
#ifdef MSWIN
# include "nvim/os/os_win_console.h"
#endif
#ifdef HAVE_SYS_UIO_H
# include <sys/uio.h>
#endif
@@ -179,17 +175,7 @@ FileDescriptor *file_open_stdin(void)
FUNC_ATTR_MALLOC FUNC_ATTR_WARN_UNUSED_RESULT
{
int error;
int stdin_dup_fd;
if (stdin_fd > 0) {
stdin_dup_fd = stdin_fd;
} else {
stdin_dup_fd = os_dup(STDIN_FILENO);
#ifdef MSWIN
// Replace the original stdin with the console input handle.
os_replace_stdin_to_conin();
#endif
}
FileDescriptor *const stdin_dup = file_open_fd_new(&error, stdin_dup_fd,
FileDescriptor *const stdin_dup = file_open_fd_new(&error, os_open_stdin_fd(),
kFileReadOnly|kFileNonBlocking);
assert(stdin_dup != NULL);
if (error != 0) {