This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Windows-style pathname does not work as command - why?


on Thu, 02 Sep 2010 12:13:12 -0600, Eric Blake <4C7FE938.6060806@redhat.com>
attacked their terminal with
[stuff relating to Win32 paths]

Here's a sed script I use to get around that... Put this in your script (or
~/.bashrc) and enjoy

function wintocyg {
	if [ "x${$1}" == "x" ]; then
		return 1
	fi
	echo $1 | sed 's/\([a-zA-Z]\)\:/\/cygdrive\/\1/g;s:\\:/:g'
}

This:
- checks that there is an argument.
- Converts that argument using a sed script that looks for a drive letter, :\
  and converts that into a Cygdrive path. This works for root level stuff
  ("d:\") and for deeply nested things (like d:\ping\me_with\a hundred boxes
  of\liquor).

Pretty Simple Stuff, but its a pain. I've used this for a while now.

I know its a hack but its /works/. You could easily make it escape ' '* but I'm
assuming you're calling it using "`wintocyg mypath`" ( /always/ escape your
paths )



* that would be done by taking and actually wrapping the entire function around
  an echo statement like  echo "\"`echo $1 ...`\"" Â
-- 
Morgan Gangwere
Key ID A8B6F243, available from MIT.
BOFH excuse #441:

Hash table has woodworm

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]