#!/usr/bin/perl $cygwinroot = 'd:/cygwin/'; $gnuclientw = 'gnuclientw'; $gnudoitw = 'gnudoitw'; ($cygwinpath, $line) = @ARGV; $pwd = readpipe('pwd'); chomp $pwd; # process leading '../'s @pwd = split(/\//, $pwd); while($cygwinpath =~ s/^\.\.\///) { pop(@pwd); } $pwd = join('/', @pwd); # path with leading './' $cygwinpath =~ s/^\./$pwd/; # relative path $cygwinpath = $pwd.'/'.$cygwinpath if ($cygwinpath !~ m|^/|); # path with leading '~/' $cygwinpath =~ s|^~|/home/readpipe('whoami')|; # path with leading '/' $cygwinpath =~ s|^/|$cygwinroot|; ## remove '\n's if any. (caused by 'pwd') #$cygwinpath =~ s/\n//g; #die "$cygwinpath\n"; # invoke 'gnuclientw' with the path which makes sense to it system("$gnuclientw $cygwinpath"); # goto the line if specified as 2nd argument if ($line ne '') { system("$gnudoitw -f '(goto-line $line)'"); }