]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-imap: Add imap_str_is_atom()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 12 Apr 2026 20:24:47 +0000 (23:24 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Fri, 1 May 2026 06:08:53 +0000 (06:08 +0000)
src/lib-imap/imap-arg.c
src/lib-imap/imap-arg.h

index 0b947ce81421cd1a910bf656db6cf916d5558689..a306eb2a6529b635e1a8ff1a1092295511f561d0 100644 (file)
@@ -135,3 +135,14 @@ bool imap_arg_atom_equals(const struct imap_arg *arg, const char *str)
                return FALSE;
        return strcasecmp(value, str) == 0;
 }
+
+bool imap_str_is_atom(const char *str)
+{
+       if (*str == '\0')
+               return FALSE;
+       for (; *str != '\0'; str++) {
+               if (!IS_ATOM_CHAR(*str))
+                       return FALSE;
+       }
+       return TRUE;
+}
index d55ee154f0c4fe5e739dd51ea60b4213585fca2e..1207c903aba318beb9fa3b418e591848c713ca5d 100644 (file)
@@ -105,4 +105,7 @@ const struct imap_arg *imap_arg_as_list(const struct imap_arg *arg);
 /* Returns TRUE if arg is atom and case-insensitively matches str */
 bool imap_arg_atom_equals(const struct imap_arg *arg, const char *str);
 
+/* Returns TRUE if str contains only valid IMAP ATOM characters (non-empty) */
+bool imap_str_is_atom(const char *str);
+
 #endif