From: rodney.longhurst on
Is it possible to safely maintain directory names with spaces in a csh
path? This works;

set path = ( /bin /home/space\ bin )

However if a later script tries to add to it;

set path = ( $path /usr/bin )

then the real escaped space is lost, since the set command expands the
$path variable (which is an array) into a flat space-separated string,
then reconstructs it into an array. I know the env variable $PATH,
which is colon-separated, could be used instead (since the csh keeps
$path and $PATH in sync);

setenv PATH "/bin:/home/space\ bin"
setenv PATH "${PATH}:/usr/bin"

but this just shifts the problem to directory names that contain
colons (admittedly much less likely).

Is there a reliable way to set the path to ensure the current contents
are never mangled, or is this just a limitation of the csh?
From: Maxwell Lol on
rodney.longhurst(a)gmail.com writes:

> Is it possible to safely maintain directory names with spaces in a csh
> path? This works;
>
> set path = ( /bin /home/space\ bin )
>
> However if a later script tries to add to it;
>
> set path = ( $path /usr/bin )

You probably need to use
set path = ( $path:q /usr/bin )

> Is there a reliable way to set the path to ensure the current contents
> are never mangled, or is this just a limitation of the csh?

It's one of many... :-)
From: rodney.longhurst on
Maxwell Lol <nos...(a)com.invalid> wrote:

> You probably need to use
> setpath= ( $path:q /usr/bin )

Yep, that works perfectly. Thanks very much.