Commit Graph

714 Commits

Author SHA1 Message Date
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
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
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
Sebastian Wilhelmi
ecaaedcf58 updated .cvsignore 1999-11-16 12:30:49 +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
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
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
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
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
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
4d7172def0 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.

	* README.win32: Renew gcc build instructions.

	* build-dll: Comments change, handle also .a files.

	* makefile.cygwin.in
	* tests/makefile.cygwin.in: Remove .gcc from DLL name.
1999-07-21 19:18:03 +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
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
f052c34705 small tests/.cvsignore commit
small tests/.cvsignore commit
1999-06-17 15:47:52 +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
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
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
Tor Lillqvist
276f1eea2c Minor details fixed. 1999-04-25 20:54:55 +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
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
Jeff Garzik
cb33239290 be quiet cvs 1999-04-11 00:34:06 +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
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
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
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
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
EST 1999 Jeff Garzik
d5492a983c - Revert previous "fix" (which really just did things a different way). -
Sun Jan 24 00:36:22 EST 1999  Jeff Garzik  <jgarzik@pobox.com>

        * ghash.c:
        - Revert previous "fix" (which really just did things a
          different way).
        - (g_hash_table_remove): Don't need to support multiple values
          for a single key.

        * tests/hash-test.c:
        Add test where hash function always returns a single value.
        Add beginnings of tests for g_hash_table_foreach[_remove] and
        g_hash_table_remove.
1999-01-24 06:18:43 +00:00
Jeff Garzik
448e792b0a - Fixed bug that overwrote nodes in hash buckets instead of adding them to
Sat Jan 23 22:45:59 1999  Jeff Garzik  <jgarzik@pobox.com>

        * ghash.c (g_hash_table_lookup_node, g_hash_table_lookup,
                   g_hash_table_insert, g_hash_table_remove,
                   g_hash_table_lookup_extended):
          - Fixed bug that overwrote nodes in hash buckets instead of
            adding them to the hash bucket node list.
            Hash tables now work as advertised.

        (g_hash_table_resize):
          - Use g_new0 instead of manual init.
          - Space out code a bit for readability.

        (g_hash_nodes_destroy):
          - Replaced "if (!hash_node) return;" with
            "if (hash_node) {do stuff}".
            Testing takes up less code space than explicit call to
            'return' before end of function.  (look at gcc -S)

        Updated module header copyright to 1999.
        New module macro G_HASH_BUCKET for (table,key)->bucket lookups.

        * tests/hash-test.c:
        - Add two new tests, one with strings as the keys and values, and
          one with ints as the keys and values.  Tests indirect (strings)
          and direct (ints) hashing.
        - Cleanup unused junk left over from testglib.c.
        - Converted a g_print call to g_assert_not_reached.
        - Updated copyright to 1999.

        * testglib.c, tests/string-test.c:
        - Init 'tmp_string' var to NULL, silencing uninit-var warning.
1999-01-24 04:18:11 +00:00
Tim Janik
63cc3f3cfb cleaned up the errno mess for GETPWUID. we especially don't want to
Sat Jan 23 02:14:28 1999  Tim Janik  <timj@gtk.org>

        * gutils.c (g_get_any_init): cleaned up the errno mess for
        GETPWUID. we especially don't want to g_error() out here!
        the warning for G_THREADS_ENABLED and !HAVE_GETPWUID_R isn't
        gcc related.
        if !HAVE_PWD_H and !NATIVE_WIN32, g_free the home dir before
        resetting it to NULL, why are we doing this anyways?
        reordered code a bit so we always provide defaults (except
        for g_home_dir).
1999-01-23 02:16:11 +00:00
EST 1999 Jeff Garzik
dc22ea7760 Add braces to eliminate an ambiguous else warning.
Thu Jan 21 12:40:11 EST 1999  Jeff Garzik  <jgarzik@pobox.com>

        * gmodule/gmodule-dl.c (_g_module_build_path):
        Add braces to eliminate an ambiguous else warning.

        * tests/{Makefile.am, string-test.c, strfunc-test.c}:
        Separate string and strfunc tests, working towards goal of
        having separate test for each of the GLib modules.
        Add a couple GString length tests.
