Commit Graph

499 Commits

Author SHA1 Message Date
Tor Lillqvist
77866eaf9b makefile.mingw.in tests/makefile.mingw.in Rename makefile.cygwin(.in) to
2000-05-13  Tor Lillqvist  <tml@iki.fi>

* makefile.mingw.in
* tests/makefile.mingw.in
* build-dll: Rename makefile.cygwin(.in) to
makefile.mingw(.in), which better describes what it is. Move the
build of gmodule, gthread and gobject DLLs to makefiles in those
directories. Move resource file handling and build number bump to
build-dll, where it sits much cleaner.

* README.win32
* Makefile.am (EXTRA_DIST): Update accordingly.

* glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
implementations.

* glib.def: Add g_strcanon.

* gtree.c (g_tree_node_rotate_left): Remove unused variables.

* gwin32.c (g_win32_opendir): Remove unneeded statement.

gmodule:

* makefile.mingw.in: New file, with gmodule stuff
moved from ../makefile.mingw.in.

* Makefile.am: Add to EXTRA_DIST, and add rule to make makefile.mingw.

gobject:
* makefile.mingw.in
* gobject.def
* gobject.rc.in: New files, for Win32 (mingw) build.

* Makefile.am: Add to EXTRA_DIST. Add rules to produce the
corresponding non-*.in files.

* gtype.h: (Win32:) Mark _g_type_fundamental_last for
export/import from DLL.

gthread:
* makefile.mingw.in: New file, with gthread stuff moved from
../makefile.mingw.in.

* Makefile.am: Add to EXTRA_DIST, add rule to build makefile.mingw.
2000-05-13 19:30:58 +00:00
Tim Janik
1df2ec98cb added gobject
Fri Apr 28 23:54:35 2000  Tim Janik  <timj@gtk.org>

        * setup things for a new sub-library libgobject:

        * Makefile.am (SUBDIRS): added gobject

        * glib-config.in: feature -lgobject.

        * configure.in (AC_OUTPUT): generate gobject/Makefile.

        * glib.m4 (AM_PATH_GLIB): feature gobject module.

        * glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*

Fri Apr 28 21:41:49 2000  Tim Janik  <timj@gtk.org>

        * glib.h: added G_STRLOC macro.
        G_STRUCT_OFFSET(): signedness corrections.
        (G_CSET_DIGITS): list 0-9.
        * gscanner.c (g_scanner_config_template): use G_CSET_DIGITS.

        * glib.h:
        * gstrfuncs.c:
        (g_strdown):
        (g_strup):
        (g_strreverse): return the modified string instead of void, so
        calls to these functions can be nested.
        (g_strcanon): new function, canonicalizes string according to
        a given character set.

Fri Apr 28 19:45:16 2000  Tim Janik  <timj@gtk.org>

        * gasyncqueue.c (g_async_queue_unref): get rid of an unused variable.
2000-05-12 15:23:16 +00:00
Owen Taylor
29d34de588 Print found version when test succeeds.
Wed May 10 19:52:44 2000  Owen Taylor  <otaylor@redhat.com>

	* glib.m4: Print found version when test succeeds.
2000-05-11 00:23:45 +00:00
Tor Lillqvist
586d5b11a8 makefile.cygwin.in Include the common makefile snippet from
2000-05-04  Tor Lillqvist  <tml@iki.fi>

* makefile.cygwin.in
* tests/makefile.cygwin.in: Include the common makefile snippet
from ../build/win32.

Maybe CVSROOT/modules should be changed so that the 'build' module
is included within the glib module (and gtk+, and gimp, and maybe
others later), in the same way as the 'macros' module is included
in lots of GNOME CVS modules?
2000-05-04 19:51:48 +00:00
Tor Lillqvist
c4f0c6fd9b Add new functions. Add new object files. Add threadpool-test. No need to
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>
2000-05-01 21:13:02 +00:00
Sebastian Wilhelmi
1418fe3a6d New File implementing an asynchronous queue to be used for asynchronous
2000-04-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gasyncqueue.c: New File implementing an asynchronous queue to be
	used for asynchronous inter-thread communication.

	* gthreadpool.c: New File implementing a thread pool to be used
	for distributing work among several threads.

	* glib.h: Added the type and function declarations for these two
	types.

	* tests/threadpool-test.c: New File implementing a test for the
	thread pool. This also checks the asynchronous queue underlying
	the thread pool.

	* tests/Makefile.am: Changed accordingly.
2000-04-28 12:24:53 +00:00
Sebastian Wilhelmi
f0e9f522c2 Look for both pthread_create and pthread_join in the thread library. Some
2000-04-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Look for both pthread_create and pthread_join in
	the thread library. Some systems define one of them, but not both
	in libc. Arghh. Now we really start a thread and join it later and
	check, whether the thread to actually ran.
2000-04-26 13:03:49 +00:00
Sebastian Wilhelmi
86627d9c7a ChangeLog update: This fixes Bug #8267. Thanks to Juan Toledo
ChangeLog update:
	This fixes Bug #8267. Thanks to Juan Toledo
        <toledo@users.sourceforge.net> for + pointing that out.
2000-04-26 08:48:24 +00:00
Sebastian Wilhelmi
d5fccfb0eb Changed the 'value' parameter of g_cache_remove from gpointer to
2000-04-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, gcache.c, gtree.c: Changed the 'value' parameter of
	g_cache_remove from gpointer to gconstpointer. Dito for the 'key'
	parameter of g_tree_lookup and g_tree_remove and the 'data'
	parameter of g_tree_serach. This function now takes a function of
	type GCompareFunc instead of GSearchFunc.

	* glib.h: Removed declaration of GSearchFunc.

	* gmem.c: s/GSearchFunc/GCompareFunc/.
2000-04-26 08:42:19 +00:00
Tor Lillqvist
7bd3771d3d Update entry point list.
2000-04-19  Tor Lillqvist  <tml@iki.fi>

* glib.def: Update entry point list.
2000-04-19 18:40:31 +00:00
Sebastian Wilhelmi
1383e5b642 Made the debugging G_TRYLOCK call also work for compilers with funnt
2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
	for compilers with funnt G_STMT_(START|END) macros.

	* tests/thread-test.c: Implemented a check for that.
2000-04-19 09:29:19 +00:00
Sebastian Wilhelmi
e366512775 Changed the win32 part of this function to be thread safe and to make the
2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_getenv): Changed the win32 part of this function to
	be thread safe and to make the returned environment string
	persistent to match the UN*X behavior. This is again a response to
	Bug #8983.

	* glib.h (G_LOCK_NAME): Removed parentheses around the lock name,
	as that seems to cause problems for some compilers and really
	isn't necessary.
2000-04-19 08:43:52 +00:00
Tim Janik
70ce489b36 make sure that scanner->config->cset_skip_characters is "" instead of
Wed Apr 19 08:32:32 2000  Tim Janik  <timj@gtk.org>

        * gscanner.c (g_scanner_new): make sure that
        scanner->config->cset_skip_characters is "" instead of NULL, so we
        don't segfault further on.
2000-04-19 06:49:39 +00:00
Sebastian Wilhelmi
059f5b9416 Changed the 'data' parameters from gpointer to gconstpointer for the
2000-04-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, glist.h, gslist.h: Changed the 'data' parameters from
	gpointer to gconstpointer for the functions
	g_(list|slist)_(remove|find|find_custom|index), as they do not
	change this parameter. This fixes bug #4836.
2000-04-18 14:01:33 +00:00
Sebastian Wilhelmi
7c467669cc Changed comment for g_getenv to reflect, that the returned memory must not
2000-04-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h: Changed comment for g_getenv to reflect, that the
	returned memory must not be freed. Fixes Bug #8983.
2000-04-18 13:00:35 +00:00
Sebastian Wilhelmi
8c90d7766b Add configure test for garbage collector friendliness for GLib. If
2000-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in, acconfig.h: Add configure test for garbage
	collector friendliness for GLib. If enabled, ENABLE_GC_FRIENDLY
	will be defined.

	* garray.c, ghash.c, glist.c, gmain.c, gmem.c, gnode.c, gqueue.c,
	gslist.c, gtree.c: If ENABLE_GC_FRIENDLY is defined, NULLify all
	memory released by the user, but cached by GLib. This lets a
	garbage collector have a more correct view of the actually used
	memory.
