Files
allwpilib/upstream_utils/fmt_patches/0001-Don-t-throw-on-write-failure.patch
Tyler Veness 8bd614bb1e [upstream_utils] Use "git am" instead of "git apply" for patches (#4248)
This creates actual commits in the thirdparty repo, which makes rebasing
them onto new versions much easier.
2022-05-18 12:23:15 -07:00

57 lines
2.0 KiB
Diff

From e92e91d28f2475b38f32f92d24b65eec195254a6 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Wed, 18 May 2022 10:21:49 -0700
Subject: [PATCH] Don't throw on write failure
---
include/fmt/format-inl.h | 3 +--
include/fmt/xchar.h | 3 +--
src/os.cc | 3 +--
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h
index 2c51c50a..cc89abdd 100644
--- a/include/fmt/format-inl.h
+++ b/include/fmt/format-inl.h
@@ -92,8 +92,7 @@ FMT_FUNC void report_error(format_func func, int error_code,
// A wrapper around fwrite that throws on error.
inline void fwrite_fully(const void* ptr, size_t size, size_t count,
FILE* stream) {
- size_t written = std::fwrite(ptr, size, count, stream);
- if (written < count) FMT_THROW(system_error(errno, "cannot write to file"));
+ std::fwrite(ptr, size, count, stream);
}
#ifndef FMT_STATIC_THOUSANDS_SEPARATOR
diff --git a/include/fmt/xchar.h b/include/fmt/xchar.h
index 55825077..9acb893f 100644
--- a/include/fmt/xchar.h
+++ b/include/fmt/xchar.h
@@ -207,8 +207,7 @@ inline void vprint(std::FILE* f, wstring_view fmt, wformat_args args) {
wmemory_buffer buffer;
detail::vformat_to(buffer, fmt, args);
buffer.push_back(L'\0');
- if (std::fputws(buffer.data(), f) == -1)
- FMT_THROW(system_error(errno, FMT_STRING("cannot write to file")));
+ std::fputws(buffer.data(), f);
}
inline void vprint(wstring_view fmt, wformat_args args) {
diff --git a/src/os.cc b/src/os.cc
index 04b4dc50..4eb3e1fd 100644
--- a/src/os.cc
+++ b/src/os.cc
@@ -277,8 +277,7 @@ std::size_t file::read(void* buffer, std::size_t count) {
std::size_t file::write(const void* buffer, std::size_t count) {
rwresult result = 0;
FMT_RETRY(result, FMT_POSIX_CALL(write(fd_, buffer, convert_rwcount(count))));
- if (result < 0) FMT_THROW(system_error(errno, "cannot write to file"));
- return detail::to_unsigned(result);
+ return count;
}
file file::dup(int fd) {
--
2.36.1