# HG changeset patch # User Timo Sirainen # Date 1120403356 -10800 # Node ID b7ce2532250abb5a2a2b63ba90a7cb453bcbb15a # Parent e8cbf3ae00db964e6ba474c31b2b14bbe8290987 Added mail_cache_register_get_list() to get a list of all registered fields in cache file. diff -r e8cbf3ae00db -r b7ce2532250a src/lib-index/mail-cache-fields.c --- a/src/lib-index/mail-cache-fields.c Sun Jul 03 17:18:53 2005 +0300 +++ b/src/lib-index/mail-cache-fields.c Sun Jul 03 18:09:16 2005 +0300 @@ -85,6 +85,21 @@ return (unsigned int)-1; } +const struct mail_cache_field * +mail_cache_register_get_list(struct mail_cache *cache, pool_t pool, + unsigned int *count_r) +{ + struct mail_cache_field *list; + unsigned int i; + + list = p_new(pool, struct mail_cache_field, cache->fields_count); + for (i = 0; i < cache->fields_count; i++) + list[i] = cache->fields[i].field; + + *count_r = cache->fields_count; + return list; +} + static int mail_cache_header_fields_get_offset(struct mail_cache *cache, uint32_t *offset_r) { diff -r e8cbf3ae00db -r b7ce2532250a src/lib-index/mail-cache.h --- a/src/lib-index/mail-cache.h Sun Jul 03 17:18:53 2005 +0300 +++ b/src/lib-index/mail-cache.h Sun Jul 03 18:09:16 2005 +0300 @@ -49,6 +49,10 @@ /* Returns registered field index, or (unsigned int)-1 if not found. */ unsigned int mail_cache_register_lookup(struct mail_cache *cache, const char *name); +/* Returns a list of all registered fields */ +const struct mail_cache_field * +mail_cache_register_get_list(struct mail_cache *cache, pool_t pool, + unsigned int *count_r); /* Returns TRUE if cache should be compressed. */ int mail_cache_need_compress(struct mail_cache *cache);