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

Re: Seg. Fault when calling "cd" with set "chpwd" hook from a widget



On Sat, Nov 29, 2008 at 08:31:35PM -0800, Bart Schaefer wrote:
> On Nov 25,  1:05am, Jonas Kramer wrote:
> >
> > # Control + B jumps to "base" directory.
> > function return-to-base; {
> 
> Not directly pertinent, but what's the semicolon for?

Now that you ask, I don't know. I guess I'm just used to it.

> 
> > function chpwd; {
> >     DIRECTORY="$PWD"
> >     while true; do
> >         if [ -f './.env.rc' ]; then
> >             source './.env.rc'
> >             break
> >         fi
> >         if [ -f './env' ]; then
> >             source './env'
> >             break
> >         fi
> >         [ $PWD = '/' ] && break
> >         cd -q ..
> >     done
> >     cd -q "$DIRECTORY"
> > }
> > 
> > Now when BASE points to a directory that contains a .env.rc file and I
> > press ^B, it seems to work fine at first, the directory is updated and I
> > get a new nice prompt. But then, no matter what I enter, after hitting
> > return zsh crashes with a seg. fault. This seems to happen in
> > hist.c:1138, where hptr points to NULL at that point.
> 
> Are there any commands in ./.env.rc or ./env that manipulate the history?

I don't know if commands executed in a chpwd hook function are added to
the history (they shouldn't in my oppinion), but I'm not explicitly
changing it in there. This is a sample .env.rc I'm using in a project:

	# vim:filetype=zsh

	export BASE=$PWD
	export PERL5LIB="$PWD/code/"

	/usr/bin/ctags --languages="Perl" -R "$PWD"

Regards,
Jonas

-- 

Attachment: pgpAqMZQtq1zc.pgp
Description: PGP signature



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