From 43b2e2e71ab2e9748cc879bb784d9337535a35d3 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Fri, 11 Jan 2013 15:04:24 +0000 Subject: [PATCH] color.el: fix color-rgb-to-hsv computing --- lisp/ChangeLog | 6 ++++++ lisp/color.el | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bbabcfb6ee2..502cc2ff8c0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-01-11 Julien Danjou + + * color.el (color-rgb-to-hsv): Fix conversion computing in case min and + max are almost equal. Also return the correct value for V which is + already between 0 and 1. + 2013-01-11 Dmitry Antipov * emacs-lisp/ert.el (ert-run-test): Use point-max-marker. diff --git a/lisp/color.el b/lisp/color.el index 63326e7c5b3..50f6675bf4b 100644 --- a/lisp/color.el +++ b/lisp/color.el @@ -130,7 +130,7 @@ inclusive." (max (max r g b)) (min (min r g b))) (if (< (- max min) 1e-8) - (list 0.0 0.0 0.0) + (list 0.0 0.0 min) (list (/ (* 2 float-pi (cond ((and (= r g) (= g b)) 0) @@ -146,7 +146,7 @@ inclusive." (+ 240 (* 60 (/ (- r g) (- max min))))))) 360) (if (= max 0) 0 (- 1 (/ min max))) - (/ max 255.0))))) + max)))) (defun color-rgb-to-hsl (red green blue) "Convert RGB colors to their HSL representation. -- 2.39.5