summaryrefslogtreecommitdiff
path: root/build-aux/install-sh
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-09-29 21:55:32 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2017-09-29 21:56:21 -0700
commit3ab2f9bbb96d0425a9396e08b2f462de3fd7818d (patch)
treee650d013464a12567ec4ea5a137b25cdf6c1179c /build-aux/install-sh
parentcbc832448878f7bc7b226243abb8d8b1ae68a937 (diff)
downloademacs-3ab2f9bbb96d0425a9396e08b2f462de3fd7818d.tar.gz
Merge from gnulib
This incorporates: 2017-09-28 string: code style 2017-09-25 sys_types: update URL 2017-09-23 install-sh: do not assume / = // 2017-09-21 mktime: port to OpenVMS * build-aux/install-sh, m4/mktime.m4, m4/string_h.m4: * m4/sys_types_h.m4: Copy from Gnulib. * lib/gnulib.mk.in: Regenerate.
Diffstat (limited to 'build-aux/install-sh')
-rwxr-xr-xbuild-aux/install-sh20
1 files changed, 14 insertions, 6 deletions
diff --git a/build-aux/install-sh b/build-aux/install-sh
index 0360b79e7d0..ac159ceda40 100755
--- a/build-aux/install-sh
+++ b/build-aux/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2017-09-23.17; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -271,15 +271,18 @@ do
fi
dst=$dst_arg
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
+ # If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
- dst=$dstdir/`basename "$src"`
+ dstbase=`basename "$src"`
+ case $dst in
+ */) dst=$dst$dstbase;;
+ *) dst=$dst/$dstbase;;
+ esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
@@ -288,6 +291,11 @@ do
fi
fi
+ case $dstdir in
+ */) dstdirslash=$dstdir;;
+ *) dstdirslash=$dstdir/;;
+ esac
+
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
@@ -427,8 +435,8 @@ do
else
# Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
+ dsttmp=${dstdirslash}_inst.$$_
+ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0