colored diff: diff.color = auto fix

Even if the standard output is connected to a tty, do not
colorize the diff if we are talking to a dumb terminal when
diff.color configuration variable is set to "auto".

Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/diff.c b/diff.c
index f0450a8..aab246c 100644
--- a/diff.c
+++ b/diff.c
@@ -110,8 +110,14 @@
 	if (!strcmp(var, "diff.color")) {
 		if (!value)
 			diff_use_color_default = 1; /* bool */
-		else if (!strcasecmp(value, "auto"))
-			diff_use_color_default = isatty(1);
+		else if (!strcasecmp(value, "auto")) {
+			diff_use_color_default = 0;
+			if (isatty(1)) {
+				char *term = getenv("TERM");
+				if (term && strcmp(term, "dumb"))
+					diff_use_color_default = 1;
+			}
+		}
 		else if (!strcasecmp(value, "never"))
 			diff_use_color_default = 0;
 		else if (!strcasecmp(value, "always"))