Commit Graph

106 Commits

Author SHA1 Message Date
Matthias Clasen
5d8a5657c5 Include glibconfig.h before checking G_OS_WIN32.
2007-11-08  Matthias Clasen <mclasen@redhat.com>

        * gmodule.c: Include glibconfig.h before checking G_OS_WIN32.



svn path=/trunk/; revision=5832
2007-11-09 02:33:16 +00:00
Matthias Clasen
9757456e23 Make header include order consistent (#71704, Diego Escalante Urrelo)
2007-11-07  Matthias Clasen <mclasen@redhat.com>

        * *.c: Make header include order consistent (#71704,
        Diego Escalante Urrelo)


svn path=/trunk/; revision=5817
2007-11-08 03:43:46 +00:00
Matthias Clasen
964471d184 Include the module file name to the error message given when module
2007-07-09  Matthias Clasen  <mclasen@redhat.com>

        * gmodule.c (g_module_open): Include the module file
        name to the error message given when module initialization
        fails.  (#448484, Gustavo Carneiro)


svn path=/trunk/; revision=5611
2007-07-09 17:50:28 +00:00
Matthias Clasen
2c79668714 fix include order
svn path=/trunk/; revision=5182
2006-12-31 15:53:44 +00:00
Matthias Clasen
08e5183b36 Clean up includes.
2006-12-28  Matthias Clasen  <mclasen@redhat.com>

        * gmodule.c: Clean up includes.
2006-12-28 05:02:30 +00:00
Matthias Clasen
ea1512221b Handle valid symbols that are NULL correctly. (#385388, Felix Kater)
2006-12-13  Matthias Clasen  <mclasen@redhat.com>

        * gmodule.c (g_module_open):
        * gmodule-dl.c (_g_module_symbol): Handle valid symbols
        that are NULL correctly.  (#385388, Felix Kater)
2006-12-13 15:41:22 +00:00
Tim Janik
5c16431446 applied patch from Christian Persch to support G_DEBUG flags
Mon Sep 11 14:58:56 2006  Tim Janik  <timj@imendio.com>

        * gmodule.c: applied patch from Christian Persch to support
        G_DEBUG flags resident-modules and bind-now-modules, bug #345099.
2006-09-11 13:11:15 +00:00
Matthias Clasen
0f1e8fb313 Silence compiler warnings.
2005-11-28  Matthias Clasen  <mclasen@redhat.com>

	* gmodule.c (parse_libtool_archive): Silence
	compiler warnings.
2005-11-28 18:34:16 +00:00
Tor Lillqvist
a8cf492b2c It's wrong to call g_file_test() with more than one test (both
2004-12-31  Tor Lillqvist  <tml@iki.fi>

	* gmodule.c (g_module_open): It's wrong to call g_file_test() with
	more than one test (both G_FILE_TEST_EXISTS and _IS_REGULAR). (It
	would succeed even if the pathname existed as a nonregular file.)
	Just G_FILE_TEST_IS_REGULAR works fine. (#162594)
2005-01-02 16:03:56 +00:00
Tor Lillqvist
cff51f1f0b Makefile.am gmodule.def Win32 DLL ABI stability cruft like in ../glib.
2004-12-06  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am
	* gmodule.def
	* gmodule.[hc]: Win32 DLL ABI stability cruft like in ../glib.
2004-12-06 15:45:25 +00:00
Tor Lillqvist
f5de060304 Argument is in UTF-8. Use wide character Win32 API if present.
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().
2004-11-04 00:20:27 +00:00
Matthias Clasen
1c49b23e91 Set the gmodule suffix to 'a' for aix and use the aix gmodule
Sun Feb 22 02:28:43 2004  Matthias Clasen  <maclas@gmx.de>

	* configure.in: Set the gmodule suffix to 'a' for aix and
	use the aix gmodule implementation.  (#85930, Laurent Vivier)

	Bug #85930, Laurent Vivier:

	* gmodule-ar.c: Implementation of native module management for AIX.
	* gmoduleconf.h.in:
	* gmodule.c: Support gmodule-ar.c
2004-02-22 01:31:24 +00:00
Tim Janik
defca980e4 applied patch from David Schleef <ds@schleef.org> which implements a
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.
2004-02-20 01:41:00 +00:00
Owen Taylor
faa29f03ed Properly refcount the main module if it is already open. (#98648)
Tue Dec  3 20:56:19 2002  Owen Taylor  <otaylor@redhat.com>

        * gmodule.c (g_module_open): Properly refcount the
        main module if it is already open. (#98648)
2002-12-04 02:01:27 +00:00
Owen Taylor
92e45a4009 Fix typo when checking if file + module_suffix exists. (Miroslaw
Sun Feb 17 18:15:22 2002  Owen Taylor  <otaylor@redhat.com>

        * gmodule.c (g_module_open): Fix typo when checking
        if file + module_suffix exists. (Miroslaw Dobrzanski-Neumann,
        #71801)
2002-02-17 23:17:52 +00:00
Michael Meeks
e3750c7c90 fix leak.
2001-11-16  Michael Meeks  <michael@ximian.com>

	* gmodule.c (parse_libtool_archive): fix leak.
2001-11-18 22:26:39 +00:00
Sebastian Wilhelmi
a3ad2d5774 build the library name ourselfs ... so we can load the library specified
2001-07-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gmodule/gmodule.c (parse_libtool_archive): build the library
	name ourselfs ... so we can load the library specified and not
	mangle any name not beggining in 'lib'. Patch from Michael Meeks
	<michael@ximian.com>.
2001-07-30 08:52:20 +00:00
Darin Adler
624a3c9689 Add some generated files.
* .cvsignore: Add some generated files.

        * glib/gmain.c: (g_main_context_iterate): Comment out cruft
        after #endif to avoid gcc warning.
        * gmodule/gmodule.c: (g_module_set_error_unduped): Remove
        const from type to avoid gcc warning.
        * gobject/gsignal.c: (g_signal_emitv): ifdef variable used
        only if G_ENABLE_DEBUG to avoid gcc warning.
        * gobject/gtype.c: (type_iface_vtable_init_Wm),
        (type_iface_vtable_finalize_Wm): ifdef call needed only
        if !G_DISABLE_ASSERT to avoid gcc warning.
        * tests/testglib.c: (main): ifdef call needed only if
        !G_DISABLE_ASSERT to avoid gcc warning. Maybe later we
        should make the test to #undef G_DISABLE_ASSERT.
        * tests/unicode-collate.c: Add include of <string.h> to
        avoid gcc warning.
2001-07-11 20:08:50 +00:00
Owen Taylor
f5c28ce4ab Changes for 64-bit cleanliness, loosely based on patch from Mark Murnane.
Wed Jun 20 12:00:54 2001  Owen Taylor  <otaylor@redhat.com>

        Changes for 64-bit cleanliness, loosely based on patch
	from Mark Murnane.

	* gconvert.c (g_convert/g_convert_with_fallback): Remove
	workarounds for since-fixed GNU libc bugs. Minor
	doc fix.

	* gconvert.[ch]: Change gint to gsize/gssize as
	appropriate.

	* gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
	computation of bytes_read / bytes_written.

	* gfileutils.[ch] (g_file_get_contents): Make length
	out parameter 'gsize *len'.

	* ghook.c (g_hook_compare_ids): Don't compare a
	and b as 'a - b'.

	* gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
	GSIZE_TO_POINTER.

	* gmain.c (g_timeout_prepare): Rewrite to avoid
	overflows. (Fixes bug when system clock skews
	backwards more than 24 days.)

	* gmarkup.[ch]: Make lengths passed to callbacks
	gsize, length for g_markup_parse-context_parse(),
	g_markup_escape_text() gssize.

	* gmessages.[ch] (g_printf_string_upper_bound): Change
	return value to gsize.

	* gmessages.c (printf_string_upper_bound): Remove
	a ridiculous use of 'inline' on a 300 line function.

	* gstring.[ch]: Represent size of string as a gsize,
	not gint. Make parameters to functions take gsize,
	or gssize where -1 is allowed.

	* gstring.c (g_string_erase): Make
	g_string_erase (string, pos, -1) a synonym for
	g_string_truncate for consistency with other G*
	APIs.

	* gstrfuncs.[ch]: Make all functions taking a string
	length, take a gsize, or gssize if -1 is allowed.
	(g_strstr_len, g_strrstr_len). Also fix some boundary
	conditions in g_str[r]str[_len].

	* gutf8.c tests/unicode-encoding.c: Make parameters that
	are byte lengths gsize, gssize as appropriate. Make
	character offsets, other counts, glong.

	* gasyncqueue.c gcompletion.c
          timeloop.c timeloop-basic.c gutils.c gspawn.c.
	Small 64 bit cleanliness fixups.

	* glist.c (g_list_sort2, g_list_sort_real): Fix functions
	that should have been static.

	* gdate.c (g_date_fill_parse_tokens): Fix extra
	declaration that was shadowing another.

	* tests/module-test.c: Include string.h

Mon Jun 18 15:43:29 2001  Owen Taylor  <otaylor@redhat.com>

	* gutf8.c (g_get_charset): Make argument
	G_CONST_RETURN char **.
2001-06-23 13:55:09 +00:00
Sebastian Wilhelmi
2fd34ae182 Do not g_strdup, as promised in the function name.
2001-05-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gmodule.c (g_module_set_error_unduped): Do not g_strdup, as
	promised in the function name.
2001-05-29 13:48:18 +00:00
Tim Janik
ba1c852a68 erk, strconcat needs NULL as last arg. make sure we pass module name with
Tue May 29 12:57:51 2001  Tim Janik  <timj@gtk.org>

        * gmodule.c (g_module_symbol): erk, strconcat needs NULL as last arg.
        make sure we pass module name with suffix into backend open.
2001-05-29 11:05:53 +00:00
Tim Janik
2d0ea4af6c as a last resort, if we can't access() the module, leave it up to the
Mon May 28 20:19:25 2001  Tim Janik  <timj@gtk.org>

        * gmodule.c (g_module_open): as a last resort, if we can't access()
        the module, leave it up to the platform backends to find it.
        (fixes implicit search patch loading i broke with my last
        commit, spotted by Padraig O'Briain).
2001-05-28 18:23:31 +00:00
Tim Janik
e28e398eb0 unlock context when bailing out with a warning. (g_main_context_check):
Sun May 27 05:09:18 2001  Tim Janik  <timj@gtk.org>

        * gmain.c (g_main_context_prepare): unlock context when bailing
        out with a warning.
        (g_main_context_check): same here.

        * gmain.c (g_main_context_check): before returning due to
        changed pollfds, unlock context.

Sun May 27 04:52:28 2001  Tim Janik  <timj@gtk.org>

        * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
        to stop signal emissions through a detailed_signal string.

        * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
        the fact that g_value_* functions may cause signal emissons by
        unlocking the global signal system lock around g_value_* functions.
        (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
        that this functions acquires the lock on its own now.
2001-05-27 18:28:58 +00:00
Dan Winship
d7daf59800 gmodule implementation for Darwin/Mac OS X
* gmodule-dyld.c: gmodule implementation for Darwin/Mac OS X

        * gmodule.c:
        * gmoduleconf.h.in: Add gmodule-dyld support

        * testgmodule.c (main): Fix spelling
2001-04-20 17:05:38 +00:00
Sebastian Wilhelmi
66107ac7e1 Set G_LOG_DOMAIN to \"GModule\" instead of g_log_domain_gmodule.
2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* Makefile.am, makefile.mingw.in, makefile.msc.in: Set
	G_LOG_DOMAIN to \"GModule\" instead of g_log_domain_gmodule.

	* gmodule.def, gmodule.h, gmodule.c: Removed g_log_domain_gmodule.

	* docs/reference/glib/glib-sections.txt,
	docs/reference/glib/tmpl/messages.sgml: Removed	g_log_domain_gmodule.
2001-03-07 14:22:25 +00:00
Havoc Pennington
1c391cc698 include string.h
2001-02-17  Havoc Pennington  <hp@pobox.com>

	* gthread.c: include string.h

        Applied patch from Soeren Sandmann:

	* testglib.c: const fixes

	* gwin32.h: format cleanups

	* gutils.c (g_atexit): constify a variable
	(g_find_program_in_path): constification
	(g_basename): G_CONST_RETURN
	(g_path_skip_root): G_CONST_RETURN
	(g_getenv): G_CONST_RETURN
	(g_get_user_name): G_CONST_RETURN
	(g_get_real_name): G_CONST_RETURN
	(g_get_home_dir): G_CONST_RETURN
	(g_get_tmp_dir): G_CONST_RETURN
	(g_get_prgname): G_CONST_RETURN
	(_glib_gettext): G_CONST_RETURN

	* gunicode.h: formatting cleanups

	* gstrfuncs.c (g_strerror): G_CONST_RETURN
	(g_strsignal): G_CONST_RETURN

	* gspawn.c (g_execute): const on variables

	* gmessages.c (printf_string_upper_bound): fix const on a variable

	* gmem.c (g_mem_chunk_new): make the "name" arg const
	(struct _GRealMemChunk): make the "name" field const

	* gfileutils.c (g_file_open_tmp): store const return in a const
	gchar* variable

	* gdataset.c (g_quark_to_string): G_CONST_RETURN

2001-02-17  Havoc Pennington  <hp@pobox.com>

        Applied patch from Soeren Sandmann:

	* gvaluetypes.c (g_value_get_string): G_CONST_RETURN

	* gtype.c (g_type_name): G_CONST_RETURN

	* gsignal.c (g_signal_name): G_CONST_RETURN

	* gobject-query.c (main): const fix

2001-02-17  Havoc Pennington  <hp@pobox.com>

        Applied patch from Soeren Sandmann:

	* gmodule.c (g_module_error): G_CONST_RETURN
	(g_module_name): G_CONST_RETURN
2001-02-17 23:30:48 +00:00
Tor Lillqvist
cd888afb5a Need <io.h> for open() and close().
2001-01-27  Tor Lillqvist  <tml@iki.fi>

	* gmodule.c: (Win32) Need <io.h> for open() and close().

2001-01-27  Tor Lillqvist  <tml@iki.fi>

	* makefile.msc.in: Don't try to compile gmarshal.c on its own.
2001-01-27 15:07:03 +00:00
Sebastian Wilhelmi
57a7a2b010 Determine the suffix of the shared librarries for this system. This is
2000-12-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Determine the suffix of the shared librarries for
	this system. This is done analogous to
	ltconfig.sh. G_MODULE_SUFFIX in glibconfig.h is set to either
	"sl", "dll", or (most often) "so".

	* tests/Makefile.am, tests/module-test.c,
	tests/libmoduletestplugin_a.c, tests/libmoduletestplugin_b.c:
	Added new testcase for gmodule. This is mostly copied from
	gmodule/testgmodule.c, but unlike that is is quiet. (Why BTW are
	some tests that verbose, not to say loquacious...)

	* gmodule.c: Make g_module_open more tolerant wrt to the module
	name. First it tries to open the module as named, if that fails,
	it checks, whether it is a libtool archive and parses it, if that
	fails it appends the systems shared library suffix
	(i.e. ".so") (if not already found) and tries again and if that
	fails it tries to append the ".la" libtool suffix (if not already
	found) and parses it.

	* gmodule.c: Lock recursive mutex during most module functions for
	safety.

	* gmodule-dl.c: Return an error from _g_module_symbol only, if
	dlerror says so. All other functions return an error as well, if
	dlerror returns NULL.

	* testgmodule.c: Thanks to the above change the #ifdefs have
	vanished.

	* glib/glib-sections.txt: Added G_MODULE_SUFFIX.

	* glib/tmpl/modules.sgml: Updated.
2000-12-22 13:44:25 +00:00
Tim Janik
c9bd7542e1 applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
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.
2000-07-26 11:02:02 +00:00
Tor Lillqvist
549faafc02 New function that returns the message string for a Win32 error code.
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.
2000-03-01 04:57:07 +00:00
Tim Janik
5991248acf do not return NULL symbols.
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.
2000-03-01 04:57:07 +00:00
Martin Baulig
9bee3ef88d [FIXME: On NetBSD, dlsym() doesn't set errno != 0 when the system cannot be
found; this leads to an incorrect return value of g_module_symbol.]

2000-01-13  Martin Baulig  <martin@home-of-linux.org>

	* gmodule.c (g_module_open): Check whether `check_init' is not NULL
	before we attempt to call it.
2000-01-13 22:11:39 +00:00
Tim Janik
87c7aeb93b 18:36. incorporated proposed cleanups from gtk-devel-list.
Sat Jul 24 20:11:35 1999  Tim Janik  <timj@gtk.org>

        * merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
        * incorporated proposed cleanups from gtk-devel-list.

        * bumped version number to GLib-1.3.1

        * glib.h:
        * gqueue.c:
        * gstring.c:
        * glist.c:
        removed string tokenisation (we got g_strsplit() and g_strjoin()
        already) and readline functions.
        s/g_list_delete/g_list_delete_link.
        implemented g_slist_delete_link.
        removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
        macro, g_atexit() is provided for public consumption.
        added GTrashStack inline utility functions.
        reimplement double eneded queues.
        removed GStack implementation, people can use a queue or a (singly)
        linked list for this task.
        deprecated g_strescape(), we need the SunOS variants here.

        * gdate.c: added DEBUG_MSG() macro to wrap old messages.

        * *.*: CVS merges.

        * upgrade to libtool 1.3.3.
1999-07-24 18:50:58 +00:00
CDT 1999 Shawn T. Amundson
499c9786d1 Port to BeOS by myself and Richard Offer.
Sat May  8 01:52:29 CDT 1999 Shawn T. Amundson <amundson@gtk.org>

        * configure.in
          gerror.c
          gmain.c
          gstrfuncs.c
          gutils.c
          ltconfig
          ltmain.sh
          gmodule/Makefile.am
          gmodule/gmodule.c
          gmodule/gmoduleconf.h.in
          gmodule/gmodule-beos.c
          gthread/Makefile.am: Port to BeOS by myself and Richard Offer.
1999-05-08 07:40:44 +00:00
Tor Lillqvist
2b688f549c New files, used to generate corresponding non-.in files when making a
* makefile.msc.in makefile.cygwin.in glibconfig.h.win32.in
 	config.h.win32.in tests/makefile.msc.in tests/makefile.cygwin.in:
 	New files, used to generate corresponding non-.in files when
 	making a dist. This is just so the version numbers will be kept in
 	synch automatically.

	* configure.in: Also substitute @GLIB_MAJOR_VERSION@,
 	@GLIB_MINOR_VERSION@, and @GLIB_INTERFACE_AGE@.

	* Makefile.am tests/Makefile.am: Also distribute makefile.cygwin.

	* gerror.c (g_on_error_query): On Win32, put up a MessageBox and
 	then exit.

	* glib.def: Add a couple of functions.
1999-05-06 17:33:15 +00:00
Asbjørn Pettersen
76a78f059a Add G_MODULE_IMPL_OS2 1999-04-07 18:17:38 +00:00
CST 1999 Shawn T. Amundson
b9ef2b41db inserted additional note to look for ChangeLog and AUTHORS file for a log
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.
1999-02-24 06:14:27 +00:00
Tim Janik
0df89d51a4 be more descriptive on unsupported systems.
Wed Feb 10 12:06:30 1999  Tim Janik  <timj@gtk.org>

        * gmodule.c (CHECK_ERROR): be more descriptive on unsupported systems.

Wed Feb 10 12:01:42 1999  Tim Janik  <timj@gtk.org>

        * configure.in: don't reset G_MODULE_IMPL, so it can be overridden
        from the command line.
1999-02-10 11:15:13 +00:00
Sebastian Wilhelmi
b37e032581 s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added G_LOCK_EXTERN macro
1999-02-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h: s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added
	G_LOCK_EXTERN macro to declare a lock externally.
1999-02-10 09:40:46 +00:00
Tim Janik
a8ff1b4fce fixed errernerous code wrt to thread specific error string allocation
Wed Feb 10 07:56:33 1999  Tim Janik  <timj@gtk.org>

        * gmodule.c (g_module_error): fixed errernerous code wrt to thread
        specific error string allocation handling.

Wed Feb 10 06:20:30 1999  Tim Janik  <timj@gtk.org>

        * gmutex.c (g_static_private_set): invoke destroy notifier when
        overwriting values, initialize new array fields with NULL.
        (g_static_private_free_data): do not skip destroy notification for
        data == NULL.

        * gutils.c (g_direct_equal): compare pointer values directly instead
        of just their guint values which is a loosing conversion for
        sizeof(gpointer)==8 systems.
        (g_get_any_init): restructured code so we don't use endless loops like
        while (1), which boil down to an ugly alias for goto.
        strip ,.* from the real name.
1999-02-10 08:06:26 +00:00
Tim Janik
b2e318ff3e version bump to 1.1.8, binary age 0, interface age 0.
Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>

        * configure.in: version bump to 1.1.8, binary age 0, interface age 0.

        * glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
        g_trylock() to G_TRYLOCK(), since these are macros that expand to
        nothing with --disable-threads.
        changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
        G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
        changed semantics of g_thread_supported to g_thread_supported() so it
        can be used as a function like g_module_supported(). the actuall
        definition is still a macro that expands into a variable for
        performance reasons though.
        various indentation and coding style cleanups.

        * configure.in: added --enable-threads that defaults to yes.

        * gmutex.c: changed tests g_thread_supported to g_thread_supported (),
        changed variable settings of g_thread_supported
        to g_threads_got_initialized.

        garray.c:
        gcache.c:
        gdataset.c:
        gdate.c:
        ghash.c:
        glist.c:
        gmain.c:
        gnode.c:
        gslist.c:
        gstring.c:
        gtree.c:
        gutils.c:
        changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
        s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
1998-12-16 05:38:35 +00:00
Owen Taylor
931ea95265 This commit merges the glib-threads branch into the main
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.
1998-12-15 05:28:02 +00:00
Tim Janik
6515316f82 added empty default imlementation so gmodule.so compiles on systems that
Fri Nov 20 14:43:44 1998  Tim Janik  <timj@gtk.org>

        * gmodule.c (_g_module_build_path): added empty default imlementation
        so gmodule.so compiles on systems that are not yet supported, fix from
        Erik Bagfors <bagfors@hpc2n.umu.se>.
1998-11-20 13:49:35 +00:00
Tor Lillqvist
a6149403de removed dummy structure definitions for struct _GCache, _GTree, _GTimer,
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.
1998-10-27 04:11:34 +00:00
Tim Janik
634e4a58c6 reverted part of the changes from Sebastian Wilhelmi (1998-10-20). don't
Wed Oct 21 19:22:58 1998  Tim Janik  <timj@gtk.org>

        * configure.in (G_MODULE_HAVE_DLERROR): reverted part of the changes
        from Sebastian Wilhelmi (1998-10-20). don't specify a specific loading
        behaviour (i.e. RTLD_NOW) when we are not sure whether it is supplied.
        changed the return value from (!f2 && f1) to (!f2 || f1) so we default
        to not needing an underscore. reverted the extra plugin.c building,
        because .lo files are not ELF libraries, this can't work. This needs
        further investigation on Solaris...

Wed Oct 21 19:58:27 1998  Tim Janik  <timj@gtk.org>

        * gmodule.c (g_module_symbol): fixed a string pointer bug that could
        cause garbage error messages from g_module_symbol() for systems that
        NEED_USCORE.
1998-10-21 18:04:47 +00:00
Tim Janik
2d68cbbb7d NEWS file update for upcoming release of GLib + GModule version 1.1.3,
Mon Sep 21 02:22:12 1998  Tim Janik  <timj@gtk.org>

        * NEWS file update for upcoming release of GLib + GModule
        version 1.1.3, binary age 0, interface age 0. (GModule uses
        the same version numbers as GLib.)

        * glib.h: swap the inclusion of of float.h and limits.h to work
        around a egcs 1.1 oddity on Solaris 2.5.1 (fix provided by
        Per Abrahamsen  <abraham@dina.kvl.dk>).

        * glib.h:
        * gscanner.c: renamed the GValue union to GTokenValue, this should
        not affect source compatibility in most cases.

        * ghash.c: added some g_return_if_fail() statements. make
        g_hash_table_lookup_node() an inline function so we save an extra
        function invokation on lookups.

Mon Sep 21 01:54:48 1998  Tim Janik  <timj@gtk.org>

        * gmodule.h:
        * gmodule.c: renamed old _de_init functionality to _unload.
        modules are now expected to export:
        G_MODULE_EXPORT const gchar* g_module_check_init (GModule *module);
        and
        G_MODULE_EXPORT void g_module_unload (GModule *module);
        returning a string other than NULL from g_module_check_init() will
        prevent the module from being loaded. a call to g_module_make_resident()
        from g_module_unload() will prevent the module from being unloaded and
        still make it resident.
1998-09-21 02:32:30 +00:00
Tim Janik
ea4b8e4c02 implemented g_datalist_* along the lines of g_dataset, but operates on an
Thu Sep 17 06:36:25 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gdataset.c: implemented g_datalist_* along the lines of g_dataset,
        but operates on an opaque gpointer *datalist; pointer, e.g. for the
        implementation of GtkObject named data.
        we cache a certain portion of the already freed data entries now, to
        gain a slight performance improve with data reallocation.

Thu Sep 17 06:34:22 1998  Tim Janik  <timj@gtk.org>

        * gmodule.h:
        * gmodule.c: implemented g_module_make_resident() which can be
        used to make modules resident.
        fixed a buglet about the optional "g_module_de_init" function in
        modules, which could get invoked twice on very obscure occasions.
1998-09-17 04:59:41 +00:00
Tim Janik
0b870ec357 provide no operation implementation for the underlying _g_module_*
Thu Aug 20 07:08:16 1998  Tim Janik  <timj@gtk.org>

        * gmodule.c: provide no operation implementation for the underlying
        _g_module_* functions, so we at least compile on systems that have
        neither of G_MODULE_IMPL_DL or G_MODULE_IMPL_DLD.
1998-08-20 05:10:27 +00:00
Tim Janik
e746ca4f15 changed the return type for the GModuleCheckInit function to be a string,
Mon Aug 17 03:41:52 1998  Tim Janik  <timj@gtk.org>

        * gmodule.h:
        * gmodule.c (g_module_open): changed the return type for the
        GModuleCheckInit function to be a string, describing the error
        condition.
        (g_module_symbol): show the failing symbol on error messages.
1998-08-17 02:40:30 +00:00
Tim Janik
d5803865b4 version bump to 1.1.3, binary age 0, interface age 0.
Sun Aug 16 20:28:27 1998  Tim Janik  <timj@gtk.org>

        * version bump to 1.1.3, binary age 0, interface age 0.

        * glib.h: be nice to platforms that don't have gint64 and don't
        issue #warning on every compilation. since glib doesn't require
        gint64 itself, packages that need gint64 should test for this
        themselves.

        * glib.h:
        * gutils.c: added a new function g_vsnprintf().

Fri Aug 14 16:41:53 1998  Tim Janik  <timj@gtk.org>

        * glib.h: added static inline functions for bit mask tests:
        g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.

Fri Aug 13 14:23:37 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gmessages.c:
        revised the message handling system, which is now based on a new
        mechanism g_log*. most of the assertment macros got adapted to
        feature the new g_log() call with an additional specification of
        the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
        is undefined upon the includion of glib.h, it'll be defined with a
        value of (NULL) and thus preserves the original bahaviour for
        warning and error messages. the message handler setting functions
        for g_warning, g_error and g_message are only provided for backwards
        compatibility and might get removed somewhen.

        * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
        to "GLib" upon compilation. we currently have to add this definition
        to the DEFS variable.
        * testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
        of this file currently, since automake doesn't support per target
        _CFLAGS yet.

        * glib.h: changed some gints to gbooleans, made a few const corrections,
        removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
        in other required places.

        * gnode.c:
        (g_node_prepend):
        (g_node_insert_before):
        (g_node_insert):
        (g_node_append_data):
        (g_node_prepend_data):
        (g_node_insert_data_before):
        (g_node_insert_data):
        (g_node_append):
        return (node), so these macros/functions can be usefully chained with
        g_node_new().

[GModule]
Fri Aug 14 02:24:39 1998  Tim Janik  <timj@gtk.org>

        * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
        to "GModule" upon compilation. we currently have to add this definition
        to the DEFS variable.
        * testgmodule.c: we need an ugly #undef G_LOG_DOMAIN at the start
        of this file currently, since automake doesn't support per target
        _CFLAGS yet.
1998-08-16 21:14:11 +00:00
Tim Janik
fac803a223 minor changes to internal interface.
Mon Aug 10 03:35:57 1998  Tim Janik  <timj@gtk.org>

        * gmodule.c: minor changes to internal interface.
        * gmodule-dl.c:
        * gmodule-dld.c: put some comments into the files, and provided
        better error checking for shl_findsym(). whish i had a system to
        test this stuff on.
1998-08-10 01:36:18 +00:00
Tim Janik
52f1266e0a minor hack to cause SUBDIRS (gmodule) to be build last. we do this by
Mon Aug 10 02:17:19 1998  Tim Janik  <timj@gtk.org>

        * Makefile.am: minor hack to cause SUBDIRS (gmodule) to be build
        last. we do this by making all-recursive-am depend on all-am.

Mon Aug 10 02:18:31 1998  Tim Janik  <timj@gtk.org>

        * Makefile.am (lib_LTLIBRARIES): for now, skip the dependency on
        -lglib for libgmodule-1.1.la, libgplugin_a.la and libgplugin_b.la
        since this clashes with inter-library-dependencies for not installed
        libraries. glib-config takes care of this for the usuall case, but
        there needs to be a better way...
1998-08-10 00:26:44 +00:00
Tim Janik
af0977e8e7 hm, fixup call sequences for check_init() and de_init().
we need to have internal structures in a sane state before
we call external functions.
1998-08-09 13:13:12 +00:00
Tim Janik
c36aa81e1b erm, fix copyright notice. 1998-08-09 11:42:02 +00:00
Tim Janik
1718cd8c8d fix cmopiler warnings. check (de)initialization code. 1998-08-09 11:39:50 +00:00
Tim Janik
db5918bf8e initial import of gmodule. 1998-08-09 08:32:18 +00:00