1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #!/bin/sh
- # 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/.
- #
- # 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
|