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 <[email protected]>
> > ---
> >  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


_______________________________________________
Quilt-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/quilt-dev

Reply via email to