summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h4
-rw-r--r--cgitrc10
-rw-r--r--shared.c14
-rw-r--r--ui-log.c33
4 files changed, 48 insertions, 13 deletions
diff --git a/cgit.h b/cgit.h
index 290401f..ed100a7 100644
--- a/cgit.h
+++ b/cgit.h
@@ -40,2 +40,4 @@ struct repoinfo {
40 int snapshots; 40 int snapshots;
41 int enable_log_filecount;
42 int enable_log_linecount;
41}; 43};
@@ -83,2 +85,4 @@ extern int cgit_nocache;
83extern int cgit_snapshots; 85extern int cgit_snapshots;
86extern int cgit_enable_log_filecount;
87extern int cgit_enable_log_linecount;
84extern int cgit_max_lock_attempts; 88extern int cgit_max_lock_attempts;
diff --git a/cgitrc b/cgitrc
index f923cc4..eaa9ce3 100644
--- a/cgitrc
+++ b/cgitrc
@@ -14,2 +14,10 @@
14 14
15## Enable/disable display of 'number of files changed' in log view
16#enable-log-filecount=0
17
18
19## Enable/disable display of 'number of lines changed' in log view
20#enable-log-linecount=0
21
22
15## Specify a root for virtual urls. This makes cgit generate urls like 23## Specify a root for virtual urls. This makes cgit generate urls like
@@ -99,2 +107,4 @@
99 #repo.snapshots=1 # override a sitewide snapshot-setting 107 #repo.snapshots=1 # override a sitewide snapshot-setting
108 #repo.enable-log-filecount=0 # override the default filecount setting
109 #repo.enable-log-linecount=0 # override the default linecount setting
100 #repo.module-link=/git/%s/commit/?id=%s # override the standard module-link 110 #repo.module-link=/git/%s/commit/?id=%s # override the standard module-link
diff --git a/shared.c b/shared.c
index 752ceac..53cd9b0 100644
--- a/shared.c
+++ b/shared.c
@@ -24,2 +24,4 @@ int cgit_nocache = 0;
24int cgit_snapshots = 0; 24int cgit_snapshots = 0;
25int cgit_enable_log_filecount = 0;
26int cgit_enable_log_linecount = 0;
25int cgit_max_lock_attempts = 5; 27int cgit_max_lock_attempts = 5;
@@ -87,2 +89,4 @@ struct repoinfo *add_repo(const char *url)
87 ret->snapshots = cgit_snapshots; 89 ret->snapshots = cgit_snapshots;
90 ret->enable_log_filecount = cgit_enable_log_filecount;
91 ret->enable_log_linecount = cgit_enable_log_linecount;
88 ret->module_link = cgit_module_link; 92 ret->module_link = cgit_module_link;
@@ -109,2 +113,6 @@ void cgit_global_config_cb(const char *name, const char *value)
109 cgit_snapshots = atoi(value); 113 cgit_snapshots = atoi(value);
114 else if (!strcmp(name, "enable-log-filecount"))
115 cgit_enable_log_filecount = atoi(value);
116 else if (!strcmp(name, "enable-log-linecount"))
117 cgit_enable_log_linecount = atoi(value);
110 else if (!strcmp(name, "cache-root")) 118 else if (!strcmp(name, "cache-root"))
@@ -138,3 +146,7 @@ void cgit_global_config_cb(const char *name, const char *value)
138 else if (cgit_repo && !strcmp(name, "repo.snapshots")) 146 else if (cgit_repo && !strcmp(name, "repo.snapshots"))
139 cgit_repo->snapshots = atoi(value); 147 cgit_repo->snapshots = cgit_snapshots * atoi(value);
148 else if (cgit_repo && !strcmp(name, "repo.enable-log-filecount"))
149 cgit_repo->enable_log_filecount = cgit_enable_log_filecount * atoi(value);
150 else if (cgit_repo && !strcmp(name, "repo.enable-log-linecount"))
151 cgit_repo->enable_log_linecount = cgit_enable_log_linecount * atoi(value);
140 else if (cgit_repo && !strcmp(name, "repo.module-link")) 152 else if (cgit_repo && !strcmp(name, "repo.module-link"))
diff --git a/ui-log.c b/ui-log.c
index 9d0ec02..4237921 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -21,3 +21,4 @@ void inspect_files(struct diff_filepair *pair)
21 files++; 21 files++;
22 cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines); 22 if (cgit_repo->enable_log_linecount)
23 cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines);
23} 24}
@@ -41,9 +42,13 @@ void print_commit(struct commit *commit)
41 html_link_close(); 42 html_link_close();
42 files = 0; 43 if (cgit_repo->enable_log_filecount) {
43 lines = 0; 44 files = 0;
44 cgit_diff_commit(commit, inspect_files); 45 lines = 0;
45 html("</td><td class='right'>"); 46 cgit_diff_commit(commit, inspect_files);
46 htmlf("%d", files); 47 html("</td><td class='right'>");
47 html("</td><td class='right'>"); 48 htmlf("%d", files);
48 htmlf("%d", lines); 49 if (cgit_repo->enable_log_linecount) {
50 html("</td><td class='right'>");
51 htmlf("%d", lines);
52 }
53 }
49 html("</td><td>"); 54 html("</td><td>");
@@ -83,6 +88,10 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path)
83 html("<tr class='nohover'><th class='left'>Date</th>" 88 html("<tr class='nohover'><th class='left'>Date</th>"
84 "<th class='left'>Message</th>" 89 "<th class='left'>Message</th>");
85 "<th class='left'>Files</th>" 90
86 "<th class='left'>Lines</th>" 91 if (cgit_repo->enable_log_filecount) {
87 "<th class='left'>Author</th></tr>\n"); 92 html("<th class='left'>Files</th>");
93 if (cgit_repo->enable_log_linecount)
94 html("<th class='left'>Lines</th>");
95 }
96 html("<th class='left'>Author</th></tr>\n");
88 97