2000-04-17 13:23:27 +00:00
Sebastian Wilhelmi
03f9d485c1 Added g_(array|ptr_array|byte_array)_sized_new functions, that reserve a
2000-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* garray.c, glib.h: Added g_(array|ptr_array|byte_array)_sized_new
	functions, that reserve a certain amount of memeory for the array
	at creation time to avoid reallocation. Fixes bug #6707 from
	Charles Kerr <ckerr@osserver1.nssl.noaa.gov>.
2000-04-17 10:59:46 +00:00
Sebastian Wilhelmi
028a71701c Fixed bug. Thanks to Marko Kreen <marko@l-t.ee> for reporting that.
2000-04-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* grand.c (g_rand_new): Fixed bug. Thanks to Marko Kreen
	<marko@l-t.ee> for reporting that.
2000-04-07 11:44:43 +00:00
Tor Lillqvist
d6f6134103 Tell about using the mingw-based gcc, which is much easier than modifying
2000-03-26  Tor Lillqvist  <tml@iki.fi>

* README.win32: Tell about using the mingw-based gcc, which is
much easier than modifying the cygwin gcc to product mingw code
for the msvcrt runtime.

* makefile.cygwin.in (WIN32APIHEADERS): Kludge to make it work
with a "pure" mingw gcc, too.
2000-03-26 20:56:07 +00:00
Sebastian Wilhelmi
9698f728c6 typo alarm
typo alarm
2000-03-24 15:37:24 +00:00
Sebastian Wilhelmi
fe2e948e0b Made GArray behave correct. Now zero_terminated really means, that the
2000-03-24  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* garray.c: Made GArray behave correct. Now zero_terminated really
	means, that the element array->data[array->len] exists and is
	zeroed, and clear means that any unassigned elements obtained
	through g_array_set_size (the only way to get unassigned elements
	AFAICT) are zeroed. Added some macors to mak the code more
	obvoius. Also made GPtrArray zero elements after
	g_ptr_array_set_size. This is done in a portbale way (assignment
	of NULL instead of just memsetting it to zero), though that might
	be more portability than we actually want.
2000-03-24 15:36:03 +00:00
Sebastian Wilhelmi
7cd50026f1 Added various win32 related *.in files to EXTRA_DIST to let 'make
2000-03-24  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* Makefile.am, gthread/Makefile.am, gmodule/Makefile.am,
	tests/Makefile.am: Added various win32 related *.in files to
	EXTRA_DIST to let 'make distcheck' procude all the corresponding
	files, which it silently fails to do currently.
2000-03-24 12:56:56 +00:00
Sebastian Wilhelmi
ac4abbba3e After finding the right thread library (containing e.g. pthread_create) we
2000-03-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: After finding the right thread library (containing
	e.g. pthread_create) we now search for the right realtime library
	(containing e.g. sched_get_priority_max). Makes the output of the
	thread related libraries correct.

	* gtimer.c (g_usleep): The current implementation of g_usleep
	(simply calling select) doesn't work reliable for multi-threaded
	programs on some platforms (bad omen for the main loop....), so I
	changed the implementation for thread-using programs to wait for a
	GCond for the specified amount of time (NB: sleep and usleep are
	not MT-safe in general, because they often use signals).
2000-03-23 16:23:50 +00:00
Owen Taylor
e0786b05e6 Fix indentation.
Wed Mar 22 16:49:57 2000  Owen Taylor  <otaylor@redhat.com>

	* gmem.c (g_mem_chunk_area_compare): Fix indentation.
2000-03-22 21:59:16 +00:00
Elliot Lee
916d4db104 gmem.c (g_mem_chunk_area_compare): Fix 64-bitness bug in comparing two
gmem.c (g_mem_chunk_area_compare): Fix 64-bitness bug in comparing two
pointers more than 4G apart.
2000-03-22 21:41:45 +00:00
Tor Lillqvist
142219f278 Move Win32-only includes after inclusion of glib.h, so that G_OS_WIN32 is
2000-03-22  Tor Lillqvist  <tml@iki.fi>

* gutils.c: Move Win32-only includes after inclusion of glib.h, so
that G_OS_WIN32 is defined.

* glibconfig.h.win32.in: Add GSystemThread.
2000-03-22 20:46:19 +00:00
Sebastian Wilhelmi
5a470fc8d7 better ChangeLog Entry
better ChangeLog Entry
2000-03-22 15:18:57 +00:00
Sebastian Wilhelmi
837cbbdf8d Ok, Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me,
2000-03-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_get_current_dir): Ok, Marcus Brinkmann
	<Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me, that 128 KB
	path length might not be enough for the HURD. So I changed the
	loop to at least avoid an integer overflow, which could happen at
	beyond 2GB size ;-)
2000-03-22 15:18:11 +00:00
Sebastian Wilhelmi
762a2befa4 Test for sched_yield as the native yield function first. Corrected typo
2000-03-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Test for sched_yield as the native yield function
	first. Corrected typo g_thread_sleep -> g_usleep. Corrected
	message for the pthread_create test. Negative Priorities are
	allowed (and used on Solaris), so consider
	sched_get_priority_min failed only if it returns -1, not <0. Check
	for sched_get_priority_min also in -lrt, if not found in -lpthread
	alone and add -lrt to G_THREAD_LIBS then. Remove special case
	handling of priorities for older solaris versions and posix
	threads. Thanks to Wan-Teh Chang <wtc@netscape.com> for suggesting
	some of those changes.

	* config.guess, config.sub, ltconfig, ltmain.sh:
	Upgrade to libtool 1.3.4.
2000-03-22 10:04:29 +00:00
Sebastian Wilhelmi
66034865b1 always define G_GNUC_EXTENSION, even when not needed by GLib. That's
2000-03-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
	even when not needed by GLib. That's actually also the way, the
	GLib reference manual describes that macro. Therefore I had to
	remove the lonesome #include <glibconfig.h> in gutils.c, which
	doesn't seem to be needed there however. This change should make
	Ben Gertzfield <che@debian.org> happy.

	* gutils.c: Furthermore two warnings in gutils.c were voided,
	which crept in due to my last change.
2000-03-21 15:21:41 +00:00
Sebastian Wilhelmi
cdb6195572 Allocate only up to 128KB for a pathname. While this is an arbitrary value
2000-03-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_get_current_dir): Allocate only up to 128KB for a
	pathname. While this is an arbitrary value just like 2048, it
	seems to be enough (after all, even 4GB is an arbitrary value).
2000-03-21 13:46:59 +00:00
Sebastian Wilhelmi
1266a4b88a Warn in case of an error during the call to poll(2). Closes Bug#7564 as
2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gmain.c (g_main_poll): Warn in case of an error during the call
	to poll(2). Closes Bug#7564 as reported by David Helder
	<dhelder@umich.edu>.
2000-03-20 16:19:58 +00:00
Sebastian Wilhelmi
2c4b4788fd Make g_get_current_dir work on systems with unlimited pathname length like
2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_get_current_dir): Make g_get_current_dir work on
	systems with unlimited pathname length like the HURD (It worked
	there before, but only for pathes shorter than 2048). Closes
	Bug#4525 as reported by Marcus Brinkmann
	<Marcus.Brinkmann@ruhr-uni-bochum.de>.
2000-03-20 16:01:41 +00:00
Sebastian Wilhelmi
692ce67892 Interpret EINTR as G_IO_ERROR_AGAIN.
2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* giounix.c (g_io_unix_write, g_io_unix_read): Interpret EINTR as
	G_IO_ERROR_AGAIN.
