]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Added settings_parse_is_changed().
authorTimo Sirainen <tss@iki.fi>
Fri, 19 Mar 2010 18:55:22 +0000 (20:55 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 19 Mar 2010 18:55:22 +0000 (20:55 +0200)
--HG--
branch : HEAD

src/lib-settings/settings-parser.c
src/lib-settings/settings-parser.h

index b0012693b63692657a98ebdd69066651a348c3e8..5341cd3728aa86aa0803ffca7a3173940b2f4d27 100644 (file)
@@ -728,6 +728,22 @@ settings_parse_get_value(struct setting_parser_context *ctx,
        return STRUCT_MEMBER_P(link->set_struct, def->offset);
 }
 
+bool settings_parse_is_changed(struct setting_parser_context *ctx,
+                              const char *key)
+{
+       const struct setting_define *def;
+       struct setting_link *link;
+       const unsigned char *p;
+
+       if (!settings_find_key(ctx, key, &def, &link))
+               return NULL;
+       if (link->change_struct == NULL)
+               return FALSE;
+
+       p = STRUCT_MEMBER_P(link->change_struct, def->offset);
+       return *p;
+}
+
 int settings_parse_line(struct setting_parser_context *ctx, const char *line)
 {
        const char *key, *value;
index 59aebf249d60c351f6ebdedb69e59370e9620b77..abc7522634535a083d60bff190c2e58718725f88 100644 (file)
@@ -128,6 +128,9 @@ bool settings_parse_is_valid_key(struct setting_parser_context *ctx,
 const void *
 settings_parse_get_value(struct setting_parser_context *ctx,
                         const char *key, enum setting_type *type_r);
+/* Returns TRUE if setting has been changed by this parser. */
+bool settings_parse_is_changed(struct setting_parser_context *ctx,
+                              const char *key);
 /* Parse a single line. Returns 1 if OK, 0 if key is unknown, -1 if error. */
 int settings_parse_line(struct setting_parser_context *ctx, const char *line);
 /* Parse data already read in input stream. */