aboutsummaryrefslogtreecommitdiffstats
path: root/android/utils
diff options
context:
space:
mode:
Diffstat (limited to 'android/utils')
-rw-r--r--android/utils/stralloc.c36
-rw-r--r--android/utils/stralloc.h5
2 files changed, 40 insertions, 1 deletions
diff --git a/android/utils/stralloc.c b/android/utils/stralloc.c
index 2a924e4..ce5d800 100644
--- a/android/utils/stralloc.c
+++ b/android/utils/stralloc.c
@@ -19,7 +19,7 @@
#include <limits.h>
extern void
-stralloc_tabular( stralloc_t* out,
+stralloc_tabular( stralloc_t* out,
const char** strings, int count,
const char* prefix, int width )
{
@@ -138,6 +138,40 @@ stralloc_cstr( stralloc_t* s )
return s->s;
}
+void
+stralloc_lstrip( stralloc_t* s )
+{
+ int count;
+
+ for (count = 0; count < s->n; count++) {
+ if (s->s[count] != ' ' && s->s[count] != '\t')
+ break;
+ }
+
+ if (count > 0) {
+ memmove(s->s, s->s + count, s->n - count);
+ s->n -= count;
+ }
+}
+
+void
+stralloc_rstrip( stralloc_t* s )
+{
+ int count = s->n;
+
+ while (count > 0 && (s->s[count-1] == ' ' || s->s[count-1] == '\t'))
+ count--;
+
+ s->n = count;
+}
+
+void
+stralloc_strip( stralloc_t* s )
+{
+ stralloc_rstrip(s);
+ stralloc_lstrip(s);
+}
+
extern char*
stralloc_to_tempstr( stralloc_t* s )
{
diff --git a/android/utils/stralloc.h b/android/utils/stralloc.h
index 4d17060..626a638 100644
--- a/android/utils/stralloc.h
+++ b/android/utils/stralloc.h
@@ -52,6 +52,11 @@ extern void stralloc_add_quote_bytes( stralloc_t* s, const void* from, unsig
extern void stralloc_add_hex( stralloc_t* s, unsigned value, int num_digits );
extern void stralloc_add_hexdump( stralloc_t* s, void* base, int size, const char* prefix );
+/* Remove leading, trailing or leading+trailing whitespace */
+extern void stralloc_lstrip( stralloc_t* s );
+extern void stralloc_rstrip( stralloc_t* s );
+extern void stralloc_strip( stralloc_t* s );
+
extern void stralloc_tabular( stralloc_t* s, const char** strings, int count,
const char* prefix, int width );