dovecot-2.0: var_has_key(): Small code cleanup.
dovecot at dovecot.org
dovecot at dovecot.org
Mon Apr 5 09:18:17 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/462376c65e73
changeset: 11073:462376c65e73
user: Timo Sirainen <tss at iki.fi>
date: Mon Apr 05 09:17:31 2010 +0300
description:
var_has_key(): Small code cleanup.
diffstat:
src/lib/var-expand.c | 28 +++++++++++++++++++++-------
1 files changed, 21 insertions(+), 7 deletions(-)
diffs (48 lines):
diff -r 7d76f4a9c5c8 -r 462376c65e73 src/lib/var-expand.c
--- a/src/lib/var-expand.c Mon Apr 05 09:16:56 2010 +0300
+++ b/src/lib/var-expand.c Mon Apr 05 09:17:31 2010 +0300
@@ -332,9 +332,27 @@
return *str;
}
+static bool var_has_long_key(const char **str, const char *long_key)
+{
+ const char *start, *end;
+
+ start = strchr(*str, '{');
+ i_assert(start != NULL);
+
+ end = strchr(++start, '}');
+ if (end == NULL)
+ return FALSE;
+
+ if (strncmp(start, long_key, end-start) == 0 &&
+ long_key[end-start] == '\0')
+ return TRUE;
+
+ *str = end;
+ return FALSE;
+}
+
bool var_has_key(const char *str, char key, const char *long_key)
{
- const char *end;
char c;
for (; *str != '\0'; str++) {
@@ -344,13 +362,9 @@
if (c == key)
return TRUE;
- if (c == '{' && long_key != NULL &&
- (str = strchr(str, '{')) != NULL &&
- (end = strchr(++str, '}')) != NULL) {
- if (strncmp(str, long_key, end-str) == 0 &&
- long_key[end-str] == '\0')
+ if (c == '{' && long_key != NULL) {
+ if (var_has_long_key(&str, long_key))
return TRUE;
- str = end;
}
}
}
More information about the dovecot-cvs
mailing list