diff --git a/bin/__build_sgr_code b/bin/__build_sgr_code index a963409..560c27c 100755 --- a/bin/__build_sgr_code +++ b/bin/__build_sgr_code @@ -119,10 +119,14 @@ function render_color() command_color=30 if (( ${use_3_bit} )) then - basecolor=$(( ${command_color} )) + # Underline colours need 8-bit or more + if (( ${background} > 1 )) ; then return; fi + basecolor=$(( ${command_color} + ${background}*10)) next="$(( ${basecolor} + ${legacy_3_bit} ))" elif (( ${use_4_bit} )) then + # Underline colours need 8-bit or more + if (( ${background} > 1 )) ; then return; fi command_color=$(( ${command_color} + ${intensity_1_bit} * 60 )) basecolor=$(( ${command_color} + ${background}*10 )) next="$(( ${basecolor} + ${legacy_3_bit} ))" @@ -381,8 +385,14 @@ do 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} ;; + ul:ext:*) make_color 2 ext_color ${1:7} ;; + # 12-bit color also supported + ul:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 2 rgb_color ${1:3} ;; + ul:[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 2 rgb_color ${1:3} ;; + fg:*) make_color 0 named_color ${1:3} ;; bg:*) make_color 1 named_color ${1:3} ;; + ul:*) make_color 2 named_color ${1:3} ;; *) make_color 0 named_color $1 ;; esac if [[ ! -z ${output} ]]