[<prev] [next>] [day] [month] [year] [list]
Message-ID: <tip-x3r61ikjrso1buygxwke8id3@git.kernel.org>
Date: Wed, 3 Jul 2019 07:25:38 -0700
From: tip-bot for Arnaldo Carvalho de Melo <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: acme@...hat.com, jolsa@...nel.org, tglx@...utronix.de,
linux-kernel@...r.kernel.org, namhyung@...nel.org,
mingo@...nel.org, adrian.hunter@...el.com, hpa@...or.com
Subject: [tip:perf/core] tools lib: Adopt strreplace() from the kernel
Commit-ID: 2a60689a33a61f000bd90596b1289babcb861cd9
Gitweb: https://git.kernel.org/tip/2a60689a33a61f000bd90596b1289babcb861cd9
Author: Arnaldo Carvalho de Melo <acme@...hat.com>
AuthorDate: Wed, 26 Jun 2019 12:24:03 -0300
Committer: Arnaldo Carvalho de Melo <acme@...hat.com>
CommitDate: Mon, 1 Jul 2019 22:50:40 -0300
tools lib: Adopt strreplace() from the kernel
We'll use it to further reduce the size of tools/perf/util/string.c,
replacing the strxfrchar() equivalent function we have there.
Cc: Adrian Hunter <adrian.hunter@...el.com>
Cc: Jiri Olsa <jolsa@...nel.org>
Cc: Namhyung Kim <namhyung@...nel.org>
Link: https://lkml.kernel.org/n/tip-x3r61ikjrso1buygxwke8id3@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
---
tools/include/linux/string.h | 2 ++
tools/lib/string.c | 16 ++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/tools/include/linux/string.h b/tools/include/linux/string.h
index e436f8037c87..a76d4df10435 100644
--- a/tools/include/linux/string.h
+++ b/tools/include/linux/string.h
@@ -19,6 +19,8 @@ extern size_t strlcpy(char *dest, const char *src, size_t size);
char *str_error_r(int errnum, char *buf, size_t buflen);
+char *strreplace(char *s, char old, char new);
+
/**
* strstarts - does @str start with @prefix?
* @str: string to examine
diff --git a/tools/lib/string.c b/tools/lib/string.c
index 80472e6b3829..f2ae1b87c719 100644
--- a/tools/lib/string.c
+++ b/tools/lib/string.c
@@ -145,3 +145,19 @@ char *strim(char *s)
return skip_spaces(s);
}
+
+/**
+ * strreplace - Replace all occurrences of character in string.
+ * @s: The string to operate on.
+ * @old: The character being replaced.
+ * @new: The character @old is replaced with.
+ *
+ * Returns pointer to the nul byte at the end of @s.
+ */
+char *strreplace(char *s, char old, char new)
+{
+ for (; *s; ++s)
+ if (*s == old)
+ *s = new;
+ return s;
+}
Powered by blists - more mailing lists