From 925d42123a67e2bee930af6fb2ff92ceb7b5bc95 Mon Sep 17 00:00:00 2001
From: Martin Ritter <martin.ritter@lmu.de>
Date: Wed, 8 Mar 2017 14:03:27 +0100
Subject: [PATCH] Fix for ROOT-8704: add begin/end of line matches in
 thisroot.sh

when removing old paths make sure that $path:, :$path and $path are only matched
at the beginning, at the end, or match the whole string.
---
 config/thisroot.csh | 54 ++++++++++++++++++++++-----------------------
 config/thisroot.sh  |  6 ++---
 2 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/config/thisroot.csh b/config/thisroot.csh
index 08193bce3ec..f61942b2e3e 100644
--- a/config/thisroot.csh
+++ b/config/thisroot.csh
@@ -59,64 +59,64 @@ setenv ROOTSYS "`(cd ${thisroot}/..;pwd)`"
 
 if ($?old_rootsys) then
    setenv PATH `echo $PATH | sed -e "s;:$old_rootsys/bin:;:;g" \
-                                 -e "s;:$old_rootsys/bin;;g"   \
-                                 -e "s;$old_rootsys/bin:;;g"   \
-                                 -e "s;$old_rootsys/bin;;g"`
+                                 -e "s;:$old_rootsys/bin$$;;g"   \
+                                 -e "s;^$old_rootsys/bin:;;g"   \
+                                 -e "s;^$old_rootsys/bin$$;;g"`
    if ($?LD_LIBRARY_PATH) then
       setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | \
                              sed -e "s;:$old_rootsys/lib:;:;g" \
-                                 -e "s;:$old_rootsys/lib;;g"   \
-                                 -e "s;$old_rootsys/lib:;;g"   \
-                                 -e "s;$old_rootsys/lib;;g"`
+                                 -e "s;:$old_rootsys/lib$$;;g"   \
+                                 -e "s;^$old_rootsys/lib:;;g"   \
+                                 -e "s;^$old_rootsys/lib$$;;g"`
    endif
    if ($?DYLD_LIBRARY_PATH) then
       setenv DYLD_LIBRARY_PATH `echo $DYLD_LIBRARY_PATH | \
                              sed -e "s;:$old_rootsys/lib:;:;g" \
-                                 -e "s;:$old_rootsys/lib;;g"   \
-                                 -e "s;$old_rootsys/lib:;;g"   \
-                                 -e "s;$old_rootsys/lib;;g"`
+                                 -e "s;:$old_rootsys/lib$$;;g"   \
+                                 -e "s;^$old_rootsys/lib:;;g"   \
+                                 -e "s;^$old_rootsys/lib$$;;g"`
    endif
    if ($?SHLIB_PATH) then
       setenv SHLIB_PATH `echo $SHLIB_PATH | \
                              sed -e "s;:$old_rootsys/lib:;:;g" \
-                                 -e "s;:$old_rootsys/lib;;g"   \
-                                 -e "s;$old_rootsys/lib:;;g"   \
-                                 -e "s;$old_rootsys/lib;;g"`
+                                 -e "s;:$old_rootsys/lib$$;;g"   \
+                                 -e "s;^$old_rootsys/lib:;;g"   \
+                                 -e "s;^$old_rootsys/lib$$;;g"`
    endif
    if ($?LIBPATH) then
       setenv LIBPATH `echo $LIBPATH | \
                              sed -e "s;:$old_rootsys/lib:;:;g" \
-                                 -e "s;:$old_rootsys/lib;;g"   \
-                                 -e "s;$old_rootsys/lib:;;g"   \
-                                 -e "s;$old_rootsys/lib;;g"`
+                                 -e "s;:$old_rootsys/lib$$;;g"   \
+                                 -e "s;^$old_rootsys/lib:;;g"   \
+                                 -e "s;^$old_rootsys/lib$$;;g"`
    endif
    if ($?PYTHONPATH) then
       setenv PYTHONPATH `echo $PYTHONPATH | \
                              sed -e "s;:$old_rootsys/lib:;:;g" \
-                                 -e "s;:$old_rootsys/lib;;g"   \
-                                 -e "s;$old_rootsys/lib:;;g"   \
-                                 -e "s;$old_rootsys/lib;;g"`
+                                 -e "s;:$old_rootsys/lib$$;;g"   \
+                                 -e "s;^$old_rootsys/lib:;;g"   \
+                                 -e "s;^$old_rootsys/lib$$;;g"`
    endif
    if ($?MANPATH) then
       setenv MANPATH `echo $MANPATH | \
                              sed -e "s;:$old_rootsys/man:;:;g" \
-                                 -e "s;:$old_rootsys/man;;g"   \
-                                 -e "s;$old_rootsys/man:;;g"   \
-                                 -e "s;$old_rootsys/man;;g"`
+                                 -e "s;:$old_rootsys/man$$;;g"   \
+                                 -e "s;^$old_rootsys/man:;;g"   \
+                                 -e "s;^$old_rootsys/man$$;;g"`
    endif
    if ($?CMAKE_PREFIX_PATH) then
       setenv CMAKE_PREFIX_PATH `echo $CMAKE_PREFIX_PATH | \
                              sed -e "s;:${old_rootsys}:;:;g" \
-                                 -e "s;:${old_rootsys};;g"   \
-                                 -e "s;${old_rootsys}:;;g"   \
-                                 -e "s;${old_rootsys};;g"`
+                                 -e "s;:${old_rootsys}$$;;g"   \
+                                 -e "s;^${old_rootsys}:;;g"   \
+                                 -e "s;^${old_rootsys}$$;;g"`
    endif
    if ($?JUPYTER_PATH) then
       setenv JUPYTER_PATH `echo $JUPYTER_PATH | \
                              sed -e "s;:$old_rootsys/etc/notebook:;:;g" \
-                                 -e "s;:$old_rootsys/etc/notebook;;g"   \
-                                 -e "s;$old_rootsys/etc/notebook:;;g"   \
-                                 -e "s;$old_rootsys/etc/notebook;;g"`
+                                 -e "s;:$old_rootsys/etc/notebook$$;;g"   \
+                                 -e "s;^$old_rootsys/etc/notebook:;;g"   \
+                                 -e "s;^$old_rootsys/etc/notebook$$;;g"`
    endif
 
 endif
diff --git a/config/thisroot.sh b/config/thisroot.sh
index cb3f54149ca..7cb3e53277d 100644
--- a/config/thisroot.sh
+++ b/config/thisroot.sh
@@ -19,9 +19,9 @@ drop_from_path()
    drop=$2
 
    newpath=`echo $p | sed -e "s;:${drop}:;:;g" \
-                          -e "s;:${drop};;g"   \
-                          -e "s;${drop}:;;g"   \
-                          -e "s;${drop};;g"`
+                          -e "s;:${drop}\$;;g"   \
+                          -e "s;^${drop}:;;g"   \
+                          -e "s;^${drop}\$;;g"`
 }
 
 if [ -n "${ROOTSYS}" ] ; then
-- 
GitLab