tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cygwin-wrapper (2329B)


      1 #!/bin/sh
      2 # This Source Code Form is subject to the terms of the Mozilla Public
      3 # License, v. 2.0. If a copy of the MPL was not distributed with this
      4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      5 
      6 #
      7 # Stupid wrapper to avoid win32 dospath/cygdrive issues
      8 # Try not to spawn programs from within this file. If the stuff in here looks royally 
      9 # confusing, see bug: http://bugzilla.mozilla.org/show_bug.cgi?id=206643
     10 # and look at the older versions of this file that are easier to read, but
     11 # do basically the same thing
     12 #
     13 
     14 prog=$1
     15 shift
     16 if test -z "$prog"; then
     17     exit 0
     18 fi
     19 
     20 # If $CYGDRIVE_MOUNT was not set in configure, give $mountpoint the results of mount -p
     21 mountpoint=$CYGDRIVE_MOUNT
     22 if test -z "$mountpoint"; then
     23     mountpoint=`mount -p`
     24     if test -z "$mountpoint"; then
     25        print "Cannot determine cygwin mount points. Exiting"
     26        exit 1
     27     fi
     28 fi
     29 
     30 # Delete everything but "/cygdrive" (or other mountpoint) from mount=`mount -p`
     31 mountpoint=${mountpoint#*/}
     32 mountpoint=/${mountpoint%%[!A-Za-z0-9_]*}
     33 mountpoint=${mountpoint%/}
     34 
     35 args=""
     36 up=""
     37 if test "${prog}" = "-up"; then
     38     up=1
     39     prog=${1}
     40     shift
     41 fi
     42 
     43 process=1
     44 
     45 # Convert the mountpoint in parameters to Win32 filenames
     46 # For instance: /cygdrive/c/foo -> c:/foo
     47 for i in "${@}"
     48 do
     49     if test "${i}" = "-wrap"; then
     50         process=1
     51     else
     52         if test "${i}" = "-nowrap"; then
     53             process=
     54         else
     55             if test -n "${process}"; then
     56                 if test -n "${up}"; then
     57                     pathname=${i#-I[a-zA-Z]:/}
     58                     if ! test "${pathname}" = "${i}"; then
     59                         no_i=${i#-I}
     60                         driveletter=${no_i%%:*}
     61                         i=-I${mountpoint}/${driveletter}/${pathname}
     62                     fi
     63                 else
     64                     eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
     65                     if ! test "${leader}" = "${i}"; then
     66                         eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
     67                         eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
     68                         driveletter=${no_mountpoint%%/*}
     69                         i=${leader}${driveletter}:/${pathname}
     70                     fi
     71                 fi
     72             fi
     73 
     74             args="${args} ${i}"
     75         fi
     76     fi
     77 done
     78 
     79 exec $prog $args