1999-01-21 18:07:20 +00:00
Manish Singh
5afc0d6cf4 acinclude.m4 ltconfig upgrade to libtool 1.2d (with fixes for irix6 and
* acinclude.m4
* ltconfig
* ltmain.sh: upgrade to libtool 1.2d (with fixes for irix6 and osf)

* testglib.c: removed unused cruft

-Yosh
1999-01-13 06:47:03 +00:00
Jeff Garzik
b4c62873da alloca and vasprintf go away 1999-01-11 20:24:28 +00:00
Jeff Garzik
5eeca0d62d Make all aux functions static.
* testglib.c:
        Make all aux functions static.

        * tests/Makefile.am, tests/dirname-test.c, tests/type-test.c:
        New tests dirname-test and type-test, from testglib.
1999-01-09 20:10:45 +00:00
Manish Singh
228a8ffd85 ditch whitespace before GLIB_SYSDEFS #includes, the # needs to be in
* configure.in: ditch whitespace before GLIB_SYSDEFS #includes,
the # needs to be in column 1

* gthread/testgthread.c: cleanups

* tests/node-test.c: #include unistd.h for exit()

-Yosh
1999-01-05 20:29:49 +00:00
Tim Janik
72b139a74d adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros so their
Mon Jan  4 14:38:11 1999  Tim Janik  <timj@gtk.org>

        * glib.h: adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros
        so their arguments get only evaluated once. changed g_strconcat3_a to
        have the same semantics as g_strconcat, i.e. if a certain argument is
        NULL, the rest of the parameter list is skipped.

        * tests/alloca-test.c: removed #if/#endif G_HAVE_ALLOCA, we need to be
        able to compile on all systems. added test for g_strconcat() semantics.

        * we need a alloca() replacement for !G_HAVE_ALLOCA rsn!
1999-01-04 13:49:05 +00:00
CST 1999 Shawn T. Amundson
887c4449d9 Released GLib 1.1.12
Mon Jan  4 02:58:13 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * Released GLib 1.1.12

        * INSTALL:
          NEWS:
          README:
          configure.in:
          glib.spec:
          docs/glib-config.1: version=1.1.12

        * tests/Makefile.am: fixed so it works properly with
          builddir and srcdir.
1999-01-04 10:07:44 +00:00
Jeff Garzik
e5795df8fd Add tree test. 1999-01-03 07:37:47 +00:00
Jeff Garzik
4b72e45233 add array-test.c
* tests/Makefile.am:
        add array-test.c

        * tests/array-test.c:
        New module, tests array family

        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
          tests/string-test.c, tests/node-test.c:
        Clean out cruft left over from testglib.
1999-01-03 06:44:45 +00:00
Jeff Garzik
0b74f03e70 Added 'make check' tests, based on testglib code. 1999-01-03 03:42:59 +00:00
Jeff Garzik
81224ac5ac Added g_alloca, g_new_a, g_new0_a macros. 1999-01-03 00:53:58 +00:00
Jeff Garzik
ab114d33f7 Added g_strdup_printf check 1999-01-02 21:45:39 +00:00
Jeff Garzik
bbbfe78d70 Handle NULL strings like g_strdup. s/g_strconcat_a/g_strconcat3_a/ to
* glib.h:
        (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
        s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args

        * testglib.c:
        Added g_strdup, g_strconcat checks.
        Added str==NULL checks for alloca string macros.
        s/g_strconcat_a/g_strconcat3_a/
1999-01-02 03:05:36 +00:00
Manish Singh
3de4d2b781 made the alloca tests follow the testglib style
* testglib.c: made the alloca tests follow the testglib style

* Makefile.am: minor cleanups, mostly cosmetic

-Yosh
1999-01-02 02:40:39 +00:00
Jeff Garzik
58aaa9d32b added g_strndup_a macro
* glib.h: added g_strndup_a macro

        * testglib.c:
        Added tests for new alloca-based string routines.
        Reformatted a couple strings.
1999-01-02 01:51:08 +00:00
Havoc Pennington
98e5d88bbe Two new files. This is kind of ugly code, but I want to go ahead and make
1998-12-02  Havoc Pennington  <hp@pobox.com>

* testgdate.c, testgdateparser.c: Two new files. This is kind of
ugly code, but I want to go ahead and make the tests available.
It isn't contaminating any other code. :-) Since one of these
is interactive and the other takes a while to run, I've kept
them separate from testglib for now.
* Makefile.am: Build gdate test programs.
1998-12-02 20:20:35 +00:00
Owen Taylor
be7ab912ee Added g_list_sort() and g_slist_sort() to merge sort GLists and GSLists.
Fri Nov 13 15:17:34 1998  Owen Taylor  <otaylor@redhat.com>

	* glist.c gslist.c glib.h: Added g_list_sort() and
	g_slist_sort() to merge sort GLists and GSLists.
	Submitted by Sven Over <sven.over@ob.kamp.net>
	over a year ago!

	* testglib.c: Test the new sort functions.
1998-11-13 20:50:41 +00:00
Manish Singh
11376df686 use __extension__ for long long on gcc >= 2.8 and egcs, and provide a
* configure.in: use __extension__ for long long on gcc >= 2.8 and
egcs, and provide a G_GINT64_CONSTANT wrapper so -ansi -pedantic
compiles clean.

* glib.h: make the endian x86 asm __const__ so the compiler can do
better optimizations. Also remove the cc clobber, these shouldn't
be changing condition codes. Ditch some redundant casts. Add an
optimization for 64-bit endian conversions in x86. Use constant
wrapper for the generic method.

* testglib.c: use constant wrappers for 64-bit constants

-Yosh
1998-11-11 01:26:10 +00:00
Manish Singh
7e04691726 applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog entry
* applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
entry appended below)

* testglib.c
* gstrfuncs.c
* glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone

* gmessages.c
* gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H

-Yosh
1998-11-01 04:19:54 +00:00
Manish Singh
215251e99d reimplemented the endian stuff, using inline asm for x86. #define g_htonl
* glib.h: reimplemented the endian stuff, using inline asm for x86.
#define g_htonl and friends.

* testglib.c: new tests for the endian stuff

* configure.in: care for AIX in gmodule linker flags test (from Joel Becker
<jlbec@raleigh.ibm.com>). Check $host_os for linux instead of existance of
/usr/include/linux

* gutils.c: buh-bye evil warning. Thou hast been #ifdef'd out of thine
existance!

-Yosh
1998-10-27 06:19:42 +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
Manish Singh
034e7c0339 This is Josh, commiting as Manish. This is completely new, and
nothing will break.

	* glib.h: New function g_hash_table_foreach_remove is similar to
 	g_hash_table_foreach, but the callback's return value indicates
 	whether to remove the element (if TRUE) or not (if FALSE).
1998-09-20 09:43:11 +00:00
Tim Janik
0b42c37e7d check for all three inline keywords individually.
Mon Sep  7 07:53:21 1998  Tim Janik  <timj@gtk.org>

        * configure.in: check for all three inline keywords individually.

        * glib.h: inlining hassle. for compilers that don't allow the `inline'
        keyword, mostly because of strict ANSI C compliance or dumbness, we try
        to fall back to either `__inline__' or `__inline'.
        we define G_CAN_INLINE, if the compiler seems to be actually *capable*
        to do function inlining, in which case inline function bodys do make
        sense. we also define G_INLINE_FUNC to properly export the function
        prototypes if no inlinig can be performed. we special case most of the
        stuff, so inline functions can have a normal implementation by defining
        G_INLINE_FUNC to extern and G_CAN_INLINE to 1.

        * ltconfig: (compiler PIC flag test): special case linux for non
        aout systems to honour lcc's position independant code (cases
        "linux*aout)" and "linux*)" got added). (this needs to go into
        libtool which does an advanced test, checking for __LCC__).

        * autogen.sh: take $CC=lcc into account by invoking automake with
        --include-deps so lcc isn't scared by gcc's auto-dependancy
        generation code. care about $ACLOCAL_FLAGS. optionally feature
        autoheader.

        * minor fixups in other places to cure some of lcc's warnings.
