Mercurial > dovecot > core-2.2
changeset 7646:f0dc2a3dee54 HEAD
Added seq_range_array_merge()
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 05 Jun 2008 05:02:01 +0300 |
parents | 3215e880909f |
children | 879208fdc7e3 |
files | src/lib/seq-range-array.c src/lib/seq-range-array.h |
diffstat | 2 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/seq-range-array.c Thu Jun 05 02:49:13 2008 +0300 +++ b/src/lib/seq-range-array.c Thu Jun 05 05:02:01 2008 +0300 @@ -138,6 +138,22 @@ } } +void seq_range_array_merge(ARRAY_TYPE(seq_range) *dest, + const ARRAY_TYPE(seq_range) *src) +{ + const struct seq_range *range; + unsigned int i, count; + + if (array_count(dest) == 0) { + array_append_array(dest, src); + return; + } + + range = array_get(src, &count); + for (i = 0; i < count; i++) + seq_range_array_add_range(dest, range[i].seq1, range[i].seq2); +} + bool seq_range_array_remove(ARRAY_TYPE(seq_range) *array, uint32_t seq) { struct seq_range *data, value;
--- a/src/lib/seq-range-array.h Thu Jun 05 02:49:13 2008 +0300 +++ b/src/lib/seq-range-array.h Thu Jun 05 05:02:01 2008 +0300 @@ -17,6 +17,8 @@ uint32_t seq); void seq_range_array_add_range(ARRAY_TYPE(seq_range) *array, uint32_t seq1, uint32_t seq2); +void seq_range_array_merge(ARRAY_TYPE(seq_range) *dest, + const ARRAY_TYPE(seq_range) *src); /* Remove given sequrence from range. Returns TRUE if it was found. */ bool seq_range_array_remove(ARRAY_TYPE(seq_range) *array, uint32_t seq); /* Remove a sequence range. Returns number of sequences actually removed. */