From: Jan Nijtmans <jan.nijtmans@gmail.com>
To: cygwin@cygwin.com
Subject: cygwin_conv_path strange behavior
Date: Wed, 27 Jun 2012 11:59:00 -0000 [thread overview]
Message-ID: <CAO1jNwv-TEEZfLTvtZxdQ3oa9k+KsHMaM8v6sLx-TZxN73OumA@mail.gmail.com> (raw)
Dear cygwin developers.
When trying the function cygwin_conv_path, I noted
some strange effect, when the cygwin1.dll is in the
same directory as the executable. This can be
demonstrated with the example "mypath.c" below.
Compiling this function, and putting it in some
directory "C:\some\path\foo', from a cygwin shell,
it prints:
$ ./mypath
win32 path: C:\some\path\foo\mypath.exe
posix path: /cygdrive/c/some/path/foo/mypath.exe
From a win32 command shell:
> .\mypath
win32 path: C:\some\path\foo\mypath.exe
posix path: /cygdrive/c/some/path/foo/mypath.exe
This is as expected.
Now, copy cygwin1.dll to the same directory
as mypath.exe, and do the same
from a cygwin shell, it prints:
$ ./mypath
win32 path: C:\some\path\foo\mypath.exe
posix path: /cygdrive/c/some/path/foo/mypath.exe
From a win32 command shell:
> .\mypath
win32 path: C:\some\path\foo\mypath.exe
posix path: /foo/mypath.exe
In other words, the first part of the posix path is
stripped, when running it from a win32 shell!
My objective is to distribute "mypath.exe" separate
from cygwin, simply by putting cygwin1.dll (the only
one it needs) in the same directory as the executable,
so it can run without the presence of the cygwin
environment. But this results in wrong paths produced
by the cygwin_conv_path() function.
Is this a bug in cygwin_conv_path()? What can
I do about that?
Regards,
Jan Nijtmans
=============== mypath.c =================
extern __stdcall int GetModuleFileNameA(void *, const char *, int);
#define PATH_MAX 512
int
main ()
{
char buf[PATH_MAX];
char name[PATH_MAX];
GetModuleFileNameA(0, buf, PATH_MAX);
cygwin_conv_path(2, buf, name, PATH_MAX);
printf("win32 path: %s\nposix path: %s\n", buf, name);
}
--
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
next reply other threads:[~2012-06-27 11:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-27 11:59 Jan Nijtmans [this message]
2012-06-27 12:11 ` Earnie Boyd
2012-06-27 12:29 ` Jan Nijtmans
2012-06-27 12:30 ` Corinna Vinschen
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=CAO1jNwv-TEEZfLTvtZxdQ3oa9k+KsHMaM8v6sLx-TZxN73OumA@mail.gmail.com \
--to=jan.nijtmans@gmail.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).