diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2020-06-12 18:12:37 +0200 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2020-06-21 21:22:26 +0200 |
commit | 9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6 (patch) | |
tree | 0979ec4f38172e25a0420eca5b22650c249a80f4 /test | |
parent | 0792f8e4f0de2328c57d552a5845bdf77265a971 (diff) | |
download | emacs-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.el | 23 |
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) |