diff options
author | Tor Lillqvist <tml@iki.fi> | 2000-10-19 17:52:12 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2000-10-19 17:52:12 +0000 |
commit | 4905022b8ecaf794faa9ce4ad9977cb7725e0b49 (patch) | |
tree | 269956cf0299b0081dbd2d3497e39b2eb485aaff | |
parent | 1bfc515a37d2e42157f869f8ac5339aff6ce10b3 (diff) |
Pass -DGSPAWN_HELPER when building it. Link with user32.lib.
2000-10-19 Tor Lillqvist <tml@iki.fi>
* makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link
with user32.lib.
* gspawn-win32.c
* gfileutils.c: Make them compile with picky MSVC.
* gwin32.h: New file. Move Win32-only stuff that isn't related to
GIOChannels here from giochannel.h.
* Makefile.am: Add it here.
* giochannel.h: Move stuff to gwin32.h.
* glib.h: On Win32, include gwin32.h.
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-12 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 17 | ||||
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | gfileutils.c | 21 | ||||
-rw-r--r-- | giochannel.h | 79 | ||||
-rw-r--r-- | glib.h | 3 | ||||
-rw-r--r-- | glib/Makefile.am | 3 | ||||
-rw-r--r-- | glib/gfileutils.c | 21 | ||||
-rw-r--r-- | glib/giochannel.h | 79 | ||||
-rw-r--r-- | glib/glib.h | 3 | ||||
-rw-r--r-- | glib/gspawn-win32.c | 2 | ||||
-rw-r--r-- | glib/gwin32.h | 117 | ||||
-rw-r--r-- | glib/makefile.mingw.in | 2 | ||||
-rw-r--r-- | glib/makefile.msc.in | 2 | ||||
-rw-r--r-- | gspawn-win32.c | 2 | ||||
-rw-r--r-- | gwin32.h | 117 | ||||
-rw-r--r-- | makefile.mingw.in | 2 | ||||
-rw-r--r-- | makefile.msc.in | 2 |
24 files changed, 428 insertions, 166 deletions
@@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f0a103289..3afb230b1 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,20 @@ +2000-10-19 Tor Lillqvist <tml@iki.fi> + + * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link + with user32.lib. + + * gspawn-win32.c + * gfileutils.c: Make them compile with picky MSVC. + + * gwin32.h: New file. Move Win32-only stuff that isn't related to + GIOChannels here from giochannel.h. + + * Makefile.am: Add it here. + + * giochannel.h: Move stuff to gwin32.h. + + * glib.h: On Win32, include gwin32.h. + Mon Sep 11 10:03:24 2000 Owen Taylor <otaylor@redhat.com> * glib.h convert.c (g_convert_with_fallback): Change diff --git a/Makefile.am b/Makefile.am index 5f1fe7a66..67d71608b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -129,7 +129,8 @@ glibinclude_HEADERS = \ gtree.h \ gtypes.h \ gunicode.h \ - gutils.h + gutils.h \ + gwin32.h configexecincludedir = $(libdir)/glib-2.0/include #configexecinclude_DATA = glibconfig.h diff --git a/gfileutils.c b/gfileutils.c index 74b6ac7f3..20a8d370a 100644 --- a/gfileutils.c +++ b/gfileutils.c @@ -33,8 +33,27 @@ #include <sys/stat.h> #include <fcntl.h> +#ifdef G_OS_WIN32 +#include <io.h> +#ifndef F_OK +#define F_OK 0 +#define X_OK 1 +#define W_OK 2 +#define R_OK 4 +#endif /* !F_OK */ + +#ifndef S_ISREG +#define S_ISREG(mode) ((mode)&_S_IFREG) +#endif + +#ifndef S_ISDIR +#define S_ISDIR(mode) ((mode)&_S_IFDIR) +#endif + +#endif /* G_OS_WIN32 */ + #ifndef S_ISLNK -# define S_ISLNK(x) 0 +#define S_ISLNK(x) 0 #endif #define _(x) x diff --git a/giochannel.h b/giochannel.h index b2ae71ed1..7992a69e4 100644 --- a/giochannel.h +++ b/giochannel.h @@ -183,85 +183,6 @@ GIOChannel *g_io_channel_win32_new_stream_socket (int socket); #endif -/* Windows emulation stubs for common Unix functions - */ -#ifdef G_OS_WIN32 -# define MAXPATHLEN 1024 - -#ifdef _MSC_VER -typedef int pid_t; -#endif - -/* - * To get prototypes for the following POSIXish functions, you have to - * include the indicated non-POSIX headers. The functions are defined - * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). - * - * getcwd: <direct.h> (MSVC), <io.h> (mingw32) - * getpid: <process.h> - * access: <io.h> - * unlink: <stdio.h> or <io.h> - * open, read, write, lseek, close: <io.h> - * rmdir: <direct.h> - * pipe: <direct.h> - */ - -/* pipe is not in OLDNAMES.LIB or -lmoldname-msvc. */ -#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY) - -/* For some POSIX functions that are not provided by the MS runtime, - * we provide emulators in glib, which are prefixed with g_win32_. - */ -# define ftruncate(fd, size) g_win32_ftruncate (fd, size) - -/* -lmingw32 also has emulations for these, but we need our own - * for MSVC anyhow, so we might aswell use them always. - */ -# define opendir g_win32_opendir -# define readdir g_win32_readdir -# define rewinddir g_win32_rewinddir -# define closedir g_win32_closedir -# define NAME_MAX 255 - -struct dirent -{ - gchar d_name[NAME_MAX + 1]; -}; - -struct DIR -{ - gchar *dir_name; - gboolean just_opened; - guint find_file_handle; - gpointer find_file_data; - struct dirent readdir_result; -}; -typedef struct DIR DIR; - -/* emulation functions */ -extern int g_win32_ftruncate (gint f, - guint size); -DIR* g_win32_opendir (const gchar *dirname); -struct dirent* g_win32_readdir (DIR *dir); -void g_win32_rewinddir (DIR *dir); -gint g_win32_closedir (DIR *dir); - -/* The MS setlocale uses locale names of the form "English_United - * States.1252" etc. We want the Unixish standard form "en", "zh_TW" - * etc. This function gets the current thread locale from Windows and - * returns it as a string of the above form for use in forming file - * names etc. The returned string should be deallocated with g_free(). - */ -gchar * g_win32_getlocale (void); - -/* Translate a Win32 error code (as returned by GetLastError()) into - * the corresponding message. The returned string should be deallocated - * with g_free(). - */ -gchar * g_win32_error_message (gint error); - -#endif /* G_OS_WIN32 */ - G_END_DECLS #endif /* __G_IOCHANNEL_H__ */ @@ -65,5 +65,8 @@ #include <gtypes.h> #include <gunicode.h> #include <gutils.h> +#ifdef G_OS_WIN32 +#include <gwin32.h> +#endif #endif /* __G_LIB_H__ */ diff --git a/glib/Makefile.am b/glib/Makefile.am index 5f1fe7a66..67d71608b 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -129,7 +129,8 @@ glibinclude_HEADERS = \ gtree.h \ gtypes.h \ gunicode.h \ - gutils.h + gutils.h \ + gwin32.h configexecincludedir = $(libdir)/glib-2.0/include #configexecinclude_DATA = glibconfig.h diff --git a/glib/gfileutils.c b/glib/gfileutils.c index 74b6ac7f3..20a8d370a 100644 --- a/glib/gfileutils.c +++ b/glib/gfileutils.c @@ -33,8 +33,27 @@ #include <sys/stat.h> #include <fcntl.h> +#ifdef G_OS_WIN32 +#include <io.h> +#ifndef F_OK +#define F_OK 0 +#define X_OK 1 +#define W_OK 2 +#define R_OK 4 +#endif /* !F_OK */ + +#ifndef S_ISREG +#define S_ISREG(mode) ((mode)&_S_IFREG) +#endif + +#ifndef S_ISDIR +#define S_ISDIR(mode) ((mode)&_S_IFDIR) +#endif + +#endif /* G_OS_WIN32 */ + #ifndef S_ISLNK -# define S_ISLNK(x) 0 +#define S_ISLNK(x) 0 #endif #define _(x) x diff --git a/glib/giochannel.h b/glib/giochannel.h index b2ae71ed1..7992a69e4 100644 --- a/glib/giochannel.h +++ b/glib/giochannel.h @@ -183,85 +183,6 @@ GIOChannel *g_io_channel_win32_new_stream_socket (int socket); #endif -/* Windows emulation stubs for common Unix functions - */ -#ifdef G_OS_WIN32 -# define MAXPATHLEN 1024 - -#ifdef _MSC_VER -typedef int pid_t; -#endif - -/* - * To get prototypes for the following POSIXish functions, you have to - * include the indicated non-POSIX headers. The functions are defined - * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). - * - * getcwd: <direct.h> (MSVC), <io.h> (mingw32) - * getpid: <process.h> - * access: <io.h> - * unlink: <stdio.h> or <io.h> - * open, read, write, lseek, close: <io.h> - * rmdir: <direct.h> - * pipe: <direct.h> - */ - -/* pipe is not in OLDNAMES.LIB or -lmoldname-msvc. */ -#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY) - -/* For some POSIX functions that are not provided by the MS runtime, - * we provide emulators in glib, which are prefixed with g_win32_. - */ -# define ftruncate(fd, size) g_win32_ftruncate (fd, size) - -/* -lmingw32 also has emulations for these, but we need our own - * for MSVC anyhow, so we might aswell use them always. - */ -# define opendir g_win32_opendir -# define readdir g_win32_readdir -# define rewinddir g_win32_rewinddir -# define closedir g_win32_closedir -# define NAME_MAX 255 - -struct dirent -{ - gchar d_name[NAME_MAX + 1]; -}; - -struct DIR -{ - gchar *dir_name; - gboolean just_opened; - guint find_file_handle; - gpointer find_file_data; - struct dirent readdir_result; -}; -typedef struct DIR DIR; - -/* emulation functions */ -extern int g_win32_ftruncate (gint f, - guint size); -DIR* g_win32_opendir (const gchar *dirname); -struct dirent* g_win32_readdir (DIR *dir); -void g_win32_rewinddir (DIR *dir); -gint g_win32_closedir (DIR *dir); - -/* The MS setlocale uses locale names of the form "English_United - * States.1252" etc. We want the Unixish standard form "en", "zh_TW" - * etc. This function gets the current thread locale from Windows and - * returns it as a string of the above form for use in forming file - * names etc. The returned string should be deallocated with g_free(). - */ -gchar * g_win32_getlocale (void); - -/* Translate a Win32 error code (as returned by GetLastError()) into - * the corresponding message. The returned string should be deallocated - * with g_free(). - */ -gchar * g_win32_error_message (gint error); - -#endif /* G_OS_WIN32 */ - G_END_DECLS #endif /* __G_IOCHANNEL_H__ */ diff --git a/glib/glib.h b/glib/glib.h index de1b2ba16..e9da8d4bb 100644 --- a/glib/glib.h +++ b/glib/glib.h @@ -65,5 +65,8 @@ #include <gtypes.h> #include <gunicode.h> #include <gutils.h> +#ifdef G_OS_WIN32 +#include <gwin32.h> +#endif #endif /* __G_LIB_H__ */ diff --git a/glib/gspawn-win32.c b/glib/gspawn-win32.c index 11779daff..c1bb2222d 100644 --- a/glib/gspawn-win32.c +++ b/glib/gspawn-win32.c @@ -44,12 +44,14 @@ #include <string.h> #include <stdlib.h> +#include <stdio.h> #include <windows.h> #include <errno.h> #include <fcntl.h> #include <io.h> #include <process.h> +#include <direct.h> #ifdef _ #warning "FIXME remove gettext hack" diff --git a/glib/gwin32.h b/glib/gwin32.h new file mode 100644 index 000000000..6a6dde47d --- /dev/null +++ b/glib/gwin32.h @@ -0,0 +1,117 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_WIN32_H__ +#define __G_WIN32_H__ + +#include <gtypes.h> + +#ifdef G_OS_WIN32 + +/* Windows emulation stubs for common Unix functions + */ + +G_BEGIN_DECLS + +#define MAXPATHLEN 1024 + +#ifdef _MSC_VER +typedef int pid_t; +#endif + +/* + * To get prototypes for the following POSIXish functions, you have to + * include the indicated non-POSIX headers. The functions are defined + * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). + * + * getcwd: <direct.h> (MSVC), <io.h> (mingw32) + * getpid: <process.h> + * access: <io.h> + * unlink: <stdio.h> or <io.h> + * open, read, write, lseek, close: <io.h> + * rmdir: <direct.h> + * pipe: <direct.h> + */ + +/* pipe is not in OLDNAMES.LIB or -lmoldname-msvc. */ +#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY) + +/* For some POSIX functions that are not provided by the MS runtime, + * we provide emulators in glib, which are prefixed with g_win32_. + */ +# define ftruncate(fd, size) g_win32_ftruncate (fd, size) + +/* -lmingw32 also has emulations for these, but we need our own + * for MSVC anyhow, so we might aswell use them always. + */ +# define opendir g_win32_opendir +# define readdir g_win32_readdir +# define rewinddir g_win32_rewinddir +# define closedir g_win32_closedir +# define NAME_MAX 255 + +struct dirent +{ + gchar d_name[NAME_MAX + 1]; +}; + +struct DIR +{ + gchar *dir_name; + gboolean just_opened; + guint find_file_handle; + gpointer find_file_data; + struct dirent readdir_result; +}; +typedef struct DIR DIR; + +/* emulation functions */ +extern int g_win32_ftruncate (gint f, + guint size); +DIR* g_win32_opendir (const gchar *dirname); +struct dirent* g_win32_readdir (DIR *dir); +void g_win32_rewinddir (DIR *dir); +gint g_win32_closedir (DIR *dir); + +/* The MS setlocale uses locale names of the form "English_United + * States.1252" etc. We want the Unixish standard form "en", "zh_TW" + * etc. This function gets the current thread locale from Windows and + * returns it as a string of the above form for use in forming file + * names etc. The returned string should be deallocated with g_free(). + */ +gchar * g_win32_getlocale (void); + +/* Translate a Win32 error code (as returned by GetLastError()) into + * the corresponding message. The returned string should be deallocated + * with g_free(). + */ +gchar * g_win32_error_message (gint error); + +G_END_DECLS + +#endif /* G_OS_WIN32 */ + +#endif /* __G_IOCHANNEL_H__ */ diff --git a/glib/makefile.mingw.in b/glib/makefile.mingw.in index 918cf7db9..7939dc5d8 100644 --- a/glib/makefile.mingw.in +++ b/glib/makefile.mingw.in @@ -97,7 +97,7 @@ glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def ./build-dll glib $(GLIB_VER) glib.def $(glib_OBJECTS) $(LIBICONV_LIBS) -luser32 -lwsock32 gspawn-win32-helper.exe : gspawn-win32.c - $(CC) $(CFLAGS) -mwindows -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" -o $@ $< -L . -lglib-$(GLIB_VER) + $(CC) $(CFLAGS) -mwindows -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" -o $@ $< -L . -lglib-$(GLIB_VER) ################ subdirectories diff --git a/glib/makefile.msc.in b/glib/makefile.msc.in index c64cabd0a..7db5737ab 100644 --- a/glib/makefile.msc.in +++ b/glib/makefile.msc.in @@ -94,7 +94,7 @@ glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def $(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) $(LIBICONV_LIBS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def gspawn-win32-helper.exe : gspawn-win32.c glib-$(GLIB_VER).dll - $(CC) $(CFLAGS) -Fe$@ -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32.c glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:windows + $(CC) $(CFLAGS) -Fe$@ -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32.c glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:windows user32.lib ################ subdirectories diff --git a/gspawn-win32.c b/gspawn-win32.c index 11779daff..c1bb2222d 100644 --- a/gspawn-win32.c +++ b/gspawn-win32.c @@ -44,12 +44,14 @@ #include <string.h> #include <stdlib.h> +#include <stdio.h> #include <windows.h> #include <errno.h> #include <fcntl.h> #include <io.h> #include <process.h> +#include <direct.h> #ifdef _ #warning "FIXME remove gettext hack" diff --git a/gwin32.h b/gwin32.h new file mode 100644 index 000000000..6a6dde47d --- /dev/null +++ b/gwin32.h @@ -0,0 +1,117 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_WIN32_H__ +#define __G_WIN32_H__ + +#include <gtypes.h> + +#ifdef G_OS_WIN32 + +/* Windows emulation stubs for common Unix functions + */ + +G_BEGIN_DECLS + +#define MAXPATHLEN 1024 + +#ifdef _MSC_VER +typedef int pid_t; +#endif + +/* + * To get prototypes for the following POSIXish functions, you have to + * include the indicated non-POSIX headers. The functions are defined + * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). + * + * getcwd: <direct.h> (MSVC), <io.h> (mingw32) + * getpid: <process.h> + * access: <io.h> + * unlink: <stdio.h> or <io.h> + * open, read, write, lseek, close: <io.h> + * rmdir: <direct.h> + * pipe: <direct.h> + */ + +/* pipe is not in OLDNAMES.LIB or -lmoldname-msvc. */ +#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY) + +/* For some POSIX functions that are not provided by the MS runtime, + * we provide emulators in glib, which are prefixed with g_win32_. + */ +# define ftruncate(fd, size) g_win32_ftruncate (fd, size) + +/* -lmingw32 also has emulations for these, but we need our own + * for MSVC anyhow, so we might aswell use them always. + */ +# define opendir g_win32_opendir +# define readdir g_win32_readdir +# define rewinddir g_win32_rewinddir +# define closedir g_win32_closedir +# define NAME_MAX 255 + +struct dirent +{ + gchar d_name[NAME_MAX + 1]; +}; + +struct DIR +{ + gchar *dir_name; + gboolean just_opened; + guint find_file_handle; + gpointer find_file_data; + struct dirent readdir_result; +}; +typedef struct DIR DIR; + +/* emulation functions */ +extern int g_win32_ftruncate (gint f, + guint size); +DIR* g_win32_opendir (const gchar *dirname); +struct dirent* g_win32_readdir (DIR *dir); +void g_win32_rewinddir (DIR *dir); +gint g_win32_closedir (DIR *dir); + +/* The MS setlocale uses locale names of the form "English_United + * States.1252" etc. We want the Unixish standard form "en", "zh_TW" + * etc. This function gets the current thread locale from Windows and + * returns it as a string of the above form for use in forming file + * names etc. The returned string should be deallocated with g_free(). + */ +gchar * g_win32_getlocale (void); + +/* Translate a Win32 error code (as returned by GetLastError()) into + * the corresponding message. The returned string should be deallocated + * with g_free(). + */ +gchar * g_win32_error_message (gint error); + +G_END_DECLS + +#endif /* G_OS_WIN32 */ + +#endif /* __G_IOCHANNEL_H__ */ diff --git a/makefile.mingw.in b/makefile.mingw.in index 918cf7db9..7939dc5d8 100644 --- a/makefile.mingw.in +++ b/makefile.mingw.in @@ -97,7 +97,7 @@ glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def ./build-dll glib $(GLIB_VER) glib.def $(glib_OBJECTS) $(LIBICONV_LIBS) -luser32 -lwsock32 gspawn-win32-helper.exe : gspawn-win32.c - $(CC) $(CFLAGS) -mwindows -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" -o $@ $< -L . -lglib-$(GLIB_VER) + $(CC) $(CFLAGS) -mwindows -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" -o $@ $< -L . -lglib-$(GLIB_VER) ################ subdirectories diff --git a/makefile.msc.in b/makefile.msc.in index c64cabd0a..7db5737ab 100644 --- a/makefile.msc.in +++ b/makefile.msc.in @@ -94,7 +94,7 @@ glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def $(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) $(LIBICONV_LIBS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def gspawn-win32-helper.exe : gspawn-win32.c glib-$(GLIB_VER).dll - $(CC) $(CFLAGS) -Fe$@ -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32.c glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:windows + $(CC) $(CFLAGS) -Fe$@ -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32.c glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:windows user32.lib ################ subdirectories |