2000-03-20 13:19:20 +00:00
Sebastian Wilhelmi
5e7134375e Added the missing POSIX_NO_YIELD and POSIX_NO_PRIORITIES warning messages.
2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Added the missing POSIX_NO_YIELD and
	POSIX_NO_PRIORITIES warning messages.

	* configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
	real thread support. On solaris pthread_create can be linked to
	even in -lc, but it doesn't work then.

	* configure.in: Don't use priorities for threads, when the
	minimal/maximal priorities couldn't be determined at configure
	time.

	* configure.in, gthread.c: Always define GSystemThread in
	glibconfig.h to represent a system thread.

	* configure.in: Do not use native recursive threads, when
	possibe. We use some features, that they do not expose (namely the
	depth counter).

	* glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
	now implemented in a different way, which should be way
	faster. Alsothere are now functions g_static_rec_mutex_unlock_full
	and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
	completly.

	* gthread.c (g_thread_self): Do not test the system_thread to be
	non-zero to speed things up.

	* gthread.c (g_mutex_init): Therefore set the system_thread of the
	main thread here.

	* tests/thread-test.c: Rerun all tests once again, but this time
	we fool the system into thinking, that the available thread system
	is not native, but userprovided.

	* gthread/gthread-posix.c: Don't use priorities for threads,
	when the minimal/maximal priorities couldn't be determined at
	configure time.

	* gthread/gthread-posix.c: Don't check for errors, when
	setting the scope of a tread to system, as some posix
	implementations can't do that and we don't want the thing to
	fail because of that.
2000-03-17 14:49:59 +00:00
Sebastian Wilhelmi
3540769b17 We want the next and prev pointer of the inserted link to be NULL.
2000-03-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gqueue.c (g_queue_push_tail_link, g_queue_push_head_link): We
	want the next and prev pointer of the inserted link to be NULL.
2000-03-13 16:49:40 +00:00
Sebastian Wilhelmi
8fded00959 Another small change to the pthread_.. search pattern. Should work *now*
2000-03-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Another small change to the pthread_.. search
	pattern. Should work *now* for AIX.
2000-03-06 09:09:57 +00:00
Tor Lillqvist
d778d016b7 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-03 09:36:32 +00:00
Sebastian Wilhelmi
ead3a8c0c9 Make the search for pthread_attr_... prototypes find names at the start of
2000-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Make the search for pthread_attr_... prototypes
	find names at the start of a line also, like it is on AIX. Thanks
	to Valdis Kletnieks <Valdis.Kletnieks@vt.edu> for the info.
2000-03-03 09:36:32 +00:00
Tim Janik
db8baf6978 minor optimization.
Wed Mar  1 10:39:39 2000  Tim Janik  <timj@gtk.org>

        * gslist.c (g_slist_reverse): minor optimization.

        * testglib.c (g_node_test): added a couple of tests for
        g_node_copy().

        * glib.h:
        * gnode.c (g_node_copy): new function to copy subtrees,
        supplied by dbsears@ix.netcom.com.
        changed iterator to walk the children list backwards, so
        we get down from O(n^2) to O(n).

        * gnode.c (g_node_first_sibling): applied patch from
        dbsears@ix.netcom.com to optimize access if node->parent
        is present.

        * gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
        assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
        thus breaks the original code.

        * merged changes from 1.2.7.

Sat Feb 19 19:43:29 2000  Tim Janik  <timj@gtk.org>

        * testgmodule.c (main): added test to check that not yet bound symbols
        in shared libraries of the main module are retrievable, from David Gero.

Fri Jan 28 11:37:41 2000  Owen Taylor  <otaylor@redhat.com>

        Bug #4156 - Changes vaguely modelled after Scott Gifford's patch

        * gtimer.c (g_timer_elapsed): Never report negative times -
        clip times to 0.

        * gmain.c (g_timeout_prepare): Guard against unexpected
        clock shifts by never setting a timeout of more than
        data->interval msecs.
2000-03-01 09:44:10 +00:00
Tor Lillqvist
ed2628d638 Add new functions.
2000-02-27  Tor Lillqvist  <tml@iki.fi>

* glib.def: Add new functions.
2000-02-27 10:21:30 +00:00
Tor Lillqvist
0f4173ba4c Add a missing step to the setup instructions for gcc-2.95.2. Thanks to
2000-02-23  Tor Lillqvist  <tml@iki.fi>

* README.win32: Add a missing step to the setup instructions for
gcc-2.95.2. Thanks to Arnaud Charlet.

* glib.def: Add missing entry point.
2000-02-23 20:09:16 +00:00
Sebastian Wilhelmi
e6c2a1cec1 Changed GCC version test to also accept major versions > 2. Thanks to Ben
2000-02-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Changed GCC version test to also accept major
	versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
	pointing this out.
2000-02-18 09:57:19 +00:00
Havoc Pennington
cf24ff7121 changed g_str_hash() to a 31 bit version based on a submission by Karl
Thu Feb 17 12:53:44 2000  Tim Janik  <timj@gtk.org>

        * gstring.c: changed g_str_hash() to a 31 bit version based on
        a submission by Karl Nelson and hand optimized ad absurdum by
        various people ;)

        * gstring.c: applied patch from havoc for new gstring functions,
        added some more sanity checks, coding style fixups.

2000-02-13  Havoc Pennington  <hp@pobox.com>

        * tests/string-test.c (main): Add tests for the new GString
        features

        * testglib.c (main): Add tests for the new GString features

        * gstring.c (g_string_insert_len): New function; insert
        a given length of string at a given position.
        (g_string_append): reimplement in terms of g_string_insert_len
        (g_string_append_len): new function
        (g_string_insert_c): accept -1 for "pos" arg to mean "append"
        (g_string_append_c): reimplement in terms of g_string_insert_c
        (g_string_prepend): reimplement in terms of g_string_insert_len
        (g_string_prepend_len): new function
        (g_string_prepend_c): reimplement in terms of g_string_insert_c
        (g_string_insert): reimplement in terms of g_string_insert_len

        * glib.h: Declare g_string_insert_len, g_string_append_len,
        g_string_prepend_len
2000-02-17 11:57:35 +00:00
Tim Janik
b97261860c wtf??? someone destroyed the configure.in, reverting to an older version
Sun Feb 13 08:16:47 2000  Tim Janik  <timj@gtk.org>

        * configure.in: wtf??? someone destroyed the configure.in, reverting to
        an older version from Feb 4 which apears to still work.
2000-02-13 07:18:23 +00:00
Tor Lillqvist
726b3de454 Move to corresponding subdirectories.
2000-02-07  Tor Lillqvist  <tml@iki.fi>

* gmodule.rc.in gthread.rc.in: Move to corresponding subdirectories.

* Makefile.am
* gmodule/Makefile.am
* gthread/Makefile.am: Change accordingly.

* makefile.cygwin: Corresponding changes, some cleanup.
2000-02-07 21:22:30 +00:00
Tor Lillqvist
2701653ce5 New files, for putting version info in the DLLs on Win32.
2000-02-05  Tor Lillqvist  <tml@iki.fi>

* glib.rc.in gmodule.rc.in gthread.rc.in: New files, for putting
version info in the DLLs on Win32.

* Makefile.am: Generate corresponding *.rc files and distribute
them.

* makefile.cygwin.in: Add rules to automatically bump a "build
number" in the version info in the rc files each time the DLL is
built. But do this only for the person who releases binaries. If
others build the DLLs, the build number is set to zero.
2000-02-04 13:57:46 +00:00
Tim Janik
bbb532d59c return stolen data from g_datalist_id_remove_no_notify() and
Fri Feb  4 19:36:05 2000  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gdataset.c: return stolen data from g_datalist_id_remove_no_notify()
        and g_dataset_id_remove_no_notify() to avoid second lookup for common
        use.
2000-02-03 20:43:00 +00:00
Tor Lillqvist
c22cf34e92 glib.h New functions for conversion between UTF-8 and the encoding
2000-02-01  Tor Lillqvist  <tml@iki.fi>

* glib.h
* gstrfuncs.c (g_filename_to_utf8, g_filename_from_utf8): New
functions for conversion between UTF-8 and the encoding expected
by C runtime functions like open() and stat(), and returned by
readdir().

