summaryrefslogtreecommitdiff
path: root/Completion/X
diff options
context:
space:
mode:
authorOliver Kiddle <okiddle@yahoo.co.uk>2020-07-08 17:40:42 +0200
committerOliver Kiddle <okiddle@yahoo.co.uk>2020-07-08 17:40:42 +0200
commit389c853b4acf3d5bb9f5b06aa26219ee2f5bad6c (patch)
tree41a0adfec40f4a12eb2b8a2ebad43b6e1c7bb7ae /Completion/X
parenta0a27473fe0e344a9deb4f042c24e31a2e22bcc5 (diff)
downloadzsh-389c853b4acf3d5bb9f5b06aa26219ee2f5bad6c.tar.gz
zsh-389c853b4acf3d5bb9f5b06aa26219ee2f5bad6c.zip
46195: use showrgb command to get colours if it is available
Diffstat (limited to 'Completion/X')
-rw-r--r--Completion/X/Type/_x_color13
1 files changed, 8 insertions, 5 deletions
diff --git a/Completion/X/Type/_x_color b/Completion/X/Type/_x_color
index 960eae6d3..845a35686 100644
--- a/Completion/X/Type/_x_color
+++ b/Completion/X/Type/_x_color
@@ -10,25 +10,28 @@
local expl
-if (( ! $+_color_cache )); then
+if (( ! $+_cache_x_colors )); then
+ typeset -ga _cache_x_colors
local file
# Cache of color names doesn't exist yet, create it.
zstyle -s ":completion:${curcontext}:colors" path file
if [[ -n "$file" ]]; then
- _color_cache=( "${(@)${(@f)$(< $file)}[2,-1]##* }" )
+ _cache_x_colors=( "${(@)${(@f)$(< $file)}[2,-1]##* }" )
+ elif (( $+commands[showrgb] )); then
+ _cache_x_colors=( "${(@)${(@)${(@f)$(_call_program colors showrgb)}[2,-1]##* }:#* *}" )
else
file=( /usr/{lib,{{X11R6,openwin},local{,/X11{,R6}}}/lib}/X11/rgb.txt(N) )
(( $#file )) &&
- _color_cache=( "${(@)${(@)${(@f)$(< $file[1])}[2,-1]##* }:#* *}" )
+ _cache_x_colors=( "${(@)${(@)${(@f)$(< $file[1])}[2,-1]##* }:#* *}" )
fi
# Stupid default value.
- (( $#_color_cache )) || _color_cache=(white black gray red blue green)
+ (( $#_cache_x_colors )) || _cache_x_colors=(white black gray red blue green)
fi
_wanted colors expl 'color specification' compadd "$@" -M \
- 'm:{a-z}={A-Z} m:-=\ r:[^ A-Z0-9]||[ A-Z0-9]=* r:|=*' -a - _color_cache
+ 'm:{a-z}={A-Z} m:-=\ r:[^ A-Z0-9]||[ A-Z0-9]=* r:|=*' -a - _cache_x_colors