diff options
Diffstat (limited to 'slice.c')
-rw-r--r-- | slice.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -37,8 +37,22 @@ slice_sub(Slice src, int begin, int end) int slice_equal(Slice s0, Slice s1) { - if (s0.end - s0.begin != s1.end - s1.begin) + if (slice_len(s0) != slice_len(s1)) return 0; return 0 == - strncmp(s0.str + s0.begin, s1.str + s1.begin, s0.end - s0.begin); + strncmp(s0.str + s0.begin, s1.str + s1.begin, slice_len(s0)); +} + +int +slice_len(Slice slice) +{ + return slice.end - slice.begin; +} + +void * +slice_cpy(void *dest, Slice slice) +{ + memcpy(dest, slice.str + slice.begin, slice_len(slice)); + ((char*)dest)[slice_len(slice)] = '\0'; + return dest; } |