summaryrefslogtreecommitdiff
path: root/lib/string.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2022-08-03 22:33:35 -0400
committerSuren Baghdasaryan <surenb@google.com>2023-05-28 18:28:58 +0000
commit8d1010ab9d712a00081e7cc4b52c48f595a19262 (patch)
tree96962ac9ebb1c33c498f8caefbb156e29bb5a2a6 /lib/string.c
parentb8104094f7f3b297504b689681af0b006eac9a63 (diff)
lib/string.c: strsep_no_empty()
This adds a new helper which is like strsep, except that it skips empty tokens. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Diffstat (limited to 'lib/string.c')
-rw-r--r--lib/string.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/string.c b/lib/string.c
index 3d55ef890106..dd4914baf45a 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -520,6 +520,25 @@ char *strsep(char **s, const char *ct)
EXPORT_SYMBOL(strsep);
#endif
+/**
+ * strsep_no_empt - Split a string into tokens, but don't return empty tokens
+ * @s: The string to be searched
+ * @ct: The characters to search for
+ *
+ * strsep() updates @s to point after the token, ready for the next call.
+ */
+char *strsep_no_empty(char **s, const char *ct)
+{
+ char *ret;
+
+ do {
+ ret = strsep(s, ct);
+ } while (ret && !*ret);
+
+ return ret;
+}
+EXPORT_SYMBOL_GPL(strsep_no_empty);
+
#ifndef __HAVE_ARCH_MEMSET
/**
* memset - Fill a region of memory with the given value