emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 656c2dd66e: Fix color-lighten-hsl logic


From: Lars Ingebrigtsen
Subject: master 656c2dd66e: Fix color-lighten-hsl logic
Date: Tue, 22 Mar 2022 10:28:20 -0400 (EDT)

branch: master
commit 656c2dd66e77a5fbeb99d358017e8327401fae05
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix color-lighten-hsl logic
    
    * lisp/color.el (color-lighten-hsl): Lighten by percentage,
    instead of just adding the specified number to the luminance
    element (bug#54514).
---
 lisp/color.el            |  2 +-
 test/lisp/color-tests.el | 14 +++++++-------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/lisp/color.el b/lisp/color.el
index 0fe663d97a..fe629f4f98 100644
--- a/lisp/color.el
+++ b/lisp/color.el
@@ -403,7 +403,7 @@ See `color-desaturate-hsl'."
 Given a color defined in terms of hue, saturation, and luminance
 \(arguments H, S, and L), return a color that is PERCENT lighter.
 Returns a list (HUE SATURATION LUMINANCE)."
-  (list H S (color-clamp (+ L (/ percent 100.0)))))
+  (list H S (color-clamp (+ L (* L (/ percent 100.0))))))
 
 (defun color-lighten-name (name percent)
   "Make a color with a specified NAME lighter by PERCENT.
diff --git a/test/lisp/color-tests.el b/test/lisp/color-tests.el
index 49b632c841..e4e1eda26d 100644
--- a/test/lisp/color-tests.el
+++ b/test/lisp/color-tests.el
@@ -220,32 +220,32 @@
 
 (ert-deftest color-tests-lighten-hsl ()
   (should (equal (color-lighten-hsl 360 0.5 0.5 0) '(360 0.5 0.5)))
-  (should (equal (color-lighten-hsl 360 0.5 0.5 -10) '(360 0.5 0.4)))
+  (should (equal (color-lighten-hsl 360 0.5 0.5 -10) '(360 0.5 0.45)))
   (should (equal (color-lighten-hsl 360 0.5 0.5 -500) '(360 0.5 0.0)))
   (should
    (color-tests--approx-equal
-    (color-lighten-hsl 120 0.5 0.8 5) '(120 0.5 0.85)))
+    (color-lighten-hsl 120 0.5 0.8 5) '(120 0.5 0.84)))
   (should
    (equal (color-lighten-hsl 120 0.5 0.8 500) '(120 0.5 1.0))))
 
 (ert-deftest color-tests-lighten-name ()
-  (should (equal (color-lighten-name "black" 100) "#ffffffffffff"))
+  (should (equal (color-lighten-name "black" 100) "#000000000000"))
   (should (equal (color-lighten-name "white" 100) "#ffffffffffff"))
   (should (equal (color-lighten-name "red" 0) "#ffff00000000"))
-  (should (equal (color-lighten-name "red" 10) "#ffff33323332")))
+  (should (equal (color-lighten-name "red" 10) "#ffff19991999")))
 
 (ert-deftest color-tests-darken-hsl ()
   (should (equal (color-darken-hsl 360 0.5 0.5 0) '(360 0.5 0.5)))
-  (should (equal (color-darken-hsl 360 0.5 0.5 -10) '(360 0.5 0.6)))
+  (should (equal (color-darken-hsl 360 0.5 0.5 -10) '(360 0.5 0.55)))
   (should (equal (color-darken-hsl 360 0.5 0.5 -500) '(360 0.5 1.0)))
-  (should (equal (color-darken-hsl 120 0.5 0.8 5) '(120 0.5 0.75)))
+  (should (equal (color-darken-hsl 120 0.5 0.8 5) '(120 0.5 0.76)))
   (should (equal (color-darken-hsl 120 0.5 0.8 500) '(120 0.5 0.0))))
 
 (ert-deftest color-tests-darken-name ()
   (should (equal (color-darken-name "black" 100) "#000000000000"))
   (should (equal (color-darken-name "white" 100) "#000000000000"))
   (should (equal (color-darken-name "red" 0) "#ffff00000000"))
-  (should (equal (color-darken-name "red" 10) "#cccc00000000")))
+  (should (equal (color-darken-name "red" 10) "#e66500000000")))
 
 (provide 'color-tests)
 ;;; color-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]