From 9d5be5e9531a594e67e7f4ba6e1201a36c8f1ad9 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 21 Oct 2013 12:41:35 +0100 Subject: [PATCH] fix symlink handling (generally and on OS X) in run-sbcl.sh Patch from Stelian Ionescu, lp#1242643 --- NEWS | 2 ++ run-sbcl.sh | 32 +++++++++++++++++--------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index 92ee4d3..1b808d6 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,8 @@ changes relative to sbcl-1.1.12: on sbcl-help) * bug fix: signal errors in required cases of slot-definition initialization protocol. (lp#309072) + * bug fix: run-sbcl.sh works better in the presence of symlinks on OS X. + (thanks to Stelian Ionescu, lp#1242643) changes in sbcl-1.1.12 relative to sbcl-1.1.11: * enhancement: Add sb-bsd-sockets:socket-shutdown, for calling diff --git a/run-sbcl.sh b/run-sbcl.sh index 44aaf68..3788bd9 100755 --- a/run-sbcl.sh +++ b/run-sbcl.sh @@ -13,23 +13,25 @@ set -e -BASE=`dirname "$0"` -if (readlink -f "${BASE}") >/dev/null 2>&1; then - BASE=`readlink -f ${BASE}` -else - opwd=`pwd` - cd "${BASE}" - BASE=`pwd` - cd "${opwd}" -fi -if [ "$OSTYPE" = "cygwin" ] -then - BASE=`cygpath -w "$BASE"` -fi +this="$0" + +# OSX 10.8 readlink doesn't have -f +while [ -h "$this" ]; do + # [ -h should guarantee that readlink output will be non-null + link=`readlink -n "$this"` + # if absolute path + if expr "$link" : '^/.*' > /dev/null; then + this="$link" + else + this=`dirname "$this"`/"$link" + fi +done +BASE=`dirname "$this"` + CORE_DEFINED=no -for arg in $*; do - case $arg in +for arg in "$@"; do + case "$arg" in --core) CORE_DEFINED=yes ;; -- 1.7.10.4