Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: use argument sets style in _compdef and _zpty; Re: FD_CLOEXEC



Peter Stephenson wrote:

> I developed zftp under AIX, so it's just possible something funny is going
> on there.  Maybe Oliver could check it at least compiles?

Firstly, Peter: I have recompiled with your zftp patch on AIX without
any problems. Judging by the AIX man pages, your patch is correct and it
was wrong before. I did a few basic tests of zftp and it all worked
fine. If you can think of a specific test which will cover your changed
code, I can try that.

Secondly, I have updated the compset and zpty completions to use the
argument sets thing. This showed up a couple of possible bugs:

zpty -e<tab> doesn't exclude all the other options (apart from -b)
zpty -e -<tab> does work though

and

% zpty -w l <tab>
_arguments:shift:297: shift count must be <= $#

I'm not sure that the latter one isn't the syntax being wrong in the
_arguments call in _zpty. It occurs with the previous _zpty so is
not related to the argument sets stuff.

Oliver

Index: Completion/Builtins/_compdef
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Builtins/_compdef,v
retrieving revision 1.5
diff -u -c -r1.5 _compdef
*** Completion/Builtins/_compdef	2000/05/05 13:38:46	1.5
--- Completion/Builtins/_compdef	2000/05/25 14:56:00
***************
*** 6,18 ****
  _arguments -C -s \
    '(-d)-a[make function autoloadable]' \
    '(-d -p -P)-n[leave existing definitions intact]' \
-   '(-a -n -p -P -k -K)-d[delete]:*:completed command:->ccom' \
-   '(-n -d -P -k -K)-p[completion for command matching pattern]:completion function:->cfun:pattern' \
-   '(-n -d -p -k -K)-P[as -p for commands without own completion]:completion function:->cfun:pattern' \
-   '(-d -p -P -K)-k[define widget and key binding]:completion function:->cfun:style:->style:*:key' \
-   '(-d -p -P -k)-K[define multiple widgets based on function]:*::: :->multi' \
    ':completion function:->cfun' \
!   '*:commands: _command_names' && return 0
  
  if [[ $state = multi ]]; then
    case $(( CURRENT % 3 )) in
--- 6,23 ----
  _arguments -C -s \
    '(-d)-a[make function autoloadable]' \
    '(-d -p -P)-n[leave existing definitions intact]' \
    ':completion function:->cfun' \
!   '*:commands: _command_names' \
!  - d \
!   '(-a -n)-d[delete]:*:completed command:->ccom' \
!  - p \
!   '(-n)-p[completion for command matching pattern]:completion function:->cfun:pattern' \
!  - P \
!   '(-n)-P[as -p for commands without own completion]:completion function:->cfun:pattern' \
!  - k \
!   '-k[define widget and key binding]:completion function:->cfun:style:->style:*:key' \
!  - K \
!   '-K[define multiple widgets based on function]:*::: :->multi' && return 0
  
  if [[ $state = multi ]]; then
    case $(( CURRENT % 3 )) in
Index: Completion/Builtins/_zpty
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Builtins/_zpty,v
retrieving revision 1.5
diff -u -c -r1.5 _zpty
*** Completion/Builtins/_zpty	2000/05/05 13:38:46	1.5
--- Completion/Builtins/_zpty	2000/05/25 14:56:00
***************
*** 4,18 ****
  typeset -A opt_args
  
  _arguments -C -s \
!   '(-d -w -r -L)-e[echo input characters]' \
!   '(-d -w -r -L)-b[io to pseudo-terminal blocking]' \
!   '(-e -b -w -r -L)-d[delete command]:*:name:->name' \
!   '(-e -b -d -r -L)-w[send string to command]:name:->name:*:strings to write' \
!   '(-e -b -d -w -L *)-r[read string from command]:name:->name:param:_parameters' \
!   '(-e -b -d -w -r)-L[list defined commands as calls]' \
!   '(-r)*::args:_normal' && return 0
  
  if [[ $state = name ]]; then
    list=( ${${(f)"$(zpty)"}#*\) } )
    names=( ${list%%:*} )
    if zstyle -T ":completion:${curcontext}" verbose; then
--- 4,27 ----
  typeset -A opt_args
  
  _arguments -C -s \
!   '(-r)*::args:_normal' \
!  - eb \
!   '-e[echo input characters]' \
!   '-b[io to pseudo-terminal blocking]' \
!  - d \
!   '-d[delete command]:*:name:->name' \
!  - w \
!   '-w[send string to command]:name:->name:*:strings to write' \
!  - L \
!   '-L[list defined commands as calls]' \
!  - r \
!   '(*)-r[read string from command]:name:->name:param:_parameters' && return 0
  
  if [[ $state = name ]]; then
+   if ! zmodload -e zsh/zpty; then
+     _message "zpty module not loaded"
+     return 1
+   fi
    list=( ${${(f)"$(zpty)"}#*\) } )
    names=( ${list%%:*} )
    if zstyle -T ":completion:${curcontext}" verbose; then



Messages sorted by: Reverse Date, Date, Thread, Author