git-tar-tree: no more void pointer arithmetic
[git.git] / diff.c
diff --git a/diff.c b/diff.c
index 3a2a175..9e9cfc8 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -299,6 +299,7 @@ static void diffstat_consume(void *priv, char *line, unsigned long len)
 
 static const char pluses[] = "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
 static const char minuses[]= "----------------------------------------------------------------------";
+const char mime_boundary_leader[] = "------------";
 
 static void show_stats(struct diffstat_t* data)
 {
@@ -1988,7 +1989,13 @@ void diff_flush(struct diff_options *options)
                show_stats(diffstat);
                free(diffstat);
                diffstat = NULL;
-               putchar(options->line_termination);
+               if (options->summary)
+                       for (i = 0; i < q->nr; i++)
+                               diff_summary(q->queue[i]);
+               if (options->stat_sep)
+                       fputs(options->stat_sep, stdout);
+               else
+                       putchar(options->line_termination);
        }
        for (i = 0; i < q->nr; i++) {
                struct diff_filepair *p = q->queue[i];
@@ -2001,7 +2008,7 @@ void diff_flush(struct diff_options *options)
        }
 
        for (i = 0; i < q->nr; i++) {
-               if (options->summary)
+               if (diffstat && options->summary)
                        diff_summary(q->queue[i]);
                diff_free_filepair(q->queue[i]);
        }