Re: [PATCH v4 2/6] t9001: check email address is in Cc: field
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 8, 2016, 17:34 UTC
- Message-ID
- <xmqqinxjmvop.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20160608130142.29879-3-samuel.groot@grenoble-inp.org>
Samuel GROOT <samuel.groot@grenoble-inp.org> writes:
Show 22 quoted lines
> Check if the given utf-8 email address is in the Cc: field.
>
> Signed-off-by: Tom RUSSELLO <tom.russello@grenoble-inp.org>
> Signed-off-by: Samuel GROOT <samuel.groot@grenoble-inp.org>
> Signed-off-by: Matthieu MOY <matthieu.moy@grenoble-inp.fr>
> ---
> 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?= <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 patchwould 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 patchCc: foo@example.com EOF