From: Samuel GROOT Date: Thu, 02 Jun 2016 16:57:34 GMT Subject: Re: [WIP-PATCH 1/2] send-email: create email parser subroutine Message-ID: <9535d962-5479-5a13-472e-cd558ef163e0@grenoble-inp.org> In-Reply-To: <20160528233329.GA1132@dcvr.yhbt.net> On 05/29/2016 01:33 AM, Eric Wong wrote: > Matthieu Moy wrote: >> Samuel GROOT writes: >> >>> Parsing and processing in send-email is done in the same loop. >>> >>> To make the code more maintainable, we create two subroutines: >>> - `parse_email` to separate header and body >>> - `parse_header` to retrieve data from header >> >> These routines are not specific to git send-email, nor to Git. >> >> Does it make sense to use an external library, like >> http://search.cpan.org/~rjbs/Email-Simple-2.210/lib/Email/Simple.pm , >> either by depending on it, or by copying it in Git's source tree ? > > That might be overkill and increase installation/maintenance > burden. Bundling it would probably be problematic to distros, > too. We have 5 solutions here: 1. Make a new dependence to Email::Simple. 2. Bundle Email::Simple in Git's source tree. 3. Use Email::Simple if installed, else use our library. 4. Making our own email parser library. 5. Duplicate parser loop as we did for our patch to implement `--quote-email` as proposed in $gmane/295772 . Obviously, option (5) is the easiest one for us, but it leaves refactoring for later, and option (1) is also easier but adds a new dependence which is not that good. Since our project ends next week, we might not have enough time to finish developing a custom parser API so (4) is not a viable option for now but could be done in the future. We could consider bundling Email::Simple as the best option, as it's developed since 2003 and might be safer to use than anything we could write in several weeks.