summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2015-08-01 23:08:53 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2015-08-01 23:08:53 +0100
commit026d879058b9f68839796015b988008b45065972 (patch)
tree60da950402dbe26d728706b45ba4a330258c8423 /Tools
parentcc6804724f686ce84408ed40e962179f9bde9d32 (diff)
downloadswig-026d879058b9f68839796015b988008b45065972.tar.gz
Move MinGW mixed path conversion code to the pathconvert tool
In preparation for adding MinGW support to patch #438.
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/convertpath21
1 files changed, 14 insertions, 7 deletions
diff --git a/Tools/convertpath b/Tools/convertpath
index fce5ac24b..0cc8b74bb 100755
--- a/Tools/convertpath
+++ b/Tools/convertpath
@@ -1,25 +1,32 @@
#!/bin/sh
-# Unix to Windows relative path conversion in a script.
+# Unix to Windows path conversion in a script.
# Useful for avoiding backslash quoting difficulties in Makefiles.
-# Acts as a much dumbed down 'cygpath -w' tool.
+# Acts as a much dumbed down cygpath tool mainly for use on MinGW.
usage()
{
cat <<EOF
-Usage: $0 [-w|-u|-h] [path]...
+Usage: $0 [-m|-u|-w|-h] [path]...
-Convert Windows and Unix paths (intended for simple relative paths only)
+Convert Windows and Unix paths
- -w Convert backslashes to forward slashes in the paths
- -u Convert forward slashes to backslashes in the paths
+ -m Convert Unix path to mixed path (full paths, MinGW MSYS only)
+ -u Convert forward slashes to backslashes in the paths (relative paths only)
+ -w Convert backslashes to forward slashes in the paths (relative paths only)
EOF
}
option="$1"
case "$option" in
- -w) shift; echo $@ | sed -e 's,/,\\,g' ;;
+ -m) shift
+ case $MACHTYPE in
+ # This echo converts unix to mixed paths. Then zap unexpected trailing space on old versions of MinGW.
+ *-msys) echo `cmd //c echo "$@" | sed -e "s/[ ]*$//"`;;
+ *) echo "The -m option is only supported on MinGW MSYS" 1>&2; exit 1 ;;
+ esac ;;
-u) shift; echo $@ | sed -e 's,\\,/,g' ;;
+ -w) shift; echo $@ | sed -e 's,/,\\,g' ;;
-h) shift; usage; ;;
*) usage; exit 1 ;;
esac