summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2007-11-06 00:35:12 +0100
committerLars Hjemli <hjemli@gmail.com>2007-11-06 00:35:12 +0100
commitd04c4734bcf40b1d17c55b18fba2aa8344678e8f (patch)
treee08d0141da1b0b9ab2f921f1a7efd141b32dfe49
parent72ede12551af320b6d8eade853dbd2cd6f2222cc (diff)
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>
-rw-r--r--ui-log.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/ui-log.c b/ui-log.c
index 9f5fdf6..e5f3c57 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -8,12 +8,18 @@
 
 #include "cgit.h"
 
-int files, lines;
+int files, add_lines, rem_lines;
 
 void count_lines(char *line, int size)
 {
-	if (size>0 && (line[0] == '+' || line[0] == '-'))
-		lines++;
+	if (size <= 0)
+		return;
+
+	if (line[0] == '+')
+		add_lines++;
+
+	else if (line[0] == '-')
+		rem_lines++;
 }
 
 void inspect_files(struct diff_filepair *pair)
@@ -35,13 +41,14 @@ void print_commit(struct commit *commit)
 			 sha1_to_hex(commit->object.sha1));
 	if (cgit_repo->enable_log_filecount) {
 		files = 0;
-		lines = 0;
+		add_lines = 0;
+		rem_lines = 0;
 		cgit_diff_commit(commit, inspect_files);
 		html("</td><td class='right'>");
 		htmlf("%d", files);
 		if (cgit_repo->enable_log_linecount) {
 			html("</td><td class='right'>");
-			htmlf("%d", lines);
+			htmlf("-%d/+%d", rem_lines, add_lines);
 		}
 	}
 	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>");
 
 	if (cgit_repo->enable_log_filecount) {
-		html("<th class='left'>Files</th>");
+		html("<th class='right'>Files</th>");
 		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");