From: Junio C Hamano Date: Wed, 08 Jun 2016 17:34:14 GMT Subject: Re: [PATCH v4 2/6] t9001: check email address is in Cc: field Message-ID: In-Reply-To: <20160608130142.29879-3-samuel.groot@grenoble-inp.org> Samuel GROOT writes: > Check if the given utf-8 email address is in the Cc: field. > > Signed-off-by: Tom RUSSELLO > Signed-off-by: Samuel GROOT > Signed-off-by: Matthieu MOY > --- > t/t9001-send-email.sh | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh > index 56ad8ce..943e6b7 100755 > --- a/t/t9001-send-email.sh > +++ b/t/t9001-send-email.sh > @@ -888,8 +888,8 @@ test_expect_success $PREREQ 'utf8 Cc is rfc2047 encoded' ' > --to=nobody@example.com \ > --smtp-server="$(pwd)/fake.sendmail" \ > outdir/*.patch && > - grep "^ " msgtxt1 | > - grep "=?UTF-8?q?=C3=A0=C3=A9=C3=AC=C3=B6=C3=BA?= " > + cc_adr=$(awk "/^Cc: /{flag=1}/^Subject: /{flag=0} flag {print}" msgtxt1) && > + echo "$cc_adr" | fgrep "=?UTF-8?q?=C3=A0=C3=A9=C3=AC=C3=B6=C3=BA?= " > ' This still depends on that the output has Cc: before Subject: and there is no other header that can have an address on it. E.g. To: a@example.com Cc: b@example.com X-foo: <> Subject: [PATCH] A sample patch would still say that the address is _on_ the CC: list. I do not usually do awk, but I think you should be able to avoid capturing output from it, echoing and then grepping, which is way too ugly. Perhaps you can start from something like below? #!/bin/sh awk ' BEGIN { in_cc = 0 } /^[Cc][Cc]: / { sub("^[Cc][Cc]: *", "") in_cc = 1 } /^[^ ]*:/ { in_cc = 0 } /^$/ { exit } in_cc { sub("^ *", "") sub(", *$", "") print } ' <<\EOF To: a@example.com Cc: b@example.com, c@example.com, d@example.com X-foo: e@example.com Subject: [PATCH] A sample patch Cc: foo@example.com EOF