[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Quilt-dev] [PATCH] quilt/mail: remove procmail dependency
From: |
Kent R. Spillner |
Subject: |
Re: [Quilt-dev] [PATCH] quilt/mail: remove procmail dependency |
Date: |
Tue, 27 Jan 2015 08:02:31 -0600 |
Yes, in fact I had that originally but changed it to be a little easier to
read. If you prefer the single invocation version then that's absolutely fine
by me. Thanks, Jean and Martin! :)
> On Jan 27, 2015, at 06:05, Jean Delvare <address@hidden> wrote:
>
> Hi Kent, Martin,
>
>>> On Mon, Jan 26, 2015 at 06:01:09PM -0600, Kent R. Spillner wrote:
>>> quilt depends on procmail because 'quilt mail' requires formail.
>>> However, formail is only used to extract header values from messages.
>>> Since quilt already requires sed we can replace formail -x uses with
>>> sed instead. The sed script is slightly complicated because it
>>> needs to handle the case of "Long Header Fields" definied in RFC
>>> 2822, but essentially all it's doing is: look for the first line
>>> beginning with the name of header we are looking for, and print
>>> every line until one that does not start with blanks.
>>>
>>> Signed-off-by: Kent R. Spillner <address@hidden>
>>> ---
>>> po/de.po | 4 ----
>>> po/fr.po | 6 ------
>>> po/ja.po | 4 ----
>>> po/quilt.pot | 4 ----
>>> po/ru.po | 4 ----
>>> quilt/mail.in | 33 +++++++++++++++++++++------------
>>> 6 files changed, 21 insertions(+), 34 deletions(-)
>
>> Le Tuesday 27 January 2015 à 08:40 +0100, Martin Quinson a écrit :
>> Hello,
>>
>> I've read the patch, and it seems ok to me. Many thanks for that.
>
> I like it too, however I am not so happy with sed being called twice. I
> think we should be able to achieve the same with a single call.
>
>>> +# Extract RFC 2822 compliant header values, including Long Header Fields,
>>> +# from messages
>>> +
>>> +extract_header_value()
>>> +{
>>> + local header=$1
>>> +
>>> + # Long Header Fields may span multiple lines, in which case CRLF
>>> + # is followed by space or tab (RFC 2822)
>>> + sed -n "/^${header}/,/^[^[:blank:]]/ { /^${header}/ { p; n; };
>>> /^[^[:blank:]]/q; /^$/q; p; }" | sed "s/^${header}//"
>>> +}
>>> +
>
> I think the following should work equally well?
>
> sed -n "/^${header}/,/^[^[:blank:]]/ { /^${header}/ { s/^${header}//p; n;
> }; /^[^[:blank:]]/q; /^$/q; p; }"
>
> --
> Jean Delvare
> SUSE L3 Support
>