summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Builtins/.distfiles6
-rw-r--r--Completion/Builtins/_read18
-rw-r--r--Completion/Builtins/_vars4
4 files changed, 28 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 5486e41cf..de4ae298f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-09  Oliver Kiddle  <opk@zsh.org>
+
+	* 12578: Completion/Builtins/_read, Completion/Builtins/_vars,
+	Completion/Builtins/.distfiles: new completion for read builtin
+
 2000-08-08  Clint Adams  <schizo@debian.org>
 
 	* 12568: configure.in, Src/compat.c, Src/exec.c, Src/init.c,
diff --git a/Completion/Builtins/.distfiles b/Completion/Builtins/.distfiles
index 93a6ce398..d2878d165 100644
--- a/Completion/Builtins/.distfiles
+++ b/Completion/Builtins/.distfiles
@@ -2,7 +2,7 @@ DISTFILES_SRC='
     .distfiles
     _aliases _arrays _autoload _bg_jobs _bindkey _builtin _cd _command
     _compdef _disable _echotc _emulate _enable _fc _fg_jobs _functions
-    _hash _kill _limits _nothing _pids _popd _print _sched _set _setopt
-    _source _stat _trap _unhash _unsetopt _vars _vars_eq _wait _which
-    _zcompile _zftp _zle _zmodload _zpty _signals _zstyle
+    _hash _kill _limits _nothing _pids _popd _print _read _sched _set
+    _setopt _source _stat _trap _unhash _unsetopt _vars _vars_eq _wait
+    _which _zcompile _zftp _zle _zmodload _zpty _signals _zstyle
 '
diff --git a/Completion/Builtins/_read b/Completion/Builtins/_read
new file mode 100644
index 000000000..a648701d9
--- /dev/null
+++ b/Completion/Builtins/_read
@@ -0,0 +1,18 @@
+#compdef read
+
+local pflag expl line curcontext="$curcontext"
+
+# -p flag only relevant if we have a coprocess
+(:>&p) 2>/dev/null &&
+  pflag='(-q -u -z)-p[input is read from the coprocess]'
+
+_arguments -C -s \
+  '-r[raw mode]' \
+  '(-p -k -u -z)-q[read y or n character from terminal]' \
+  '(-q)-k[specify number of characters to read]:number of characters' \
+  '(-q -u -p)-z[read entry from editor buffer stack]' \
+  '(-E)-e[input read is echoed and not assigned]' \
+  '(-e)-E[input read is echoed]' \
+  '-A[first name is taken as an array]' \
+  '(-q -z -p)-u+[specify file-descriptor to read from]:file-descriptor:_file_descriptors' \
+  $pflag '1:varprompt:_vars -qS\?' '*:vars:_vars'
diff --git a/Completion/Builtins/_vars b/Completion/Builtins/_vars
index 6444c68fe..a46b99de0 100644
--- a/Completion/Builtins/_vars
+++ b/Completion/Builtins/_vars
@@ -1,4 +1,4 @@
-#compdef getopts read unset vared
+#compdef getopts unset vared
 
 # This will handle completion of keys of associative arrays, e.g. at
 # `vared foo[<TAB>'.  However, in this version the [ must be added
@@ -20,5 +20,5 @@ if [[ $PREFIX = *\[* ]]; then
         compadd $addclose -k "$var"
   fi
 else
-  _parameters
+  _parameters "$@"
 fi