summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Szulecki <opensuse@sukimashita.com>2009-08-07 14:05:17 +0200
committerMartin Szulecki <opensuse@sukimashita.com>2009-08-08 14:23:28 +0200
commit2f56e390f04fe6975b75e512c1436ef173e4aafe (patch)
tree4e187a5cf039a39a1908623b97e0676c6e7cb756
parent286a905842dc0bec6d21a614ec4a97c5f19d5bc4 (diff)
Introduce noplainemail option to hide email adresses from spambots
Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
-rw-r--r--cgit.c2
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt4
-rw-r--r--ui-atom.c2
-rw-r--r--ui-commit.c12
-rw-r--r--ui-patch.c6
-rw-r--r--ui-tag.c2
7 files changed, 22 insertions, 7 deletions
diff --git a/cgit.c b/cgit.c
index 2039ab1..f6bb0c7 100644
--- a/cgit.c
+++ b/cgit.c
@@ -51,6 +51,8 @@ void config_cb(const char *name, const char *value)
 			ctx.cfg.virtual_root = "";
 	} else if (!strcmp(name, "nocache"))
 		ctx.cfg.nocache = atoi(value);
+	else if (!strcmp(name, "noplainemail"))
+		ctx.cfg.noplainemail = atoi(value);
 	else if (!strcmp(name, "noheader"))
 		ctx.cfg.noheader = atoi(value);
 	else if (!strcmp(name, "snapshots"))
diff --git a/cgit.h b/cgit.h
index 8c64efe..acb5e8f 100644
--- a/cgit.h
+++ b/cgit.h
@@ -168,6 +168,7 @@ struct cgit_config {
 	int max_repodesc_len;
 	int max_stats;
 	int nocache;
+	int noplainemail;
 	int noheader;
 	int renamelimit;
 	int snapshots;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index a207fe0..7754923 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -158,6 +158,10 @@ nocache::
 	deprecated, and will not be honored starting with cgit-1.0. Default
 	value: "0".
 
+noplainemail::
+	If set to "1" showing full author email adresses will be disabled.
+	Default value: "0".
+
 noheader::
 	Flag which, when set to "1", will make cgit omit the standard header
 	on all pages. Default value: none. See also: "embedded".
diff --git a/ui-atom.c b/ui-atom.c
index e5c31d9..808b2d0 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -32,7 +32,7 @@ void add_entry(struct commit *commit, char *host)
 		html_txt(info->author);
 		html("</name>\n");
 	}
-	if (info->author_email) {
+	if (info->author_email && !ctx.cfg.noplainemail) {
 		mail = xstrdup(info->author_email);
 		t = strchr(mail, '<');
 		if (t)
diff --git a/ui-commit.c b/ui-commit.c
index 41ce70e..9fdb8ee 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -40,15 +40,19 @@ void cgit_print_commit(char *hex)
 	html("<table summary='commit info' class='commit-info'>\n");
 	html("<tr><th>author</th><td>");
 	html_txt(info->author);
-	html(" ");
-	html_txt(info->author_email);
+	if (!ctx.cfg.noplainemail) {
+		html(" ");
+		html_txt(info->author_email);
+	}
 	html("</td><td class='right'>");
 	cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time);
 	html("</td></tr>\n");
 	html("<tr><th>committer</th><td>");
 	html_txt(info->committer);
-	html(" ");
-	html_txt(info->committer_email);
+	if (!ctx.cfg.noplainemail) {
+		html(" ");
+		html_txt(info->committer_email);
+	}
 	html("</td><td class='right'>");
 	cgit_print_date(info->committer_date, FMT_LONGDATE, ctx.cfg.local_time);
 	html("</td></tr>\n");
diff --git a/ui-patch.c b/ui-patch.c
index 5d665d3..2a8f7a5 100644
--- a/ui-patch.c
+++ b/ui-patch.c
@@ -108,7 +108,11 @@ void cgit_print_patch(char *hex)
 	ctx.page.filename = patchname;
 	cgit_print_http_headers(&ctx);
 	htmlf("From %s Mon Sep 17 00:00:00 2001\n", sha1_to_hex(sha1));
-	htmlf("From: %s %s\n", info->author, info->author_email);
+	htmlf("From: %s", info->author);
+	if (!ctx.cfg.noplainemail) {
+		htmlf(" %s", info->author_email);
+	}
+	html("\n");
 	html("Date: ");
 	cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n", ctx.cfg.local_time);
 	htmlf("Subject: %s\n\n", info->subject);
diff --git a/ui-tag.c b/ui-tag.c
index 0e056e0..a9c8670 100644
--- a/ui-tag.c
+++ b/ui-tag.c
@@ -64,7 +64,7 @@ void cgit_print_tag(char *revname)
 		if (info->tagger) {
 			html("<tr><td>Tagged by</td><td>");
 			html_txt(info->tagger);
-			if (info->tagger_email) {
+			if (info->tagger_email && !ctx.cfg.noplainemail) {
 				html(" ");
 				html_txt(info->tagger_email);
 			}