2008-06-06 16:36:51 +04:00
|
|
|
#!/bin/sh
|
2012-05-10 23:01:43 +04:00
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
2008-06-06 16:36:51 +04:00
|
|
|
#
|
|
|
|
# Stupid wrapper to avoid win32 dospath/cygdrive issues
|
|
|
|
# Try not to spawn programs from within this file. If the stuff in here looks royally
|
|
|
|
# confusing, see bug: http://bugzilla.mozilla.org/show_bug.cgi?id=206643
|
|
|
|
# and look at the older versions of this file that are easier to read, but
|
|
|
|
# do basically the same thing
|
|
|
|
#
|
|
|
|
|
|
|
|
prog=$1
|
|
|
|
shift
|
|
|
|
if test -z "$prog"; then
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# If $CYGDRIVE_MOUNT was not set in configure, give $mountpoint the results of mount -p
|
|
|
|
mountpoint=$CYGDRIVE_MOUNT
|
|
|
|
if test -z "$mountpoint"; then
|
|
|
|
mountpoint=`mount -p`
|
|
|
|
if test -z "$mountpoint"; then
|
|
|
|
print "Cannot determine cygwin mount points. Exiting"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Delete everything but "/cygdrive" (or other mountpoint) from mount=`mount -p`
|
|
|
|
mountpoint=${mountpoint#*/}
|
|
|
|
mountpoint=/${mountpoint%%[!A-Za-z0-9_]*}
|
|
|
|
mountpoint=${mountpoint%/}
|
|
|
|
|
|
|
|
args=""
|
|
|
|
up=""
|
|
|
|
if test "${prog}" = "-up"; then
|
|
|
|
up=1
|
|
|
|
prog=${1}
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
|
|
|
process=1
|
|
|
|
|
|
|
|
# Convert the mountpoint in parameters to Win32 filenames
|
|
|
|
# For instance: /cygdrive/c/foo -> c:/foo
|
|
|
|
for i in "${@}"
|
|
|
|
do
|
|
|
|
if test "${i}" = "-wrap"; then
|
|
|
|
process=1
|
|
|
|
else
|
|
|
|
if test "${i}" = "-nowrap"; then
|
|
|
|
process=
|
|
|
|
else
|
|
|
|
if test -n "${process}"; then
|
|
|
|
if test -n "${up}"; then
|
|
|
|
pathname=${i#-I[a-zA-Z]:/}
|
|
|
|
if ! test "${pathname}" = "${i}"; then
|
|
|
|
no_i=${i#-I}
|
|
|
|
driveletter=${no_i%%:*}
|
|
|
|
i=-I${mountpoint}/${driveletter}/${pathname}
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
|
|
|
|
if ! test "${leader}" = "${i}"; then
|
|
|
|
eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
|
|
|
|
eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
|
|
|
|
driveletter=${no_mountpoint%%/*}
|
|
|
|
i=${leader}${driveletter}:/${pathname}
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
args="${args} ${i}"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
exec $prog $args
|