]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-imap: Added imap_seq_set_nostar_parse()
authorTimo Sirainen <tss@iki.fi>
Mon, 23 Aug 2010 14:28:35 +0000 (15:28 +0100)
committerTimo Sirainen <tss@iki.fi>
Mon, 23 Aug 2010 14:28:35 +0000 (15:28 +0100)
src/lib-imap/imap-seqset.c
src/lib-imap/imap-seqset.h

index 33ece9c8a22bcdde3e148bbc88f8c6cd73742cbf..87243fb42c764cc413e39548cadaeff2c2a6b783 100644 (file)
@@ -85,6 +85,18 @@ int imap_seq_set_parse(const char *str, ARRAY_TYPE(seq_range) *dest)
        return 0;
 }
 
+int imap_seq_set_nostar_parse(const char *str, ARRAY_TYPE(seq_range) *dest)
+{
+       if (imap_seq_set_parse(str, dest) < 0)
+               return -1;
+
+       if (seq_range_exists(dest, (uint32_t)-1)) {
+               /* '*' used */
+               return -1;
+       }
+       return 0;
+}
+
 int imap_seq_range_parse(const char *str, uint32_t *seq1_r, uint32_t *seq2_r)
 {
        if (get_next_seq_range(&str, seq1_r, seq2_r) < 0)
index b92a4095855f65c6774b6026bbf74799ce09036a..a7e1ffd93d02c4901b55d3a4a149ea928f3f04c0 100644 (file)
@@ -6,6 +6,8 @@
 /* Parse IMAP sequence-set and store the result in dest. '*' is stored as
    (uint32_t)-1. Returns 0 if successful, -1 if input is invalid. */
 int imap_seq_set_parse(const char *str, ARRAY_TYPE(seq_range) *dest);
+/* Like imap_seq_set_parse(), but fail if '*' is used. */
+int imap_seq_set_nostar_parse(const char *str, ARRAY_TYPE(seq_range) *dest);
 
 /* Parse IMAP seq-number / seq-range. */
 int imap_seq_range_parse(const char *str, uint32_t *seq1_r, uint32_t *seq2_r);