#!/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