mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
37 lines
906 B
Plaintext
37 lines
906 B
Plaintext
#autoload
|
|
#
|
|
# Storage component of completions caching layer
|
|
|
|
local _cache_ident
|
|
_cache_ident="$1"
|
|
|
|
if zstyle -t ":completion:${curcontext}:" use-cache; then
|
|
# Decide which directory to cache to, and ensure it exists
|
|
zstyle -s ":completion:${curcontext}:" cache-path _cache_dir
|
|
: ${_cache_dir:=${ZDOTDIR:-$HOME}/.zcompcache}
|
|
if [[ ! -d "$_cache_dir" ]]; then
|
|
if [[ -e "$_cache_dir" ]]; then
|
|
_message "cache-dir style points to a non-directory\!"
|
|
else
|
|
mkdir -p "$_cache_dir"
|
|
if [[ ! -d "$_cache_dir" ]]; then
|
|
_message "Couldn't create cache-dir $_cache_dir"
|
|
return 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
shift
|
|
for var; do
|
|
case ${(Pt)var} in
|
|
(*readonly*) ;;
|
|
(*(association|array)*) print -r "$var=( ${(kv@Pqq)^^var} )";;
|
|
(*) print -r "$var=${(Pqq)^^var}";;
|
|
esac
|
|
done >! "$_cache_dir/$_cache_ident"
|
|
else
|
|
return 1
|
|
fi
|
|
|
|
return 0
|