zsh: make color_map and attr_map more robust

zsh allows to defile "global aliases" which may appear anywhere on the
command line. The most prominent example is:

  alias -g 'L'=" | less "

This allows command lines such as "bzr log L".

In order to avoid such global aliases to be expanded in this
user-sourced utility file, the key need to be quoted.
This commit is contained in:
Reinhard Tartler 2013-03-31 20:24:30 +02:00
commit 6ae953a7e1

View file

@ -52,37 +52,37 @@ color_screen() {
color_map() { color_map() {
case "$1" in case "$1" in
k) _RET="black" ;; "k") _RET="black" ;;
r) _RET="red" ;; "r") _RET="red" ;;
g) _RET="green" ;; "g") _RET="green" ;;
y) _RET="yellow" ;; "y") _RET="yellow" ;;
b) _RET="blue" ;; "b") _RET="blue" ;;
m) _RET="magenta" ;; "m") _RET="magenta" ;;
c) _RET="cyan" ;; "c") _RET="cyan" ;;
w) _RET="white" ;; "w") _RET="white" ;;
d) _RET="color0" ;; "d") _RET="color0" ;;
K) _RET="#555555" ;; "K") _RET="#555555" ;;
R) _RET="#FF0000" ;; "R") _RET="#FF0000" ;;
G) _RET="#00FF00" ;; "G") _RET="#00FF00" ;;
Y) _RET="#FFFF00" ;; "Y") _RET="#FFFF00" ;;
B) _RET="#0000FF" ;; "B") _RET="#0000FF" ;;
M) _RET="#FF00FF" ;; "M") _RET="#FF00FF" ;;
C) _RET="#00FFFF" ;; "C") _RET="#00FFFF" ;;
W) _RET="#FFFFFF" ;; "W") _RET="#FFFFFF" ;;
*) _RET= ;; *) _RET= ;;
esac esac
} }
attr_map() { attr_map() {
case "$1" in case "$1" in
d) _RET=,dim ;; "d") _RET=,dim ;;
u) _RET=,underscore ;; "u") _RET=,underscore ;;
b) _RET=,bold ;; "b") _RET=,bold ;;
r) _RET=,reverse ;; "r") _RET=,reverse ;;
s) _RET=,standout ;; "s") _RET=,standout ;;
B) _RET=,blinking ;; "B") _RET=,blinking ;;
h) _RET=,hidden ;; "h") _RET=,hidden ;;
i) _RET=,italics ;; "i") _RET=,italics ;;
*) _RET= ;; *) _RET= ;;
esac esac
} }