mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-02-05 14:40:42 +08:00
Fix some issues that mangled the reexecution path to a script,
and thus prevented it from finding itself: * config/general.m4sh (progname): Don't actually change the name of the script if it begins with a `-', just prepend `./'. (progpath): Add a new clause that first searches the execution PATH, and then finally assumes this script is in the current working directory if $progname has no directory separators (e.g when invoked as `$SHELL progname').
This commit is contained in:
parent
d7c85ee5b0
commit
20c92bbee3
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2004-10-08 Gary V. Vaughan <gary@gnu.org>
|
||||
|
||||
Fix some issues that mangled the reexecution path to a script,
|
||||
and thus prevented it from finding itself:
|
||||
|
||||
* config/general.m4sh (progname): Don't actually change the name
|
||||
of the script if it begins with a `-', just prepend `./'.
|
||||
(progpath): Add a new clause that first searches the execution
|
||||
PATH, and then finally assumes this script is in the current
|
||||
working directory if $progname has no directory separators (e.g
|
||||
when invoked as `$SHELL progname').
|
||||
|
||||
2004-10-08 Gary V. Vaughan <gary@gnu.org>
|
||||
|
||||
* config/general.m4sh (func_verbose): Work around a bash bug in
|
||||
|
@ -62,16 +62,28 @@ progpath="$0"
|
||||
|
||||
# The name of this program:
|
||||
# In the unlikely event $progname began with a '-', it would play havoc with
|
||||
# func_echo (imagine progname=-n), so we substitute for _ in that case.
|
||||
progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,_,'`
|
||||
# func_echo (imagine progname=-n), so we prepend ./ in that case:
|
||||
progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
|
||||
|
||||
# Make sure we have an absolute path for reexecution:
|
||||
case $progpath in
|
||||
[[\\/]]*|[[A-Za-z]]:\\*) ;;
|
||||
*) progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
|
||||
*[[\\/]]*)
|
||||
progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
|
||||
progdir=`cd "$progdir" && pwd`
|
||||
progpath="$progdir/$progname"
|
||||
;;
|
||||
*)
|
||||
save_IFS="$IFS"
|
||||
IFS=:
|
||||
for progdir in $PATH; do
|
||||
IFS="$save_IFS"
|
||||
test -x "$progdir/$progname" && break
|
||||
done
|
||||
IFS="$save_IFS"
|
||||
test -n "$progdir" || progdir=`pwd`
|
||||
progpath="$progdir/$progname"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Sed substitution that helps us do robust quoting. It backslashifies
|
||||
|
Loading…
Reference in New Issue
Block a user