zsh-users
 help / color / mirror / code / Atom feed
* How to create unnamed temporary arrays?
@ 2001-02-19  9:52 Hannu Koivisto
  2001-02-19  9:55 ` Sven Wischnowsky
  0 siblings, 1 reply; 12+ messages in thread
From: Hannu Koivisto @ 2001-02-19  9:52 UTC (permalink / raw)
  To: Zsh Users' List

Greetings,

I'm currently using something like this to list the base names of
files in /usr/local/etc/packages/ directory, each name on its own
line:

echo ${(F)$(echo /usr/local/etc/packages/*(.:t:r))}

This has the obvious problem that it doesn't work if filenames have
spaces in them.  I just couldn't figure out any way to do something
corresponding to:

kala=(/usr/local/etc/packages/*(.:t:r))
echo ${(F)kala}

without creating that temporary array variable.  Not that this
really matters in this case, but I've faced situations earlier
where avoiding the temporary name might have been more convenient
and now I finally have a simple enough example to demonstrate it.

So, is there a way?  I'm using zsh versions 3.1.9-dev-6 and
3.1.9-dev-8 from Debian GNU/Linux testing/unstable and stable,
respectively.

-- 
Hannu
Please don't send copies of list mail


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: How to create unnamed temporary arrays?
@ 2001-02-19  9:55 ` Sven Wischnowsky
  2001-02-20 18:02   ` Hannu Koivisto
  0 siblings, 1 reply; 12+ messages in thread
From: Sven Wischnowsky @ 2001-02-19  9:55 UTC (permalink / raw)
  To: zsh-users; +Cc: Hannu Koivisto


Hannu Koivisto wrote:

> Greetings,
> 
> I'm currently using something like this to list the base names of
> files in /usr/local/etc/packages/ directory, each name on its own
> line:
> 
> echo ${(F)$(echo /usr/local/etc/packages/*(.:t:r))}
> 
> This has the obvious problem that it doesn't work if filenames have
> spaces in them.  I just couldn't figure out any way to do something
> corresponding to:
> 
> kala=(/usr/local/etc/packages/*(.:t:r))
> echo ${(F)kala}
> 
> without creating that temporary array variable.  Not that this
> really matters in this case, but I've faced situations earlier
> where avoiding the temporary name might have been more convenient
> and now I finally have a simple enough example to demonstrate it.
> 
> So, is there a way?  I'm using zsh versions 3.1.9-dev-6 and
> 3.1.9-dev-8 from Debian GNU/Linux testing/unstable and stable,
> respectively.

If I got that right and you really only want those filenames one per
line, you can just use:

  print -l /usr/local/etc/packages/*(.:t:r)

(the -l option to print makes it print the argument one per line).

Bye
 Sven


--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: How to create unnamed temporary arrays?
  2001-02-19  9:55 ` Sven Wischnowsky
@ 2001-02-20 18:02   ` Hannu Koivisto
  2001-02-20 18:38     ` Andrej Borsenkow
  2001-02-21  6:56     ` Thomas Köhler
  0 siblings, 2 replies; 12+ messages in thread
From: Hannu Koivisto @ 2001-02-20 18:02 UTC (permalink / raw)
  To: zsh-users

Sven Wischnowsky <wischnow@informatik.hu-berlin.de> writes:

| If I got that right and you really only want those filenames one per

Not quite; that package listing job was just a simple example using
which I was able to demonstrate the kind of situations in which I
might want to create unnamed temporary arrays.  I.e. I'd really like
to know if it is possible to rewrite this...

kala=(/usr/local/etc/packages/*(.:t:r))
echo ${(F)kala}

...so that kala variable is not defined but the ${(F)...}
construction is still used.

|   print -l /usr/local/etc/packages/*(.:t:r)

Thanks for the tip, though.

Please notice the notice in my signature and the Mail-copies-to
header.

-- 
Hannu
Please don't send copies of list mail


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: How to create unnamed temporary arrays?
  2001-02-20 18:02   ` Hannu Koivisto
@ 2001-02-20 18:38     ` Andrej Borsenkow
  2001-02-26  6:38       ` Bart Schaefer
  2001-02-21  6:56     ` Thomas Köhler
  1 sibling, 1 reply; 12+ messages in thread
From: Andrej Borsenkow @ 2001-02-20 18:38 UTC (permalink / raw)
  To: Hannu Koivisto; +Cc: zsh-users

On 20 Feb 2001, Hannu Koivisto wrote:

> Sven Wischnowsky <wischnow@informatik.hu-berlin.de> writes:
> 
> | If I got that right and you really only want those filenames one per
> 
> Not quite; that package listing job was just a simple example using
> which I was able to demonstrate the kind of situations in which I
> might want to create unnamed temporary arrays.  I.e. I'd really like
> to know if it is possible to rewrite this...
> 
> kala=(/usr/local/etc/packages/*(.:t:r))
> echo ${(F)kala}
> 
> ...so that kala variable is not defined but the ${(F)...}
> construction is still used.
> 

The idea I had today (in relation to other things) was to introduce new
syntax, something like

${foo-(bar baz)}

(note braces). Combined with empty parameter name (it is legal) it makes
it possible to do

${(F)${:-(foo bar baz)}}

thus giving you exactly what you want.

I do not claim that I fully understand the parameter substitution code,
but it looks doable. There remain some decisions to make though. 

-andrej


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: How to create unnamed temporary arrays?
  2001-02-20 18:02   ` Hannu Koivisto
  2001-02-20 18:38     ` Andrej Borsenkow
@ 2001-02-21  6:56     ` Thomas Köhler
  2001-02-22  6:01       ` Andrej Borsenkow
  1 sibling, 1 reply; 12+ messages in thread
From: Thomas Köhler @ 2001-02-21  6:56 UTC (permalink / raw)
  To: zsh-users

[-- Attachment #1: Type: text/plain, Size: 1144 bytes --]

On Tue, Feb 20, 2001 at 08:02:21PM +0200,
Hannu Koivisto <azure@iki.fi> wrote:
> 
> Sven Wischnowsky <wischnow@informatik.hu-berlin.de> writes:
> 
> | If I got that right and you really only want those filenames one per
> 
> Not quite; that package listing job was just a simple example using
> which I was able to demonstrate the kind of situations in which I
> might want to create unnamed temporary arrays.  I.e. I'd really like
> to know if it is possible to rewrite this...
> 
> kala=(/usr/local/etc/packages/*(.:t:r))
> echo ${(F)kala}
> 
> ...so that kala variable is not defined but the ${(F)...}
> construction is still used.

Is it only for me that
   echo ${(F)$(echo /var/spool/news/de/comp/**/*(.:t:r))}
seems to work? Well, the problem may be spaces in the values, but even
that should be solveable...

Ciao,
Thomas

-- 
 Thomas Köhler Email:   jean-luc@picard.franken.de     | LCARS - Linux
     <><        WWW:     http://jeanluc-picard.de      | for Computers
                IRC:             jeanluc               | on All Real
               PGP public key available from Homepage! | Starships

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: How to create unnamed temporary arrays?
  2001-02-21  6:56     ` Thomas Köhler