1998-09-07 09:43:54 +00:00
Manish Singh
7401460a60 Mostly changes to GArray code. See ChangeLog. 1998-09-02 07:44:02 +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
George Lebl
041a14df58 fix 64-bitness in g_prints, sizeof doesn't seem to return int so I cast it
Wed Aug 05 01:15:36 1998  George Lebl  <jirka@5z.com>

        * testglib.c: fix 64-bitness in g_prints, sizeof doesn't
          seem to return int so I cast it for printing, probably
          just cosmetic
1998-08-05 08:15:58 +00:00
Tim Janik
16b83a9a50 version bump to 1.1.1, binary age 1, interface age 0. updates. updates.
Tue Aug  4 15:17:54 1998  Tim Janik  <timj@gtk.org>

        * configure.in: version bump to 1.1.1, binary age 1, interface age 0.
        * NEWS: updates.
        * README: updates.
        * INSTALL: updates and fixes.
        * COPYING: include the GNU LGPL, rather than shipping an empty file.
        * AUTHORS: listed original authors here, and added people who made
        significant improvements to glib.

        * glib.h:
        * gutils.c: implement g_get_current_dir() which returns a newly
        allocated string, instead of a g_getcwd() variant that operates
        on a static buffer.
        export glib_interface_age and glib_binary_age.
        as a convenience, macro definitions have been added for
        g_node_insert_data, g_node_insert_data_before, g_node_append_data and
        g_node_prepend_data.

        * testglib.c: minor cleanups, print current dir.