Implement them on Win32 where we use the system "ANSI" codepage,
which might be single-byte or double-byte. On Unix, just skip the
issue for now and provide dummy implementations that return a copy
of the argument.

* README.win32
* build-dll
* glib.def: Minor updates.
2000-02-02 23:39:32 +00:00
Tim Janik
ce4d6765c9 s/current_time/dispatch_time/ for the dispatch() handlers. refetch the
Wed Jan 26 05:24:38 2000  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gmain.c: s/current_time/dispatch_time/ for the dispatch() handlers.
        refetch the current time after invocation of poll() to cover up for
        the time spent in that function call.
2000-01-26 04:29:06 +00:00
Owen Taylor
948f64a183 Added G_N_ELEMENTS macro to determine the number of elements in an array.
Fri Jan 21 10:18:24 2000  Owen Taylor  <otaylor@redhat.com>

	* glib.h (G_N_ELEMENTS): Added G_N_ELEMENTS macro to determine
	the number of elements in an array.
2000-01-21 15:27:39 +00:00
Tim Janik
0b2c4e4f5a correctly fetch the current locale, fix from owen.
Sun Jan  9 13:28:36 2000  Tim Janik  <timj@gtk.org>

        * gstrfuncs.c (g_strtod): correctly fetch the current locale,
        fix from owen.
2000-01-09 10:58:55 +00:00
Tor Lillqvist
bc5baaa76d Use FormatMessage to translate system error codes into textual messages.
1999-12-16  Tor Lillqvist  <tml@iki.fi>

* gmodule/gmodule-win32.c: Use FormatMessage to translate system
error codes into textual messages.
1999-12-16 20:29:12 +00:00
Sebastian Wilhelmi
c54892b11b This of course should return TRUE in a program with a thread-disabled
1999-11-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h (G_TRYLOCK): This of course should return TRUE in a
	program with a thread-disabled GLib.
1999-11-25 13:47:55 +00:00
Tor Lillqvist
430428d1c9 g_strjoin was missing.
1999-11-18  Tor Lillqvist  <tml@iki.fi>

* glib.def: g_strjoin was missing.
1999-11-18 22:15:51 +00:00
Sebastian Wilhelmi
760a7ceef2 Renamed GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect
1999-11-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * acconfig.h, config.h.win32.in, configure.in: Renamed
        GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect
        changed meaning.

        * configure.in: Cope with systems, that have a pthread_t type,
        that is not a pointer. Hint from Karl Nelson
        <kenelson@ece.ucdavis.edu>. Define GLIB_SIZEOF_SYSTEM_THREAD to 4
        for Solaris. Cope with systems, that have no default mutex
        initialize, like obviously most DCE systems.

        * glib.h, gthread.c: Changed the prototype of thread_create and
        thread_self to return the system thread into provided memory
        instead of a return value. This is necessary, as HPUX has a
        pthread_t, that is bigger than the biggest integral type there.

        * gthread.c: system_thread is no longer a pointer, but an memory
        area of size GLIB_SIZEOF_SYSTEM_THREAD. Changed the
        zeroinitialization and the tests for zeroness accordingly.
1999-11-16 10:30:25 +00:00
Tor Lillqvist
5a298a91cb Very minor stuff. 1999-11-14 21:48:31 +00:00
Sebastian Wilhelmi
b5ebece1fb Forgot to commit ChangeLog. Here we go. (I'm still learning, how to
use PCL-CVS;-)
1999-11-09 14:46:56 +00:00
Sebastian Wilhelmi
6d441ca5af Make the test for getpwuid_r work on newer AIX versions, too. Still works
1999-11-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * configure.in: Make the test for getpwuid_r work on newer AIX
        versions, too. Still works on Solaris and Linux. Patch from Craig
        Rodrigues <rodrigc@mediaone.net>.
1999-11-08 10:02:17 +00:00
Tor Lillqvist
926d025819 Look at env vars LC_ALL, LC_CTYPE and LANG first. Some refinements to the
1999-11-08  Tor Lillqvist  <tml@iki.fi>

* gwin32.c (g_win32_getlocale): Look at env vars LC_ALL, LC_CTYPE
and LANG first. Some refinements to the sublanguage logic.
1999-11-08 09:49:10 +00:00
Tor Lillqvist
862d34872d Add gwin32 object. Add rule to make .i (preprocessed source) files.
1999-11-04  Tor Lillqvist  <tml@iki.fi>

* makefile.{cygwin,msc}.in: Add gwin32 object. Add rule to make .i
(preprocessed source) files.
1999-11-04 22:49:19 +00:00
Tor Lillqvist
f30c65e0fb Distribute also gwin32.c 1999-11-01 20:47:30 +00:00
Tor Lillqvist
6c5ec62da2 glib.h Rename Win32-only functions from gwin_* to g_win32_* to match the
1999-11-01  Tor Lillqvist  <tml@iki.fi>

* glib.h
* glib.def: Rename Win32-only functions from gwin_* to g_win32_*
to match the GLib naming conventions.

* gutils.c
* gwin32.c
* testglib.c
* makefile.{cygwin,msc}: Move the Win32-only functions to the new
file gwin32.c
1999-11-01 20:46:44 +00:00
Tor Lillqvist
5bca288054 Use the fix for the g_cache_remove bug from the 1.2 branch instead. 1999-10-31 23:03:45 +00:00
Tor Lillqvist
30cc3ed1fe Don't crash if removing a nonexistent value.
1999-10-31  Tor Lillqvist  <tml@iki.fi>

* gcache.c (g_cache_remove): Don't crash if removing a nonexistent
value.

* gutils.c (gwin_getlocale): New Win32-specific function, returns
a Unixish current locale string (en, zh_TW etc).

* glib.h: Declare it.

* glib.def: Export it.

* testglib.c: Test it.

* gmessages.c (Win32: ensure_stdout_valid): Some improvements,
make sure we don't call AllocConsole several times, which I think
has happened.
1999-10-31 12:15:34 +00:00
Sebastian Wilhelmi
a2760140c8 remove g_dataset_global_lock around destroy() notification here as well.
Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>

        * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
        destroy() notification here as well.

1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
        is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
1999-10-17 16:04:49 +00:00
Tim Janik
9a65b20e07 removed useless g_string(x) macro that cluttered the namespace and was
Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>

        * glib.h: removed useless g_string(x) macro that cluttered the namespace
        and was just a poor wrapper around the cpp '#' symbol, use #x if you
        need to work around this.
        added new macro G_STRINGIFY(arg) that will convert arg to a string,
        no matter whether it contains macros or not.
1999-10-14 22:04:24 +00:00
Tor Lillqvist
52ad8a9c2a Define the new GLIB_SIZEOF_* constants here, too.
1999-10-12  Tor Lillqvist  <tml@iki.fi>

* config.h.win32.in: Define the new GLIB_SIZEOF_* constants here,
too.

* glib.h: Small Win32 comments improvement.
1999-10-12 20:46:13 +00:00
Tim Janik
30a1e1addb completly new implementation for printf string upper bounds calculation.
Tue Oct 12 12:16:12 1999  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_printf_string_upper_bound): completly new implementation
        for printf string upper bounds calculation.
        we handle all glibc 2.1 format specifiers now, except for positional
        parameters (%nn$...) and wide char strings, plus some obscure upper
        case variants of the standard conversions. this fixes a lot of
        bugs in the old code, i.e.
        - NULL format strings
        - floats with exponents >+24
        - %G
        - precision specifications in general
        - negative field widths
        - %p for SIZEOF_VOID_P > 4 platforms
        we now issue warnigns in places where the old code would have
        caused buffer overruns anyways. warnings are suppressed when invoked
        from glogv(), to avoid infinite recursions if someone passes a log
        message that comes with really obscure format specifications.

Tue Oct 12 11:49:00 1999  Tim Janik  <timj@gtk.org>

        * gstrfuncs.c: nuked old g_printf_string_upper_bound() version.

