Thanks for the feedback, I simply expected that addresses and
simple strings were treated differently.

Thorsten

On Mon, May 28, 2018 at 1:55 PM, Steffen Kaiser <skdovecot@inf.h-brs.de> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, 28 May 2018, Thorsten Hater wrote:

I stumbled upon the following behaviour of Pigeonhole, which I consider
to be problematic. A user deployed a Sieve script similar to the following
snippet

if not anyof (address :is ["from","cc"] ["...", ..., "...@...
GARBAGE", ...] {
 fileinto "inbox.Trash";
 stop;
}

Note the extra line break before GARBAGE. This script is obviously broken,
but gets accepted by sievec and only fails later, at runtime with

line X: error: found stray carriage-return (CR) character in quoted
   string started at line X.

So, the question is whether line breaks in strings are allowed in general
and the runtime error is unavoidable, or should sievec return an error?

https://www.ietf.org/rfc/rfc3028.txt first hit of quoted-string

 quoted-string = DQUOTE *CHAR DQUOTE
           ;; in general, \ CHAR inside a string maps to CHAR
           ;; so \" maps to " and \\ maps to \
           ;; note that newlines and other characters are all allowed
           ;; strings

So, it's correct. But the address should reject the CR. I guess, Pigeonhole triggers the error for sanity purpose?

- -- Steffen Kaiser
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEVAwUBWwvuQsQnQQNheMxiAQILoAgAyRjSObVJkrAmxzyLau9gIvvMOM2R++HP
pwsptIQ72xoYJOO/Lnd1TmfKTE9QYwtOGkSKr8tiJVD8JOpL5fUbB6mZNOTXkAv0
TOW2gA7v06nXq6K0ETum8anoKTIF0o4j5aQJ5yQ5CrzlVQqUwTsf4mVVNqK0hn/L
X5RAuCVQyx6sdvCB+lSOGmLv/fT8+xHS03U6jzCp/Yov5OKsT29oOOF6dXWR49Iw
BL+DOd9T37hHF6ENp4A5wxX6iCMKLsWL0f5xTcxwRK5GOiCDoUH6ZpiywD0PtCuT
VlusmbIByGON7foNlCPusTVcfq8GenMhOrgFcbp1PfRrShIQgsjWSg==
=vgR1
-----END PGP SIGNATURE-----