Re: [PATCH v4 2/6] t9001: check email address is in Cc: field
On 06/08/2016 07:34 PM, Junio C Hamano wrote:
Show 24 quoted lines
> Samuel GROOT <samuel.groot@grenoble-inp.org> writes:
>> 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?= <utf8@example.com>"
>> + 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?= <utf8@example.com>"
>> '
>
> 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: <<whatever address you are looking for>>
> Subject: [PATCH] A sample patch
>
> would still say that the address is _on_ the CC: list.We thought of that but did not find the proper way to do it.
Show 30 quoted lines
> 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
> EOFThanks, I will work on that :-)