Code

Improve handling of 'bogus' author lines
authorJonas Fonseca <fonseca@diku.dk>
Tue, 22 Aug 2006 22:05:06 +0000 (00:05 +0200)
committerJonas Fonseca <fonseca@antimatter.localdomain>
Tue, 22 Aug 2006 22:05:06 +0000 (00:05 +0200)
If no author name is in the ident line fall-back to use the author email.
Set to "Unknown" if neither is found.

tig.c

diff --git a/tig.c b/tig.c
index 6a1f3d1280a894fc8afabd22d0a96f694c587824..f110dae0ec4e493777b5aa9d13d5919f9d85aa55 100644 (file)
--- a/tig.c
+++ b/tig.c
@@ -2286,10 +2286,22 @@ main_read(struct view *view, char *line)
                        break;
 
                if (end) {
+                       char *email = end + 1;
+
                        for (; end > ident && isspace(end[-1]); end--) ;
+
+                       if (end == ident && *email) {
+                               ident = email;
+                               end = strchr(ident, '>');
+                               for (; end > ident && isspace(end[-1]); end--) ;
+                       }
                        *end = 0;
                }
 
+               /* End is NULL or ident meaning there's no author. */
+               if (end <= ident)
+                       ident = "Unknown";
+
                string_copy(commit->author, ident);
 
                /* Parse epoch and timezone */