1998-08-04 14:26:27 +00:00
Tim Janik
5272119ce9 added a GNode test.
Fri Jul 31 22:17:05 1998  Tim Janik  <timj@gtk.org>

        * testglib.c (g_node_test): added a GNode test.

Fri Jul 31 09:08:16 1998  Tim Janik  <timj@gtk.org>

        * Makefile.am: compile gnode.c.

        * glib.h:
        * gnode.c: added implementation of n-way trees.

        * gtree.c (g_tree_traverse): added a warning to the switch() statement
        which says that G_LEVEL_ORDER is not implemented.
1998-07-31 20:21:10 +00:00
Tim Janik
acc1c38efe new fuction g_dirname() which returns a newlly allocated string.
Tue Jul 14 09:05:18 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gutils.c: new fuction g_dirname() which returns a newlly
        allocated string.
1998-07-14 07:39:07 +00:00
Federico Mena Quintero
05b2f03c6a Use GINT_TO_POINTER casts to remove compiler warnings.
1998-06-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* testglib.c (main): Use GINT_TO_POINTER casts to remove compiler
	warnings.

	* grel.c: #include <string.h>
1998-06-18 20:37:11 +00:00
Josh MacDonald
df9a49ec3c [Changes from josh to sync with his glib stuff -Yosh]
Fri Jun 12 00:39:28 1998  Josh MacDonald  <jmacd@icw.EECS.Berkeley.EDU>

        * glib.h: add new hash and equal functions g_int_*.  complement
        g_direct_hash with g_direct_equal.

        * grel.c: new file, GRelations implement tuples of N-N mappings.
        A comment in glib.h briefly describes the interface.

        * ghash.c: new function, g_hash_table_size

        * glib.h: new typedefs, gsize, gssize, gtime.

        * garray.c: new functions implementing a simplified GArray.  This
        GPtrArray is an array of gpointers and has functions to add and
        remove elements, much like java.lang.Vector.

        * garray.c: new functions for the single-byte special case of
        GArray.  The functions g_byte_array* operate on arrays of bytes.
        Internally, a GArray is used.

        * testglib.c: tests for g_ptr_array, g_byte_array, and g_relation...
1998-06-12 09:38:32 +00:00
Owen Taylor
2e0320d57e Initial revision 1998-06-10 23:21:14 +00:00