forked from pool/reproc
Dirk Mueller
20a340dff9
* 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
137 lines
3.7 KiB
Diff
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;
|