- offset = sprintf(this_header, "%s%s (from %s)\n", header_prefix, commit, parent);
- if (verbose_header) {
- int hdr = 1;
-
- for (;;) {
- const char *line = msg;
- int linelen = get_one_line(msg, len);
-
- if (!linelen)
- break;
-
- /*
- * We want some slop for indentation and a possible
- * final "...". Thus the "+ 20".
- */
- if (offset + linelen + 20 > sizeof(this_header)) {
- memcpy(this_header + offset, " ...\n", 8);
- offset += 8;
- break;
- }
-
- msg += linelen;
- len -= linelen;
- if (linelen == 1)
- hdr = 0;
- if (hdr) {
- if (!memcmp(line, "author ", 7))
- offset += add_author_info(this_header + offset, line, linelen);
- continue;
- }
- memset(this_header + offset, ' ', 4);
- memcpy(this_header + offset + 4, line, linelen);
- offset += linelen + 4;
- }
- /* Make sure there is an EOLN */
- if (this_header[offset-1] != '\n')
- this_header[offset++] = '\n';
- /* Add _another_ EOLN if we are doing diff output */
- if (!silent)
- this_header[offset++] = '\n';
- this_header[offset] = 0;
- }