From 75c0168f50751cf9751ebdfcf17c7189d3a317f5 Mon Sep 17 00:00:00 2001 From: Werner LEMBERG Date: Sun, 4 Sep 2005 10:02:23 +0000 Subject: [PATCH] * install-sh, mkinstalldirs: New versions; taken from texinfo CVS. --- ChangeLog | 2 ++ install-sh | 30 +++++++++++++++--------------- mkinstalldirs | 26 +++++++++++++++++--------- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index ffc8c292..2155a818 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ * doc/webpage.ms: Updated. + * install-sh, mkinstalldirs: New versions; taken from texinfo CVS. + 2005-09-04 Jörgen Grahn * tmac/groff_ms.man: Document `PO' better. diff --git a/install-sh b/install-sh index 6ebe46de..f56e1476 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2004-12-17.09 +scriptversion=2005-07-09.12 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -109,7 +109,7 @@ while test -n "$1"; do shift continue;; - --help) echo "$usage"; exit 0;; + --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift @@ -134,7 +134,7 @@ while test -n "$1"; do shift continue;; - --version) echo "$0 $scriptversion"; exit 0;; + --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -219,28 +219,28 @@ do # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then - defaultIFS=' - ' - IFS="${IFS-$defaultIFS}" - + case $dstdir in + /*) pathcomp=/ ;; + -*) pathcomp=./ ;; + *) pathcomp= ;; + esac oIFS=$IFS - # Some sh's can't handle IFS=/ for some reason. - IFS='%' - set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` + IFS=/ + set fnord $dstdir shift IFS=$oIFS - pathcomp= + for d + do + test "x$d" = x && continue - while test $# -ne 0 ; do - pathcomp=$pathcomp$1 - shift + pathcomp=$pathcomp$d if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. - test -d "$pathcomp" || exit + test -d "$pathcomp" || exit 1 fi pathcomp=$pathcomp/ done diff --git a/mkinstalldirs b/mkinstalldirs index 6fbe5e11..259dbfcd 100755 --- a/mkinstalldirs +++ b/mkinstalldirs @@ -1,7 +1,7 @@ #! /bin/sh # mkinstalldirs --- make directory hierarchy -scriptversion=2004-02-15.20 +scriptversion=2005-06-29.22 # Original author: Noah Friedman # Created: 1993-05-16 @@ -12,7 +12,7 @@ scriptversion=2004-02-15.20 # . errstatus=0 -dirmode="" +dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... @@ -27,7 +27,7 @@ while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" - exit 0 + exit $? ;; -m) # -m PERM arg shift @@ -37,7 +37,7 @@ while test $# -gt 0 ; do ;; --version) echo "$0 $scriptversion" - exit 0 + exit $? ;; --) # stop option processing shift @@ -103,13 +103,21 @@ esac for file do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file shift + IFS=$oIFS - pathcomp= for d do - pathcomp="$pathcomp$d" + test "x$d" = x && continue + + pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac @@ -124,7 +132,7 @@ do else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" - lasterr="" + lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then @@ -134,7 +142,7 @@ do fi fi - pathcomp="$pathcomp/" + pathcomp=$pathcomp/ done done -- 2.11.4.GIT