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: Can cygwin be configured to always use mixed path output types?


On Thu, 29 Jan 2004, Graucsh wrote:

> Igor Pechtchanski wrote:
> > Dan,
> >
> > My message was meant to say that Cygwin will accept Windows-style paths as
> > input (the comment about path.cc was to make sure mixed-style paths were
> > also accepted).  If you want Cygwin to *generate* Win32-style paths,
> > that's unlikely to happen.  In fact, I can tell you right now that Cygwin
> > is not going to be changed for better interoperability with either MKS or
> > SFU.
> >
> > The best solution for you might be to create aliases (or exported
> > functions) for each of the necessary commands that would invoke 'cygpath'
> > on the output of the corresponding command (something like
> >
> > pwd() {
> >   cygpath -m "`command pwd`"
> > }
> > export pwd
> >
> > might do it).  Hope this helps,
> >       Igor
> >
> > On Thu, 29 Jan 2004, Cohen Dan wrote:
> >
> >
> >>Hi Igor et al.,
> >>
> >>Here is what I am seeing the cygwin command prompt:
> >>
> >>$ pwd
> >>/cygdrive/c/temp
> >>
> >>Here is what I would like to see:
> >>
> >>$ pwd
> >>c:/temp
> >>
> >>I am fairly new to cygwin and am not entirely certain about the solution
> >>you are proposing.. (For example, what do you mean by "check the latest
> >>version of winsup/cygwin/path.cc."?)
> >>
> >>In any case, If there is no solution to this, then I know my course of
> >>action and would only ask in the future that cygwin environment and
> >>tools support the two modes (Even if that means losing some symbolic
> >>link and Cygwin mounting capabilities).
> >>
> >>If I am wrong, I would appreciate an example of how to set this up..
> >>Thank you in advance.
> >>
> >>Dan
> >>
> >>
> >>--- Igor Pechtchanski <pechtcha@cs.nyu.edu> wrote:
> >>
> >>>On Thu, 29 Jan 2004, Cohen Dan wrote:
> >>>
> >>>
> >>>>Hi,
> >>>>
> >>>>I have a project that requires me to use both cygwin and MKS.. MKS
> >>>>primarily uses paths like "c:/temp" and cygwin has the path
> >>>>"/cygdrive/c/temp".  I know I can use cygpath (cygpath -m
> >>>>/cygdrive/c/temp) to convert the cygwin path to "c:/temp" but that
> >>>>solution will be very time consuming to implement in the very large
> >>>>application I need to convert. I was wondering if there was a way to
> >>>>configure cygwin to work with the mixed path mode instead of using
> >>>>cygpath in my scripts.
> >>>>
> >>>>Thanks in advance.
> >>>>Dan
> >>>
> >>>FWIW, Cygwin's file manipulation routines will understand the regular
> >>>Win32-style paths (make sure to quote the backslashes in your shell).
> >>>Programs that don't attempt to manipulate the paths themselves should
> >>>work just fine with Windows paths.  I believe (though I'm not as sure
> >>>of it) that a 'single-letter-followed-by-a-colon-followed-by-a-slash'
> >>>pattern is also used to indicate a Windows path and the DLL acts
> >>>accordingly (i.e., mixed mode should also work).  If you want to make
> >>>sure, look in the latest version of winsup/cygwin/path.cc.
> >>>
> >>>Of course, if some program does attempt to process the path itself
> >>>(e.g., walk through directories, etc), all bets are off.  Also note
> >>>that you will lose the benefit of Cygwin mounts and symlinks if you
> >>>stick to Windows paths.
> >>>      Igor
> >
> >
> Or, if you want to keep your cygwin space unix-y and only have
> windows-style paths when mucking around under /cygdrive (one
> line)(requires sed):
>
> alias pwd='pwd | sed "-es/^\/cygdrive\//:/" -eTz "-e s/\(:\)\(.\)/\2\1/" -e:a "-es/\//\\\/" -eta -e:z'
>
> Hope That's Of Use

Hmm, I believe the OP didn't want "/home/blah", he wanted
"C:/cygwin/home/blah".  And for the /cygdrive/* cases, that's what cygpath
does.  Also, cygpath comes with the cygwin package, and sed requires
installing a separate one.

Besides, you can do it much simpler in sed, something like

alias pwd='pwd | sed -e"s,^/cygdrive/\(.\),\1:," -eTz -e"s,/,\\\,g" -e:z'

Or, since the OP wanted the mixed style ('/' instead of '\') even this

alias pwd='pwd | sed -e"s,^/cygdrive/\(.\),\1:,"'

:-)
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster."  -- Patrick Naughton

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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