From 3258211f27cd71c9b0d1ec256e9b47052aa871c0 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 12 Dec 2019 14:23:07 +0100 Subject: Improve color blindness handling Rename some things and use a swtich instead of if. --- src/config/color.c | 20 ++++++++++++-------- src/config/color.h | 4 ++-- src/config/theme.c | 4 ++-- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/config/color.c b/src/config/color.c index 6af30bf8..34e01247 100644 --- a/src/config/color.c +++ b/src/config/color.c @@ -3,6 +3,7 @@ * vim: expandtab:ts=4:sts=4:sw=4 * * Copyright (C) 2019 Aurelien Aptel + * Copyright (C) 2019 Michael Vetter * * This file is part of Profanity. * @@ -401,14 +402,17 @@ static int color_hash(const char *str, color_profile profile) double h = ((buf[1] << 8) | buf[0]) / 65536. * 360.; - // red/green blindness correction - if (profile == COLOR_PROFILE_REDGREEN) { - h = fmod(fmod(h + 90., 180) - 90., 360.); - } - - // blue blindness correction - if (profile == COLOR_PROFILE_BLUE) { - h = fmod(h, 180.); + switch(profile) + { + case COLOR_PROFILE_REDGREEN_BLINDNESS: + // red/green blindness correction + h = fmod(fmod(h + 90., 180) - 90., 360.); + break; + case COLOR_PROFILE_BLUE_BLINDNESS: + // blue blindness correction + h = fmod(h, 180.); + default: + break; } rc = find_closest_col((int)h, 100, 50); diff --git a/src/config/color.h b/src/config/color.h index 202e87c6..304e862e 100644 --- a/src/config/color.h +++ b/src/config/color.h @@ -43,8 +43,8 @@ typedef enum { COLOR_PROFILE_DEFAULT, - COLOR_PROFILE_REDGREEN, - COLOR_PROFILE_BLUE, + COLOR_PROFILE_REDGREEN_BLINDNESS, + COLOR_PROFILE_BLUE_BLINDNESS, } color_profile; struct color_def { diff --git a/src/config/theme.c b/src/config/theme.c index 8d2160dd..48776090 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -677,9 +677,9 @@ theme_hash_attrs(const char *str) char *color_pref = prefs_get_string(PREF_COLOR_NICK); if (strcmp(color_pref, "redgreen") == 0) { - profile = COLOR_PROFILE_REDGREEN; + profile = COLOR_PROFILE_REDGREEN_BLINDNESS; } else if (strcmp(color_pref, "blue") == 0) { - profile = COLOR_PROFILE_BLUE; + profile = COLOR_PROFILE_BLUE_BLINDNESS; } prefs_free_string(color_pref); -- cgit 1.4.1-2-gfad0