#!/bin/sh # Copyright (C) 2003 GraphicsMagick Group # # This program is covered by multiple licenses, which are described in # Copyright.txt. You should have received a copy of Copyright.txt with this # package; otherwise see http://www.graphicsmagick.org/www/Copyright.html. # # Convert the specified POSIX path to a Windows path under MinGW and Cygwin # The optional second parameter specifies the level of backslash escaping # to apply for each Windows backslash position in order to support varying # levels of variable substitutions in scripts. # # Note that Cygwin includes the 'cygpath' utility, which already provides # path translation capability. # # Written by Bob Friesenhahn June 2002 # arg="$1" escapes=0 if test -n "$2" then escapes="$2" fi if test $escapes -gt 3 then echo "$0: escape level must in range 0 - 3" exit 1 fi result='' length=0 max_length=0 mount | sed -e 's:\\:/:g' | ( IFS="\n" while read mount_entry do win_mount_path=`echo "$mount_entry" | sed -e 's: .*::g'` unix_mount_path=`echo "$mount_entry" | sed -e 's:.* on ::;s: type .*::'` temp=`echo "$arg" | sed -e "s!^$unix_mount_path!$win_mount_path!"` if test "$temp" != "$arg" then candidate="$temp" length=${#unix_mount_path} if test $length -gt $max_length then result=$candidate max_length=$length fi fi done if test -z "$result" then echo "$0: path \"$arg\" is not mounted" exit 1 fi case $escapes in 0) echo "$result" | sed -e 's:/:\\:g' ;; 1) echo "$result" | sed -e 's:/:\\\\:g' ;; 2) echo "$result" | sed -e 's:/:\\\\\\\\:g' ;; 3) echo "$result" | sed -e 's:/:\\\\\\\\\\\\\\\\:g' ;; esac exit 0; )