From: "Torsten Bögershausen" <tboegi@web.de>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: "Eric Blake" <eblake@redhat.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Mark Levedahl" <mlevedahl@gmail.com>,
"Ramsay Jones" <ramsay@ramsay1.demon.co.uk>,
"Alex Riesen" <raa.lkml@gmail.com>,
"Jason Pyeron" <jpyeron@pdinc.us>,
git@vger.kernel.org, "Torsten Bögershausen" <tboegi@web.de>,
"Stephen & Linda Smith" <ischis2@cox.net>
Subject: Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS
Date: Sat, 26 Jan 2013 18:21:16 +0100 [thread overview]
Message-ID: <5104108C.6070402@web.de> (raw)
In-Reply-To: <20130126010359.GH3341@elie.Belkin>
On 26.01.13 02:03, Jonathan Nieder wrote:
> Throughout git, it is assumed that the WIN32 preprocessor symbol is
> defined on native Windows setups (mingw and msvc) and not on Cygwin.
> On Cygwin, most of the time git can pretend this is just another Unix
> machine, and Windows-specific magic is generally counterproductive.
>
> Unfortunately Cygwin *does* define the WIN32 symbol in some headers.
> Best to rely on a new git-specific symbol NATIVE_WINDOWS instead,
> defined as follows:
>
> #if defined(WIN32) && !defined(__CYGWIN__)
> # define NATIVE_WINDOWS
> #endif
>
> After this change, it should be possible to drop the
> CYGWIN_V15_WIN32API setting without any negative effect.
>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
> Eric Blake wrote:
>
>> Which is why other projects, like gnulib, have
>>
>> # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
>>
>> all over the place.
> So, how about this?
>
> Completely untested.
>
> abspath.c | 2 +-
> compat/terminal.c | 4 ++--
> compat/win32.h | 2 +-
> diff-no-index.c | 2 +-
> git-compat-util.h | 3 ++-
> help.c | 2 +-
> run-command.c | 10 +++++-----
> test-chmtime.c | 2 +-
> thread-utils.c | 2 +-
> 9 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/abspath.c b/abspath.c
> index 40cdc462..c7d5458e 100644
> --- a/abspath.c
> +++ b/abspath.c
> @@ -216,7 +216,7 @@ const char *absolute_path(const char *path)
> const char *prefix_filename(const char *pfx, int pfx_len, const char *arg)
> {
> static char path[PATH_MAX];
> -#ifndef WIN32
> +#ifndef WINDOWS_NATIVE
> if (!pfx_len || is_absolute_path(arg))
> return arg;
> memcpy(path, pfx, pfx_len);
> diff --git a/compat/terminal.c b/compat/terminal.c
> index 9b5e3d1b..136e4a74 100644
> --- a/compat/terminal.c
> +++ b/compat/terminal.c
> @@ -3,7 +3,7 @@
> #include "sigchain.h"
> #include "strbuf.h"
>
> -#if defined(HAVE_DEV_TTY) || defined(WIN32)
> +#if defined(HAVE_DEV_TTY) || defined(WINDOWS_NATIVE)
>
> static void restore_term(void);
>
> @@ -53,7 +53,7 @@ error:
> return -1;
> }
>
> -#elif defined(WIN32)
> +#elif defined(WINDOWS_NATIVE)
>
> #define INPUT_PATH "CONIN$"
> #define OUTPUT_PATH "CONOUT$"
> diff --git a/compat/win32.h b/compat/win32.h
> index 8ce91048..31dd30f7 100644
> --- a/compat/win32.h
> +++ b/compat/win32.h
> @@ -2,7 +2,7 @@
> #define WIN32_H
>
> /* common Win32 functions for MinGW and Cygwin */
> -#ifndef WIN32 /* Not defined by Cygwin */
> +#ifndef WINDOWS_NATIVE /* Not defined for Cygwin */
> #include <windows.h>
> #endif
>
> diff --git a/diff-no-index.c b/diff-no-index.c
> index 74da6593..a0bc9c50 100644
> --- a/diff-no-index.c
> +++ b/diff-no-index.c
> @@ -45,7 +45,7 @@ static int get_mode(const char *path, int *mode)
>
> if (!path || !strcmp(path, "/dev/null"))
> *mode = 0;
> -#ifdef _WIN32
> +#ifdef WINDOWS_NATIVE
> else if (!strcasecmp(path, "nul"))
> *mode = 0;
> #endif
> diff --git a/git-compat-util.h b/git-compat-util.h
> index e5a4b745..ebbdff53 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -85,10 +85,11 @@
> #define _NETBSD_SOURCE 1
> #define _SGI_SOURCE 1
>
> -#ifdef WIN32 /* Both MinGW and MSVC */
> +#if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */
> #define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */
> #include <winsock2.h>
> #include <windows.h>
> +#define WINDOWS_NATIVE
> #endif
>
> #include <unistd.h>
> diff --git a/help.c b/help.c
> index 2a42ec6d..cc1e63f7 100644
> --- a/help.c
> +++ b/help.c
> @@ -106,7 +106,7 @@ static int is_executable(const char *name)
> !S_ISREG(st.st_mode))
> return 0;
>
> -#if defined(WIN32) || defined(__CYGWIN__)
> +#if defined(WINDOWS_NATIVE) || defined(__CYGWIN__)
> #if defined(__CYGWIN__)
> if ((st.st_mode & S_IXUSR) == 0)
> #endif
> diff --git a/run-command.c b/run-command.c
> index 04712191..04ac6181 100644
> --- a/run-command.c
> +++ b/run-command.c
> @@ -72,7 +72,7 @@ static inline void close_pair(int fd[2])
> close(fd[1]);
> }
>
> -#ifndef WIN32
> +#ifndef WINDOWS_NATIVE
> static inline void dup_devnull(int to)
> {
> int fd = open("/dev/null", O_RDWR);
> @@ -159,7 +159,7 @@ static const char **prepare_shell_cmd(const char **argv)
> die("BUG: shell command is empty");
>
> if (strcspn(argv[0], "|&;<>()$`\\\"' \t\n*?[#~=%") != strlen(argv[0])) {
> -#ifndef WIN32
> +#ifndef WINDOWS_NATIVE
> nargv[nargc++] = SHELL_PATH;
> #else
> nargv[nargc++] = "sh";
> @@ -182,7 +182,7 @@ static const char **prepare_shell_cmd(const char **argv)
> return nargv;
> }
>
> -#ifndef WIN32
> +#ifndef WINDOWS_NATIVE
> static int execv_shell_cmd(const char **argv)
> {
> const char **nargv = prepare_shell_cmd(argv);
> @@ -193,7 +193,7 @@ static int execv_shell_cmd(const char **argv)
> }
> #endif
>
> -#ifndef WIN32
> +#ifndef WINDOWS_NATIVE
> static int child_err = 2;
> static int child_notifier = -1;
>
> @@ -330,7 +330,7 @@ fail_pipe:
> trace_argv_printf(cmd->argv, "trace: run_command:");
> fflush(NULL);
>
> -#ifndef WIN32
> +#ifndef WINDOWS_NATIVE
> {
> int notify_pipe[2];
> if (pipe(notify_pipe))
> diff --git a/test-chmtime.c b/test-chmtime.c
> index 92713d16..803b6055 100644
> --- a/test-chmtime.c
> +++ b/test-chmtime.c
> @@ -87,7 +87,7 @@ int main(int argc, const char *argv[])
> return -1;
> }
>
> -#ifdef WIN32
> +#ifdef WINDOWS_NATIVE
> if (!(sb.st_mode & S_IWUSR) &&
> chmod(argv[i], sb.st_mode | S_IWUSR)) {
> fprintf(stderr, "Could not make user-writable %s: %s",
> diff --git a/thread-utils.c b/thread-utils.c
> index 7f4b76a9..4c4cf2fa 100644
> --- a/thread-utils.c
> +++ b/thread-utils.c
> @@ -24,7 +24,7 @@ int online_cpus(void)
> long ncpus;
> #endif
>
> -#ifdef _WIN32
> +#ifdef WINDOWS_NATIVE
> SYSTEM_INFO info;
> GetSystemInfo(&info);
>
Thanks, that looks good.
I run the test suite under XP, the same test cases are broken as on 1.8.1.1
/Torsten
next prev parent reply other threads:[~2013-01-26 17:21 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-06 2:04 Version 1.8.1 does not compile on Cygwin 1.7.14 Stephen & Linda Smith
2013-01-06 3:37 ` Jason Pyeron
2013-01-06 4:22 ` Jason Pyeron
2013-01-06 6:20 ` Stephen & Linda Smith
2013-01-06 6:29 ` Jason Pyeron
2013-01-06 7:23 ` Torsten Bögershausen
2013-01-06 9:32 ` Jonathan Nieder
2013-01-06 9:42 ` Torsten Bögershausen
2013-01-06 9:57 ` Jonathan Nieder
2013-01-06 11:48 ` Mark Levedahl
2013-01-06 12:09 ` Jonathan Nieder
2013-01-06 14:09 ` Stephen & Linda Smith
2013-01-06 19:54 ` Junio C Hamano
2013-01-06 20:51 ` Torsten Bögershausen
2013-01-06 21:34 ` Mark Levedahl
2013-01-06 21:09 ` Mark Levedahl
2013-01-06 21:33 ` Jason Pyeron
2013-01-06 21:35 ` Junio C Hamano
2013-01-06 21:46 ` Jason Pyeron
2013-01-06 22:00 ` Mark Levedahl
2013-01-06 22:16 ` Mark Levedahl
2013-01-07 5:37 ` Jason Pyeron
2013-01-07 7:29 ` Junio C Hamano
2013-01-07 9:10 ` Pyeron, Jason J CTR (US)
2013-01-08 3:12 ` Mark Levedahl
2013-01-11 20:08 ` Alex Riesen
2013-01-11 20:17 ` Alex Riesen
2013-01-13 18:58 ` Mark Levedahl
2013-01-15 18:47 ` Ramsay Jones
2013-01-20 10:10 ` Jonathan Nieder
2013-01-20 10:48 ` Torsten Bögershausen
2013-01-20 11:06 ` Jonathan Nieder
2013-01-21 5:20 ` [msysGit] " Torsten Bögershausen
2013-01-22 18:38 ` Ramsay Jones
2013-01-22 18:31 ` Ramsay Jones
2013-01-25 23:58 ` Mark Levedahl
2013-01-26 0:11 ` Junio C Hamano
2013-01-26 0:34 ` Eric Blake
2013-01-26 1:03 ` [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS Jonathan Nieder
2013-01-26 14:11 ` Mark Levedahl
2013-01-26 17:21 ` Torsten Bögershausen [this message]
2013-01-28 18:29 ` Ramsay Jones
2013-02-25 6:44 ` Junio C Hamano
2013-02-26 4:08 ` Mark Levedahl
2013-02-26 16:40 ` Torsten Bögershausen
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=5104108C.6070402@web.de \
--to=tboegi@web.de \
--cc=eblake@redhat.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ischis2@cox.net \
--cc=jpyeron@pdinc.us \
--cc=jrnieder@gmail.com \
--cc=mlevedahl@gmail.com \
--cc=raa.lkml@gmail.com \
--cc=ramsay@ramsay1.demon.co.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.