diff --git a/bin/__build_sgr_code b/bin/__build_sgr_code index 04b26f9..eba9f6f 100755 --- a/bin/__build_sgr_code +++ b/bin/__build_sgr_code @@ -120,10 +120,14 @@ function ext_color() function rgb_color() { + color=$1 + case $1 in + [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) color=${1:0:1}${1:0:1}${1:1:1}${1:1:1}${1:2:1}${1:2:1} ;; + esac # First split off the red, green, and blue components... - red_hex=${1:0:2} - green_hex=${1:2:2} - blue_hex=${1:4:2} + red_hex=${color:0:2} + green_hex=${color:2:2} + blue_hex=${color:4:2} # Convert to decimal... red_dec=$((16#${red_hex})) @@ -297,14 +301,20 @@ do ansi:*) make_color 0 ansi_color ${1:5} ;; ext:*) make_color 0 ext_color ${1:4} ;; + # 12-bit color also supported + [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color $1 ;; [0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color $1 ;; fg:ansi:*) make_color 0 ansi_color ${1:8} ;; fg:ext:*) make_color 0 ext_color ${1:7} ;; + # 12-bit color also supported + fg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color ${1:3} ;; fg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color ${1:3} ;; bg:ansi:*) make_color 1 ansi_color ${1:8} ;; bg:ext:*) make_color 1 ext_color ${1:7} ;; + # 12-bit color also supported + bg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 1 rgb_color ${1:3} ;; bg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 1 rgb_color ${1:3} ;; fg:*) make_color 0 named_color ${1:3} ;;