Code

utils strbuf: Added sdb_strbuf_skip().
[sysdb.git] / src / utils / strbuf.c
index bffcfc633c1b6669d391627ad67526d01e61c28f..2b64480c55fc5960c816f83ef3a6b3bf626c1faf 100644 (file)
@@ -268,6 +268,24 @@ sdb_strbuf_chomp(sdb_strbuf_t *strbuf)
        return ret;
 } /* sdb_strbuf_chomp */
 
+void
+sdb_strbuf_skip(sdb_strbuf_t *strbuf, size_t n)
+{
+       if ((! strbuf) || (! n))
+               return;
+
+       if (n >= strbuf->pos) {
+               strbuf->string[0] = '\0';
+               strbuf->pos = 0;
+               return;
+       }
+
+       assert(n < strbuf->pos);
+       memmove(strbuf->string, strbuf->string + n, strbuf->pos - n);
+       strbuf->pos -= n;
+       strbuf->string[strbuf->pos] = '\0';
+} /* sdb_strbuf_skip */
+
 const char *
 sdb_strbuf_string(sdb_strbuf_t *strbuf)
 {