Module Name: src Committed By: he Date: Mon Aug 22 06:52:36 UTC 2011
Modified Files: src/external/bsd/tmux/dist: colour.c Log Message: Replace needless use of double math just to compare colour distances with integer arithmetic. Reported to and discussed with upstream maintainer. To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 src/external/bsd/tmux/dist/colour.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/tmux/dist/colour.c diff -u src/external/bsd/tmux/dist/colour.c:1.1.1.2 src/external/bsd/tmux/dist/colour.c:1.2 --- src/external/bsd/tmux/dist/colour.c:1.1.1.2 Wed Aug 17 18:40:04 2011 +++ src/external/bsd/tmux/dist/colour.c Mon Aug 22 06:52:35 2011 @@ -1,4 +1,4 @@ -/* $Id: colour.c,v 1.1.1.2 2011/08/17 18:40:04 jmmv Exp $ */ +/* $Id: colour.c,v 1.2 2011/08/22 06:52:35 he Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott <n...@users.sourceforge.net> @@ -19,7 +19,6 @@ #include <sys/types.h> #include <ctype.h> -#include <math.h> #include <stdlib.h> #include <string.h> @@ -41,7 +40,7 @@ struct colour_rgb *colour_rgb_256; void colour_rgb_generate256(void); -double colour_rgb_distance(struct colour_rgb *, struct colour_rgb *); +u_int colour_rgb_distance(struct colour_rgb *, struct colour_rgb *); int colour_rgb_find(struct colour_rgb *); /* Generate 256 colour RGB table. */ @@ -90,8 +89,8 @@ } } -/* Get colour RGB distance. */ -double +/* Get a measure of colour RGB distance. */ +u_int colour_rgb_distance(struct colour_rgb *rgb1, struct colour_rgb *rgb2) { int r, g, b; @@ -99,22 +98,22 @@ r = rgb1->r - rgb2->r; g = rgb1->g - rgb2->g; b = rgb1->b - rgb2->b; - return (sqrt(r * r + g * g + b * b)); + return (r * r + g * g + b * b); } /* Work out the nearest colour from the 256 colour set. */ int colour_rgb_find(struct colour_rgb *rgb) { - double distance, lowest; + u_int distance, lowest; u_int colour, i; if (colour_rgb_256 == NULL) colour_rgb_generate256(); colour = 16; - lowest = INFINITY; - for (i = 0; i < 240; i++) { + lowest = UINT_MAX; + for (i = 1; i < 240; i++) { distance = colour_rgb_distance(&colour_rgb_256[i], rgb); if (distance < lowest) { lowest = distance;