SHA256
1
0
forked from pool/reproc
reproc/gcc13.patch
Dirk Mueller 20a340dff9 - update to 14.2.5:
* reproc_strerror: avoid undefined behaviour for error == INT_MIN
- drop gcc13.patch (upstream)
- update to 14.1.0

OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/reproc?expand=0&rev=10
2024-09-10 13:26:25 +00:00

137 lines
3.7 KiB
Diff

From 0b23d88894ccedde04537fa23ea55cb2f8365342 Mon Sep 17 00:00:00 2001
From: Daan De Meyer <daan.j.demeyer@gmail.com>
Date: Sat, 18 Mar 2023 19:38:19 +0100
Subject: [PATCH] reproc++: Try to fix gcc 13 build
---
reproc++/include/reproc++/reproc.hpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Index: reproc-14.2.4/reproc++/include/reproc++/reproc.hpp
===================================================================
--- reproc-14.2.4.orig/reproc++/include/reproc++/reproc.hpp
+++ reproc-14.2.4/reproc++/include/reproc++/reproc.hpp
@@ -88,7 +88,7 @@ struct redirect {
struct options {
struct {
- env::type behavior;
+ enum env::type behavior;
/*! Implicitly converts from any STL container of string pairs to the
environment format expected by `reproc_start`. */
class env extra;
@@ -97,9 +97,9 @@ struct options {
const char *working_directory = nullptr;
struct {
- redirect in;
- redirect out;
- redirect err;
+ struct redirect in;
+ struct redirect out;
+ struct redirect err;
bool parent;
bool discard;
FILE *file;
@@ -138,30 +138,12 @@ enum class stream {
err,
};
-class process;
-
namespace event {
-enum {
- in = 1 << 0,
- out = 1 << 1,
- err = 1 << 2,
- exit = 1 << 3,
- deadline = 1 << 4,
-};
-
-struct source {
- class process &process;
- int interests;
- int events;
-};
+class source;
}
-REPROCXX_EXPORT std::error_code poll(event::source *sources,
- size_t num_sources,
- milliseconds timeout = infinite);
-
/*! Improves on reproc's API by adding RAII and changing the API of some
functions to be more idiomatic C++. */
class process {
@@ -220,4 +202,26 @@ private:
std::unique_ptr<reproc_t, reproc_t *(*) (reproc_t *)> impl_;
};
+namespace event {
+
+enum {
+ in = 1 << 0,
+ out = 1 << 1,
+ err = 1 << 2,
+ exit = 1 << 3,
+ deadline = 1 << 4,
+};
+
+struct source {
+ class process process;
+ int interests;
+ int events;
+};
+
+}
+
+REPROCXX_EXPORT std::error_code poll(event::source *sources,
+ size_t num_sources,
+ milliseconds timeout = infinite);
+
}
Index: reproc-14.2.4/reproc++/src/reproc.cpp
===================================================================
--- reproc-14.2.4.orig/reproc++/src/reproc.cpp
+++ reproc-14.2.4/reproc++/src/reproc.cpp
@@ -86,8 +86,9 @@ std::pair<bool, std::error_code> process
std::pair<int, std::error_code> process::poll(int interests,
milliseconds timeout)
{
- event::source source{ *this, interests, 0 };
+ event::source source{ std::move(*this), interests, 0 };
std::error_code ec = ::reproc::poll(&source, 1, timeout);
+ *this = std::move(source.process);
return { source.events, ec };
}
From 9f399675b821e175f85ac3ee6e3fd2e6056573eb Mon Sep 17 00:00:00 2001
From: Daan De Meyer <daan.j.demeyer@gmail.com>
Date: Fri, 21 Apr 2023 19:36:45 +0200
Subject: [PATCH] Fix gcc 13 build
---
reproc++/include/reproc++/reproc.hpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/reproc++/include/reproc++/reproc.hpp b/reproc++/include/reproc++/reproc.hpp
index b52f495e..7b614a94 100644
--- a/reproc++/include/reproc++/reproc.hpp
+++ b/reproc++/include/reproc++/reproc.hpp
@@ -88,10 +88,10 @@ struct redirect {
struct options {
struct {
- enum env::type behavior;
+ reproc::env::type behavior;
/*! Implicitly converts from any STL container of string pairs to the
environment format expected by `reproc_start`. */
- class env extra;
+ reproc::env extra;
} env = {};
const char *working_directory = nullptr;