Hi,This exposes one of my personal problems with typeset. If I really want a path appended typeset -U will drop the appended path, in favor of the path which already exists. So IMHO the only way to handle this properly is to
Normalize the new path ($2) - Remove any trailing slashes ensure no double-slashes Check to see if the new path exists in the old path array ($1) and delete it
Append or Prepend the new path to the $1 Here's some of the cleanup stuff I read about in this list.. path=($^path(N)) setopt EXTENDED_GLOB path=(${${path//\/##/\/}%/}) unsetopt EXTENDED_GLOB typeset -U pathBut can anyone please explain my number 1 item - that is really annoying me..
appendPath() { # if the path exists delete it.. deletePath $1 $2 # Append the path to the end.. $1+=($2) } 1. Why does += not work when adding to the array - It should right? --- Steven Klass sklass@xxxxxxxxxxxxxxx (480) 988-5657 On Nov 26, 2005, at 6:25 AM, Vincent Lefevre wrote:
On 2005-11-26 10:32:35 +0100, Christian Taylor wrote:I never bothered about a deletion function, because I simply use: typeset -U path which will keep only the first occurence of any element.But if a same path is written in two different ways, it doesn't recognise it: ay:~> echo $library_path/home/lefevre/./lib /home/lefevre/./lib /home/lefevre/lib /usr/ local/gmp/libay:~> typeset -U LIBRARY_PATH ay:~> echo $library_path /home/lefevre/./lib /home/lefevre/lib /usr/local/gmp/lib -- Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.org/>100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/ blog/>Work: CR INRIA - computer arithmetic / SPACES project at LORIA