On Sat, Nov 11, 2017 at 08:11:25PM +0100, Klemens Nanni wrote:
> pre_path()ing directories with spaces is broken due to bad quoting.
> 
> This diff takes care of that by properly passing double quotes through
> eval and quoting the arguments for no_path() individually.
> 
> Feedback?

What is actually broken?
Can you give examples?
 
> diff --git a/etc/ksh.kshrc b/etc/ksh.kshrc
> index 5b5bd040f79..66736da5e11 100644
> --- a/etc/ksh.kshrc
> +++ b/etc/ksh.kshrc
> @@ -131,14 +131,14 @@ function no_path {
>  }
>  # if $1 exists and is not in path, append it
>  function add_path {
> -     [[ -d ${1:-.} ]] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
> +     [[ -d "${1:-.}" ]] && no_path "$@" && eval 
> ${2:-PATH}=\"\$${2:-PATH}:$1\"
>  }
>  # if $1 exists and is not in path, prepend it
>  function pre_path {
> -     [[ -d ${1:-.} ]] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
> +     [[ -d "${1:-.}" ]] && no_path "$@" && eval 
> ${2:-PATH}=\"$1:\$${2:-PATH}\"
>  }
>  # if $1 is in path, remove it
>  function del_path {
> -     no_path $* || eval ${2:-PATH}=$(eval echo :'$'${2:-PATH}: |
> -             sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;")
> +     no_path "$1" || eval ${2:-PATH}=\"$(eval echo :'$'${2:-PATH}: |
> +             sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;")\"
>  }
> 

-- 
-=[rpe]=-

Reply via email to