aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMattias EngdegÄrd2020-06-12 18:12:37 +0200
committerMattias EngdegÄrd2020-06-21 21:22:26 +0200
commit9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6 (patch)
tree0979ec4f38172e25a0420eca5b22650c249a80f4 /test
parent0792f8e4f0de2328c57d552a5845bdf77265a971 (diff)
downloademacs-9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6.tar.gz
emacs-9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6.zip
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 @@
24 (should (equal (color-distance "#222222" "#ffffff") 24 (should (equal (color-distance "#222222" "#ffffff")
25 (color-distance "#ffffff" "#222222")))) 25 (color-distance "#ffffff" "#222222"))))
26 26
27(ert-deftest xfaces-internal-color-values-from-color-spec ()
28 (should (equal (internal-color-values-from-color-spec "#f05")
29 '(#xffff #x0000 #x5555)))
30 (should (equal (internal-color-values-from-color-spec "#1fb0C5")
31 '(#x1f1f #xb0b0 #xc5c5)))
32 (should (equal (internal-color-values-from-color-spec "#1f8b0AC5e")
33 '(#x1f81 #xb0aa #xc5eb)))
34 (should (equal (internal-color-values-from-color-spec "#1f83b0ADC5e2")
35 '(#x1f83 #xb0ad #xc5e2)))
36 (should (equal (internal-color-values-from-color-spec "#1f83b0ADC5e2g") nil))
37 (should (equal (internal-color-values-from-color-spec "#1f83b0ADC5e20") nil))
38 (should (equal (internal-color-values-from-color-spec "#12345") nil))
39 (should (equal (internal-color-values-from-color-spec "rgb:f/23/28a")
40 '(#xffff #x2323 #x28a2)))
41 (should (equal (internal-color-values-from-color-spec "rgb:1234/5678/09ab")
42 '(#x1234 #x5678 #x09ab)))
43 (should (equal (internal-color-values-from-color-spec "rgb:0//0") nil))
44 (should (equal (internal-color-values-from-color-spec "rgbi:0/0.5/0.1")
45 '(0 32768 6554)))
46 (should (equal (internal-color-values-from-color-spec "rgbi:1e-3/1.0e-2/1e0")
47 '(66 655 65535)))
48 (should (equal (internal-color-values-from-color-spec "rgbi:0/0.5/10") nil)))
49
27(provide 'xfaces-tests) 50(provide 'xfaces-tests)