/[mailutils]/mailutils/libsieve/util.c
ViewVC logotype

Diff of /mailutils/libsieve/util.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by gray, Thu Nov 14 07:17:44 2002 UTC revision 1.6 by gray, Thu Nov 14 14:50:48 2002 UTC
# Line 338  tag_printer (sieve_runtime_tag_t *val, s Line 338  tag_printer (sieve_runtime_tag_t *val, s
338        sieve_debug_internal (dbg->printer, dbg->data, ")");        sieve_debug_internal (dbg->printer, dbg->data, ")");
339      }      }
340    sieve_debug_internal (dbg->printer, dbg->data, " ");    sieve_debug_internal (dbg->printer, dbg->data, " ");
341      return 0;
342  }  }
343    
344  void  void
# Line 370  sieve_mark_deleted (message_t msg, int d Line 371  sieve_mark_deleted (message_t msg, int d
371    return rc;    return rc;
372  }  }
373    
374    int
375    sieve_vlist_do (sieve_value_t *val, list_action_t *ac, void *data)
376    {
377      switch (val->type)
378        {
379        case SVT_VALUE_LIST:
380        case SVT_STRING_LIST:
381          return list_do (val->v.list, ac, data);
382          
383        default:
384          return -1;
385        }
386    }
387    
388    struct comp_data {
389      sieve_value_t *val;
390      sieve_comparator_t comp;
391      sieve_retrieve_t retr;
392      void *data;
393    };
394    
395    struct comp_data2 {
396      char *sample;
397      sieve_comparator_t comp;
398    };
399    
400    int
401    _comp_action2 (void *item, void *data)
402    {
403      struct comp_data2 *cp = data;
404      return cp->comp (item, cp->sample);
405    }
406    
407    int
408    _comp_action (void *item, void *data)
409    {
410      struct comp_data *cp = data;
411      struct comp_data2 d;
412      int rc;
413      
414      if (cp->retr (item, cp->data, &d.sample))
415        return 0;
416      d.comp = cp->comp;
417      rc = sieve_vlist_do (cp->val, _comp_action2, &d);
418      free (d.sample);
419      return rc;
420    }
421    
422    int
423    sieve_vlist_compare (sieve_value_t *a, sieve_value_t *b,
424                         sieve_comparator_t comp, sieve_retrieve_t retr,
425                         void *data)
426    {
427      struct comp_data d;
428    
429      d.comp = comp;
430      d.retr = retr;
431      d.data = data;
432      d.val = b;
433      return sieve_vlist_do (a, _comp_action, &d);
434    }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26