summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:11:20 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:11:20 +0000
commit63a8ab3ca82856bb22e97808ed34fa555fb8e1de (patch)
tree7184a7aff6af9555c6045566bbaf444752bbc72f /Completion
parent662f9450fe6b1ed0642416df4d50e193d31ea92b (diff)
downloadzsh-63a8ab3ca82856bb22e97808ed34fa555fb8e1de.tar.gz
zsh-63a8ab3ca82856bb22e97808ed34fa555fb8e1de.tar.xz
zsh-63a8ab3ca82856bb22e97808ed34fa555fb8e1de.zip
moved from Completion/Base/_retrieve_cache
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Base/Utility/_retrieve_cache31
1 files changed, 31 insertions, 0 deletions
diff --git a/Completion/Base/Utility/_retrieve_cache b/Completion/Base/Utility/_retrieve_cache
new file mode 100644
index 000000000..6a82cd48b
--- /dev/null
+++ b/Completion/Base/Utility/_retrieve_cache
@@ -0,0 +1,31 @@
+#autoload
+#
+# Retrieval component of completions caching layer
+
+local _cache_ident _cache_dir _cache_path _cache_policy
+_cache_ident="$1"
+
+if zstyle -t ":completion:${curcontext}:" use-cache; then
+  # Decide which directory to retrieve cache from, and ensure it exists
+  zstyle -s ":completion:${curcontext}:" cache-path _cache_dir
+  : ${_cache_dir:=${ZDOTDIR:-HOME}/.zcompcache}
+  if [[ ! -d "$_cache_dir" ]]; then
+    [[ -e "$_cache_dir" ]] &&
+      _message "cache-dir ($_cache_dir) isn't a directory\!"
+    return 1
+  fi
+
+  _cache_path="$_cache_dir/$_cache_ident"
+
+  if [[ -e "$_cache_path" ]]; then
+    _cache_invalid "$_cache_ident" && return 1
+
+    . "$_cache_path"
+    return 0
+  else
+    return 1
+  fi
+else
+  return 1
+fi
+