[pulseaudio-discuss] [PATCH v7 02/33] pulsecore: Add pa_split_space_in_place function

Hajime Fujita crisp.fujita at gmail.com
Sun Nov 6 18:53:56 UTC 2016


From: Hajime Fujita <crisp.fujita at nifty.com>

---
 src/pulsecore/core-util.c | 19 +++++++++++++++++++
 src/pulsecore/core-util.h |  1 +
 2 files changed, 20 insertions(+)

diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index f2999b2..9d571b8 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -1121,6 +1121,25 @@ char *pa_split_spaces(const char *c, const char **state) {
     return pa_xstrndup(current, l);
 }
 
+/* Similar to pa_split_spaces, except this returns a string in-place.
+   Returned string is generally not NULL-terminated.
+   See pa_split_in_place(). */
+const char *pa_split_spaces_in_place(const char *c, int *n, const char **state) {
+    const char *current = *state ? *state : c;
+    size_t l;
+
+    if (!*current || *c == 0)
+        return NULL;
+
+    current += strspn(current, WHITESPACE);
+    l = strcspn(current, WHITESPACE);
+
+    *state = current+l;
+
+    *n = l;
+    return current;
+}
+
 PA_STATIC_TLS_DECLARE(signame, pa_xfree);
 
 /* Return the name of an UNIX signal. Similar to Solaris sig2str() */
diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h
index be023a8..e28b6aa 100644
--- a/src/pulsecore/core-util.h
+++ b/src/pulsecore/core-util.h
@@ -112,6 +112,7 @@ static inline const char *pa_strna(const char *x) {
 char *pa_split(const char *c, const char *delimiters, const char **state);
 const char *pa_split_in_place(const char *c, const char *delimiters, int *n, const char **state);
 char *pa_split_spaces(const char *c, const char **state);
+const char *pa_split_spaces_in_place(const char *c, int *n, const char **state);
 
 char *pa_strip_nl(char *s);
 char *pa_strip(char *s);
-- 
2.9.3



More information about the pulseaudio-discuss mailing list