Tue Oct 12 03:34:40 1999  Tim Janik  <timj@gtk.org>

        * glib.h: added GFloatIEEE754 and GDoubleIEEE754 unions to access sign,
        mantissa and exponent of IEEE floats and doubles (required by the new
        version of g_printf_string_upper_bound). the unions are endian specific,
        we handle G_LITTLE_ENDIAN and G_BIG_ENDIAN as of currently. ieee floats
        and doubles are supported (used for storage) by at least intel, ppc and
        sparc, reference:
        http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html

Mon Oct 11 18:01:49 1999  Tim Janik  <timj@gtk.org>

        * configure.in: added additional checks to figure sizes of size_t,
        ptrdiff_t and intmax_t (required by g_printf_string_upper_bound).
1999-10-12 12:08:13 +00:00
Manish Singh
acbe34e51a blah. use G_WITH_CYGWIN instead of G_HAVE_CYGWIN
-Yosh
1999-10-06 19:45:04 +00:00
Tor Lillqvist
1dc5f94cfa Use G_OS_WIN32.
* tests/string-test.c tests/dirname-test.c: Use G_OS_WIN32.

* glib.def: Add g_thread_use_default_impl.
1999-10-05 16:21:07 +00:00
Tor Lillqvist
374c870b96 Drop the mapping of POSIX function names to the underscored versions, it's
* glib.h: (Win32) Drop the mapping of POSIX function names to the
underscored versions, it's unnecessary after all. With MSVC we get
them from oldnames.lib, with gcc-2.95 and mingw32 from
-lmoldname-msvc. Add comment about what headers to include for
prototypes.
1999-10-05 16:05:38 +00:00
Tor Lillqvist
7359af948d Don't define WIN32 and NATIVE_WIN32.
1999-10-05  Tor Lillqvist  <tml@iki.fi>

* glibconfig.h.win32.in: Don't define WIN32 and NATIVE_WIN32.

* gerror.c (g_on_error_query): (Win32) Slightly more verbosity.

* build-dll: Don't strip.

* gmodule.h: (Win32) Use __declspec(dllexport) in G_MODULE_EXPORT
only with gcc.
1999-10-04 23:04:34 +00:00
Manish Singh
65ef92cea4 use G_HAVE_CYGWIN in favor of G_OS_FEATURE_CYGWIN
-Yosh
1999-10-04 02:48:10 +00:00
Manish Singh
7ea73a0199 G_OS_FOO #defines. I *think* I got the cygwin and beos stuff right, but
I haven't tested it. The respective porters should fix any screwups

-Yosh
1999-10-04 02:32:50 +00:00
Tim Janik
4944d4df46 define NULL as (0L) if __cplusplus is defined, to avoid "ANSI C++ forbids
Wed Sep 22 01:53:18 1999  Tim Janik  <timj@gtk.org>

        * glib.h (NULL): define NULL as (0L) if __cplusplus is defined, to
        avoid "ANSI C++ forbids implicit conversion from `void *' in argument
        passing" errors upon NULL usage in C++ programs (gcc-2.95 is on crack
        for erroring out on this, instead of just issueing a warning).

        * glib.h (g_trash_stack_pop): use uncasted NULL again.
1999-09-21 23:55:19 +00:00
Tim Janik
ddfc68fc98 applied patch from Soeren Sandmann <sandmann@daimi.au.dk>, to force mem
Fri Sep 17 10:24:45 1999  Tim Janik  <timj@gtk.org>

        * gmem.c (g_mem_chunk_compute_size) (g_mem_chunk_new): applied patch
        from Soeren Sandmann <sandmann@daimi.au.dk>, to force mem chunk's area
        sizes to be a multitiple of atom_size, and to eliminate the MAX_MEM_AREA
        restriction of 65536 bytes. we also catch cases where users pass an area
        size < atom size with a return_if_fail statement now (which is ok,
        because previously this lead to memory corruption anyways).
1999-09-17 09:02:48 +00:00
Tim Janik
2a6f3bd69a add explicit (GTrashStack*) cast for NULL pointer to cure ANSI C++ error.
Thu Sep 16 13:19:54 1999  Tim Janik  <timj@gtk.org>

        * glib.h (g_trash_stack_pop): add explicit (GTrashStack*) cast for NULL
        pointer to cure ANSI C++ error.
1999-09-17 06:03:09 +00:00
Tim Janik
6072e65caf in case we have to abort the program, debugging is enabled and we are not
Mon Sep 13 23:25:59 1999  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_logv): in case we have to abort the program,
        debugging is enabled and we are not called recursively, try
        to abort with raise (SIGTRAP) first, so developers may ignore
        certain failure conditions during debugging stage.
