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 /gwin32.h | |
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.
Diffstat (limited to 'gwin32.h')
-rw-r--r-- | gwin32.h | 117 |
1 files changed, 117 insertions, 0 deletions
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__ */ |