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