]> git.ipfire.org Git - thirdparty/git.git/blobdiff - mailmap.c
Merge branch 'ab/detox-gettext-tests'
[thirdparty/git.git] / mailmap.c
index 962fd86d6d7067e84bc0dbf499cc0c47b6ad3c11..9bb9cf8b3038aa8234accc4832178ee498062c59 100644 (file)
--- a/mailmap.c
+++ b/mailmap.c
@@ -143,31 +143,13 @@ static char *parse_name_and_email(char *buffer, char **name,
        return (*right == '\0' ? NULL : right);
 }
 
-static void read_mailmap_line(struct string_list *map, char *buffer,
-                             char **repo_abbrev)
+static void read_mailmap_line(struct string_list *map, char *buffer)
 {
        char *name1 = NULL, *email1 = NULL, *name2 = NULL, *email2 = NULL;
-       if (buffer[0] == '#') {
-               static const char abbrev[] = "# repo-abbrev:";
-               int abblen = sizeof(abbrev) - 1;
-               int len = strlen(buffer);
 
-               if (!repo_abbrev)
-                       return;
-
-               if (len && buffer[len - 1] == '\n')
-                       buffer[--len] = 0;
-               if (!strncmp(buffer, abbrev, abblen)) {
-                       char *cp;
-
-                       free(*repo_abbrev);
-
-                       for (cp = buffer + abblen; isspace(*cp); cp++)
-                               ; /* nothing */
-                       *repo_abbrev = xstrdup(cp);
-               }
+       if (buffer[0] == '#')
                return;
-       }
+
        if ((name2 = parse_name_and_email(buffer, &name1, &email1, 0)) != NULL)
                parse_name_and_email(name2, &name2, &email2, 1);
 
@@ -175,8 +157,7 @@ static void read_mailmap_line(struct string_list *map, char *buffer,
                add_mapping(map, name1, email1, name2, email2);
 }
 
-static int read_mailmap_file(struct string_list *map, const char *filename,
-                            char **repo_abbrev)
+static int read_mailmap_file(struct string_list *map, const char *filename)
 {
        char buffer[1024];
        FILE *f;
@@ -192,13 +173,12 @@ static int read_mailmap_file(struct string_list *map, const char *filename,
        }
 
        while (fgets(buffer, sizeof(buffer), f) != NULL)
-               read_mailmap_line(map, buffer, repo_abbrev);
+               read_mailmap_line(map, buffer);
        fclose(f);
        return 0;
 }
 
-static void read_mailmap_string(struct string_list *map, char *buf,
-                               char **repo_abbrev)
+static void read_mailmap_string(struct string_list *map, char *buf)
 {
        while (*buf) {
                char *end = strchrnul(buf, '\n');
@@ -206,14 +186,12 @@ static void read_mailmap_string(struct string_list *map, char *buf,
                if (*end)
                        *end++ = '\0';
 
-               read_mailmap_line(map, buf, repo_abbrev);
+               read_mailmap_line(map, buf);
                buf = end;
        }
 }
 
-static int read_mailmap_blob(struct string_list *map,
-                            const char *name,
-                            char **repo_abbrev)
+static int read_mailmap_blob(struct string_list *map, const char *name)
 {
        struct object_id oid;
        char *buf;
@@ -231,13 +209,13 @@ static int read_mailmap_blob(struct string_list *map,
        if (type != OBJ_BLOB)
                return error("mailmap is not a blob: %s", name);
 
-       read_mailmap_string(map, buf, repo_abbrev);
+       read_mailmap_string(map, buf);
 
        free(buf);
        return 0;
 }
 
-int read_mailmap(struct string_list *map, char **repo_abbrev)
+int read_mailmap(struct string_list *map)
 {
        int err = 0;
 
@@ -247,10 +225,11 @@ int read_mailmap(struct string_list *map, char **repo_abbrev)
        if (!git_mailmap_blob && is_bare_repository())
                git_mailmap_blob = "HEAD:.mailmap";
 
-       err |= read_mailmap_file(map, ".mailmap", repo_abbrev);
+       if (!startup_info->have_repository || !is_bare_repository())
+               err |= read_mailmap_file(map, ".mailmap");
        if (startup_info->have_repository)
-               err |= read_mailmap_blob(map, git_mailmap_blob, repo_abbrev);
-       err |= read_mailmap_file(map, git_mailmap_file, repo_abbrev);
+               err |= read_mailmap_blob(map, git_mailmap_blob);
+       err |= read_mailmap_file(map, git_mailmap_file);
        return err;
 }