Re: [PATCH] mailinfo: better parse email adresses containg parentheses

Previous thread: [PATCH] git-am: remove dash from help message by Olivier Marin on Monday, July 21, 2008 - 7:12 am. (1 message)

Next thread: [PATCH] builtin-merge: give a proper error message for invalid strategies in config by Miklos Vajna on Monday, July 21, 2008 - 9:10 am. (6 messages)
From: Philippe Bruhat (BooK)
Date: Monday, July 21, 2008 - 6:34 am

When using git-rebase, author fields containing a ')' at the last
    position had the close-parens character incorrectly removed
    because the From: parser incorrectly matched it as

        user@host (User Name)

    (removing parentheses), instead of

        User Name (me) <user@host>

Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
---
 builtin-mailinfo.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
index b99a5b6..5581c9f 100644
--- a/builtin-mailinfo.c
+++ b/builtin-mailinfo.c
@@ -115,10 +115,10 @@ static void handle_from(const struct strbuf *from)
 	 * the () pair at the end.
 	 */
 	strbuf_trim(&f);
-	if (f.buf[0] == '(')
+	if (f.buf[0] == '(' && f.len && f.buf[f.len - 1] == ')') {
 		strbuf_remove(&name, 0, 1);
-	if (f.len && f.buf[f.len - 1] == ')')
 		strbuf_setlen(&f, f.len - 1);
+	}
 
 	get_sane_name(&name, &f, &email);
 	strbuf_release(&f);
-- 
1.5.4.3

--

From: Lukas Sandström
Date: Monday, July 21, 2008 - 7:36 am

Note: The line above should obviously be "strbuf_remove(&f, 0, 1);",

/Lukas
--

From: Junio C Hamano
Date: Monday, July 21, 2008 - 8:16 pm

Hmm, tests?

By the way, that second form parses like this:

	mailbox =
        name-addr =
        display-name angle-addr = "User Name (me) <user@host>"

        display-name =
        phrase = "User Name"
        
        angle-addr = CFWS "<" addr-spec ">" = "(me) <user@host>"

So strictly speaking, shouldn't we be stripping the whole (me) as garbage?
It is not even part of the display-name but is a whitespace equivalent
comment.


        
--

From: Philippe Bruhat (BooK)
Date: Tuesday, July 22, 2008 - 3:24 am

Well, I use this:

    "Philippe Bruhat (BooK)" <book@cpan.org>

as my From: line, and I would like to be able to use it so in git.

As git knows the difference between user name and user email, it should
be able to keep the information separate all the way.

Which makes me think that since it seems that rebase goes through a
patch-file step, the problem with my username may actually lie with
creating the patch file (no quotes around a user name containing parens)
rather than with parsing the patch  From: line.

-- 
 Philippe Bruhat (BooK)

 Everyone's life seems easier from the outside.
                                    (Moral from Groo The Wanderer #45 (Epic))
--

Previous thread: [PATCH] git-am: remove dash from help message by Olivier Marin on Monday, July 21, 2008 - 7:12 am. (1 message)

Next thread: [PATCH] builtin-merge: give a proper error message for invalid strategies in config by Miklos Vajna on Monday, July 21, 2008 - 9:10 am. (6 messages)