From 7e98654c6545054b6c7748b94ddfd42a13201c1a Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 21 Jun 2016 19:48:19 +0100
Subject: [PATCH] etc/config.[c]sh: update wmRefresh to call wmUnset before
 updating the environment

---
 etc/config.csh/aliases |  9 ++++++---
 etc/config.csh/unset   | 11 ++++++++---
 etc/config.sh/aliases  | 15 ++++++++++++---
 etc/config.sh/unset    |  3 ++-
 etc/cshrc              | 17 ++++++++++++++++-
 5 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/etc/config.csh/aliases b/etc/config.csh/aliases
index 8cab2641d9..33bb0e4a98 100644
--- a/etc/config.csh/aliases
+++ b/etc/config.csh/aliases
@@ -38,12 +38,10 @@ alias wm32 'wmSet WM_ARCH_OPTION=32'
 alias wmSP 'wmSet WM_PRECISION_OPTION=SP'
 alias wmDP 'wmSet WM_PRECISION_OPTION=DP'
 
-# Refresh the environment
-alias wmRefresh 'wmSet $FOAM_SETTINGS'
-
 # Clear env
 alias wmUnset 'source $WM_PROJECT_DIR/etc/config.csh/unset'
 
+
 # Toggle wmakeScheduler on/off
 #  - also need to set WM_HOSTS
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -70,6 +68,11 @@ alias tut 'cd $FOAM_TUTORIALS'
 alias run 'cd $FOAM_RUN'
 
 
+# Refresh the environment
+# ~~~~~~~~~~~~~~~~~~~~~~~
+alias wmRefresh 'set wmProjectDir=$WM_PROJECT_DIR; set foamSettings=$FOAM_SETTINGS; wmUnset; source $wmProjectDir/etc/cshrc $foamSettings'
+
+
 # Change OpenFOAM version
 # ~~~~~~~~~~~~~~~~~~~~~~~
 alias foamVersion \
diff --git a/etc/config.csh/unset b/etc/config.csh/unset
index 3aaac75a05..bb755277c6 100644
--- a/etc/config.csh/unset
+++ b/etc/config.csh/unset
@@ -38,9 +38,13 @@ if ( $?WM_PROJECT_DIR ) then
 endif
 
 # The old dirs to be cleaned from the environment variables
-set foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
-    $HOME/$WM_PROJECT/$LOGNAME $WM_PROJECT_SITE \
-    $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN $ParaView_DIR"
+set foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR $HOME/$WM_PROJECT/$LOGNAME $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN"
+if ( $?WM_PROJECT_SITE ) then
+   set foamOldDirs="$foamOldDirs $WM_PROJECT_SITE"
+endif
+if ( $?ParaView_DIR ) then
+   set foamOldDirs="$foamOldDirs $ParaView_DIR"
+endif
 
 
 #------------------------------------------------------------------------------
@@ -125,6 +129,7 @@ unsetenv PV_PLUGIN_PATH
 #------------------------------------------------------------------------------
 # Unset CGAL-related environment variables
 
+unsetenv BOOST_ARCH_PATH
 unsetenv CGAL_ARCH_PATH
 
 
diff --git a/etc/config.sh/aliases b/etc/config.sh/aliases
index 7c2a7a378f..3d24149d77 100644
--- a/etc/config.sh/aliases
+++ b/etc/config.sh/aliases
@@ -38,9 +38,6 @@ alias wm32='wmSet WM_ARCH_OPTION=32'
 alias wmSP='wmSet WM_PRECISION_OPTION=SP'
 alias wmDP='wmSet WM_PRECISION_OPTION=DP'
 
-# Refresh the environment
-alias wmRefresh='wmSet $FOAM_SETTINGS'
-
 # Clear env
 alias wmUnset='. $WM_PROJECT_DIR/etc/config.sh/unset'
 
@@ -70,6 +67,18 @@ alias tut='cd $FOAM_TUTORIALS'
 alias run='cd $FOAM_RUN'
 
 
+# Refresh the environment
+# ~~~~~~~~~~~~~~~~~~~~~~~
+unset wmRefresh
+wmRefresh()
+{
+    wmProjectDir=$WM_PROJECT_DIR
+    foamSettings=$FOAM_SETTINGS
+    wmUnset
+    . $wmProjectDir/etc/bashrc $foamSettings
+}
+
+
 # Change OpenFOAM version
 # ~~~~~~~~~~~~~~~~~~~~~~~
 unset foamVersion
diff --git a/etc/config.sh/unset b/etc/config.sh/unset
index 77777d92c2..7c8443f919 100644
--- a/etc/config.sh/unset
+++ b/etc/config.sh/unset
@@ -119,6 +119,7 @@ unset PV_PLUGIN_PATH
 #------------------------------------------------------------------------------
 # Unset CGAL-related environment variables
 
+unset BOOST_ARCH_PATH
 unset CGAL_ARCH_PATH
 
 
@@ -151,7 +152,6 @@ unalias wm32
 unalias wmSP
 unalias wmDP
 
-unalias wmRefresh
 unalias wmUnset
 
 unalias wmSchedOn
@@ -168,6 +168,7 @@ unalias util
 unalias tut
 unalias run
 
+unset wmRefresh
 unset foamVersion
 unset foamPV
 
diff --git a/etc/cshrc b/etc/cshrc
index 2fac1a1c83..c2f17948b1 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -105,7 +105,22 @@ setenv FOAM_SIGFPE
 ################################################################################
 
 # The old dirs to be cleaned from the environment variables
-set foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR $HOME/$WM_PROJECT/$LOGNAME $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN"
+set foamOldDirs=
+if ( $?WM_PROJECT_DIR ) then
+   set foamOldDirs="$foamOldDirs $WM_PROJECT_DIR"
+endif
+if ( $?WM_THIRD_PARTY_DIR ) then
+   set foamOldDirs="$foamOldDirs $WM_THIRD_PARTY_DIR"
+endif
+if ( $?WM_PROJECT ) then
+   set foamOldDirs="$foamOldDirs $HOME/$WM_PROJECT/$LOGNAME"
+endif
+if ( $?FOAM_SITE_APPBIN ) then
+   set foamOldDirs="$foamOldDirs $FOAM_SITE_APPBIN"
+endif
+if ( $?FOAM_SITE_LIBBIN ) then
+   set foamOldDirs="$foamOldDirs $FOAM_SITE_LIBBIN"
+endif
 
 # Location of installation
 # ~~~~~~~~~~~~~~~~~~~~~~~~
-- 
GitLab