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 6a1f3d1..f110dae 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 */