Skip to content

Commit 544a437

Browse files
committed
termiolink: fix _hsl_to_rgb() + update tests
1 parent 98ee7bd commit 544a437

File tree

2 files changed

+36
-36
lines changed

2 files changed

+36
-36
lines changed

src/bin/termiolink.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,13 +1035,13 @@ _hsl_to_rgb(double hue, double saturation, double lightness,
10351035
uint8_t *rp, uint8_t *gp, uint8_t *bp)
10361036
{
10371037
double a = saturation * MIN(lightness, 1.0 - lightness);
1038-
int n[3] = {0, 8, 4};
1038+
double n[3] = {0., 8., 4.};
10391039
double res[3] = {};
10401040
int i;
10411041

10421042
for (i = 0; i < 3; i++)
10431043
{
1044-
double k = fmod(n[i] + hue / 12., 12.);
1044+
double k = fmod(n[i] + 12.0 * hue, 12.);
10451045
double f = lightness - a * MAX(-1, MIN(MIN(k - 3, 9 - k), 1));
10461046
if (f > 1 || f < 0)
10471047
return EINA_FALSE;
@@ -1917,109 +1917,109 @@ tytest_color_parse_css_hsl(void)
19171917
/* These examples all specify the same color: a lavender. */
19181918
assert(TY_SB_ADD(&sb, "hsl(270,60%,70%)") == 0);
19191919
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1920-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1920+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19211921
ty_sb_free(&sb);
19221922
r = g = b = a = 0;
19231923

19241924
assert(TY_SB_ADD(&sb, "hsl(270, 60%, 70%)") == 0);
19251925
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1926-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1926+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19271927
ty_sb_free(&sb);
19281928
r = g = b = a = 0;
19291929

19301930
assert(TY_SB_ADD(&sb, "hsl(270 60% 70%)") == 0);
19311931
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1932-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1932+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19331933
ty_sb_free(&sb);
19341934
r = g = b = a = 0;
19351935

19361936
assert(TY_SB_ADD(&sb, "hsl(270deg, 60%, 70%)") == 0);
19371937
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1938-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1938+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19391939
ty_sb_free(&sb);
19401940
r = g = b = a = 0;
19411941

19421942
assert(TY_SB_ADD(&sb, "hsl(4.71239rad, 60%, 70%)") == 0);
19431943
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1944-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1944+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19451945
ty_sb_free(&sb);
19461946
r = g = b = a = 0;
19471947

19481948
assert(TY_SB_ADD(&sb, "hsl(300grad, 60%, 70%)") == 0);
19491949
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1950-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1950+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19511951
ty_sb_free(&sb);
19521952
r = g = b = a = 0;
19531953

19541954
assert(TY_SB_ADD(&sb, "hsl(.75turn, 60%, 70%)") == 0);
19551955
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1956-
assert(r == 224 && g == 135 && b == 132 && a == 255);
1956+
assert(r == 178 && g == 132 && b == 224 && a == 255);
19571957
ty_sb_free(&sb);
19581958
r = g = b = a = 0;
19591959

19601960

19611961
/* These examples all specify the same color: a lavender that is 15% opaque. */
19621962
assert(TY_SB_ADD(&sb, "hsl(270, 60%, 50%, .15)") == 0);
19631963
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1964-
assert(r == 204 && g == 55 && b == 51 && a == 38);
1964+
assert(r == 127 && g == 51 && b == 204 && a == 38);
19651965
ty_sb_free(&sb);
19661966
r = g = b = a = 0;
19671967

19681968
assert(TY_SB_ADD(&sb, "hsl(270, 60%, 50%, 15%)") == 0);
19691969
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1970-
assert(r == 204 && g == 55 && b == 51 && a == 38);
1970+
assert(r == 127 && g == 51 && b == 204 && a == 38);
19711971
ty_sb_free(&sb);
19721972
r = g = b = a = 0;
19731973

19741974
assert(TY_SB_ADD(&sb, "hsl(270 60% 50% / .15)") == 0);
19751975
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1976-
assert(r == 204 && g == 55 && b == 51 && a == 38);
1976+
assert(r == 127 && g == 51 && b == 204 && a == 38);
19771977
ty_sb_free(&sb);
19781978
r = g = b = a = 0;
19791979

19801980
assert(TY_SB_ADD(&sb, "hsl(270 60% 50% / 15%)") == 0);
19811981
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1982-
assert(r == 204 && g == 55 && b == 51 && a == 38);
1982+
assert(r == 127 && g == 51 && b == 204 && a == 38);
19831983
ty_sb_free(&sb);
19841984
r = g = b = a = 0;
19851985

19861986

19871987
/* Different shades */
19881988
assert(TY_SB_ADD(&sb, "hsla(240, 100%, 50%, .05)") == 0);
19891989
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1990-
assert(r == 255 && g == 7 && b == 0 && a == 13);
1990+
assert(r == 0 && g == 0 && b == 255 && a == 13);
19911991
ty_sb_free(&sb);
19921992
r = g = b = a = 0;
19931993

19941994
assert(TY_SB_ADD(&sb, "hsla(240, 100%, 50%, .4)") == 0);
19951995
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
1996-
assert(r == 255 && g == 7 && b == 0 && a == 102);
1996+
assert(r == 0 && g == 0 && b == 255 && a == 102);
19971997
ty_sb_free(&sb);
19981998
r = g = b = a = 0;
19991999

20002000
assert(TY_SB_ADD(&sb, "hsla(240, 100%, 50%, .7)") == 0);
20012001
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
2002-
assert(r == 255 && g == 7 && b == 0 && a == 179);
2002+
assert(r == 0 && g == 0 && b == 255 && a == 179);
20032003
ty_sb_free(&sb);
20042004
r = g = b = a = 0;
20052005

20062006
assert(TY_SB_ADD(&sb, "hsla(240, 100%, 50%, 1)") == 0);
20072007
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
2008-
assert(r == 255 && g == 7 && b == 0 && a == 255);
2008+
assert(r == 0 && g == 0 && b == 255 && a == 255);
20092009
ty_sb_free(&sb);
20102010
r = g = b = a = 0;
20112011

20122012
/* Whitespace syntax */
20132013
assert(TY_SB_ADD(&sb, "hsla(240 100% 50% / .05)") == 0);
20142014
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
2015-
assert(r == 255 && g == 7 && b == 0 && a == 13);
2015+
assert(r == 0 && g == 0 && b == 255 && a == 13);
20162016
ty_sb_free(&sb);
20172017
r = g = b = a = 0;
20182018

20192019
/* Percentage value for alpha */
20202020
assert(TY_SB_ADD(&sb, "hsla(240 100% 50% / 5%)") == 0);
20212021
assert(_parse_css_hsl_color(&sb, &r, &g, &b, &a) == EINA_TRUE);
2022-
assert(r == 255 && g == 7 && b == 0 && a == 13);
2022+
assert(r == 0 && g == 0 && b == 255 && a == 13);
20232023
ty_sb_free(&sb);
20242024
r = g = b = a = 0;
20252025

tests/color_link_css_hsl.sh

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,71 +39,71 @@ printf 'whether there is a color underneath)'
3939
##
4040
## hsl(270,60%,70%)
4141
printf '\033}tm;76;36\0'
42-
printf '\033}tlc;1;2;16;2;224;135;132;255\0'
42+
printf '\033}tlc;1;2;16;2;178;132;224;255\0'
4343

4444
## hsl(270, 60%, 70%)
4545
printf '\033}tm;294;34\0'
46-
printf '\033}tlc;31;2;48;2;224;135;132;255\0'
46+
printf '\033}tlc;31;2;48;2;178;132;224;255\0'
4747

4848
## hsl(270 60% 70%)
4949
printf '\033}tm;32;56\0'
50-
printf '\033}tlc;1;3;16;3;224;135;132;255\0'
50+
printf '\033}tlc;1;3;16;3;178;132;224;255\0'
5151

5252
## hsl(270deg, 60%, 70%)
5353
printf '\033}tm;311;56\0'
54-
printf '\033}tlc;31;3;51;3;224;135;132;255\0'
54+
printf '\033}tlc;31;3;51;3;178;132;224;255\0'
5555

5656
## hsl(4.71239rad, 60%, 70%)
5757
printf '\033}tm;89;67\0'
58-
printf '\033}tlc;1;4;25;4;224;135;132;255\0'
58+
printf '\033}tlc;1;4;25;4;178;132;224;255\0'
5959

6060
## hsl(300grad, 60%, 70%)
6161
printf '\033}tm;328;68\0'
62-
printf '\033}tlc;31;4;52;4;224;135;132;255\0'
62+
printf '\033}tlc;31;4;52;4;178;132;224;255\0'
6363

6464
## hsl(.75turn, 60%, 70%)
6565
printf '\033}tm;14;84\0'
66-
printf '\033}tlc;1;5;22;5;224;135;132;255\0'
66+
printf '\033}tlc;1;5;22;5;178;132;224;255\0'
6767

6868
## hsl(270, 60%, 50%, .15)
6969
printf '\033}tm;226;85\0'
70-
printf '\033}tlc;31;5;53;5;204;55;51;38\0'
70+
printf '\033}tlc;31;5;53;5;127;51;204;38\0'
7171

7272
## hsl(270, 60%, 50%, 15%)
7373
printf '\033}tm;107;99\0'
74-
printf '\033}tlc;1;6;23;6;204;55;51;38\0'
74+
printf '\033}tlc;1;6;23;6;127;51;204;38\0'
7575

7676
## hsl(270 60% 50% / .15)
7777
printf '\033}tm;312;99\0'
78-
printf '\033}tlc;31;6;52;6;204;55;51;38\0'
78+
printf '\033}tlc;31;6;52;6;127;51;204;38\0'
7979

8080
## hsl(270 60% 50% / 15%)
8181
printf '\033}tm;44;111\0'
82-
printf '\033}tlc;1;7;22;7;204;55;51;38\0'
82+
printf '\033}tlc;1;7;22;7;127;51;204;38\0'
8383

8484
## hsla(240, 100%, 50%, .05)
8585
printf '\033}tm;238;114\0'
86-
printf '\033}tlc;31;7;55;7;255;7;0;13\0'
86+
printf '\033}tlc;31;7;55;7;0;0;255;13\0'
8787

8888
## hsla(240, 100%, 50%, .4)
8989
printf '\033}tm;95;129\0'
90-
printf '\033}tlc;1;8;24;8;255;7;0;102\0'
90+
printf '\033}tlc;1;8;24;8;0;0;255;102\0'
9191

9292
## hsla(600, 100%, 50%, .7)
9393
printf '\033}tm;336;127\0'
94-
printf '\033}tlc;31;8;54;8;255;7;0;179\0'
94+
printf '\033}tlc;31;8;54;8;0;0;255;179\0'
9595

9696
## hsla(240, 100%, 50%, 1)
9797
printf '\033}tm;27;142\0'
98-
printf '\033}tlc;1;9;23;9;255;7;0;255\0'
98+
printf '\033}tlc;1;9;23;9;0;0;255;255\0'
9999

100100
## hsla(240 100% 50% / .05)
101101
printf '\033}tm;237;142\0'
102-
printf '\033}tlc;31;9;54;9;255;7;0;13\0'
102+
printf '\033}tlc;31;9;54;9;0;0;255;13\0'
103103

104104
## hsla(240 100% 50% / 5%)
105105
printf '\033}tm;153;158\0'
106-
printf '\033}tlc;1;10;23;10;255;7;0;13\0'
106+
printf '\033}tlc;1;10;23;10;0;0;255;13\0'
107107

108108

109109
##

0 commit comments

Comments
 (0)