]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap-parser: Added IMAP_PARSE_FLAG_MULTILINE_STR flag.
authorTimo Sirainen <tss@iki.fi>
Wed, 18 Mar 2009 18:40:58 +0000 (14:40 -0400)
committerTimo Sirainen <tss@iki.fi>
Wed, 18 Mar 2009 18:40:58 +0000 (14:40 -0400)
--HG--
branch : HEAD

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

index a05897ad8cd899425ab5bfaf36e36f85f367c776..2d6bb85d1b1df0b6c012f086399039e61911eec4 100644 (file)
@@ -304,7 +304,8 @@ static int imap_parser_read_string(struct imap_parser *parser,
                /* check linebreaks here, so escaping CR/LF isn't possible.
                   string always ends with '"', so it's an error if we found
                   a linebreak.. */
-               if (is_linebreak(data[i])) {
+               if (is_linebreak(data[i]) &&
+                   (parser->flags & IMAP_PARSE_FLAG_MULTILINE_STR) == 0) {
                        parser->error = "Missing '\"'";
                        return FALSE;
                }
index 517aba5ac140d4d9dd9cbfadb8ba7a7f4aa4d6ad..5194f2fcb24d2458902004eeba9bc3064f55b16f 100644 (file)
@@ -28,7 +28,9 @@ enum imap_parser_flags {
        /* Return literals as IMAP_ARG_LITERAL instead of IMAP_ARG_STRING */
        IMAP_PARSE_FLAG_LITERAL_TYPE    = 0x04,
        /* Don't check if atom contains invalid characters */
-       IMAP_PARSE_FLAG_ATOM_ALLCHARS   = 0x08
+       IMAP_PARSE_FLAG_ATOM_ALLCHARS   = 0x08,
+       /* Allow strings to contain CRLFs */
+       IMAP_PARSE_FLAG_MULTILINE_STR   = 0x10
 };
 
 enum imap_arg_type {