summary refs log tree commit diff
path: root/strv.c
blob: 5da11f57edfa23f5a45f01ecac45990aa060c504 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <string.h>

#include "strv.h"

strv_t strv_head(strv_t ss, int chr, size_t *i) {
	size_t j = i ? *i : 0;
	char *c = memchr(&ss.s[j], chr, ss.n - j);
	strv_t r = {
		&ss.s[j],
		c ? c - &ss.s[j] : ss.n - j
	};
	if (i) *i = j + r.n + !!c;
	return r;
}