]> code.citadel.org Git - citadel.git/commitdiff
* lots of small commits
authorArt Cancro <ajc@citadel.org>
Wed, 25 Oct 2000 18:52:51 +0000 (18:52 +0000)
committerArt Cancro <ajc@citadel.org>
Wed, 25 Oct 2000 18:52:51 +0000 (18:52 +0000)
citadel/imap_fetch.c

index c79426b73b2c327830e87197fce85aa7b5dc6a45..2bdcacb00a99d1155854bf02b779d10ffde2dd55 100644 (file)
@@ -372,9 +372,10 @@ int imap_extract_data_items(char **argv, char *items) {
  */
 void imap_pick_range(char *range) {
        int i;
-       int lo = 0;
-       int hi = 0;
-       char lostr[1024], histr[1024];
+       int num_sets;
+       int s;
+       char setstr[1024], lostr[1024], histr[1024];
+       int lo, hi;
 
        /*
         * Clear out the IMAP_FETCHED flags for all messages.
@@ -384,21 +385,27 @@ void imap_pick_range(char *range) {
        }
 
        /*
-        * Now figure out which messages we need to set IMAP_FETCHED for.
+        * Now set it for all specified messages.
         */
-       extract_token(lostr, range, 0, ':');
-       lo = atoi(lostr);
-       extract_token(histr, range, 1, ':');
-       if (!strcmp(histr, "*")) {
-               hi = IMAP->num_msgs;
-       }
-       else {
+       num_sets = num_tokens(range, ',');
+       for (s=0; s<num_sets; ++s) {
+               extract_token(setstr, range, s, ',');
+
+               extract_token(lostr, setstr, 0, ':');
+               if (num_tokens(setstr, ':') >= 2) {
+                       extract_token(histr, setstr, 1, ':');
+               } 
+               else {
+                       strcpy(histr, lostr);
+               }
+               lo = atoi(lostr);
                hi = atoi(histr);
-       }
 
-       for (i = 1; i <= IMAP->num_msgs; ++i) {
-               if ( (i>=lo) && (i<=hi) ) {
-                       IMAP->flags[i-1] = IMAP->flags[i-1] | IMAP_FETCHED;
+               for (i = 1; i <= IMAP->num_msgs; ++i) {
+                       if ( (i>=lo) && (i<=hi)) {
+                               IMAP->flags[i-1] =
+                                       IMAP->flags[i-1] | IMAP_FETCHED;
+                       }
                }
        }
 }