X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fgwin32.h;h=b466b63e6801873d0351766890dce05e438e78c2;hb=d0083f7e2dd621c6b78496bdb6ecf5d580c5e110;hp=b30ab15874c073500d03b1c8e57c62a6b2263e05;hpb=69dbd6eb03a0abe5d0f889c670a467e74e256ef7;p=platform%2Fupstream%2Fglib.git diff --git a/glib/gwin32.h b/glib/gwin32.h index b30ab15..b466b63 100644 --- a/glib/gwin32.h +++ b/glib/gwin32.h @@ -12,89 +12,61 @@ * 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. + * License along with this library; if not, see . */ /* * 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/. + * GLib at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef __G_WIN32_H__ #define __G_WIN32_H__ -#include +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif -#ifdef G_OS_WIN32 +#include -/* Windows emulation stubs for common Unix functions - */ +#ifdef G_PLATFORM_WIN32 G_BEGIN_DECLS +#ifndef MAXPATHLEN #define MAXPATHLEN 1024 - -#ifdef _MSC_VER -typedef int pid_t; #endif +#ifdef G_OS_WIN32 + /* * 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). + * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). But note that + * for POSIX functions that take or return file names in the system + * codepage, in many cases you would want to use the GLib wrappers in + * gstdio.h and UTF-8 instead. * * getcwd: (MSVC), (mingw32) * getpid: * access: * unlink: or * open, read, write, lseek, close: - * rmdir: - * pipe: + * rmdir: + * pipe: (actually, _pipe()) */ -/* 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. + * we provide emulation functions in glib, which are prefixed with + * g_win32_. Or that was the idea at some time, but there is just one + * of those: */ -# 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, +GLIB_AVAILABLE_IN_ALL +gint 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); +#endif /* G_OS_WIN32 */ /* The MS setlocale uses locale names of the form "English_United * States.1252" etc. We want the Unixish standard form "en", "zh_TW" @@ -102,23 +74,61 @@ gint g_win32_closedir (DIR *dir); * 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); +GLIB_AVAILABLE_IN_ALL +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); +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_error_message (gint error); + +#ifndef _WIN64 +GLIB_DEPRECATED +gchar* g_win32_get_package_installation_directory (const gchar *package, + const gchar *dll_name); + +GLIB_DEPRECATED +gchar* g_win32_get_package_installation_subdirectory (const gchar *package, + const gchar *dll_name, + const gchar *subdir); +#endif + +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_get_package_installation_directory_of_module (gpointer hmodule); + +GLIB_AVAILABLE_IN_ALL +guint g_win32_get_windows_version (void); -gchar * g_win32_get_package_installation_directory (gchar *package, - gchar *dll_name); +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename); -gchar * g_win32_get_package_installation_subdirectory (gchar *package, - gchar *dll_name, - gchar *subdir); +GLIB_AVAILABLE_IN_2_40 +gchar ** g_win32_get_command_line (void); + +/* As of GLib 2.14 we only support NT-based Windows */ +#define G_WIN32_IS_NT_BASED() TRUE +#define G_WIN32_HAVE_WIDECHAR_API() TRUE G_END_DECLS -#endif /* G_OS_WIN32 */ +#endif /* G_PLATFORM_WIN32 */ + +#ifdef G_OS_WIN32 +#ifdef _WIN64 +#define g_win32_get_package_installation_directory g_win32_get_package_installation_directory_utf8 +#define g_win32_get_package_installation_subdirectory g_win32_get_package_installation_subdirectory_utf8 +#endif + +GLIB_AVAILABLE_IN_ALL +gchar *g_win32_get_package_installation_directory_utf8 (const gchar *package, + const gchar *dll_name); +GLIB_AVAILABLE_IN_ALL +gchar *g_win32_get_package_installation_subdirectory_utf8 (const gchar *package, + const gchar *dll_name, + const gchar *subdir); + +#endif /* G_OS_WIN32 */ #endif /* __G_WIN32_H__ */