1999-09-13 22:17:27 +00:00
Tim Janik
ebeb32f252 added --export-dynamic so we can load dynmic modules, (required, according
Thu Aug 26 15:09:36 1999  Tim Janik  <timj@gtk.org>

        * Makefile.am:
        * gmodule/Makefile.am:
        * gthread/Makefile.am: added --export-dynamic so we can load dynmic
        modules, (required, according to the libtool 1.3.3 docu).
1999-08-26 13:09:50 +00:00
Sebastian Wilhelmi
e435032d6e Use /dev/urandom, as it doesn't block, which /dev/random might do. Do not
1999-07-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* grand.c (g_rand_new): Use /dev/urandom, as it doesn't block,
	which /dev/random might do. Do not XOR the time, when getting the
	seed form /dev/urandom, as this is good itself. Prevent the
	initial seed from being zero, which causes the PRNG to produce
	only zeros. Hints from Colin Plumb <colin@pgp.com>.
1999-08-19 08:32:03 +00:00
Tor Lillqvist
80c44ef391 Add a cast.
* glib.h (g_trash_stack_push): Add a cast.

	* gslist.c
	* glist.c: Make the inline functions static inline, and add
	separate extern wrappers. Not all compilers produce callable entry
	points for inline functions, even if gcc does.
1999-08-17 17:41:01 +00:00
Tim Janik
9c53053abe eliminate memset() call, since string.h has not neccessarily been included
Sun Aug 15 02:47:14 1999  Tim Janik  <timj@gtk.org>

        * glib.h (g_trash_stack_pop): eliminate memset() call, since string.h
        has not neccessarily been included prior to glib.h.

Mon Aug  2 21:03:10 1999  Tim Janik  <timj@gtk.org>

        * configure.in: added --enable-msg-prefix option.

        * gmessages.c (g_log_default_handler): feature "prg_name (pid:%u): "
        if --enable-msg-prefix was selected (use "(process:%u): " if
        g_get_prgname () returns NULL, along the lines of g_on_error_query).
1999-08-15 00:58:48 +00:00
Tor Lillqvist
1c6c7f7489 glib.h gstrfuncs.c Rename g_strccpy to g_strcompress and g_strecpy to
* glib.h
	* gstrfuncs.c
	* tests/strfunc-test.c: Rename g_strccpy to g_strcompress and
	g_strecpy to g_strescape per Tim Janik's suggestion. Dropped the
	destination parameter, always g_malloc a new string.  Fix bug in
	g_strcompress, octal digits were gobbled up without limit, should
	use max three.

	Sources that use g_strescape must have ifdefs to be compilable
	both with GLib 1.2 and 1.3.
1999-08-02 23:16:32 +00:00
Manish Singh
4877766d0e glib.h the #define for g_strescape interfered with the compilation of the
* glib.h
* gstrfuncs.c: the #define for g_strescape interfered with the
compilation of the function, so just remove the function and
note that it's deprecated in the header

-Yosh
1999-08-01 00:54:14 +00:00
Tor Lillqvist
1146c6fbb3 New functions.
* gstrfuncs.c (g_strccpy, g_strecpy): New functions.

	* glib.h: Declare and document them. Define the deprecated
	g_strescape as a macro that calls g_strecpy.

	* tests/strfunc-test.c (main): Test them.

	* makefile.{cygwin,msc}.in
	* tests/makefile.{cygwin,msc}.in: Remove gstack and its test
	program.

	* glib.def: Additions and removals.

	* README.win32: Improve gcc build instructions.

	* build-dll: Also build import library for MSVC.
1999-07-31 21:45:21 +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
Tor Lillqvist
c8a28b935c Win32: With the latest gcc (2.95, pre-release), we can have binary
compatibility with MSVC by using the switch -fnative-struct. No
 	longer build DLLs with .gcc in the name when using gcc.
1999-07-21 19:18:41 +00:00
Tor Lillqvist
da87b1ac85 Correct URL for mingw runtime sources.
* README.win32: Correct URL for mingw runtime sources.

	* build-dll: Combine commands with &&.

	* glib.h: Map also rmdir() and hypot() for MSVCRT library.

	* makefile.cygwin.in
	* tests/makefile.cygwin.in: New DLL naming style. GCC-compiled DLLs are
 	now called *.gcc.dll, to avoid binary incompatibilities with
 	MSVC-compiled versions.

	* makefile.msc.in: Cosmetics.
1999-07-12 23:11:27 +00:00
Sebastian Wilhelmi
4982cdbe7e Test for pthread_join rather than for pthread_create to determine the
1999-07-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Test for pthread_join rather than for
	pthread_create to determine the right thread-lib. Makes it work on
	mips-sgi-irix6.5. Hitn from to Jari Vuoksenranta
	<javu@piano.ux.phys.jyu.fi>.
1999-07-07 12:36:45 +00:00
Tor Lillqvist
bbb6ccbab7 *** empty log message *** 1999-07-02 21:41:48 +00:00
Sebastian Wilhelmi
d610460c22 Added a g_memmove replacement for platforms without memmove, where bcopy
1999-07-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in, acconfig.h, gutils.c: Added a g_memmove
	replacement for platforms without memmove, where bcopy can't
	handle overlapping copies and the corresponding checks, which is
	taken form the PERL Configure routine.

	* glib.h: Updated the commentary about g_memmove to be right and
	more GLib-like.

	* configure.in: Removed test for rand_r, as it isn't used anymore.
1999-07-01 09:30:18 +00:00
Sebastian Wilhelmi
f80d6cc540 Finally removed the g_random_normal and g_rand_normal functions.
1999-06-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, grand.c: Finally removed the g_random_normal and
	g_rand_normal functions.
1999-06-30 08:10:01 +00:00
Tor Lillqvist
d5039b2943 Add missing export of g_strncasecmp.
* glib.def: Add missing export of g_strncasecmp.
1999-06-28 06:53:43 +00:00
Jose Mercado
92a9354a9e More spec file cleanups from Jose Mercado of Jose Mercado fame.
1999-06-21  Jose Mercado  <jmercado@mit.edu>

	* glib.spec.in: Changed version number (1.1->1.3) in files section
	to allow rpm to build packages again.
1999-06-21 23:07:58 +00:00
Tor Lillqvist
be80f9a106 Update the pthreads snapshot version we want. Advice how to hand-expand
* README.win32: Update the pthreads snapshot version we want.
	Advice how to hand-expand the makefile.*.in files.

	* config.h.win32.in: Define values needed by Sebastian Wilhelmi's
	new thread stuff.

	* glib.def: Add new functions.

	* glibconfig.h.win32.in: Update the pthreads snapshot version.
	Fix typo.

	* gthread.c: Include config.h, guard inclusion of unistd.h.  When
 	using gcc on Win32, g_thread_functions_for_glib_use must be marked
 	for export here, too.

	* gtimer.c: Implement g_usleep on native Win32 using Sleep (which
	only has millisecond granularity, though).

	* makefile.cygwin.in
	* makefile.msc.in: Update pthreads snapshot version. File
	name changes. Remove testgthread.

	* tests/makefile.cygwin.in
	* tests/makefile.msc.in: Add thread-test. Link with gthread lib.

	* gthread-posix.c: Guard pthread_attr_setscope call with test
	for _POSIX_THREAD_PRIORITY_SCHEDULING, which should be defined
	in a <pthread.h> that supports that feature.
1999-06-20 22:20:43 +00:00
Jeff Garzik
5452cb1518 Re-order tests in alpha order.
1999-06-18  Jeff Garzik  <jgarzik@pobox.com>

        * tests/Makefile.am:  Re-order tests in alpha order.
1999-06-18 16:36:25 +00:00
Sebastian Wilhelmi
07e4603073 Changed test for pthread_attr_setstacksize from AC_TRY_COMPILE to
1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Changed test for pthread_attr_setstacksize from
	AC_TRY_COMPILE to AC_TRY_LINK.
1999-06-18 07:19:38 +00:00
Sebastian Wilhelmi
90f6cc9bf2 Completed the thread support in GLib. Thread creation, prioritizing
1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
	Completed the thread support in GLib. Thread creation,
	prioritizing threads, yielding, joining threads as well as
	reader/writer locks and recursive mutexes are now in place. Please
	test heavily on your platform. It is so far tested on
	Linux/i386/pthreads, Solaris/Sparc/pthreads and
	Solaris/Sparc/solaristhreads.

	* gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
	thread safe sleeping. (sleep() is not MT-safe at all!)

	* gutils.c: Avoid compiler warning.

	* tests/Makefile.am, tests/thread-test.c: New program to test some
	aspects of the thread implementation.

	* gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
	change of content.

	* configure.in: Purged all appearances of nspr.

	* gthread/gthread-posix.c, gthread-solaris.c: Added the native
	implementations for the GLib's extended thread support.

	* gthread/gthread-nspr.c: Removed for good. NSPR is nothing we
	would want to build upon.

	* gthread/gthread.c: Renamed to gthread-impl.c to avoid
	confusion with ../gthread.c (Formerly known as the file called
	gmutex.c)

	* gthread/testgthread.c: Removed. The new and much extended
        tests are in ../tests/thread-test.c.

	* gthread/Makefile.am: Changed to reflect the changes above.
1999-06-17 15:39:31 +00:00
Manish Singh
ed49525102 libtool 1.3.2 (BeOS changes merged)
-Yosh
1999-06-02 18:43:45 +00:00
Tor Lillqvist
37e447f278 Backslashify also '"' characters.
* gstrfuncs.c (g_strescape): Backslashify also '"' characters.

	* glib.h: Document g_strescape.
1999-05-29 10:28:06 +00:00
Tor Lillqvist
e334434a9d Map fileno to _fileno for mingw32. Map fstat to _fstat.
* glib.h (Win32): Map fileno to _fileno for mingw32. Map fstat to
 	_fstat.

	* README.win32: Advice also to remove -lmoldname from the
 	patch to the egcs-1.1.2 spec file patch.
1999-05-12 18:59:49 +00:00
CDT 1999 Shawn T. Amundson
2fd4a22a9d Another small fix.
Wed May 12 00:23:55 CDT 1999 Shawn T. Amundson <amundson@gtk.org>

        * gmodule/Makefile.am: Another small fix.
1999-05-12 05:27:34 +00:00
Tor Lillqvist
f6eb31132c Correct rules for making the win32-related files that are made from
* Makefile.am tests/Makefile.am: Correct rules for making the
	win32-related files that are made from corresponding .in files.
	Is there a cleaner way than explicitly writing rules that invoke
	config.status?
1999-05-08 14:14:32 +00:00
CDT 1999 Shawn T. Amundson
0e7f2f16f7 Better testing reveals better methods. Fixes for BeOS.
Sat May  8 06:00:17 CDT 1999 Shawn T. Amundson <amundson@gtk.org>

        * configure.in
          gmodule/Makefile.am
          gthread/Makefile.am: Better testing reveals better
          methods.  Fixes for BeOS.
1999-05-08 11:04:26 +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
Manish Singh
380709d62f libtool 1.3 upgrade
use -avoid-version and -module for test plugins

-Yosh
1999-05-01 18:00:00 +00:00
Tor Lillqvist
d6c6eb3d92 More editing. Use gcc, not ld to link. On native Win32 use _unlink(). Use
* README.win32: More editing.
	* build-dll: Use gcc, not ld to link.
	* glib.h: On native Win32 use _unlink().
	* gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
	not _MSC_VER.
	* gstring.c: Include <io.h> on Win32 for _read prototype.
	* gutils.c: Remove old IO channel code (was in #if 0).
	* makefile.cygwin: Don't need to link with kernel32 and msvcrt
	explicitly, they are included anyway.
1999-04-25 20:52:42 +00:00
Tor Lillqvist
2aa1277d60 Support added for building using a GNU toolchain on Win32,
i.e. gcc -mno-cygwin on cygwin (a.k.a. mingw32, using egcs-1.1.2).

	* README.win32: Updated.
	* build-dll makefile.cygwin tests/makefile.cygwin: New files.
	* glib.h glib.def glibconfig.h.win32 makefile.msc: Slight updates.
	* gmain.c: No need to include <fcntl.h> and <io.h> on Win32.
	* gmain.c gutils.c testglib.c tests/string-test.c: Test for
	NATIVE_WIN32, not _MSC_VER.
	* gmutex.c: Must declare g_thread_functions_for_glib_use as
	exported (using the GUTILS_C_VAR macro).
	* gutils.c gmodule/libgplugin_[ab].c: LibMain not needed.
	* gmodule/gmoduleconf.h.win32: Need underscore with gcc.
	* gthread/gthread.c: With gcc on Win32, must use memcpy to assign
	value of g_thread_functions_for_glib_use (?).
	* makefile.msc tests/makefile.msc: Cosmetics.
1999-04-24 13:52:51 +00:00
BST 1999 Tony Gale
0269749a67 Fix typo in g_string_ncasecmp macro (by me). Add b_string_strncasecmp
Fri Apr 23 14:29:25 BST 1999  Tony Gale <gale@gtk.org>

        * glib.h: Fix typo in g_string_ncasecmp macro (by me).
          Add b_string_strncasecmp macro.
1999-04-23 13:34:09 +00:00
Sebastian Wilhelmi
737d9c6714 use sysconf (_SC_GETPW_R_SIZE_MAX) as the new initinal bufsize for
1999-04-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_get_any_init): use sysconf (_SC_GETPW_R_SIZE_MAX) as
	the new initinal bufsize for getpwuid_r on systems, that support
	this. Hint from Holger Duerer <H.Duerer@zait.uni-bremen.de>.
1999-04-22 13:16:10 +00:00
BST 1999 Tony Gale
32aecf31a7 Add new g_string functions for reading from file/socket descriptors, and
Sat Apr 17 20:55:13 BST 1999  Tony Gale <gale@gtk.org>

        * glib.h, gstring.c: Add new g_string functions for reading
          from file/socket descriptors, and tokenising strings.

          Added various g_string macros.
1999-04-17 20:04:49 +00:00
Tor Lillqvist
fb55f0056e Mention the tests directory.
* README.win32: Mention the tests directory.

	* glib.def: Add the functions from grand.c.

	* glibconfig.h.win32: Add unsigned max values, and the format
 	strings.

	* makefile.msc: Add grand.

	* tests/{date-test,node-test}.c: Include <stdlib.h> for exit().

	* tests/makefile.msc: New file.
1999-04-13 21:05:08 +00:00
Sebastian Wilhelmi
3aa65d30eb Moved struct declaration up. Style fixes.
1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h: Moved struct declaration up. Style fixes.

	* grand.c: Style fixes. Only try to open /dev/random once.

	* tests/rand-test.c (main): New tests; Slight bug fix.
1999-04-12 12:53:37 +00:00
Sebastian Wilhelmi
95aff22dff New files to implement the Mersenne Twister Pseudo Random Number
1999-04-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* grand.c, tests/rand-test.c: New files to implement the Mersenne
	Twister Pseudo Random Number Generator.

	* glib.h, AUTHORS, Makefile.am, tests/Makefile.am: Changed
	accordingly.
1999-04-09 14:40:58 +00:00
Shawn Amundson
bbc2cc4e0e Increment some version numbers, add warning to configure.
Increment some version numbers, add warning to configure.

-Shawn
amundson@gtk.org
1999-04-09 02:16:39 +00:00
Sebastian Wilhelmi
0ca3f612e7 Added a check for the right format to printf and scanf long longs. It is
1999-03-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Added a check for the right format to printf and
	scanf long longs. It is %qi instead of %lli on FreeBSD for
	whatever reason.
1999-03-30 14:25:50 +00:00
Raja R Harinath
44714ea838 Make sure `glibconfig.h' exists after the rule is fired.
* Makefile.am (glibconfig.h): Make sure `glibconfig.h' exists
after the rule is fired.
(install-exec-local): Install glibconfig.h only if the contents
are different from the currently installed glibconfig.h.
1999-03-29 00:02:37 +00:00
Raja R Harinath
74ba3d4d40 Rename from configincludedir so that glibconfig.h will be installed as
* Makefile.am (configexecincludedir): Rename from
configincludedir so that glibconfig.h will be installed
as part of `make install-exec'.
1999-03-26 21:03:45 +00:00
Tor Lillqvist
aa8d510e87 Update version numbers.
* config.h.win32: Update version numbers.

	* glibconfig.h.win32: Update version numbers and pthreads-win32-
 	related magic values.

	* README.win32: Some improvements.

	* makefile.msc: Add gqueue and gstack. Correct version number.
1999-03-25 22:55:48 +00:00
Manish Singh
79986f1e8b acinclude.m4 config.guess config.sub ltconfig upgrade to libtool 1.2f
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.2f

* autogen.sh: libtool is not required to autogen glib

* acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly needed)

-Yosh
1999-03-20 00:44:22 +00:00
Jeff Garzik
5bf6ee6baf Add new g_list, g_stack, g_queue functions.
1999-03-18  Jeff Garzik  <jgarzik@pobox.com>

        * glib.def: Add new g_list, g_stack, g_queue functions.
1999-03-18 15:51:26 +00:00
Sebastian Wilhelmi
84b6512630 forgot to include submitter.
forgot to include submitter.
1999-03-18 14:44:03 +00:00
Sebastian Wilhelmi
3e95674232 added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES) to hold various defines
1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
	to hold various defines to get the right thread implementation on
	different platforms. Also look in -ldce for pthread_create. Should
	make it work on HP-UX 10.x.

	* gthread/Makefile.am (INCLUDES): Added @GTHREAD_COMPILE_IMPL_DEFINES@.
1999-03-18 14:41:38 +00:00
Jeff Garzik
05f42cc0e2 Add copyright, clean up code a bit.
1999-03-17  Jeff Garzik  <jgarzik@pobox.com>

        * gstack.c, gqueue.c:
        Add copyright, clean up code a bit.
1999-03-17 15:38:18 +00:00
Sebastian Wilhelmi
771d712085 Added missing values for G_MAXU(SHORT|INT|LONG) on platforms with only
1999-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Added missing values for G_MAXU(SHORT|INT|LONG) on
	platforms with only /usr/include/values.h.

	* acconfig.h: Removed unnecessary macros.

        * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
	from config.h.win32 to glibconfig.h.win32. Taken from glib 1.2
	branch.

	* configure.in: Also accept _Pctime_r instead of ctime_r, while
	seraching for the right `_REENTRANT' flag. This is for Digital
	UNIX 4.0d. Taken from glib 1.2 branch.
1999-03-17 09:46:59 +00:00
Tim Janik
181f079319 added GLIB_CHECK_VERSION() macro similar to GTK_CHECK_VERSION().
Wed Mar 17 03:14:56 1999  Tim Janik  <timj@gtk.org>

        * glib.h: added GLIB_CHECK_VERSION() macro similar to
        GTK_CHECK_VERSION().
1999-03-17 02:38:24 +00:00
Sebastian Wilhelmi
5f17e39e2a Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
Wed Mar 17 01:46:28 1999  Tim Janik  <timj@gtk.org>

        * merges from glib-1-2:

Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>

        * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
        to g_return_if_fail().
        (g_mem_profile):
        (g_mem_chunk_print):
        (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
        messages.

        * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
        to g_return_if_fail().
        * grel.c (g_*): changed a bunch of g_assert() statements to
        g_return_if_fail() and added some extra ones to check relation != NULL.

Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>

        * configure.in: check for working realloc (NULL,).
        * gmem.c (g_realloc): use malloc() for initial allocation on systems
        where realloc(NULL,) will not work (this is the case on SunOS, reported
        by Tom Geiger).

Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>

        * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
        flag around the call to g_hook_free() to avoid spurious
        warnings (happens during destruction phase).

1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
        Friedrich Dominicus <Friedrich.Dominicus@inka.de>
1999-03-17 01:05:49 +00:00
Timur Bakeyev
5d1e3dc14e pthread_create in libc
1999-03-16  Timur Bakeyev  <mc@bat.ru>

	* configure.in: Fix problem with pthread_create in libc, as running
	"gcc test.c -l " is not legal.
1999-03-16 22:07:28 +00:00
Sebastian Wilhelmi
f64f75fde5 Added a test for the G_(U)?INT(16|32|64)_FORMAT and
1999-03-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

       * tests/type-test.c: Added a test for the
       G_(U)?INT(16|32|64)_FORMAT and G_(MIN|MAX|MAXU)(SHORT|INT|LONG)
       macros.
1999-03-16 16:02:05 +00:00
Sebastian Wilhelmi
9c2c6ee11b Removed G_(U)?INT8_FORMAT again, as it can't be used for scanf.
1999-03-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * configure.in: Removed G_(U)?INT8_FORMAT again, as it can't be
        used for scanf.

        * configure.in: Added the macros G_MAXU(SHORT|INT|LONG). I do not
        know how to handle these on platforms with /usr/include/values.h,
        but without /usr/include/limits.h. Please someone add this.
1999-03-16 14:25:01 +00:00
Sebastian Wilhelmi
d9f1357113 Added the macros G_(U)?INT_(8|16|32|64)_FORMAT to use for printf and (much
1999-03-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Added the macros G_(U)?INT_(8|16|32|64)_FORMAT to
	use for printf and (much more important) scanf format strings for
	the corresponding GLib types.

	* glib.h Added G_(U)?(SHORT|INT|LONG)_FORMAT for consistency. It
	however makes no sense to also provide G_(FLOAT|DOUBLE)_FORMAT, as
	they are different for printf (f for both) and scanf (f for float,
	lf for double). Defining G_INT_FORMAT makes sense however, as we
	might want to define gint to something different than int someday
	in the future. Idea from Sascha Brawer <sb@adasys.ch>.
1999-03-15 16:09:15 +00:00
Jeff Garzik
21d0ac27b8 Commented out debugging output.
1999-03-14  Jeff Garzik  <jgarzik@pobox.com>

        * gdate.c:
        Commented out debugging output.

        * tests/Makefile.am, tests/date-test.c:
        Added test of the GDate module, based closely on testgdate.c.

        * tests/Makefile.am:
        Bugfix - compile tests with @GLIB_DEBUG_FLAGS@.
1999-03-14 23:46:51 +00:00
Raja R Harinath
bfc21756e1 Remove widechar tests and defines. (fd_set): Change the grep for `fd_mask'
* configure.in (glibconfig.h): Remove widechar tests and defines.
(fd_set): Change the grep for `fd_mask' to search for `fd_set'.
* gerror.c (fd_mask): Remove conditional typedef.  It is not used
elsewhere in the file.
* gmain.c (fd_mask): Likewise.
1999-03-14 20:57:41 +00:00
Sebastian Wilhelmi
cc7f889607 Test for posix threads first, then for dce threads.
1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

       * configure.in: Test for posix threads first, then for dce threads.

       * gthread/gthread-posix.c (g_private_get_posix_impl): Fixed
       typo for DCE implementation.
1999-03-12 15:28:36 +00:00
Sebastian Wilhelmi
4c63008b6c Revamped the thread configure stuff. Now dce threads (old posix draft) are
1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Revamped the thread configure stuff. Now dce
	threads (old posix draft) are recogniced. This is necessary,
	because dce threads are in fact working quite differently from
	posix threads. Also changed the conditions for checking for MT
	safe functions a bit, because G_THREADS_IMPL_NONE still have to
	compile thread safe.

	* gthread/gthread-posix.c: Now handle both dce and posix
	threads. They are sufficently equal.

NOTE: Please do not commit my change to
glib-1-2/{acconfig.h,configure.in,config.h.win32} from 1999-03-03, as
the current change will take care of that too.
1999-03-11 17:38:51 +00:00
Jeff Garzik
fd7ba69e32 Added stack, queue ADTs and related tests.
Tue Mar  9 14:37:32 1999  Jeff Garzik  <jgarzik@pobox.com>

        * Makefile.am, glib.h, gstack.c, gqueue.c,
          tests/Makefile.am, tests/queue-test.c, tests/stack-test.c:
        Added stack, queue ADTs and related tests.

        * glib.h, glist.c:
        New g_list_delete() function.
1999-03-09 19:41:19 +00:00
Asbjørn Pettersen
0ecd369530 add OS/2 changes 1999-03-06 10:05:32 +00:00
Josh MacDonald
f3dfc20057 Add g_spaced_primes_closest to glib.def, it was missing. 1999-03-04 02:17:22 +00:00
Sebastian Wilhelmi
1ed6997670 Fixed yet another bloody implementation of getpwuid_r. This time for AIX.
1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_get_any_init): Fixed yet another bloody
	implementation of getpwuid_r. This time for AIX. Thanks to Olaf
	Dietsche <olaf.dietsche+list.gtk@netcologne.de>. I would like a
	configure test better than that, but have no idea, how to do that
	easily.
1999-03-01 07:55:34 +00:00
Tim Janik
9816c0fa17 moved old ChangeLog to ChangeLog.pre-1-2, and started new one.
Sat Feb 27 01:18:47 1999  Tim Janik  <timj@gtk.org>

        * ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started
        new one.

        * configure.in: set glib version to 1.3.0.
1999-02-27 00:25:58 +00:00
Shawn Amundson
a66533dbfa Increment version to 1.2.0.
Increment version to 1.2.0.

-Shawn
amundson@gtk.org
1999-02-25 21:34:25 +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
Michael Fulbright
a9a2206fc6 I've made the spec file autogenerated, and I tweaked it
Dr Mike <drmike@redhat.com>
1999-02-21 18:58:59 +00:00
Tim Janik
af15d082a8 plugged a memory leak, reported by Koen D'Hondt <ripley@xs4all.nl> on 15
Thu Feb 18 08:24:12 1999  Tim Janik  <timj@gtk.org>

        * gmem.c (g_realloc): plugged a memory leak, reported by Koen D'Hondt
        <ripley@xs4all.nl> on 15 Oct 1998. allocate inital block from realloc.
1999-02-18 08:13:19 +00:00
Elliot Lee
ba2def0aee glib.spec: Do --enable-debug=no for the .rpm's.
glib.spec: Do --enable-debug=no for the .rpm's.
1999-02-18 00:10:04 +00:00
Tor Lillqvist
1dfbfe9823 Must define HAVE_PTHREAD_GETSPECIFIC_POSIX. Pity I didn't notice this
until just after 1.1.16... sigh.
1999-02-17 17:48:17 +00:00
CST 1999 Shawn T. Amundson
95a5574cf4 version=1.1.16
Tue Feb 16 14:08:59 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * NEWS
          README
          INSTALL
          config.h.win32
          configure.in
          glib.spec
          glibconfig.h.win32
          docs/glib-config.1: version=1.1.16

        * Released GLib 1.1.16
1999-02-16 21:20:13 +00:00
Sebastian Wilhelmi
8168836cd2 Changed signature of all g_static_mutex_* functions to take a pointer
1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, glibconfig.h.win32, configure.in: Changed signature of
	all g_static_mutex_* functions to take a pointer rather than the
	struct itself. This is not an issue at the moment, because those
	funcs are really macros, but is it un'G'ish and might fall on our
	feet in the future.

	* gthread/testgthread.c (test_mutexes): Use new signature of
	g_static_mutex* functions.
1999-02-15 08:26:00 +00:00