about summary refs log tree commit diff
path: root/Completion/User/_ports
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/User/_ports')
-rw-r--r--Completion/User/_ports9
1 files changed, 7 insertions, 2 deletions
diff --git a/Completion/User/_ports b/Completion/User/_ports
index ffd04ce5e..da59fd4ea 100644
--- a/Completion/User/_ports
+++ b/Completion/User/_ports
@@ -1,7 +1,12 @@
 #autoload
 
-local expl
+local expl ports
 
-: ${(A)ports:=${${(M)${${(f)"$(</etc/services)"}:#\#*}#*/tcp}%%[ 	]*}}
+if ! _style ports ports ports; then
+  (( $+_cache_ports )) ||
+      : ${(A)ports:=${${(M)${${(f)"$(</etc/services)"}:#\#*}#*/tcp}%%[ 	]*}}
+
+  ports=( "$_cache_ports[@]" )
+fi
 
 _wanted ports expl port && compadd "$@" "$expl[@]" - "$ports[@]"