Commits

Anonymous committed be287f8

use extglob to remove all trailing underscores from a nick before deciding color

Comments (0)

Files changed (1)

extras/cw_color.sh

 #!/bin/bash
 
 PAD=12
-NICK=$USER
+NICK="$USER"
 
 # NOTE: make sure you have a 256 color terminal, or change these options
 # to find out which colors are readable...
 done
 
 color_cache["-!-"]="$notice_fmt"
-color_cache["${NICK%_}"]="$my_line_fmt"
+color_cache["${NICK%%+(_)}"]="$my_line_fmt"
 
 set_format() {
-	if [ -n "${color_cache["${*%_}"]}" ]; then
-		format=${color_cache["${*%_}"]}
+	if [ -n "${color_cache["$*"]}" ]; then
+		format=${color_cache["$*"]}
 	else
 		chksm="$(echo "$*" | cksum | sed "s/^0\+//; s/ .*$//")"
 		chksm=$((chksm % ${#colors[@]}))
 
 	time="${notice_fmt}${time}${reset}"
 
-	set_format "$nick"
+	# remove all trailing underscores so nicks foo and foo_ are the same color
+	# if extglob is not set, no harm done, just doesn't remove the underscores
+	set_format "${nick%%+(_)}"
 	nick=$(printf "%s%${PAD}s%s |%s" "$format" "$nick" "$reset" "$format")
 
 	first=1