summaryrefslogtreecommitdiff
path: root/gmodule/gmodule-win32.c
Commit message (Collapse)AuthorAgeFilesLines
* Updated FSF's addressDaniel Mustieles2014-01-311-3/+1
|
* Use 'dumb quotes' rather than `really dumb quotes'Dan Winship2013-05-211-1/+1
| | | | | | | | | | | | | | | | | | Back in the far-off twentieth century, it was normal on unix workstations for U+0060 GRAVE ACCENT to be drawn as "‛" and for U+0027 APOSTROPHE to be drawn as "’". This led to the convention of using them as poor-man's ‛smart quotes’ in ASCII-only text. However, "'" is now universally drawn as a vertical line, and "`" at a 45-degree angle, making them an `odd couple' when used together. Unfortunately, there are lots of very old strings in glib, and also lots of new strings in which people have kept up the old tradition, perhaps entirely unaware that it used to not look stupid. Fix this by just using 'dumb quotes' everywhere. https://bugzilla.gnome.org/show_bug.cgi?id=700746
* Recuce DLL hijack risk on WindowsTor Lillqvist2010-09-021-78/+4
| | | | | | | | | | | | | | | | Don't call LoadLibrary() on shell32.dll or kernel32.dll. kernel32.dll is always loaded. Shell32.dll is also already loaded as glib links to functions in it. So just call GetModuleHandle() on them. For mlang.dll in win_iconv.c and winhttp.dll in gwinhttpvfs.c, always try loading them from a complete path, from the Windows system directory. Use the "tool help" API to enumerate modules in gmodule-win32.c. It is present in all Windows versions since Windows 2000, which is all we support anyway. Thus no need to look that API up dynamically. Just link to it normally. We can bin the fallback code that attempts to use the psapi API.
* Improve error reporting: When g_module_open() fails, include the name ofTor Lillqvist2008-09-261-6/+20
| | | | | | | | | | | 2008-09-26 Tor Lillqvist <tml@novell.com> * gmodule-win32.c: Improve error reporting: When g_module_open() fails, include the name of the module passed to LoadLibrary() in what g_module_error() returns. svn path=/trunk/; revision=7543
* Make header include order consistent (#71704, Diego Escalante Urrelo)Matthias Clasen2007-11-081-0/+1
| | | | | | | | | | 2007-11-07 Matthias Clasen <mclasen@redhat.com> * *.c: Make header include order consistent (#71704, Diego Escalante Urrelo) svn path=/trunk/; revision=5817
* Remove support for Windows 9x/ME, as will be done also in Pango and GTK+.Tor Lillqvist2006-08-291-13/+4
| | | | | | | | | | | | | | | | | | | | | | | | | 2006-08-29 Tor Lillqvist <tml@novell.com> Remove support for Windows 9x/ME, as will be done also in Pango and GTK+. GTK+ hasn't worked on Win9x since 2.6 or 2.8 anyway, so it's pretty pointless to keep the Win9x code in here either. If somebody is interested, the code can always be found in older GLib versions, and in CVS. * glib/gdir.c * glib/gfileutils.c * glib/gspawn-win32-helper.c * glib/gspawn-win32.c * glib/gstdio.c * glib/gutils.c * glib/gwin32.c * glib/gwin32.h: Remove the G_WIN32_IS_NT_BASED() and G_WIN32_HAVE_WIDECHAR_API() tests and their false (Win9x) branches, and any variables or static functions used only by the Win9x branches. * glib/gwin32.c (g_win32_windows_version_init): Call g_error() if run on Win9x.
* Argument is in UTF-8. Use wide character Win32 API if present.Tor Lillqvist2004-11-041-1/+14
| | | | | | | | | | | | 2004-11-04 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c (_g_module_open): Argument is in UTF-8. Use wide character Win32 API if present. * gmodule.c (parse_libtool_archive, g_module_open): Convert file name to UTF-8 before storing in the error message string. * gmodule.c (parse_libtool_archive): Use g_open().
* On Cygwin, use the "cyg" prefix, and accept also the normal "lib".Tor Lillqvist2004-03-311-0/+14
| | | | | | | 2004-03-31 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c (_g_module_build_path): On Cygwin, use the "cyg" prefix, and accept also the normal "lib". (#138403, Roger Leigh)
* applied patch from David Schleef <ds@schleef.org> which implements aTim Janik2004-02-201-1/+2
| | | | | | | | Fri Feb 20 02:39:03 2004 Tim Janik <timj@gtk.org> * applied patch from David Schleef <ds@schleef.org> which implements a G_MODULE_BIND_LOCAL flag to g_module_open() to disable global symbol registration.
* Use g_ascii_strcasecmp().Tor Lillqvist2003-01-041-2/+2
| | | | | | 2003-01-01 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c (_g_module_build_path): Use g_ascii_strcasecmp().
* */.cvsignore: Add various Win32 related file types.Tor Lillqvist2001-11-241-26/+0
| | | | | | | | | | | | | | | | | 2001-11-24 Tor Lillqvist <tml@iki.fi> */.cvsignore: Add various Win32 related file types. gmodule: 2001-11-24 Tor Lillqvist <tml@iki.fi> * Makefile.am: Remove rule for testgmodule.exp, too. 2001-11-22 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c: Current w32api headers do include tlhelp32.h, so no need to have an extract from it here.
* More Unix compatibility: Add "lib" prefix in case the module name doesn'tTor Lillqvist2001-10-091-3/+8
| | | | | | | | | | | 2001-10-09 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c (_g_module_build_path): More Unix compatibility: Add "lib" prefix in case the module name doesn't already have it, except if it ends with ".dll" (in which case it probably already is the name of an existing DLL). This is needed for instance for the gdk-pixbuf loaders, which are called "lib*.dll", but gdk-pixbuf-io calls g_module_build_path without the "lib" prefix.
* From Edward M. Lee <tailbert@yahoo.com>:Tor Lillqvist2001-03-141-2/+2
| | | | | | | | | | | | | | | | 2001-03-13 Tor Lillqvist <tml@iki.fi> From Edward M. Lee <tailbert@yahoo.com>: * gdate.c (g_date_set_parse): add support for dates that in the form "Wed Mar 14 2001". Running testgdate on cygwin requires this. 2001-03-13 Tor Lillqvist <tml@iki.fi> From Edward M. Lee <tailbert@yahoo.com>: * gmodule-win32.c (_g_module_build_path): use (cygwin friendly) dir separator.
* Use G_BEGIN_DECLS and G_END_DECLS. Define G_MODULE_EXPORT correctly onTor Lillqvist2001-03-091-0/+10
| | | | | | | | | | | | | | 2001-02-21 Tor Lillqvist <tml@iki.fi> * gmodule.h: Use G_BEGIN_DECLS and G_END_DECLS. Define G_MODULE_EXPORT correctly on Cygwin, too. * gmodule-win32.c (_g_module_open): Convert path to Windows format on Cygwin. * Makefile.am (libglib): Use libglib-1.3.la from top_builddir. Invoke libtool with -no-undefined for Win32 and Cygwin.
* applied patch from Andreas Persenius <ndap@swipnet.se> that updates theTim Janik2000-07-261-4/+4
| | | | | | | | Wed Jul 26 12:59:31 2000 Tim Janik <timj@gtk.org> * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that updates the license headers to the GNU Lesser General Public License, as well as updating the copyright year to 2000.
* Don't #include <tlhelp32.h> when compiling with gcc, as it isn't provided.Tor Lillqvist2000-07-181-2/+29
| | | | | | | | 2000-07-19 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c: Don't #include <tlhelp32.h> when compiling with gcc, as it isn't provided. Declaration of a needed struct (from www.microsoft.com) inserted instead.
* Add new functions. Add new object files. Add threadpool-test. No need toTor Lillqvist2000-05-011-1/+0
| | | | | | | | | 2000-05-02 Tor Lillqvist <tml@iki.fi> * glib.def: Add new functions. * makefile.{cygwin,msc}.in (glib_OBJECTS): Add new object files. * tests/makefile.{cygwin,msc}.in: Add threadpool-test. * gmodule-win32.c: No need to include <psapi.h>
* In the "null" module case _g_module_symbol should still first search the mainTor Lillqvist2000-03-221-1/+4
| | | | program before searching all the loaded DLLs.
* When looking for symbols in the "main" module we must search both the mainTor Lillqvist2000-03-221-10/+125
| | | | | | | | | | | | | | | | | | 2000-03-23 Tor Lillqvist <tml@iki.fi> * gmodule-win32.c (_g_module_symbol): When looking for symbols in the "main" module we must search both the main program and all currently loaded DLLs. Not only the main program, or even just the DLLs loaded as gmodules. Libglade requires this. Thus we need to get a list of all modules in the current process. There are two alternative APIs to do this: PSAPI and Toolhelp. The former is only available on NT (including Win2k), the latter on Win9x and Win2k. Check which one works, and use that. Code for using PSAPI and Toolhelp was borrowed from the Dr. Mingw tool written by José Fonseca <em96115@fe.up.pt>. Thanks.
* New function that returns the message string for a Win32 error code.Tor Lillqvist2000-03-011-25/+14
| | | | | | | | | | | | | | | | | | | | | | | | 2000-03-04 Tor Lillqvist <tml@iki.fi> * gwin32.c (g_win32_error_message): New function that returns the message string for a Win32 error code. * glib.h: Declare it. * glib.def: Export it, plus g_node_copy. * gmodule-win32.c: Call g_win32_error_message() to get the error message strings. * libgplugin_a.c * libgplugin_b.c * gmodule.c: Remove LibMain functions that were needed by LCC, which is not a supported compiler. * testgmodule.c (main): Test for G_MODULE_IMPL == G_MODULE_IMPL_WIN32, not G_OS_WIN32. * gmoduleconf.h.win32: Remove LCC stuff from here, too.
* do not return NULL symbols.Tim Janik2000-03-011-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | Wed Mar 1 05:34:47 2000 Tim Janik <timj@gtk.org> * gmodule-beos.c (_g_module_symbol): do not return NULL symbols. * gmodule-os2.c: removed NetBSD specific defines. (_g_module_self): set an error message for unsupported behaviour. * gmodule-beos.c: many coding style fixups. (_g_module_open): (_g_module_self): (_g_module_close): (_g_module_symbol): bunch of memory leaks plugged. * gmodule-dl.c: make sure the error message returned from dlerror() is always != NULL, by using a wrapper function fetch_dlerror(). based on a patch to fix _g_module_symbol() for NetBSD from Scott Presnell <srp@zgi.com>. * gmodule-dld.c: minor indentation. * gmodule-win32.c: minor cleanups. * merges from glib-1-2.
* Use FormatMessage to translate system error codes into textual messages.Tor Lillqvist1999-12-161-4/+8
| | | | | | | 1999-12-16 Tor Lillqvist <tml@iki.fi> * gmodule/gmodule-win32.c: Use FormatMessage to translate system error codes into textual messages.
* inserted additional note to look for ChangeLog and AUTHORS file for a logCST 1999 Shawn T. Amundson1999-02-241-0/+7
| | | | | | | Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org> * *.[ch]: inserted additional note to look for ChangeLog and AUTHORS file for a log of modifications.
* Merge in current Win32 version. Almost no Unix code touched.Tor Lillqvist1999-01-161-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * README.win32: More text. * config.h.win32 glibconfig.h.win32: Update to match the corresponding generated files on Unix. * makefile.msc: Update with new source files, and gthread library. Use the compiler flag -MD instead of using -D_DLL and "/nodefaultlib:libc msvcrt.lib" in the link phase. * glib.def: Include new functions, drop removed ones. * glib.h: Add comments about main loop and polling on Win32. (In general, it's only for the GIMP's use.) Add Win32 IO Channel functions. Remove the obsoleted old IO Channel stuff (which was in #if 0 already). * giowin32.c: New file. * gmain.c: Include config.h, conditionalize <sys/time.h> inclusion. Add g_poll implementation for Win32 (only for the GIMP's needs for now, it's hard or even impossible to be as clean and generic as on Unix). Implement g_get_current_time on Win32. If threads aren't supported, don't try to wake up main thread's loop. On Win32, use a semaphore and not a pipe to wake up the main loop. * gmessages.c: On Win32, allocate a console window if the standard output handle is invalid before writing to stdout, and reopen stdout to that console window. * giochannel.c: Conditionalize unistd.h inclusion. Some indentation cleanup. * gstrfuncs.c: Include <signal.h>. * gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH environment variables. * gmodule-dl.c gmodule-dld.c: In _g_module_build_path, don't add the "lib" prefix and ".so" or ".sl" suffix if already there. * gmodule-win32.c: Likewise for the ".dll" suffix. * gthread-posix.c: Conditionalize <sys/time.h> inclusion.
* This commit merges the glib-threads branch into the mainOwen Taylor1998-12-151-0/+5
| | | | | | | | | | | branch. See the ChangeLog for details of the changes. In brief overview: - The set of threading functions can be set - A default implementation is provided in -lgthread - All static data structures are locked using these functions if g_thread_init() is called.
* removed dummy structure definitions for struct _GCache, _GTree, _GTimer,Tor Lillqvist1998-10-271-0/+93
Tue Oct 27 03:00:50 1998 Tim Janik <timj@gtk.org> * glib.h: removed dummy structure definitions for struct _GCache, _GTree, _GTimer, _GMemChunk, _GListAllocator and _GStringChunk. * gutils.c: implement glib's inline functions _after_ all include statements have been processed. removed Tor's MAXPATHLEN check since there already was one supplied further down in this file. (LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32, since lcc maybe used on other platforms as well. why in hell is this stuff required? (g_get_any_init): for windows, if the user name is supplied, use it as realname also. in general, if there is no homedir specified, use the tmpdir that we already figured. * gtimer.c (g_timer_elapsed): changed a g_assert() statement to g_return_if_fail(). * applied glib-tml-981020-0.patch for WIN32 portability, added some comments and g_return_if_fail() statements, minor indentation fixes. ChangeLog entry from Tor Lillqvist is appended. * glib.h (struct dirent): use lower case structure members. * glib.h: * makefile.lcc: * makefile.msc: s/COMPILING_GLIB/GLIB_COMPILATION/ 1998-10-20: Tor Lillqvist <tml@iki.fi> * README.win32 glib.def gmodule.def * glibconfig.h.win32 gmodule/gmoduleconf.h.win32: New files for the Windows port. The .def files list exported symbols for the Microsoft linker and compatibles. * configure.in: Added checks for some platform-dependent headers: pwd.h sys/param.h sys/select.h sys/time.h sys/times.h unistd.h, and the function lstat. * gerror.c: Conditionalized inclusion of system-dependent headers. Changes for Windows: no gdb to do a stack trace. Just call abort(). * glib.h: Changes for Windows: Added macros G_DIR_SEPARATOR, G_DIR_SEPARATOR_S for platform-dependent file name syntax elements. Added macros G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S for platform-dependent search path syntax conventions. Added pragmas for Microsoft C to make it more pedantic. Marked GLib's global variables for export from DLL. Added the function g_strescape that escapes backslashes. Added functions g_path_is_absolute and g_path_skip_root to handle platform-dependent file name syntax. Added the function g_getenv that expands environment variables that contain references to other environment variables, as is typical on Windows NT. Added the GIOChannel structure which is used to encapsulate the IPC mechanism used by the GIMP's plug-ins, and possibly other things later. On Unix a GIOChannel encapsulates just a file descriptor. On Windows it contains a file handle from _pipe() and a few other things related to the implementation of gdk_input_add and GIMP plug-in communication. Subject to change. Removed duplicate declarations of the version variables. For the Microsoft compiler, declare own implementation of ftruncate and the <dirent.h> functions. * gmem.c: Define a symbolic name for the profiling table size. * gmessages.c: Conditionalized inclusion of unistd.h. On Windows, output using stdio to stdout. * gscanner.c: Conditionalized inclusion of unistd.h. Added changes for Microsoft C. Added CR to the skipped character set. Added small workaround for MSC compiler bug in g_scanner_cur_value. * gstrfuncs.c: Added the function g_strescape, which escapes the backslash character. Needed especially when printing Windows filenames. * gtimer.c: Conditionalized inclusion of unistd.h and sys/time.h. Added implementations for Windows. * gutils.c: Conditionalized inclusion of platform-dependent headers. Use the platform-independent file name syntax macros. Conditionalize code on platform-dependent features. Added the functions g_path_is_absolute g_path_skip_root and g_getenv. Added the GIOChannel-related functions. Added compiler-dependent Unix compatibility functions for Windows. * makefile.lcc makefile.msc: New files. Compiler-specific makefiles for LCC-Win32 and Microsoft C. Only Microsoft C is actually supported currently. * testglib.c: Added pathname check cases for Windows. Added workaround for bug in the Microsoft runtime library. Improved some tests a bit. Tue Oct 27 04:00:11 1998 Tim Janik <timj@gtk.org> * testgmodule.c (main): changed the #ifdef WIN32 test to NATIVE_WIN32, this needs to be more constistent throughout the code, do we go for NATIVE_WIN32 or WIN32? * gmodule.c (LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32, since lcc maybe used on other platforms as well. * libgplugin_a.c (LibMain): * libgplugin_b.c (LibMain): likewise. not sure i like this special requirement for lcc in here. * gmodule-dl.c (_g_module_build_path): feature empty "" directories and prepend the module name with "lib". * gmodule-dld.c (_g_module_build_path): * gmodule-win32.c (_g_module_build_path): feature empty "" directories. * we need some more magic in the _g_module_build_path variants so we don't append/prepend lib and .so, .sl or .dll for those names that already contain it. * applied patch from Tor Lillqvist for g_module_build_path() and windows support. 1998-10-20: Tor Lillqvist <tml@iki.fi> * gmodule/gmodule-win32.c: New file. * gmodule/gmodule.c gmodule/gmodule.h: Added the funcion g_module_build_path that builds the path to a module file, decorating the name according to the system's conventions. Added the Windows implementation. * gmodule/libgplugin_a.c gmodule/libgplugin_b.c: Added LibMain for LCC-Win32. * gmodule/testgmodule.c: Handle Windows dll names.