[PATCH] mailinfo: better parse email adresses containg parentheses

Subsystems: the rest

DORMANTno replies

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] mailinfo: better parse email adresses containg parentheses

From: Philippe Bruhat (BooK) <hidden>
Date: 2016-06-15 22:44:59

    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) <redacted>
---
 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

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

From: Lukas Sandström <hidden>
Date: 2016-06-15 22:44:59

Philippe Bruhat (BooK) wrote:
    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) <redacted>
ACK.
quoted hunk
---
 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);
Note: The line above should obviously be "strbuf_remove(&f, 0, 1);",
another error from the strbuf conversion I made. Sigh.
-	if (f.len && f.buf[f.len - 1] == ')')
 		strbuf_setlen(&f, f.len - 1);
+	}
 
 	get_sane_name(&name, &f, &email);
 	strbuf_release(&f);
/Lukas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help