diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-06-26 10:50:16 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-06-26 10:50:16 -0400 |
commit | 45bfd0ac7bd2afa83600df9c1286a1642bb15c55 (patch) | |
tree | adf9156b80e49def0ff60a44774114fb1273f8b4 | |
parent | 328584804edc950fb4608c9a38e396ac71ef22b6 (diff) |
tools lib: Adopt strim() from the kernel
Since we're working on moving stuff out of tools/perf/util/ to
tools/lib/, take the opportunity to adopt routines from the kernel that
are equivalent, so that tools/ code look more like the kernel.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: André Goddard Rosa <andre.goddard@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-zqy1zdu2ok17qvi0ytk8z13c@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/include/linux/string.h | 2 | ||||
-rw-r--r-- | tools/lib/string.c | 25 |
2 files changed, 27 insertions, 0 deletions
diff --git a/tools/include/linux/string.h b/tools/include/linux/string.h index cee239350a6b..e436f8037c87 100644 --- a/tools/include/linux/string.h +++ b/tools/include/linux/string.h | |||
@@ -31,4 +31,6 @@ static inline bool strstarts(const char *str, const char *prefix) | |||
31 | 31 | ||
32 | extern char * __must_check skip_spaces(const char *); | 32 | extern char * __must_check skip_spaces(const char *); |
33 | 33 | ||
34 | extern char *strim(char *); | ||
35 | |||
34 | #endif /* _TOOLS_LINUX_STRING_H_ */ | 36 | #endif /* _TOOLS_LINUX_STRING_H_ */ |
diff --git a/tools/lib/string.c b/tools/lib/string.c index 50d400822bb3..80472e6b3829 100644 --- a/tools/lib/string.c +++ b/tools/lib/string.c | |||
@@ -120,3 +120,28 @@ char *skip_spaces(const char *str) | |||
120 | ++str; | 120 | ++str; |
121 | return (char *)str; | 121 | return (char *)str; |
122 | } | 122 | } |
123 | |||
124 | /** | ||
125 | * strim - Removes leading and trailing whitespace from @s. | ||
126 | * @s: The string to be stripped. | ||
127 | * | ||
128 | * Note that the first trailing whitespace is replaced with a %NUL-terminator | ||
129 | * in the given string @s. Returns a pointer to the first non-whitespace | ||
130 | * character in @s. | ||
131 | */ | ||
132 | char *strim(char *s) | ||
133 | { | ||
134 | size_t size; | ||
135 | char *end; | ||
136 | |||
137 | size = strlen(s); | ||
138 | if (!size) | ||
139 | return s; | ||
140 | |||
141 | end = s + size - 1; | ||
142 | while (end >= s && isspace(*end)) | ||
143 | end--; | ||
144 | *(end + 1) = '\0'; | ||
145 | |||
146 | return skip_spaces(s); | ||
147 | } | ||