aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/main.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-05-28 13:03:00 +0200
committerbfredl <bjorn.linse@gmail.com>2024-05-28 13:06:35 +0200
commitff7f22c28b602c84350785624b4b6fc9ae35f950 (patch)
treeb2adc04224a5454ba257bc334e83ed1a29552e61 /src/nvim/main.c
parent90a4b1a59cf0c204cb39ec7789ab8783626e449d (diff)
downloadrneovim-ff7f22c28b602c84350785624b4b6fc9ae35f950.tar.gz
rneovim-ff7f22c28b602c84350785624b4b6fc9ae35f950.tar.bz2
rneovim-ff7f22c28b602c84350785624b4b6fc9ae35f950.zip
refactor(fileio): remove useless use of FileDescriptor
FileDescriptor is used to buffer togheter many small writes to fewer syscalls. if the data to write already is in a single buffer, it is perfectly fine to just use os_write directly (which will take care of the reverse problem: splitting a too big write into many syscalls)
Diffstat (limited to 'src/nvim/main.c')
-rw-r--r--src/nvim/main.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 17a0bbf082..cf1324d37f 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -1100,23 +1100,13 @@ static void command_line_scan(mparm_T *parmp)
// set stdout to binary to avoid crlf in --api-info output
_setmode(STDOUT_FILENO, _O_BINARY);
#endif
- FileDescriptor fp;
- const int fof_ret = file_open_fd(&fp, STDOUT_FILENO,
- kFileWriteOnly);
- if (fof_ret != 0) {
- semsg(_("E5421: Failed to open stdin: %s"), os_strerror(fof_ret));
- }
String data = api_metadata_raw();
- const ptrdiff_t written_bytes = file_write(&fp, data.data, data.size);
+ const ptrdiff_t written_bytes = os_write(STDOUT_FILENO, data.data, data.size, false);
if (written_bytes < 0) {
- msgpack_file_write_error((int)written_bytes);
+ semsg(_("E5420: Failed to write to file: %s"), os_strerror((int)written_bytes));
}
- const int ff_ret = file_flush(&fp);
- if (ff_ret < 0) {
- msgpack_file_write_error(ff_ret);
- }
os_exit(0);
} else if (STRICMP(argv[0] + argv_idx, "headless") == 0) {
headless_mode = true;