zsh-workers
 help / color / mirror / code / Atom feed
* autoload
@ 1997-09-02 14:24 Bernd Eggink
  1997-09-02 15:43 ` autoload Andrew Main
  1997-09-03  7:29 ` autoload Peter Stephenson
  0 siblings, 2 replies; 3+ messages in thread
From: Bernd Eggink @ 1997-09-02 14:24 UTC (permalink / raw)
  To: Zsh-workers

If a file contains more than one autoload function, strange things
happen (3.1.2 and older versions):

  # File 'f1'
  function f1() { print $0 $*; }
  function f2() { print $0 $*; }

At the prompt, type

  autoload f1 f2
  fpath=(.)
  f1         # NOTHING HAPPENS!
  functions  # shows that f1 und f2 are defined
  f1         # now f1 is called!

Only if the definition of f2 is deleted from the file, the first call of
f1 works. 
This must be a bug; it inhibts building a function library in a single
file (while linking it to other names if necessary).

Regards,
	Bernd

-- 
Bernd Eggink
Regionales Rechenzentrum der Universitaet Hamburg
eggink@rrz.uni-hamburg.de
http://www.rrz.uni-hamburg.de/eggink/BEggink.html


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

* Re: autoload
  1997-09-02 14:24 autoload Bernd Eggink
@ 1997-09-02 15:43 ` Andrew Main
  1997-09-03  7:29 ` autoload Peter Stephenson
  1 sibling, 0 replies; 3+ messages in thread
From: Andrew Main @ 1997-09-02 15:43 UTC (permalink / raw)
  To: Bernd Eggink; +Cc: zsh-workers

Bernd Eggink wrote:
>If a file contains more than one autoload function, strange things
>happen (3.1.2 and older versions):
>
>  # File 'f1'
>  function f1() { print $0 $*; }
>  function f2() { print $0 $*; }

See the FAQ ("why do my autoloaded functions not work the first time").

-zefram


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

* Re: autoload
  1997-09-02 14:24 autoload Bernd Eggink
  1997-09-02 15:43 ` autoload Andrew Main
@ 1997-09-03  7:29 ` Peter Stephenson
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Stephenson @ 1997-09-03  7:29 UTC (permalink / raw)
  To: Bernd Eggink, Zsh hackers list

Bernd Eggink wrote:
> If a file contains more than one autoload function, strange things
> happen (3.1.2 and older versions):
> 
>   # File 'f1'
>   function f1() { print $0 $*; }
>   function f2() { print $0 $*; }
> 
> At the prompt, type
> 
>   autoload f1 f2
>   fpath=(.)
>   f1         # NOTHING HAPPENS!
>   functions  # shows that f1 und f2 are defined
>   f1         # now f1 is called!
> 
> Only if the definition of f2 is deleted from the file, the first call of
> f1 works. 

I think this has been tinkered about with at some stage, so it doesn't
quite behave the way the FAQ now claims:  I have to repost the FAQ (a bit
late) so I'll alter it.  The short answer is that in recent versions
of the shell you need to set the option kshautoload.  Otherwise,
the file is treated as containing a definition of the function
(rather than the body of the function) if and only if the file's
executable contents are just that definition and nothing else.  This
is to try and guess the user's intentions.  With kshautoload set it
does what you're expecting, no guessing.

-- 
Peter Stephenson <pws@ifh.de>       Tel: +49 33762 77366
WWW:  http://www.ifh.de/~pws/       Fax: +49 33762 77413
Deutsches Elektronen-Synchrotron --- Institut fuer Hochenergiephysik Zeuthen
DESY-IfH, Platanenallee 6, 15738 Zeuthen, Germany.


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

end of thread, other threads:[~1997-09-03  7:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-09-02 14:24 autoload Bernd Eggink
1997-09-02 15:43 ` autoload Andrew Main
1997-09-03  7:29 ` autoload Peter Stephenson

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).