aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 18:54:10 +1000
committerDavid Walter Seikel2013-01-13 18:54:10 +1000
commit959831f4ef5a3e797f576c3de08cd65032c997ad (patch)
treee7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh
parentAdd info about changes to Irrlicht. (diff)
downloadSledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to 'libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh')
-rw-r--r--libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh1054
1 files changed, 527 insertions, 527 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh b/libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh
index 9c04de2..a9244eb 100644
--- a/libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh
+++ b/libraries/irrlicht-1.8/source/Irrlicht/jpeglib/install-sh
@@ -1,527 +1,527 @@
1#!/bin/sh 1#!/bin/sh
2# install - install a program, script, or datafile 2# install - install a program, script, or datafile
3 3
4scriptversion=2011-01-19.21; # UTC 4scriptversion=2011-01-19.21; # UTC
5 5
6# This originates from X11R5 (mit/util/scripts/install.sh), which was 6# This originates from X11R5 (mit/util/scripts/install.sh), which was
7# later released in X11R6 (xc/config/util/install.sh) with the 7# later released in X11R6 (xc/config/util/install.sh) with the
8# following copyright and license. 8# following copyright and license.
9# 9#
10# Copyright (C) 1994 X Consortium 10# Copyright (C) 1994 X Consortium
11# 11#
12# Permission is hereby granted, free of charge, to any person obtaining a copy 12# Permission is hereby granted, free of charge, to any person obtaining a copy
13# of this software and associated documentation files (the "Software"), to 13# of this software and associated documentation files (the "Software"), to
14# deal in the Software without restriction, including without limitation the 14# deal in the Software without restriction, including without limitation the
15# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 15# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16# sell copies of the Software, and to permit persons to whom the Software is 16# sell copies of the Software, and to permit persons to whom the Software is
17# furnished to do so, subject to the following conditions: 17# furnished to do so, subject to the following conditions:
18# 18#
19# The above copyright notice and this permission notice shall be included in 19# The above copyright notice and this permission notice shall be included in
20# all copies or substantial portions of the Software. 20# all copies or substantial portions of the Software.
21# 21#
22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 25# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- 26# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
27# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 27# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28# 28#
29# Except as contained in this notice, the name of the X Consortium shall not 29# Except as contained in this notice, the name of the X Consortium shall not
30# be used in advertising or otherwise to promote the sale, use or other deal- 30# be used in advertising or otherwise to promote the sale, use or other deal-
31# ings in this Software without prior written authorization from the X Consor- 31# ings in this Software without prior written authorization from the X Consor-
32# tium. 32# tium.
33# 33#
34# 34#
35# FSF changes to this file are in the public domain. 35# FSF changes to this file are in the public domain.
36# 36#
37# Calling this script install-sh is preferred over install.sh, to prevent 37# Calling this script install-sh is preferred over install.sh, to prevent
38# `make' implicit rules from creating a file called install from it 38# `make' implicit rules from creating a file called install from it
39# when there is no Makefile. 39# when there is no Makefile.
40# 40#
41# This script is compatible with the BSD install script, but was written 41# This script is compatible with the BSD install script, but was written
42# from scratch. 42# from scratch.
43 43
44nl=' 44nl='
45' 45'
46IFS=" "" $nl" 46IFS=" "" $nl"
47 47
48# set DOITPROG to echo to test this script 48# set DOITPROG to echo to test this script
49 49
50# Don't use :- since 4.3BSD and earlier shells don't like it. 50# Don't use :- since 4.3BSD and earlier shells don't like it.
51doit=${DOITPROG-} 51doit=${DOITPROG-}
52if test -z "$doit"; then 52if test -z "$doit"; then
53 doit_exec=exec 53 doit_exec=exec
54else 54else
55 doit_exec=$doit 55 doit_exec=$doit
56fi 56fi
57 57
58# Put in absolute file names if you don't have them in your path; 58# Put in absolute file names if you don't have them in your path;
59# or use environment vars. 59# or use environment vars.
60 60
61chgrpprog=${CHGRPPROG-chgrp} 61chgrpprog=${CHGRPPROG-chgrp}
62chmodprog=${CHMODPROG-chmod} 62chmodprog=${CHMODPROG-chmod}
63chownprog=${CHOWNPROG-chown} 63chownprog=${CHOWNPROG-chown}
64cmpprog=${CMPPROG-cmp} 64cmpprog=${CMPPROG-cmp}
65cpprog=${CPPROG-cp} 65cpprog=${CPPROG-cp}
66mkdirprog=${MKDIRPROG-mkdir} 66mkdirprog=${MKDIRPROG-mkdir}
67mvprog=${MVPROG-mv} 67mvprog=${MVPROG-mv}
68rmprog=${RMPROG-rm} 68rmprog=${RMPROG-rm}
69stripprog=${STRIPPROG-strip} 69stripprog=${STRIPPROG-strip}
70 70
71posix_glob='?' 71posix_glob='?'
72initialize_posix_glob=' 72initialize_posix_glob='
73 test "$posix_glob" != "?" || { 73 test "$posix_glob" != "?" || {
74 if (set -f) 2>/dev/null; then 74 if (set -f) 2>/dev/null; then
75 posix_glob= 75 posix_glob=
76 else 76 else
77 posix_glob=: 77 posix_glob=:
78 fi 78 fi
79 } 79 }
80' 80'
81 81
82posix_mkdir= 82posix_mkdir=
83 83
84# Desired mode of installed file. 84# Desired mode of installed file.
85mode=0755 85mode=0755
86 86
87chgrpcmd= 87chgrpcmd=
88chmodcmd=$chmodprog 88chmodcmd=$chmodprog
89chowncmd= 89chowncmd=
90mvcmd=$mvprog 90mvcmd=$mvprog
91rmcmd="$rmprog -f" 91rmcmd="$rmprog -f"
92stripcmd= 92stripcmd=
93 93
94src= 94src=
95dst= 95dst=
96dir_arg= 96dir_arg=
97dst_arg= 97dst_arg=
98 98
99copy_on_change=false 99copy_on_change=false
100no_target_directory= 100no_target_directory=
101 101
102usage="\ 102usage="\
103Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 103Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
104 or: $0 [OPTION]... SRCFILES... DIRECTORY 104 or: $0 [OPTION]... SRCFILES... DIRECTORY
105 or: $0 [OPTION]... -t DIRECTORY SRCFILES... 105 or: $0 [OPTION]... -t DIRECTORY SRCFILES...
106 or: $0 [OPTION]... -d DIRECTORIES... 106 or: $0 [OPTION]... -d DIRECTORIES...
107 107
108In the 1st form, copy SRCFILE to DSTFILE. 108In the 1st form, copy SRCFILE to DSTFILE.
109In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. 109In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
110In the 4th, create DIRECTORIES. 110In the 4th, create DIRECTORIES.
111 111
112Options: 112Options:
113 --help display this help and exit. 113 --help display this help and exit.
114 --version display version info and exit. 114 --version display version info and exit.
115 115
116 -c (ignored) 116 -c (ignored)
117 -C install only if different (preserve the last data modification time) 117 -C install only if different (preserve the last data modification time)
118 -d create directories instead of installing files. 118 -d create directories instead of installing files.
119 -g GROUP $chgrpprog installed files to GROUP. 119 -g GROUP $chgrpprog installed files to GROUP.
120 -m MODE $chmodprog installed files to MODE. 120 -m MODE $chmodprog installed files to MODE.
121 -o USER $chownprog installed files to USER. 121 -o USER $chownprog installed files to USER.
122 -s $stripprog installed files. 122 -s $stripprog installed files.
123 -t DIRECTORY install into DIRECTORY. 123 -t DIRECTORY install into DIRECTORY.
124 -T report an error if DSTFILE is a directory. 124 -T report an error if DSTFILE is a directory.
125 125
126Environment variables override the default commands: 126Environment variables override the default commands:
127 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG 127 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
128 RMPROG STRIPPROG 128 RMPROG STRIPPROG
129" 129"
130 130
131while test $# -ne 0; do 131while test $# -ne 0; do
132 case $1 in 132 case $1 in
133 -c) ;; 133 -c) ;;
134 134
135 -C) copy_on_change=true;; 135 -C) copy_on_change=true;;
136 136
137 -d) dir_arg=true;; 137 -d) dir_arg=true;;
138 138
139 -g) chgrpcmd="$chgrpprog $2" 139 -g) chgrpcmd="$chgrpprog $2"
140 shift;; 140 shift;;
141 141
142 --help) echo "$usage"; exit $?;; 142 --help) echo "$usage"; exit $?;;
143 143
144 -m) mode=$2 144 -m) mode=$2
145 case $mode in 145 case $mode in
146 *' '* | *' '* | *' 146 *' '* | *' '* | *'
147'* | *'*'* | *'?'* | *'['*) 147'* | *'*'* | *'?'* | *'['*)
148 echo "$0: invalid mode: $mode" >&2 148 echo "$0: invalid mode: $mode" >&2
149 exit 1;; 149 exit 1;;
150 esac 150 esac
151 shift;; 151 shift;;
152 152
153 -o) chowncmd="$chownprog $2" 153 -o) chowncmd="$chownprog $2"
154 shift;; 154 shift;;
155 155
156 -s) stripcmd=$stripprog;; 156 -s) stripcmd=$stripprog;;
157 157
158 -t) dst_arg=$2 158 -t) dst_arg=$2
159 # Protect names problematic for `test' and other utilities. 159 # Protect names problematic for `test' and other utilities.
160 case $dst_arg in 160 case $dst_arg in
161 -* | [=\(\)!]) dst_arg=./$dst_arg;; 161 -* | [=\(\)!]) dst_arg=./$dst_arg;;
162 esac 162 esac
163 shift;; 163 shift;;
164 164
165 -T) no_target_directory=true;; 165 -T) no_target_directory=true;;
166 166
167 --version) echo "$0 $scriptversion"; exit $?;; 167 --version) echo "$0 $scriptversion"; exit $?;;
168 168
169 --) shift 169 --) shift
170 break;; 170 break;;
171 171
172 -*) echo "$0: invalid option: $1" >&2 172 -*) echo "$0: invalid option: $1" >&2
173 exit 1;; 173 exit 1;;
174 174
175 *) break;; 175 *) break;;
176 esac 176 esac
177 shift 177 shift
178done 178done
179 179
180if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then 180if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
181 # When -d is used, all remaining arguments are directories to create. 181 # When -d is used, all remaining arguments are directories to create.
182 # When -t is used, the destination is already specified. 182 # When -t is used, the destination is already specified.
183 # Otherwise, the last argument is the destination. Remove it from $@. 183 # Otherwise, the last argument is the destination. Remove it from $@.
184 for arg 184 for arg
185 do 185 do
186 if test -n "$dst_arg"; then 186 if test -n "$dst_arg"; then
187 # $@ is not empty: it contains at least $arg. 187 # $@ is not empty: it contains at least $arg.
188 set fnord "$@" "$dst_arg" 188 set fnord "$@" "$dst_arg"
189 shift # fnord 189 shift # fnord
190 fi 190 fi
191 shift # arg 191 shift # arg
192 dst_arg=$arg 192 dst_arg=$arg
193 # Protect names problematic for `test' and other utilities. 193 # Protect names problematic for `test' and other utilities.
194 case $dst_arg in 194 case $dst_arg in
195 -* | [=\(\)!]) dst_arg=./$dst_arg;; 195 -* | [=\(\)!]) dst_arg=./$dst_arg;;
196 esac 196 esac
197 done 197 done
198fi 198fi
199 199
200if test $# -eq 0; then 200if test $# -eq 0; then
201 if test -z "$dir_arg"; then 201 if test -z "$dir_arg"; then
202 echo "$0: no input file specified." >&2 202 echo "$0: no input file specified." >&2
203 exit 1 203 exit 1
204 fi 204 fi
205 # It's OK to call `install-sh -d' without argument. 205 # It's OK to call `install-sh -d' without argument.
206 # This can happen when creating conditional directories. 206 # This can happen when creating conditional directories.
207 exit 0 207 exit 0
208fi 208fi
209 209
210if test -z "$dir_arg"; then 210if test -z "$dir_arg"; then
211 do_exit='(exit $ret); exit $ret' 211 do_exit='(exit $ret); exit $ret'
212 trap "ret=129; $do_exit" 1 212 trap "ret=129; $do_exit" 1
213 trap "ret=130; $do_exit" 2 213 trap "ret=130; $do_exit" 2
214 trap "ret=141; $do_exit" 13 214 trap "ret=141; $do_exit" 13
215 trap "ret=143; $do_exit" 15 215 trap "ret=143; $do_exit" 15
216 216
217 # Set umask so as not to create temps with too-generous modes. 217 # Set umask so as not to create temps with too-generous modes.
218 # However, 'strip' requires both read and write access to temps. 218 # However, 'strip' requires both read and write access to temps.
219 case $mode in 219 case $mode in
220 # Optimize common cases. 220 # Optimize common cases.
221 *644) cp_umask=133;; 221 *644) cp_umask=133;;
222 *755) cp_umask=22;; 222 *755) cp_umask=22;;
223 223
224 *[0-7]) 224 *[0-7])
225 if test -z "$stripcmd"; then 225 if test -z "$stripcmd"; then
226 u_plus_rw= 226 u_plus_rw=
227 else 227 else
228 u_plus_rw='% 200' 228 u_plus_rw='% 200'
229 fi 229 fi
230 cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; 230 cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
231 *) 231 *)
232 if test -z "$stripcmd"; then 232 if test -z "$stripcmd"; then
233 u_plus_rw= 233 u_plus_rw=
234 else 234 else
235 u_plus_rw=,u+rw 235 u_plus_rw=,u+rw
236 fi 236 fi
237 cp_umask=$mode$u_plus_rw;; 237 cp_umask=$mode$u_plus_rw;;
238 esac 238 esac
239fi 239fi
240 240
241for src 241for src
242do 242do
243 # Protect names problematic for `test' and other utilities. 243 # Protect names problematic for `test' and other utilities.
244 case $src in 244 case $src in
245 -* | [=\(\)!]) src=./$src;; 245 -* | [=\(\)!]) src=./$src;;
246 esac 246 esac
247 247
248 if test -n "$dir_arg"; then 248 if test -n "$dir_arg"; then
249 dst=$src 249 dst=$src
250 dstdir=$dst 250 dstdir=$dst
251 test -d "$dstdir" 251 test -d "$dstdir"
252 dstdir_status=$? 252 dstdir_status=$?
253 else 253 else
254 254
255 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command 255 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
256 # might cause directories to be created, which would be especially bad 256 # might cause directories to be created, which would be especially bad
257 # if $src (and thus $dsttmp) contains '*'. 257 # if $src (and thus $dsttmp) contains '*'.
258 if test ! -f "$src" && test ! -d "$src"; then 258 if test ! -f "$src" && test ! -d "$src"; then
259 echo "$0: $src does not exist." >&2 259 echo "$0: $src does not exist." >&2
260 exit 1 260 exit 1
261 fi 261 fi
262 262
263 if test -z "$dst_arg"; then 263 if test -z "$dst_arg"; then
264 echo "$0: no destination specified." >&2 264 echo "$0: no destination specified." >&2
265 exit 1 265 exit 1
266 fi 266 fi
267 dst=$dst_arg 267 dst=$dst_arg
268 268
269 # If destination is a directory, append the input filename; won't work 269 # If destination is a directory, append the input filename; won't work
270 # if double slashes aren't ignored. 270 # if double slashes aren't ignored.
271 if test -d "$dst"; then 271 if test -d "$dst"; then
272 if test -n "$no_target_directory"; then 272 if test -n "$no_target_directory"; then
273 echo "$0: $dst_arg: Is a directory" >&2 273 echo "$0: $dst_arg: Is a directory" >&2
274 exit 1 274 exit 1
275 fi 275 fi
276 dstdir=$dst 276 dstdir=$dst
277 dst=$dstdir/`basename "$src"` 277 dst=$dstdir/`basename "$src"`
278 dstdir_status=0 278 dstdir_status=0
279 else 279 else
280 # Prefer dirname, but fall back on a substitute if dirname fails. 280 # Prefer dirname, but fall back on a substitute if dirname fails.
281 dstdir=` 281 dstdir=`
282 (dirname "$dst") 2>/dev/null || 282 (dirname "$dst") 2>/dev/null ||
283 expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ 283 expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
284 X"$dst" : 'X\(//\)[^/]' \| \ 284 X"$dst" : 'X\(//\)[^/]' \| \
285 X"$dst" : 'X\(//\)$' \| \ 285 X"$dst" : 'X\(//\)$' \| \
286 X"$dst" : 'X\(/\)' \| . 2>/dev/null || 286 X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
287 echo X"$dst" | 287 echo X"$dst" |
288 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ 288 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
289 s//\1/ 289 s//\1/
290 q 290 q
291 } 291 }
292 /^X\(\/\/\)[^/].*/{ 292 /^X\(\/\/\)[^/].*/{
293 s//\1/ 293 s//\1/
294 q 294 q
295 } 295 }
296 /^X\(\/\/\)$/{ 296 /^X\(\/\/\)$/{
297 s//\1/ 297 s//\1/
298 q 298 q
299 } 299 }
300 /^X\(\/\).*/{ 300 /^X\(\/\).*/{
301 s//\1/ 301 s//\1/
302 q 302 q
303 } 303 }
304 s/.*/./; q' 304 s/.*/./; q'
305 ` 305 `
306 306
307 test -d "$dstdir" 307 test -d "$dstdir"
308 dstdir_status=$? 308 dstdir_status=$?
309 fi 309 fi
310 fi 310 fi
311 311
312 obsolete_mkdir_used=false 312 obsolete_mkdir_used=false
313 313
314 if test $dstdir_status != 0; then 314 if test $dstdir_status != 0; then
315 case $posix_mkdir in 315 case $posix_mkdir in
316 '') 316 '')
317 # Create intermediate dirs using mode 755 as modified by the umask. 317 # Create intermediate dirs using mode 755 as modified by the umask.
318 # This is like FreeBSD 'install' as of 1997-10-28. 318 # This is like FreeBSD 'install' as of 1997-10-28.
319 umask=`umask` 319 umask=`umask`
320 case $stripcmd.$umask in 320 case $stripcmd.$umask in
321 # Optimize common cases. 321 # Optimize common cases.
322 *[2367][2367]) mkdir_umask=$umask;; 322 *[2367][2367]) mkdir_umask=$umask;;
323 .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; 323 .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
324 324
325 *[0-7]) 325 *[0-7])
326 mkdir_umask=`expr $umask + 22 \ 326 mkdir_umask=`expr $umask + 22 \
327 - $umask % 100 % 40 + $umask % 20 \ 327 - $umask % 100 % 40 + $umask % 20 \
328 - $umask % 10 % 4 + $umask % 2 328 - $umask % 10 % 4 + $umask % 2
329 `;; 329 `;;
330 *) mkdir_umask=$umask,go-w;; 330 *) mkdir_umask=$umask,go-w;;
331 esac 331 esac
332 332
333 # With -d, create the new directory with the user-specified mode. 333 # With -d, create the new directory with the user-specified mode.
334 # Otherwise, rely on $mkdir_umask. 334 # Otherwise, rely on $mkdir_umask.
335 if test -n "$dir_arg"; then 335 if test -n "$dir_arg"; then
336 mkdir_mode=-m$mode 336 mkdir_mode=-m$mode
337 else 337 else
338 mkdir_mode= 338 mkdir_mode=
339 fi 339 fi
340 340
341 posix_mkdir=false 341 posix_mkdir=false
342 case $umask in 342 case $umask in
343 *[123567][0-7][0-7]) 343 *[123567][0-7][0-7])
344 # POSIX mkdir -p sets u+wx bits regardless of umask, which 344 # POSIX mkdir -p sets u+wx bits regardless of umask, which
345 # is incompatible with FreeBSD 'install' when (umask & 300) != 0. 345 # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
346 ;; 346 ;;
347 *) 347 *)
348 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ 348 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
349 trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 349 trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
350 350
351 if (umask $mkdir_umask && 351 if (umask $mkdir_umask &&
352 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 352 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
353 then 353 then
354 if test -z "$dir_arg" || { 354 if test -z "$dir_arg" || {
355 # Check for POSIX incompatibilities with -m. 355 # Check for POSIX incompatibilities with -m.
356 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or 356 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
357 # other-writeable bit of parent directory when it shouldn't. 357 # other-writeable bit of parent directory when it shouldn't.
358 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. 358 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
359 ls_ld_tmpdir=`ls -ld "$tmpdir"` 359 ls_ld_tmpdir=`ls -ld "$tmpdir"`
360 case $ls_ld_tmpdir in 360 case $ls_ld_tmpdir in
361 d????-?r-*) different_mode=700;; 361 d????-?r-*) different_mode=700;;
362 d????-?--*) different_mode=755;; 362 d????-?--*) different_mode=755;;
363 *) false;; 363 *) false;;
364 esac && 364 esac &&
365 $mkdirprog -m$different_mode -p -- "$tmpdir" && { 365 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
366 ls_ld_tmpdir_1=`ls -ld "$tmpdir"` 366 ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
367 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" 367 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
368 } 368 }
369 } 369 }
370 then posix_mkdir=: 370 then posix_mkdir=:
371 fi 371 fi
372 rmdir "$tmpdir/d" "$tmpdir" 372 rmdir "$tmpdir/d" "$tmpdir"
373 else 373 else
374 # Remove any dirs left behind by ancient mkdir implementations. 374 # Remove any dirs left behind by ancient mkdir implementations.
375 rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null 375 rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
376 fi 376 fi
377 trap '' 0;; 377 trap '' 0;;
378 esac;; 378 esac;;
379 esac 379 esac
380 380
381 if 381 if
382 $posix_mkdir && ( 382 $posix_mkdir && (
383 umask $mkdir_umask && 383 umask $mkdir_umask &&
384 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" 384 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
385 ) 385 )
386 then : 386 then :
387 else 387 else
388 388
389 # The umask is ridiculous, or mkdir does not conform to POSIX, 389 # The umask is ridiculous, or mkdir does not conform to POSIX,
390 # or it failed possibly due to a race condition. Create the 390 # or it failed possibly due to a race condition. Create the
391 # directory the slow way, step by step, checking for races as we go. 391 # directory the slow way, step by step, checking for races as we go.
392 392
393 case $dstdir in 393 case $dstdir in
394 /*) prefix='/';; 394 /*) prefix='/';;
395 [-=\(\)!]*) prefix='./';; 395 [-=\(\)!]*) prefix='./';;
396 *) prefix='';; 396 *) prefix='';;
397 esac 397 esac
398 398
399 eval "$initialize_posix_glob" 399 eval "$initialize_posix_glob"
400 400
401 oIFS=$IFS 401 oIFS=$IFS
402 IFS=/ 402 IFS=/
403 $posix_glob set -f 403 $posix_glob set -f
404 set fnord $dstdir 404 set fnord $dstdir
405 shift 405 shift
406 $posix_glob set +f 406 $posix_glob set +f
407 IFS=$oIFS 407 IFS=$oIFS
408 408
409 prefixes= 409 prefixes=
410 410
411 for d 411 for d
412 do 412 do
413 test X"$d" = X && continue 413 test X"$d" = X && continue
414 414
415 prefix=$prefix$d 415 prefix=$prefix$d
416 if test -d "$prefix"; then 416 if test -d "$prefix"; then
417 prefixes= 417 prefixes=
418 else 418 else
419 if $posix_mkdir; then 419 if $posix_mkdir; then
420 (umask=$mkdir_umask && 420 (umask=$mkdir_umask &&
421 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break 421 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
422 # Don't fail if two instances are running concurrently. 422 # Don't fail if two instances are running concurrently.
423 test -d "$prefix" || exit 1 423 test -d "$prefix" || exit 1
424 else 424 else
425 case $prefix in 425 case $prefix in
426 *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; 426 *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
427 *) qprefix=$prefix;; 427 *) qprefix=$prefix;;
428 esac 428 esac
429 prefixes="$prefixes '$qprefix'" 429 prefixes="$prefixes '$qprefix'"
430 fi 430 fi
431 fi 431 fi
432 prefix=$prefix/ 432 prefix=$prefix/
433 done 433 done
434 434
435 if test -n "$prefixes"; then 435 if test -n "$prefixes"; then
436 # Don't fail if two instances are running concurrently. 436 # Don't fail if two instances are running concurrently.
437 (umask $mkdir_umask && 437 (umask $mkdir_umask &&
438 eval "\$doit_exec \$mkdirprog $prefixes") || 438 eval "\$doit_exec \$mkdirprog $prefixes") ||
439 test -d "$dstdir" || exit 1 439 test -d "$dstdir" || exit 1
440 obsolete_mkdir_used=true 440 obsolete_mkdir_used=true
441 fi 441 fi
442 fi 442 fi
443 fi 443 fi
444 444
445 if test -n "$dir_arg"; then 445 if test -n "$dir_arg"; then
446 { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && 446 { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
447 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && 447 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
448 { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || 448 { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
449 test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 449 test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
450 else 450 else
451 451
452 # Make a couple of temp file names in the proper directory. 452 # Make a couple of temp file names in the proper directory.
453 dsttmp=$dstdir/_inst.$$_ 453 dsttmp=$dstdir/_inst.$$_
454 rmtmp=$dstdir/_rm.$$_ 454 rmtmp=$dstdir/_rm.$$_
455 455
456 # Trap to clean up those temp files at exit. 456 # Trap to clean up those temp files at exit.
457 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 457 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
458 458
459 # Copy the file name to the temp name. 459 # Copy the file name to the temp name.
460 (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && 460 (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
461 461
462 # and set any options; do chmod last to preserve setuid bits. 462 # and set any options; do chmod last to preserve setuid bits.
463 # 463 #
464 # If any of these fail, we abort the whole thing. If we want to 464 # If any of these fail, we abort the whole thing. If we want to
465 # ignore errors from any of these, just make sure not to ignore 465 # ignore errors from any of these, just make sure not to ignore
466 # errors from the above "$doit $cpprog $src $dsttmp" command. 466 # errors from the above "$doit $cpprog $src $dsttmp" command.
467 # 467 #
468 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && 468 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
469 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && 469 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
470 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && 470 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
471 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && 471 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
472 472
473 # If -C, don't bother to copy if it wouldn't change the file. 473 # If -C, don't bother to copy if it wouldn't change the file.
474 if $copy_on_change && 474 if $copy_on_change &&
475 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && 475 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
476 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 476 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
477 477
478 eval "$initialize_posix_glob" && 478 eval "$initialize_posix_glob" &&
479 $posix_glob set -f && 479 $posix_glob set -f &&
480 set X $old && old=:$2:$4:$5:$6 && 480 set X $old && old=:$2:$4:$5:$6 &&
481 set X $new && new=:$2:$4:$5:$6 && 481 set X $new && new=:$2:$4:$5:$6 &&
482 $posix_glob set +f && 482 $posix_glob set +f &&
483 483
484 test "$old" = "$new" && 484 test "$old" = "$new" &&
485 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 485 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
486 then 486 then
487 rm -f "$dsttmp" 487 rm -f "$dsttmp"
488 else 488 else
489 # Rename the file to the real destination. 489 # Rename the file to the real destination.
490 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || 490 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
491 491
492 # The rename failed, perhaps because mv can't rename something else 492 # The rename failed, perhaps because mv can't rename something else
493 # to itself, or perhaps because mv is so ancient that it does not 493 # to itself, or perhaps because mv is so ancient that it does not
494 # support -f. 494 # support -f.
495 { 495 {
496 # Now remove or move aside any old file at destination location. 496 # Now remove or move aside any old file at destination location.
497 # We try this two ways since rm can't unlink itself on some 497 # We try this two ways since rm can't unlink itself on some
498 # systems and the destination file might be busy for other 498 # systems and the destination file might be busy for other
499 # reasons. In this case, the final cleanup might fail but the new 499 # reasons. In this case, the final cleanup might fail but the new
500 # file should still install successfully. 500 # file should still install successfully.
501 { 501 {
502 test ! -f "$dst" || 502 test ! -f "$dst" ||
503 $doit $rmcmd -f "$dst" 2>/dev/null || 503 $doit $rmcmd -f "$dst" 2>/dev/null ||
504 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && 504 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
505 { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } 505 { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
506 } || 506 } ||
507 { echo "$0: cannot unlink or rename $dst" >&2 507 { echo "$0: cannot unlink or rename $dst" >&2
508 (exit 1); exit 1 508 (exit 1); exit 1
509 } 509 }
510 } && 510 } &&
511 511
512 # Now rename the file to the real destination. 512 # Now rename the file to the real destination.
513 $doit $mvcmd "$dsttmp" "$dst" 513 $doit $mvcmd "$dsttmp" "$dst"
514 } 514 }
515 fi || exit 1 515 fi || exit 1
516 516
517 trap '' 0 517 trap '' 0
518 fi 518 fi
519done 519done
520 520
521# Local variables: 521# Local variables:
522# eval: (add-hook 'write-file-hooks 'time-stamp) 522# eval: (add-hook 'write-file-hooks 'time-stamp)
523# time-stamp-start: "scriptversion=" 523# time-stamp-start: "scriptversion="
524# time-stamp-format: "%:y-%02m-%02d.%02H" 524# time-stamp-format: "%:y-%02m-%02d.%02H"
525# time-stamp-time-zone: "UTC" 525# time-stamp-time-zone: "UTC"
526# time-stamp-end: "; # UTC" 526# time-stamp-end: "; # UTC"
527# End: 527# End: