summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2020-06-12 18:12:37 +0200
committerMattias EngdegÄrd <mattiase@acm.org>2020-06-21 21:22:26 +0200
commit9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6 (patch)
tree0979ec4f38172e25a0420eca5b22650c249a80f4 /test
parent0792f8e4f0de2328c57d552a5845bdf77265a971 (diff)
downloademacs-9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6.tar.gz
Consolidate #RGB string parsers
Use a single parser of color strings in the #RGB, rgb:R/G/B and rgbi:R/G/B formats, replacing four existing ones. Previously, error-checking was spotty, handling of the rgbi: format not always present, and normalization of the result was sometimes incorrect. * src/dispextern.h: New prototype. * src/xfaces.c (parse_hex_color_comp, parse_float_color_comp) (parse_color_spec, Finternal-color_values_from_color_spec): New functions. * test/src/xfaces-tests.el (xfaces-internal-color-values-from-color-spec): New test. * lisp/term/tty-colors.el (tty-color-standard-values): Use internal-color-values-from-color-spec, replacing old parser. * src/nsterm.m (ns_get_color): * src/w32fns.c (x_to_w32_color): * src/xterm.c (x_parse_color): Use parse_color_spec, replacing old parsers. (HEX_COLOR_NAME_LENGTH): Remove #define.
Diffstat (limited to 'test')
-rw-r--r--test/src/xfaces-tests.el23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/src/xfaces-tests.el b/test/src/xfaces-tests.el
index 5ed16c9e51d..34cda07e5b4 100644
--- a/test/src/xfaces-tests.el
+++ b/test/src/xfaces-tests.el
@@ -24,4 +24,27 @@
(should (equal (color-distance "#222222" "#ffffff")
(color-distance "#ffffff" "#222222"))))
+(ert-deftest xfaces-internal-color-values-from-color-spec ()
+ (should (equal (internal-color-values-from-color-spec "#f05")
+ '(#xffff #x0000 #x5555)))
+ (should (equal (internal-color-values-from-color-spec "#1fb0C5")
+ '(#x1f1f #xb0b0 #xc5c5)))
+ (should (equal (internal-color-values-from-color-spec "#1f8b0AC5e")
+ '(#x1f81 #xb0aa #xc5eb)))
+ (should (equal (internal-color-values-from-color-spec "#1f83b0ADC5e2")
+ '(#x1f83 #xb0ad #xc5e2)))
+ (should (equal (internal-color-values-from-color-spec "#1f83b0ADC5e2g") nil))
+ (should (equal (internal-color-values-from-color-spec "#1f83b0ADC5e20") nil))
+ (should (equal (internal-color-values-from-color-spec "#12345") nil))
+ (should (equal (internal-color-values-from-color-spec "rgb:f/23/28a")
+ '(#xffff #x2323 #x28a2)))
+ (should (equal (internal-color-values-from-color-spec "rgb:1234/5678/09ab")
+ '(#x1234 #x5678 #x09ab)))
+ (should (equal (internal-color-values-from-color-spec "rgb:0//0") nil))
+ (should (equal (internal-color-values-from-color-spec "rgbi:0/0.5/0.1")
+ '(0 32768 6554)))
+ (should (equal (internal-color-values-from-color-spec "rgbi:1e-3/1.0e-2/1e0")
+ '(66 655 65535)))
+ (should (equal (internal-color-values-from-color-spec "rgbi:0/0.5/10") nil)))
+
(provide 'xfaces-tests)