You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-misc/tmux/files/tmux-3.0-musl.patch

61 lines
1.8 KiB

From eb4d60b1ce0e2dc917bd47b10a3ce89de840448a Mon Sep 17 00:00:00 2001
From: nicm <nicm>
Date: Wed, 27 Nov 2019 20:54:30 +0000
Subject: [PATCH] REG_STARTEND is not portable, but it turns out we don't
actually need it. From Evan Green, GitHub issue 1982.
---
regsub.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/regsub.c b/regsub.c
index 199b21714..22e236dc7 100644
--- a/regsub.c
+++ b/regsub.c
@@ -77,10 +77,7 @@ regsub(const char *pattern, const char *with, const char *text, int flags)
end = strlen(text);
while (start <= end) {
- m[0].rm_so = start;
- m[0].rm_eo = end;
-
- if (regexec(&r, text, nitems(m), m, REG_STARTEND) != 0) {
+ if (regexec(&r, text + start, nitems(m), m, 0) != 0) {
regsub_copy(&buf, &len, text, start, end);
break;
}
@@ -89,22 +86,25 @@ regsub(const char *pattern, const char *with, const char *text, int flags)
* Append any text not part of this match (from the end of the
* last match).
*/
- regsub_copy(&buf, &len, text, last, m[0].rm_so);
+ regsub_copy(&buf, &len, text, last, m[0].rm_so + start);
/*
* If the last match was empty and this one isn't (it is either
* later or has matched text), expand this match. If it is
* empty, move on one character and try again from there.
*/
- if (empty || m[0].rm_so != last || m[0].rm_so != m[0].rm_eo) {
- regsub_expand(&buf, &len, with, text, m, nitems(m));
-
- last = m[0].rm_eo;
- start = m[0].rm_eo;
+ if (empty ||
+ start + m[0].rm_so != last ||
+ m[0].rm_so != m[0].rm_eo) {
+ regsub_expand(&buf, &len, with, text + start, m,
+ nitems(m));
+
+ last = start + m[0].rm_eo;
+ start += m[0].rm_eo;
empty = 0;
} else {
- last = m[0].rm_eo;
- start = m[0].rm_eo + 1;
+ last = start + m[0].rm_eo;
+ start += m[0].rm_eo + 1;
empty = 1;
}