Show lines changed as -n/+m in shortlogs

This is way more informative than the total number of changed lines.

Suggested-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Lars Hjemli 2007-11-06 00:35:12 +01:00
parent 72ede12551
commit d04c4734bc

View File

@ -8,12 +8,18 @@
#include "cgit.h" #include "cgit.h"
int files, lines; int files, add_lines, rem_lines;
void count_lines(char *line, int size) void count_lines(char *line, int size)
{ {
if (size>0 && (line[0] == '+' || line[0] == '-')) if (size <= 0)
lines++; return;
if (line[0] == '+')
add_lines++;
else if (line[0] == '-')
rem_lines++;
} }
void inspect_files(struct diff_filepair *pair) void inspect_files(struct diff_filepair *pair)
@ -35,13 +41,14 @@ void print_commit(struct commit *commit)
sha1_to_hex(commit->object.sha1)); sha1_to_hex(commit->object.sha1));
if (cgit_repo->enable_log_filecount) { if (cgit_repo->enable_log_filecount) {
files = 0; files = 0;
lines = 0; add_lines = 0;
rem_lines = 0;
cgit_diff_commit(commit, inspect_files); cgit_diff_commit(commit, inspect_files);
html("</td><td class='right'>"); html("</td><td class='right'>");
htmlf("%d", files); htmlf("%d", files);
if (cgit_repo->enable_log_linecount) { if (cgit_repo->enable_log_linecount) {
html("</td><td class='right'>"); html("</td><td class='right'>");
htmlf("%d", lines); htmlf("-%d/+%d", rem_lines, add_lines);
} }
} }
html("</td><td>"); html("</td><td>");
@ -88,9 +95,9 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
"<th class='left'>Message</th>"); "<th class='left'>Message</th>");
if (cgit_repo->enable_log_filecount) { if (cgit_repo->enable_log_filecount) {
html("<th class='left'>Files</th>"); html("<th class='right'>Files</th>");
if (cgit_repo->enable_log_linecount) if (cgit_repo->enable_log_linecount)
html("<th class='left'>Lines</th>"); html("<th class='right'>Lines</th>");
} }
html("<th class='left'>Author</th></tr>\n"); html("<th class='left'>Author</th></tr>\n");