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

Re: setopt and alias questions



On Feb 8,  2:15pm, Sweth Chandramouli wrote:
} Subject: Re: setopt and alias questions
}
} On Mon, Feb 08, 1999 at 10:45:50AM -0800, Bart Schaefer wrote:
} > 
} > 	autoload $^fpath/*(.:t)
} 	i don't like error messages, however, so i use the loop to test
} for the existance of autoloadable files before doing the actual autoload:
} 
} for DIRNAME in ${fpath} ; do
}    if [[ -x ${DIRNAME}/*(.x:t) ]] ; then
}       autoload ${DIRNAME}/*(.x:t)
}    fi;
} done;

That loop will never autoload anything -- unless there happens to be a
file in the current directory with the same name as one in ${DIRNAME}.
Do you see why?

Once that's fixed, the [[ -x ... ]] is completely redundant with *(.x) --
it always succeeds, unless *(.x) doesn't match any files.  (Is that the
error you're worried about?)

Finally, there's no requirement that files have the execute mode set in
order to be autoloadable, so using (x) may miss some.

} > What two characters, inserted twice, give the same effect in 3.0.5?
} 	:s, which makes me wonder why the ${param/pattern/replacement}
} construct was added at all.

The patterns in ${param/pattern/replacement} can contain glob characters
which are matched against the value of $param, but the "patterns" in
${param:s/pattern/replacement} are matched as literal strings without
globbing.  The older :s form is borrowed from csh, the newer form is
from (I think) bash.

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



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