| #!/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 | |
| # | |
| # | |
| # Taken directly from: | |
| # http://dxr.mozilla.org/mozilla-central/source/nsprpub/build/cygwin-wrapper | |
| # | |
| 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 |