@ 2001-02-22  6:01       ` Andrej Borsenkow
  2001-02-23 10:48         ` Stop _path_files from searching / Christoph Lange
  0 siblings, 1 reply; 12+ messages in thread
From: Andrej Borsenkow @ 2001-02-22  6:01 UTC (permalink / raw)
  To: Thomas K?hler, zsh-users


>
> Is it only for me that
>    echo ${(F)$(echo /var/spool/news/de/comp/**/*(.:t:r))}
> seems to work? Well, the problem may be spaces in the values, but even
> that should be solveable...
>

Of course is works. Actually, it is the only way to get globbing inside
parameter substitution.

-andrej


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Stop _path_files from searching /
  2001-02-22  6:01       ` Andrej Borsenkow
@ 2001-02-23 10:48         ` Christoph Lange
  2001-02-23 12:15           ` Andrej Borsenkow
  0 siblings, 1 reply; 12+ messages in thread
From: Christoph Lange @ 2001-02-23 10:48 UTC (permalink / raw)
  To: zsh-users

Hi,

  when I try to complete a path name like /path/to/dir in zsh 3.1.9 on
Linux, the completion function _path_files steps up the directory tree and
searches for completions in /, /path, /path/to and /path/to/dir. These
directories are not in my cdpath.

  This annoys me because my slow CD-ROM drive is automounted with autofs.
When a CD lies in the tray and a path is completed, zsh accesses /cdrom and
thereby mounts the CD-ROM. Of course, I could remove the symlink from /cdrom
to the autofs directory, but I'd rather like to get the job done by
configuring the zsh completion.

Any ideas?

Thanks in advance,

Christoph

-- 
To iterate is human; to recurse, divine.
Christoph Lange, langec@gmx.de, http://www.cul.de/home/yaph/, ICQ #51191833



^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Stop _path_files from searching /
  2001-02-23 10:48         ` Stop _path_files from searching / Christoph Lange
@ 2001-02-23 12:15           ` Andrej Borsenkow
  2001-02-26  8:26             ` Christoph Lange
  0 siblings, 1 reply; 12+ messages in thread
From: Andrej Borsenkow @ 2001-02-23 12:15 UTC (permalink / raw)
  To: Christoph Lange, zsh-users

> Hi,
>
>   when I try to complete a path name like /path/to/dir in zsh 3.1.9 on
> Linux, the completion function _path_files steps up the directory tree and
> searches for completions in /, /path, /path/to and /path/to/dir. These
> directories are not in my cdpath.
>

What has it to do with cdpath? _path_files completes partial file path; it is
used by many other completion functions, _cd including.

>   This annoys me because my slow CD-ROM drive is automounted with autofs.
> When a CD lies in the tray and a path is completed, zsh accesses /cdrom and
> thereby mounts the CD-ROM. Of course, I could remove the symlink from /cdrom
> to the autofs directory, but I'd rather like to get the job done by
> configuring the zsh completion.
>

I do not understand. _path_files basically evaluates

/path*/to*/dir*

so unless you try to complete something like

/cd/some/path/file

/cdrom will never be touched. Can you give specific example of what you try to
do? Together with zstyle -L output.
-andrej


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: How to create unnamed temporary arrays?
  2001-02-20 18:38     ` Andrej Borsenkow
@ 2001-02-26  6:38       ` Bart Schaefer
  0 siblings, 0 replies; 12+ messages in thread
From: Bart Schaefer @ 2001-02-26  6:38 UTC (permalink / raw)
  To: zsh-users

