From: Richard M. Stallman Date: Sun, 2 Oct 2005 03:28:56 +0000 (+0000) Subject: (face_color_gray_p): Colors close to black count as gray. X-Git-Tag: emacs-pretest-22.0.90~6868 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=71433d39f54a26dbe9b5ff6c87e66e8cba8b2c10;p=emacs.git (face_color_gray_p): Colors close to black count as gray. --- diff --git a/src/xfaces.c b/src/xfaces.c index aa32c84b297..49ba6d334ec 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -1477,7 +1477,9 @@ tty_color_name (f, idx) /* Return non-zero if COLOR_NAME is a shade of gray (or white or - black) on frame F. The algorithm is taken from 20.2 faces.el. */ + black) on frame F. + + The criterion implemented here is not a terribly sophisticated one. */ static int face_color_gray_p (f, color_name) @@ -1488,12 +1490,15 @@ face_color_gray_p (f, color_name) int gray_p; if (defined_color (f, color_name, &color, 0)) - gray_p = ((abs (color.red - color.green) - < max (color.red, color.green) / 20) - && (abs (color.green - color.blue) - < max (color.green, color.blue) / 20) - && (abs (color.blue - color.red) - < max (color.blue, color.red) / 20)); + gray_p = (/* Any color sufficiently close to black counts as grey. */ + (color.red < 5000 && color.green < 5000 && color.blue < 5000) + || + ((abs (color.red - color.green) + < max (color.red, color.green) / 20) + && (abs (color.green - color.blue) + < max (color.green, color.blue) / 20) + && (abs (color.blue - color.red) + < max (color.blue, color.red) / 20))); else gray_p = 0;