{"thread":{"id":"43416","subject":"[PATCH 3/3] shortlog: handle email addresses case-insensitively","startedAt":"2006-11-19T16:29:14Z","lastAt":"2006-11-19T16:29:14Z","messageCount":1,"participants":["Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"294671","messageId":"Pine.LNX.4.63.0611191728580.13772@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"43416","inReplyTo":null,"subject":"[PATCH 3/3] shortlog: handle email addresses case-insensitively","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-11-19T16:29:14Z","receivedAt":"2006-11-19T16:29:14Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"\nSigned-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>\n---\n builtin-shortlog.c |    8 +++++++-\n 1 files changed, 7 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin-shortlog.c b/builtin-shortlog.c\nindex afc9456..4775c11 100644\n--- a/builtin-shortlog.c\n+++ b/builtin-shortlog.c\n@@ -34,6 +34,7 @@ static int read_mailmap(const char *file\n \twhile (fgets(buffer, sizeof(buffer), f) != NULL) {\n \t\tchar *end_of_name, *left_bracket, *right_bracket;\n \t\tchar *name, *email;\n+\t\tint i;\n \t\tif (buffer[0] == '#')\n \t\t\tcontinue;\n \t\tif ((left_bracket = strchr(buffer, '<')) == NULL)\n@@ -50,7 +51,9 @@ static int read_mailmap(const char *file\n \t\tname = xmalloc(end_of_name - buffer + 1);\n \t\tstrlcpy(name, buffer, end_of_name - buffer + 1);\n \t\temail = xmalloc(right_bracket - left_bracket);\n-\t\tstrlcpy(email, left_bracket + 1, right_bracket - left_bracket);\n+\t\tfor (i = 0; i < right_bracket - left_bracket - 1; i++)\n+\t\t\temail[i] = tolower(left_bracket[i + 1]);\n+\t\temail[right_bracket - left_bracket - 1] = '\\0';\n \t\tpath_list_insert(email, &mailmap)->util = name;\n \t}\n \tfclose(f);\n@@ -68,6 +71,9 @@ static int map_email(char *email, char *\n \t\treturn 0;\n \n \t*p = '\\0';\n+\t/* downcase the email address */\n+\tfor (p = email; *p; p++)\n+\t\t*p = tolower(*p);\n \titem = path_list_lookup(email, &mailmap);\n \tif (item != NULL) {\n \t\tconst char *realname = (const char *)item->util;\n-- \n1.4.4.GIT\n"}]}