On Feb 19, 11:52am, Hannu Koivisto wrote:
} Subject: How to create unnamed temporary arrays?
}
} I'm currently using something like this to list the base names of
} files in /usr/local/etc/packages/ directory, each name on its own
} line:
} 
} echo ${(F)$(echo /usr/local/etc/packages/*(.:t:r))}
} 
} This has the obvious problem that it doesn't work if filenames have
} spaces in them.

There was a discussion of exactly this subject on zsh-users in December.
Start with

    http://www.zsh.org/mla/users/2000/msg00728.html

(The canonical way to access that should be
    http://www.zsh.org/cgi-bin/mla/redirect?USERNUMBER=3560
but the redirector doesn't seem to be working right now.)

On Feb 20,  9:38pm, Andrej Borsenkow wrote:
} Subject: Re: How to create unnamed temporary arrays?
}
} The idea I had today (in relation to other things) was to introduce new
} syntax, something like
} 
} ${foo-(bar baz)}
} 
} (note braces).

You mean the parens?

The problem with that is that it's semantically incompatible with syntax
that is parseable by standard sh, in which the parens would not have any
special meaning in that expression.  (Zsh's other overloadings of parens
have been to introduce them where they'd actually cause a syntax error
in sh.)  The above would have to be combined with some other signifier,
such as a new parameter flag, or an option.

The real issue of course is that there's no way to do filename generation
within a parameter expansion without resorting to command substitution.
Even given a syntax for embedding an array construction within the ${...},
you can't accomplish what's being asked for in 3560 and 3630 unless you
can also force a glob.

So the best mechanism for creating an "anonymous array" is probably:

    "${(ps:\0:)$(print -nN ...)}"

where `...' is the glob expression or whatever, which of course can be
optimized depending on what you plan to do with the array.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Stop _path_files from searching /
  2001-02-23 12:15           ` Andrej Borsenkow
@ 2001-02-26  8:26             ` Christoph Lange
  0 siblings, 0 replies; 12+ messages in thread
From: Christoph Lange @ 2001-02-26  8:26 UTC (permalink / raw)
  To: Andrej Borsenkow; +Cc: zsh-users

> >   when I try to complete a path name like /path/to/dir in zsh 3.1.9 on
> > Linux, the completion function _path_files steps up the directory tree and
> > searches for completions in /, /path, /path/to and /path/to/dir.
> > [...]
> >   This annoys me because my slow CD-ROM drive is automounted with autofs.
> > When a CD lies in the tray and a path is completed, zsh accesses /cdrom and
> > thereby mounts the CD-ROM. Of course, I could remove the symlink from /cdrom
> > to the autofs directory, but I'd rather like to get the job done by
> > configuring the zsh completion.
> >
> 
> I do not understand. _path_files basically evaluates
> 
> /path*/to*/dir*
> 
> so unless you try to complete something like
> 
> /cd/some/path/file
> 
> /cdrom will never be touched. Can you give specific example of what you
> try to do? Together with zstyle -L output.

$ zstyle -L
zstyle ':completion:*' ignore-parents parent pwd .. directory
zstyle ':completion:*' list-colors 'no=00' 'fi=00' 'di=01;34' 'ln=01'
'pi=40;33' 'so=01;35' 'bd=40;33;01' 'cd=40;33;01' 'ex=01;31' '*.cmd=01;32'
'*.exe=01;32' '*.com=01;32' '*.btm=01;32' '*.bat=01;32' '*.tar=00;31'
'*.tgz=00;31' '*.rpm=00;31' '*.arj=00;31' '*.taz=00;31' '*.lzh=00;31'
'*.zip=00;31' '*.z=00;31' '*.Z=00;31' '*.gz=00;31' '*.bz2=00;31'
'*.jpg=01;35' '*.gif=01;35' '*.bmp=01;35' '*.xbm=01;35' '*.xpm=01;35'
'*.tif=01;35' '*.png=01;35'
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the
character to insert%s'

Now, let's go on:

$ set -x
$ cd /usr/doc/ [TAB]
+_main_complete:19> setopt localoptions nullglob
rcexpandparam extendedglob
+_main_complete:20> unsetopt markdirs globsubst shwordsplit nounset
ksharrays
+_main_complete:24> setopt localtraps noerrexit
+_main_complete:24> trap - ZERR
+_main_complete:26> local func funcs ret=1 tmp _compskip format nm call
_completers _completer _completer_num curtag _comp_force_list _matchers
_matcher _matcher_num _comp_tags _comp_mesg context state line opt_args
val_args curcontext= _last_nmatches=-1 _last_menu_style _def_menu_style
_menu_style sel _saved_exact= _saved_lastprompt=yes _saved_list=autolist
_saved_insert=automenu-unambiguous _saved_colors=
+_main_complete:37> typeset -U _lastdescr _comp_ignore
+_main_complete:39> [[ -z  ]]
+_main_complete:39> curcontext=::: 
+_main_complete:41> [[ automenu-unambiguous == tab* ]]
+_main_complete:51> [[ -z  ]]
+_main_complete:52> compset -P 1 =
+_main_complete:54> [[ /usr/doc/ != */* ]]
+_main_complete:62> _setup default
+_setup:3> local val nm=0
+_setup:5> zstyle -a :completion:::::default list-colors val
+_setup:6> zmodload -i zsh/complist
+_setup:7> [[ default == default ]]
+_setup:8>
ZLS_COLORS=no=00:fi=00:di=01;34:ln=01:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:ex=01;31:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.tar=00;31:*.tgz=00;31:*.rpm=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.png=01;35 
+_setup:21> zstyle -t :completion:::::default list-packed
+_setup:23> [[ 2 -eq 1 ]]
+_setup:26> compstate[list]=autolist 
+_setup:29> zstyle -t :completion:::::default list-rows-first
+_setup:31> [[ 2 -eq 1 ]]
+_setup:34> compstate[list]=autolist 
+_setup:37> zstyle -t :completion:::::default last-prompt
+_setup:39> [[ 2 -eq 1 ]]
+_setup:42> compstate[last_prompt]=yes 
+_setup:45> zstyle -t :completion:::::default accept-exact
+_setup:47> [[ 2 -eq 1 ]]
+_setup:50> compstate[exact]= 
+_setup:53> [[ _last_nmatches -ge 0 ]]
+_setup:56> zstyle -a :completion:::::default menu val
+_setup:60> _last_nmatches=-1 
+_setup:63> [[  != always ]]
+_setup:64> zstyle -s :completion:::::default force-list val
+_main_complete:63> _def_menu_style=(  ) 
+_main_complete:72> _last_menu_style=( ) 
+_main_complete:74> zstyle -s :completion:::::default list-prompt tmp
+_main_complete:75> LISTPROMPT=%SAt %p: Hit TAB for more, or the character
to insert%s 
+_main_complete:76> zmodload -i zsh/complist
+_main_complete:78> zstyle -s :completion:::::default select-prompt tmp
+_main_complete:82> zstyle -s :completion:::::default select-scroll tmp
+_main_complete:89> ((  0  ))
+_main_complete:101> zstyle -a :completion::::: completer _completers
+_main_complete:102> _completers=( _complete _ignored ) 
+_main_complete:107> _completer_num=1 
+_main_complete:111> funcs=( ) 
+_main_complete:112> compprefuncs=( ) 
+_main_complete:117> tmp=_complete
+_main_complete:119> [[ -n  ]]
+_main_complete:121> [[ _complete == *:-* ]]
+_main_complete:124> [[ _complete == *:* ]]
+_main_complete:128> _completer=complete 
+_main_complete:130> curcontext=:complete:: 
+_main_complete:132> zstyle -a :completion::complete::: matcher-list
_matchers
+_main_complete:133> _matchers=(  ) 
+_main_complete:135> _matcher_num=1 
+_main_complete:136> _matcher=
+_main_complete:137> [[ -n  ]]
+_main_complete:142> _complete
+_complete:7> local comp name oldcontext
+_complete:8> typeset -T curcontext=:complete:: ccarray
+_complete:10> oldcontext=:complete:: 
+_complete:14> [[ -n  ]]
+_complete:25> comp=_first 
+_complete:26> [[ ! -z _first ]]
+_complete:27> ccarray[3]=-first- 
+_complete:28> _first
+_complete:29> [[  == all ]]
+_complete:39> [[ -n  ]]
+_complete:43> [[ command == command ]]
+_complete:44> curcontext=:complete:: 
+_complete:45> _normal -s
+_normal:3> local comp command cmd1 cmd2 pat val name i ret=1 _compskip=
+_normal:4> local curcontext=:complete::
+_normal:11> [[ -s == -s ]]
+_normal:17> command=cd 
+_normal:18> [[ CURRENT -eq 1 ]]
+_normal:26> [[ c == = ]]
+_normal:30> [[ cd == */* ]]
+_normal:35> cmd1=cd 
+_normal:36> cmd2= 
+_normal:37> curcontext=:complete:cd: 
+_normal:43> [[  != (all|*patterns*) ]]
+_normal:66> name=cd 
+_normal:67> comp=_cd 
+_normal:69> [[ -z _cd ]]
+_normal:73> [[ -n _cd ]]
+_normal:74> _compskip=patterns 
+_normal:75> _cd
+_cd:14> setopt localoptions nonomatch
+_cd:16> local expl
+_cd:18> [[ CURRENT -eq 3 ]]
+_cd:26> _popd
+_popd:8> setopt extendedglob nonomatch
+_popd:10> local expl list lines revlines disp
+_popd:12> zstyle -T :completion::complete:cd::directory-stack prefix-needed
+_popd:13> [[ /usr/doc/ == [-+]* ]]
+_popd:13> return 1
+_cd:26> [[ /usr/doc/ != (~|/|./|../)* ]]
+_cd:46> _wanted directories expl directory _path_files -/
+_wanted:3> local __targs __gopt=-J
+_wanted:5> [[ directories == -C?* ]]
+_wanted:8> [[ directories == -C ]]
+_wanted:12> __targs=( ) 
+_wanted:15> [[ directories == -([12]|)[VJ] ]]
+_wanted:20> _tags directories
+_tags:3> local prev
+_tags:10> [[ directories == -- ]]
+_tags:15> ((  1  ))
+_tags:19> local curcontext=:complete:cd: order tag nodef tmp
+_tags:21> [[ directories == -C?* ]]
+_tags:24> [[ directories == -C ]]
+_tags:28> targs=( ) 
+_tags:31> [[ directories == -(|-) ]]
+_tags:33> zstyle -a :completion::complete:cd:: group-order order
+_tags:48> comptags -i :complete:cd: directories
+_tags:52> [[ -n  ]]
+_tags:55> zstyle -a :completion::complete:cd:: tag-order order
+_tags:56> order=( (|*-)argument-* (|*-)option-* values options ) 
+_tags:58> tag=(|*-)argument-* (|*-)option-* values
+_tags:59> case (|*-)argument-* (|*-)option-* values (-)
+_tags:59> case (|*-)argument-* (|*-)option-* values (*())
+_tags:59> case (|*-)argument-* (|*-)option-* values (!*)
+_tags:59> case (|*-)argument-* (|*-)option-* values (?*)
+_tags:67> comptry -m (|*-)argument-* (|*-)option-* values
+_tags:58> tag=options
+_tags:59> case options (-)
+_tags:59> case options (*())
+_tags:59> case options (!*)
+_tags:59> case options (?*)
+_tags:67> comptry -m options
+_tags:71> [[ -z  ]]
+_tags:71> comptry directories
+_tags:76> comptags -T
+_tags:78> return
+_wanted:22> _tags
+_tags:3> local prev
+_tags:10> [[  == -- ]]
+_tags:15> ((  0  ))
+_tags:83> comptags -N
+_wanted:23> _all_labels -J directories expl directory _path_files -/
+_all_labels:3> local __gopt=-J __len __tmp __pre __suf __ret=1 __descr
__spec __prev
+_all_labels:5> [[ -J == - ]]
+_all_labels:10> [[ -J == -([12]|)[VJ] ]]
+_all_labels:11> __gopt=-J 
+_all_labels:12> shift
+_all_labels:15> __tmp=6 
+_all_labels:16> __len=5 
+_all_labels:17> [[ __tmp -lt __len ]]
+_all_labels:20> [[ __tmp -eq 5 ]]
+_all_labels:24> __pre=4 
+_all_labels:25> __suf=5 
+_all_labels:28> comptags -A directories curtag __spec
+_all_labels:29> _comp_tags= directories  
+_all_labels:30> [[ directories == *:* ]]
+_all_labels:37> _description -J directories expl directory
+_description:3> local name gropt=-J format gname hidden hide match opts
+_description:5> opts=( ) 
+_description:7> [[ -J == -([12]|)[VJ] ]]
+_description:8> gropt=-J 
+_description:9> shift
+_description:12> _lastdescr=(  directory ) 
+_description:14> _setup directories
+_setup:3> local val nm=0
+_setup:5> zstyle -a :completion::complete:cd::directories list-colors val
+_setup:6> zmodload -i zsh/complist
+_setup:7> [[ directories == default ]]
+_setup:10> eval
ZLS_COLORS="(directories)${(j.:(directories).)${(@)val:gs/:/\\:}}:${ZLS_COLORS}"
+_setup:10>
ZLS_COLORS=(directories)no=00:(directories)fi=00:(directories)di=01;34:(directories)ln=01:(directories)pi=40;33:(directories)so=01;35:(directories)bd=40;33;01:(directories)cd=40;33;01:(directories)ex=01;31:(directories)*.cmd=01;32:(directories)*.exe=01;32:(directories)*.com=01;32:(directories)*.btm=01;32:(directories)*.bat=01;32:(directories)*.tar=00;31:(directories)*.tgz=00;31:(directories)*.rpm=00;31:(directories)*.arj=00;31:(directories)*.taz=00;31:(directories)*.lzh=00;31:(directories)*.zip=00;31:(directories)*.z=00;31:(directories)*.Z=00;31:(directories)*.gz=00;31:(directories)*.bz2=00;31:(directories)*.jpg=01;35:(directories)*.gif=01;35:(directories)*.bmp=01;35:(directories)*.xbm=01;35:(directories)*.xpm=01;35:(directories)*.tif=01;35:(directories)*.png=01;35:no=00:fi=00:di=01;34:ln=01:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:ex=01;31:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.tar=00;31:*.tgz=00;31:*.rpm=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.png=01;35 
+_setup:21> zstyle -t :completion::complete:cd::directories list-packed
+_setup:23> [[ 2 -eq 1 ]]
+_setup:26> compstate[list]=autolist 
+_setup:29> zstyle -t :completion::complete:cd::directories list-rows-first
+_setup:31> [[ 2 -eq 1 ]]
+_setup:34> compstate[list]=autolist 
+_setup:37> zstyle -t :completion::complete:cd::directories last-prompt
+_setup:39> [[ 2 -eq 1 ]]
+_setup:42> compstate[last_prompt]=yes 
+_setup:45> zstyle -t :completion::complete:cd::directories accept-exact
+_setup:47> [[ 2 -eq 1 ]]
+_setup:50> compstate[exact]= 
+_setup:53> [[ _last_nmatches -ge 0 ]]
+_setup:56> zstyle -a :completion::complete:cd::directories menu val
+_setup:60> _last_nmatches=-1 
+_setup:63> [[  != always ]]
+_setup:64> zstyle -s :completion::complete:cd::directories force-list val
+_description:16> name=expl 
+_description:18> zstyle -s :completion::complete:cd::directories format
format
+_description:19> zstyle -s :completion::complete:cd::descriptions format
format
+_description:21> zstyle -s :completion::complete:cd::directories
hidden hidden
+_description:26> zstyle -s :completion::complete:cd::directories group-name
gname
+_description:28> zstyle -s :completion::complete:cd::directories matcher
match
+_description:30> [[ -n  ]]
+_description:32> [[ -z  ]]
+_description:33> zstyle -a :completion::complete:cd::directories
ignored-patterns _comp_ignore
+_description:37> zstyle -t :completion::complete:cd::directories
ignore-line
+_description:40> _comp_ignore=( ) 
+_description:46> shift 2
+_description:47> [[ -n  ]]
+_description:49> [[ -n  ]]
+_description:56> [[ -n  ]]
+_description:59> set -A expl -J -default-
+_description:63> return 0
+_all_labels:39> _path_files -J -default- -/
+_path_files:6> local linepath realpath donepath prepath testpath exppath
skips skipped
+_path_files:7> local tmp1 tmp2 tmp3 tmp4 i orig eorig pre suf tpre tsuf
opre osuf cpre
+_path_files:8> local pats haspats ignore pfxsfx remt sopt gopt opt sdirs
ignpar
+_path_files:9> local nm=0 menu matcher mopts sort match mid
+_path_files:11> typeset -U prepaths exppaths
+_path_files:13> setopt localoptions nullglob rcexpandparam
+_path_files:14> unsetopt markdirs globsubst shwordsplit nounset
+_path_files:16> exppaths=( ) 
+_path_files:20> zparseopts -a mopts P:=pfxsfx S:=pfxsfx q=pfxsfx r:=pfxsfx
R:=pfxsfx W:=prepaths F:=ignore M+:=matcher J+: V+: X+: 1: 2: n: f=tmp1
/=tmp1 g+:-=tmp1
+_path_files:25> sopt=-/ 
+_path_files:26> ((  1  ))
+_path_files:26> haspats=yes 
+_path_files:27> ((  0  ))
+_path_files:28> ((  1  ))
+_path_files:29> pats=( *(-/) ) 
+_path_files:33> pats=( *(-/) ) 
+_path_files:35> ((  0  ))
+_path_files:47> prepaths=(  ) 
+_path_files:50> ((  0  ))
+_path_files:61> [[ -/ == -(f|) ]]
+_path_files:70> ((  ! 1  ))
+_path_files:91> [[ -z  && 0 -eq 0 && -z  && -n  ]]
+_path_files:95> ((  0  ))
+_path_files:100> ((  0  ))
+_path_files:102> zstyle -s :completion::complete:cd::files file-sort tmp1
+_path_files:136> zstyle -t :completion::complete:cd::paths squeeze-slashes
+_path_files:139> skips=((.|..)/)## 
+_path_files:142> zstyle -s :completion::complete:cd::paths special-dirs
sdirs
+_path_files:145> [[ *(-/) ==
((|*[[:blank:]])*(|[[:blank:]]*)|*([^[:blank:]]#/[^[:blank:]]#)*) ]]
+_path_files:146> sopt=-// 
+_path_files:148> zstyle -s :completion::complete:cd::files ignore-parents
ignpar
+_path_files:150> [[ -n  ]]
+_path_files:178> pre=/usr/doc/ 
+_path_files:179> suf= 
+_path_files:180> opre=/usr/doc/ 
+_path_files:181> osuf= 
+_path_files:182> orig=/usr/doc/ 
+_path_files:183> eorig=/usr/doc/ 
+_path_files:185> [[ automenu-unambiguous == (*menu|[0-9]*) || -n  || -n  ]]
+_path_files:191> [[ / == ~ ]]
+_path_files:240> [[ /usr/doc/ == *$*/* ]]
+_path_files:260> linepath= 
+_path_files:261> realpath= 
+_path_files:263> [[ / == / ]]
+_path_files:268> pre=usr/doc/ 
+_path_files:269> orig=usr/doc/ 
+_path_files:270> donepath=/ 
+_path_files:271> prepaths=(  ) 
+_path_files:284> prepath=
+_path_files:290> skipped= 
+_path_files:291> cpre= 
+_path_files:292> tpre=usr/doc/ 
+_path_files:293> tsuf= 
+_path_files:294> testpath=/ 
+_path_files:296> tmp2= 
+_path_files:297> tpre=usr/doc/ 
+_path_files:299> tmp1=( / ) 
+_path_files:301> true
+_path_files:305> [[ usr/doc/ == */* ]]
+_path_files:306> PREFIX=usr 
+_path_files:307> SUFFIX= 
+_path_files:315> tmp2=( / ) 
+_path_files:316> [[ usr/doc/ == */* ]]
+_path_files:317> [[ ! -o globdots && usr == .* ]]

!! Hey, what's this?

+_path_files:320> tmp1=( /bin /boot /cdrom /dev /etc /home /inst /lib /misc
/mnt /opt /proc /root /sbin /tmp /usr /var ) 
+_path_files:322> [[ -n  ]]
+_path_files:345> [[ -n usr ]]
+_path_files:348> [[ -n  ]]
+_path_files:357> [[ /bin == */* ]]
+_path_files:357> tmp2=( /bin /boot /cdrom /dev /etc /home /inst /lib /misc 
/mnt /opt /proc /root /sbin /tmp /usr /var ) 
+_path_files:359> compadd -D tmp1 -F _comp_ignore - bin boot dev etc home
inst lib misc mnt opt proc root sbin tmp usr var
+_path_files:365> ((  ! 1  ))
+_path_files:411> [[ -n parent pwd .. directory && -z  && usr/doc/ != */* ]]
+_path_files:436> [[ usr/doc/ == */* ]]
+_path_files:437> tpre=doc/ 
+_path_files:448> tmp2= 
+_path_files:449> [[ -n  ]]
+_path_files:453> skipped=/ 
+_path_files:301> true
+_path_files:305> [[ doc/ == */* ]]
+_path_files:306> PREFIX=doc 
+_path_files:307> SUFFIX= 
+_path_files:315> tmp2=( /usr ) 
+_path_files:316> [[ doc/ == */* ]]
+_path_files:317> [[ ! -o globdots && doc == .* ]]
+_path_files:320> tmp1=( /usr/bin /usr/cyrus /usr/dict /usr/doc /usr/etc
/usr/games /usr/i486-linux /usr/i486-linuxaout /usr/i486-linux-libc5
/usr/i486-linux-libc6 /usr/i486-suse-linux /usr/i486-sysv4 /usr/include
/usr/lib /usr/local /usr/man /usr/openwin /usr/opt /usr/sbin /usr/share
/usr/spool /usr/src /usr/ssl /usr/tmp /usr/var /usr/X11 /usr/X11R6 /usr/X386
) 
+_path_files:322> [[ -n  ]]
+_path_files:345> [[ -n doc ]]
+_path_files:348> [[ -n  ]]
+_path_files:357> [[ /usr/bin == */* ]]
+_path_files:357> tmp2=( /usr/bin /usr/cyrus /usr/dict /usr/doc /usr/etc
/usr/games /usr/i486-linux /usr/i486-linuxaout /usr/i486-linux-libc5
/usr/i486-linux-libc6 /usr/i486-suse-linux /usr/i486-sysv4 /usr/include
/usr/lib /usr/local /usr/man /usr/openwin /usr/opt /usr/sbin /usr/share
/usr/spool /usr/src /usr/ssl /usr/tmp /usr/var /usr/X11 /usr/X11R6 /usr/X386
) 
+_path_files:359> compadd -D tmp1 -F _comp_ignore - bin cyrus dict doc etc
games i486-linux i486-linuxaout i486-linux-libc5 i486-linux-libc6
i486-suse-linux i486-sysv4 include lib local man openwin opt sbin share
spool src ssl tmp var X11 X11R6 X386
+_path_files:365> ((  ! 1  ))
+_path_files:411> [[ -n parent pwd .. directory && -z  && doc/ != */* ]]
+_path_files:436> [[ doc/ == */* ]]
+_path_files:437> tpre= 
+_path_files:448> tmp2= 
+_path_files:449> [[ -n  ]]
+_path_files:453> skipped=/ 
+_path_files:301> true
+_path_files:305> [[  == */* ]]
+_path_files:309> PREFIX= 
+_path_files:310> SUFFIX= 
+_path_files:315> tmp2=( /usr/doc ) 
+_path_files:316> [[  == */* ]]
+_path_files:330> [[ ! -o globdots &&  == .* ]]
+_path_files:333> tmp1=( /usr/doc/opera /usr/doc/packages ) 
+_path_files:335> [[ -n  ]]
+_path_files:345> [[ -n  ]]
+_path_files:382> ((  ! 2  ))
+_path_files:411> [[ -n parent pwd .. directory && -z  &&  != */* && 2 -ne 0
&& parent pwd .. directory != *dir* || *(-/) == *(-/) && parent pwd
.. directory != *..* || /usr/doc/opera /usr/doc/packages == *../* ]]
+_path_files:436> [[  == */* ]]
+_path_files:438> [[  == */* ]]
+_path_files:442> break
+_path_files:459> tmp3=usr/doc/ 
+_path_files:460> tpre=usr/doc/ 
+_path_files:461> tsuf= 
+_path_files:462> tmp1=( usr/doc/opera usr/doc/packages ) 
+_path_files:464> true
+_path_files:470> [[ usr/doc/ == */* ]]
+_path_files:471> tmp4=( usr/doc/opera usr/doc/packages ) 
+_path_files:472> ((  2  ))
+_path_files:472> tmp1=( usr/doc/opera usr/doc/packages ) 
+_path_files:477> [[ usr/doc/ == */* ]]
+_path_files:478> tmp4=0 
+_path_files:483> [[ usr/doc/ == */* ]]
+_path_files:484> tmp2=usr 
+_path_files:485> PREFIX=/usr 
+_path_files:486> SUFFIX=/doc/ 
+_path_files:493> ((  tmp4  ))
+_path_files:494> [[ -n  ]]
+_path_files:542> [[ usr/doc/ != */* ]]
+_path_files:550> testpath=/usr/ 
+_path_files:551> tmp1=( doc/opera doc/packages ) 
+_path_files:553> tmp3=doc/ 
+_path_files:555> [[ usr/doc/ == */* ]]
+_path_files:556> cpre=usr/ 
+_path_files:557> tpre=doc/ 
+_path_files:464> true
+_path_files:470> [[ doc/ == */* ]]
+_path_files:471> tmp4=( doc/opera doc/packages ) 
+_path_files:472> ((  2  ))
+_path_files:472> tmp1=( doc/opera doc/packages ) 
+_path_files:477> [[ doc/ == */* ]]
+_path_files:478> tmp4=0 
+_path_files:483> [[ doc/ == */* ]]
+_path_files:484> tmp2=usr/doc 
+_path_files:485> PREFIX=/usr/doc 
+_path_files:486> SUFFIX=/ 
+_path_files:493> ((  tmp4  ))
+_path_files:494> [[ -n  ]]
+_path_files:542> [[ doc/ != */* ]]
+_path_files:550> testpath=/usr/doc/ 
+_path_files:551> tmp1=( opera packages ) 
+_path_files:553> tmp3= 
+_path_files:555> [[ doc/ == */* ]]
+_path_files:556> cpre=usr/doc/ 
+_path_files:557> tpre= 
+_path_files:464> true
+_path_files:470> [[  == */* ]]
+_path_files:477> [[  == */* ]]
+_path_files:480> tmp4=2 
+_path_files:483> [[  == */* ]]
+_path_files:488> tmp2=usr/doc/ 
+_path_files:489> PREFIX=/usr/doc/ 
+_path_files:490> SUFFIX= 
+_path_files:493> ((  tmp4  ))
+_path_files:502> tmp2=/usr/doc/ 
+_path_files:503> compquote tmp1 tmp2
+_path_files:505> [[ -n  || -z automenu-unambiguous ]]
+_path_files:506> zstyle -t :completion::complete:cd::paths expand suffix
+_path_files:507> ((  tmp4  ))
+_path_files:507> zstyle -t :completion::complete:cd::paths ambiguous
+_path_files:509> [[  == */* ]]
+_path_files:515> compadd -Qf -J -default- -p /usr/doc/ -W /usr/doc/ -M
r:|/=* r:|=* -a tmp1
+_path_files:535> tmp4=- 
+_path_files:536> break
+_path_files:569> [[ -z - ]]
+_path_files:603> zstyle -t :completion::complete:cd::paths expand prefix
+_path_files:611> [[ nm -ne compstate[nmatches] ]]
+_all_labels:39> __ret=0 
+_all_labels:28> comptags -A directories curtag __spec
+_all_labels:43> return __ret
+_wanted:23> return 0
+_normal:75> ret=0 
+_normal:76> [[ patterns == (all|*patterns*) ]]
+_normal:76> return ret
+_complete:68> _compskip= 
+_complete:70> ((  compstate[nmatches]  ))
+_main_complete:143> ret=0 
+_main_complete:144> break 2
+_main_complete:151> curcontext=::: 
+_main_complete:152> nm=2 
+_main_complete:154> [[  == keep || nm -gt 1 ]]
+_main_complete:155> [[ _last_nmatches -ge 0 ]]
+_main_complete:158> tmp=3 
+_main_complete:160> _menu_style=(   ) 
+_main_complete:162> [[ autolist == *list && -n  ]]
+_main_complete:165> [[ automenu-unambiguous == automenu-unambiguous ]]
+_main_complete:166> [[ -n  ]]
+_main_complete:168> [[ -n  || -n  ]]
+_main_complete:172> [[ -n  ]]
+_main_complete:175> [[ -n  ]]
+_main_complete:177> [[ -n  || -n  ]]
+_main_complete:181> [[ -n  ]]
+_main_complete:184> [[ -n  ]]
+_main_complete:189> [[ automenu-unambiguous == *menu* ]]
+_main_complete:190> [[ -n  ]]
+_main_complete:192> [[ -n  ]]
+_main_complete:198> [[  != 0 ]]
+_main_complete:199> sel=( ) 
+_main_complete:201> ((  0  ))
+_main_complete:219> unset MENUSELECT
+_main_complete:252> [[  == always ||  == ?* ]]
+_main_complete:256> [[  == keep ]]
+_main_complete:260> funcs=( ) 
+_main_complete:261> comppostfuncs=( ) 
+_main_complete:266> _lastcomp=( list_lines 1 all_quotes \ nmatches 2
restore auto context command vared  unambiguous /usr/doc/ list_max 100
unambiguous_cursor 10 list autolist exact  to_end match last_prompt yes
pattern_insert menu ignored 0 insert automenu-unambiguous ) 
+_main_complete:267> _lastcomp[nmatches]=2 
+_main_complete:268> _lastcomp[completer]=complete 
+_main_complete:269> _lastcomp[prefix]=/usr/doc/ 
+_main_complete:270> _lastcomp[suffix]= 
+_main_complete:271> _lastcomp[iprefix]= 
+_main_complete:272> _lastcomp[isuffix]= 
+_main_complete:273> _lastcomp[qiprefix]= 
+_main_complete:274> _lastcomp[qisuffix]= 
+_main_complete:275> _lastcomp[tags]= directories  
+_main_complete:277> return ret

Hope that helps,

Christoph

-- 
A computer without Windows is like a fish without a bicycle
Christoph Lange, langec@gmx.de, http://www.cul.de/home/yaph/, ICQ #51191833


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Stop _path_files from searching /
  2001-02-27  9:09 Sven Wischnowsky
@ 2001-02-27  9:20 ` Andrej Borsenkow
  0 siblings, 0 replies; 12+ messages in thread
From: Andrej Borsenkow @ 2001-02-27  9:20 UTC (permalink / raw)
  To: zsh-users


>
> Aha, an old version.  Newer versions of _path_files don't do that
> anymore (and they use an utility builtin, so it won't help you to just
> install the new _path_files).  I don't know if 4.0.1-pre-1 is being
> distributed somewhere, if it is, you could upgrade to that, otherwise
> you could wait for the next stable release.
>

You can just as well grab 4.0.1-pre-1 tarball and compile it. It is perfectly
stable (to the extent any software can be called "stable").

-andrej


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Stop _path_files from searching /
@ 2001-02-27  9:09 Sven Wischnowsky
  2001-02-27  9:20 ` Andrej Borsenkow
  0 siblings, 1 reply; 12+ messages in thread
From: Sven Wischnowsky @ 2001-02-27  9:09 UTC (permalink / raw)
  To: zsh-users


Christoph Lange wrote:

> ...
> 
> !! Hey, what's this?
> 
> +_path_files:320> tmp1=( /bin /boot /cdrom /dev /etc /home /inst /lib /misc
> /mnt /opt /proc /root /sbin /tmp /usr /var ) 

Aha, an old version.  Newer versions of _path_files don't do that
anymore (and they use an utility builtin, so it won't help you to just
install the new _path_files).  I don't know if 4.0.1-pre-1 is being
distributed somewhere, if it is, you could upgrade to that, otherwise
you could wait for the next stable release.

Bye
 Sven


--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2001-02-27  9:20 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-02-19  9:52 How to create unnamed temporary arrays? Hannu Koivisto
2001-02-19  9:55 ` Sven Wischnowsky
2001-02-20 18:02   ` Hannu Koivisto
2001-02-20 18:38     ` Andrej Borsenkow
2001-02-26  6:38       ` Bart Schaefer
2001-02-21  6:56     ` Thomas Köhler
2001-02-22  6:01       ` Andrej Borsenkow
2001-02-23 10:48         ` Stop _path_files from searching / Christoph Lange
2001-02-23 12:15           ` Andrej Borsenkow
2001-02-26  8:26             ` Christoph Lange
2001-02-27  9:09 Sven Wischnowsky
2001-02-27  9:20 ` Andrej Borsenkow

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).