streaming_write_entry(): support files with holes
[gitweb.git] / pretty.c
index 0252a21a0d62dc59a9325d0365db0c0061b70eb7..dff5c8d1831ca4019d1a502a393cb95f20ad18f7 100644 (file)
--- a/pretty.c
+++ b/pretty.c
@@ -339,6 +339,7 @@ void pp_user_info(const char *what, enum cmit_fmt fmt, struct strbuf *sb,
        if (fmt == CMIT_FMT_EMAIL) {
                char *name_tail = strchr(line, '<');
                int display_name_length;
+               int final_line;
                if (!name_tail)
                        return;
                while (line < name_tail && isspace(name_tail[-1]))
@@ -353,6 +354,14 @@ void pp_user_info(const char *what, enum cmit_fmt fmt, struct strbuf *sb,
                        add_rfc2047(sb, quoted.buf, quoted.len, encoding);
                        strbuf_release(&quoted);
                }
+               for (final_line = 0; final_line < sb->len; final_line++)
+                       if (sb->buf[sb->len - final_line - 1] == '\n')
+                               break;
+               if (namelen - display_name_length + final_line > 78) {
+                       strbuf_addch(sb, '\n');
+                       if (!isspace(name_tail[0]))
+                               strbuf_addch(sb, ' ');
+               }
                strbuf_add(sb, name_tail, namelen - display_name_length);
                strbuf_addch(sb, '\n');
        } else {
@@ -935,11 +944,7 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
                                              c->abbrev_parent_hashes.off;
                return 1;
        case 'm':               /* left/right/bottom */
-               strbuf_addch(sb, (commit->object.flags & BOUNDARY)
-                                ? '-'
-                                : (commit->object.flags & SYMMETRIC_LEFT)
-                                ? '<'
-                                : '>');
+               strbuf_addstr(sb, get_revision_mark(NULL, commit));
                return 1;
        case 'd':
                format_decoration(sb, commit);