public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Michael Enright <mike@kmcardiff.com>
To: cygwin@cygwin.com
Subject: Re: cygpath
Date: Fri, 10 Feb 2017 20:37:00 -0000	[thread overview]
Message-ID: <CAOC2fq8qG6xghRuUdRqR3bX4Ndeio-viox6X2hzS7D=dFfYmXQ@mail.gmail.com> (raw)
In-Reply-To: <151946397.20170210223617@yandex.ru>

On Fri, Feb 10, 2017 at 11:36 AM, Andrey Repin  wrote:
> Greetings, Gluszczak, Glenn!
>
>> Isn’t this a defect in cygpath?  Looks like memory corruption.
>
>> %%%cygpath -w /usr/non-existent/*
>> C:\cygwin\usr\non-existent\�[W��
>
> Looks more like private character space combined with incorrect terminal setup.

The link to private character space is realllly obscure. Firstly, the
commands that sometimes show failure have a '*' or splat in them. Bash
will try to convert a path with a splat in it to the list of matching
paths, if there are matches. If there aren't, then the argument seen
by the spawned program will contain a splat. Then the cygpath program
has to properly describe the path that contains the splat. The splat
is not a legal character IN A WINDOWS PATH, but a private character
could be and that's how terminal configuration enters in. Cygpath is
giving the string that would be used to represent the path, and that
string will contain a private use character.

In my testing, the environment has no LC variable set to anything, so
the locale mechanisms are presumably doing their default things. All
my attempts with this got a empty box character at first, if the
asterisk went through. That empty box character is presumably some
private use character that is supposed to substitute for an asterisk.
When I switched mintty's configuration to use Consolas, the
previously-run tests output was rerendered by mintty and the 'bad'
character rendered as a box with a question mark inside.

If I enter cygpath -w /usr/bin/* I get output consisting of all the
files in /usr/bin with their paths converted to Windows form. If I
escape the argument so globbing is not done, I get the strange output.

 cygpath -w '/usr/bin/*'
C:\cygwin\bin\

In the above the ticks around the path prevented the path from being
globbed. It might be considered unexpected though, that the path with
an asterisk would be treated as "The user desired to know what the
windows path to a file would be if it's cygwin path ended with an
asterisk". I think the odds of that user story are vanishingly small
compared to the odds of "What would a Windows path to a wildcard look
like that corresponds to this Cygwin wildcard?" But that's a design
problem.

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

  parent reply	other threads:[~2017-02-10 20:37 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-10 19:07 cygpath Gluszczak, Glenn
2017-02-10 19:50 ` cygpath Andrey Repin
2017-02-10 20:04   ` cygpath Gluszczak, Glenn
2017-02-10 20:31     ` cygpath Gluszczak, Glenn
2017-02-10 20:42       ` cygpath Michael Enright
2017-02-10 20:47         ` cygpath Michael Enright
2017-02-10 20:52         ` cygpath Gluszczak, Glenn
2017-02-10 21:35     ` cygpath Andrey Repin
2017-02-10 21:47       ` cygpath Gluszczak, Glenn
2017-02-10 21:54         ` cygpath Michael Enright
2017-02-10 21:55       ` cygpath Michael Enright
2017-02-10 23:17     ` cygpath Eliot Moss
2017-02-10 23:50       ` cygpath Sam Edge
2017-02-11  0:05         ` cygpath Eliot Moss
2017-02-11  0:45           ` cygpath Sam Edge
2017-02-10 20:37   ` Michael Enright [this message]
2017-02-13 17:29   ` cygpath Nellis, Kenneth (Conduent)
2017-02-14  8:47     ` cygpath Corinna Vinschen
2017-02-15 14:41       ` cygpath Nellis, Kenneth (Conduent)
2017-02-15 15:29         ` cygpath Corinna Vinschen
2017-02-11 18:19 ` cygpath Brian Inglis
  -- strict thread matches above, loose matches on Subject: below --
2011-03-02 14:10 cygpath Jim P
2011-03-02 14:16 ` cygpath Edward Lam
2011-03-02 14:19 ` cygpath Roger K. Wells
     [not found] <pdy988306100538bcc77a8d4986@[209.128.98.50]>
2004-05-12 16:32 ` cygpath Joshua Daniel Franklin
2004-05-12 17:58   ` cygpath Dave Korn
2004-05-12 19:00   ` cygpath Christopher Faylor
2004-05-12 19:30   ` cygpath Igor Pechtchanski
     [not found] <19981114183901.22135.rocketmail@send104.yahoomail.com>
1998-11-17 12:51 ` cygpath Laurent Charles
1998-11-12 16:07 cygpath Earnie Boyd
1998-11-12 17:30 ` cygpath Rick Rankin
     [not found] <36484B31.A6089DF.cygnus.gnu-win32@st.com>
1998-11-11  8:01 ` cygpath DJ Delorie
1998-11-11  4:22 cygpath Earnie Boyd
1998-11-12  3:32 ` cygpath Rick Rankin
1998-11-10  6:18 cygpath Laurent Charles
1998-11-12  3:32 ` cygpath Rick Rankin
1998-11-13  2:57 ` cygpath Laurent Charles

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAOC2fq8qG6xghRuUdRqR3bX4Ndeio-viox6X2hzS7D=dFfYmXQ@mail.gmail.com' \
    --to=mike@kmcardiff.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).