Commit Graph

22 Commits

Author SHA1 Message Date
Tim Janik
37e4b8c87e changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>

	* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
	to contain an optional init function and a hint at whether the
	boxed structure uses ref counting internally.
	added g_value_set_boxed_take_ownership().
	made G_TYPE_BOXED an abstract value type.

	* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
	types.

	* glib-genmarshal.c: argument type changes, preparation for third-party
	arg specification.

	* gobject.[hc]: cleaned up get/set property code.
	added g_strdup_value_contents() to improve warnings.

	* gparam.[hc]: added g_param_value_convert(), taking over responsibility
	of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
	validation alterations may be valid a part of the property setting
	process.

	* gparamspecs.[hc]: made value comparisons stable (for sort applications).
	added GParamSpecValueArray, a param spec for value arrays and
	GParamSpecClosure. nuked the value exchange functions and
	GParamSpecCCallback.

	* gtype.[hc]: catch unintialized usages of the type system with
	g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
	to flag types that introduce a value table, but can't be used for
	g_value_init(). cleaned up reserved type ids.

	* gvalue.[hc]: code cleanups and saner checking.
	nuked the value exchange API. implemented value transformations, we
	can't really "convert" values, rather transforms are an anylogy to
	C casts, real conversions need a param spec for validation, which is
	why g_param_value_convert() does real conversions now.

	* gvaluearray.[hc]: new files that implement a GValueArray, a struct
	that can hold inhomogeneous arrays of value (to that extend that it
	also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
	this is exposed to the type system as a boxed type.

	* gvaluetransform.c: new file implementing most of the former value
	exchange functions as single-sided transformations.

	* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
	g_value_set_string_take_ownership().

	* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.

	* *.[hc]: many fixes and cleanups.

	* many warning improvements.

Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>

	* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
	into G_VALUE_LCOPY(), this needs proper documenting.

	* gparam.c: fixed G_PARAM_USER_MASK.

	* gtype.c (type_data_make_W):
	(type_data_last_unref_Wm): fixed invalid memory freeing.

	* gobject.c (g_object_last_unref): destroy signal handlers associated
	with object, right before finalization.

	* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
	that don't actually support details.

	* gobject.[hc]: got rid of property trailers. nuked GObject
	properties "data" and the "signal" variants.
	(g_object_connect): new convenience function to do multiple
	signal connections at once.
	(g_object_disconnect): likewise, for disconnections.

	* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.

	* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
	as private (the latter got renamed from g_value_get_as_pointer()).

Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>

        * glib-object.h: add gvaluearray.h.

        * gstring.[hc]: fixup naming of g_string_sprint*.

        * gtypes.h: fixed GCompareDataFunc naming.

Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>

        * gobject/Makefile.am: shuffled rules to avoid excessive
        rebuilds.

        * gobject/gobject-sections.txt: updates.

        * gobject/tmpl/*: bunch of updates, added another patch
        from Eric Lemings <eric.b.lemings@lmco.com>.
2001-03-07 14:46:45 +00:00
Havoc Pennington
32ef70d4b2 New module to parse a simple markup language
2000-10-24  Havoc Pennington  <hp@pobox.com>

        * gmarkup.h, gmarkup.c: New module to parse a simple
	markup language

	* Makefile.am: add gmarkup.h, gmarkup.c

	* tests/Makefile.am: add markup-test

	* gstring.h (g_string_new_len): new function to create a string
	with a length
	(g_string_new): avoid a gratuitous realloc
2000-10-27 02:46:04 +00:00
Martin Baulig
a3fc275ddd Several minor ANSI C fixes.
2000-09-29  Martin Baulig  <baulig@suse.de>

	Several minor ANSI C fixes.

	Added missing casts:
	* gdate.c (g_date_fill_parse_tokens): `s = (guchar *) str'.
	* gmain.c (g_idle_dispatch): `func = (GSourceFunc) source_data'.
	(g_idle_add_full): `(gpointer) function' in call to g_source_add().
	* gstrfuncs.c (g_strdown): `s = (guchar *) string' and
	`return (gchar *) string'.
	(g_strup): Likewise.
	(g_strchug): `start = (guchar*) string' in 1st for() argument;
	`strlen ((gchar *) start)' in call to g_memmove().
	* gstring.c (g_string_down): `s = (guchar *) string->str'.
	(g_string_up): Likewise.
	* gthreadpool.c (stop_this_thread_marker):
	`(gpointer) &g_thread_pool_new'.
	* gunidecomp.h (decomp_table[]): Cast all the strings to
	`unsigned char *'.

	Put text following #endif into comments:
	* gmain.c: here.
2000-09-29 13:37:01 +00:00
Sebastian Wilhelmi
fab90158aa Use g_return_val_if_fail instead of g_return_if_fail, as the function now
2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gstring.c (g_string_free): Use g_return_val_if_fail instead of
	g_return_if_fail, as the function now is supposed to return
	something.
2000-09-01 13:45:43 +00:00
Darin Adler
4010a5acb2 Return the data left behind. Return the data left behind.
* glib.h:
    * garray.c: (g_array_free), (g_ptr_array_free),
    (g_byte_array_free): Return the data left behind.
    * gstring.c: (g_string_free): Return the data left behind.

    Changed the free calls that leave data behind so they
    return a pointer to the left-behind data, NULL if told not
    to leave anything behind. This makes these calls easier
    to use correctly, without any incompatible API change for
    callers that don't know about the return value. Of course,
    it would be even clearer if the free calls weren't dual-purpose
    in the first place.
2000-08-17 21:37:18 +00:00
Tim Janik
c9bd7542e1 applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>

        * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
        updates the license headers to the GNU Lesser General Public License,
        as well as updating the copyright year to 2000.
2000-07-26 11:02:02 +00:00
Owen Taylor
6e47268c14 updated
Thu Jun 29 15:57:28 2000  Owen Taylor  <otaylor@redhat.com>

        * NEWS: updated

	* Makefile.am: added snapcheck target to go along with snapshot

	* gstring.c glib.h (g_string_hash): Add g_string_hash to
	go along with g_string_equal.

Tue Jun 27 12:40:23 EDT 2000  David A. Wheeler <dwheeler@dwheeler.com>

	* glib.h: Added g_string_equal for comparing GStrings;
	changed g_str_equal so it returns gboolean (instead of gint).

	* gstring.c: Modified GString implementation to support embedded
	ASCII NUL ('\0') characters, and implemented g_string_equal.

	* testglib.c tests/string-test.c: Added tests for g_string_equal
	and tests for proper handling of embedded ASCII NUL characters.
2000-06-29 20:09:36 +00:00
Tim Janik
1fe02b28ad added argument assertments.
Fri May 19 11:39:29 2000  Tim Janik  <timj@gtk.org>


        * gutils.c (g_snprintf):
        (g_vsnprintf): added argument assertments.

        * gstring.c (g_string_assign): added argument assertments.
        (g_string_truncate): make len a guint.
2000-05-19 10:01:08 +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
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
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
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
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
Sebastian Wilhelmi
b37e032581 s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added G_LOCK_EXTERN macro
1999-02-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h: s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added
	G_LOCK_EXTERN macro to declare a lock externally.
1999-02-10 09:40:46 +00:00
Tim Janik
b2e318ff3e version bump to 1.1.8, binary age 0, interface age 0.
Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>

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

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

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

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

        garray.c:
        gcache.c:
        gdataset.c:
        gdate.c:
        ghash.c:
        glist.c:
        gmain.c:
        gnode.c:
        gslist.c:
        gstring.c:
        gtree.c:
        gutils.c:
        changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
        s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
1998-12-16 05:38:35 +00:00
Owen Taylor
931ea95265 This commit merges the glib-threads branch into the main
branch. See the ChangeLog for details of the changes.

In brief overview:

 - The set of threading functions can be set
 - A default implementation is provided in -lgthread
 - All static data structures are locked using these
   functions if g_thread_init() is called.
1998-12-15 05:28:02 +00:00
Tim Janik
9c1692c260 removed the GListAllocator type and its g_*_allocator_*() function
Tue Nov 24 09:40:00 1998  Tim Janik  <timj@gtk.org>

        * glib.h: removed the GListAllocator type and its g_*_allocator_*()
        function variants (which weren't working anyways) in favour of a
        generic GAllocator type. new functions:
        g_allocator_new, g_allocator_free, g_slist_push_allocator,
        g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
        g_node_push_allocator and g_node_pop_allocator.

        * gstring.c: removed bogus slist allocator code.
        * gtree.c: maintain own list of free tree nodes and don't waste
        GSLists for that, removed bogus slist allocator code.
        * glist.c: use GAllocators for node allocation.
        * gslist.c: use GAllocators for node allocation.
        * gnode.c: use GAllocators for node allocation.

        * gdataset.c: cleanups wrt automatic initialization.
1998-11-24 12:18:22 +00:00
Tim Janik
b420fa8418 removed this function which was not publically exported in glib.h. to
Mon Aug 24 02:08:56 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gstring.c:
        * gstrfuncs.c:
        (g_vsprintf): removed this function which was not publically
        exported in glib.h. to export it, it should have been named
        differently in the first place, since its semantics differ from
        vsprintf(). apart from that, it was a possible cause for
        problems since it worked on a previously allocated memory area and
        was used in a lot places of glib. exporting it would have been a
        guararant for problems with threaded programs.
        (g_printf_string_upper_bound): exported this function to return
        a string size, guarranteed to be big enough to hold the fully
        expanded format+args string. added 'q', 'L' and 'll' flag handling.
        in fact, the newly allocated area is in most cases much bigger than
        required.
        (g_strdup_vprintf()): new function returning a newly allocated string
        containing the contents of *format and associated args (size is
        calculated with g_printf_string_upper_bound()).
        (g_strdup_printf): new function which wraps g_strdup_vprintf().

        * configure.in: check for va_copy() or __va_copy() alternatively.
        check whether va_lists can be copyied by value.

        * glib.h: provide a definition for G_VA_COPY.

        * glib.h:
        * gmessages.c:
        (g_logv):
        (g_vsnprintf):
        pass va_lists by value, not by reference, since this causes problems
        on platforms that implement va_list as as arrays. internaly, use
        G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
        va_list variable, if multiple passes are required. changed all
        callers.

        * glib.h:
        * gerror.h:
        renamed g_debug() to g_on_error_query(), cleaned up a bit.
        renamed g_stack_trace() to g_on_error_stack_trace() since both
        functions cluttered different namespaces.
        there is an appropriate comment in glib.h now that explains the
        unix and gdb specific dependencies of both functions.
        removed g_attach_process().
        g_on_error_stack_trace() should probably be handled with caution,
        i've seem several different linux versions (2.0.x) become unstable
        after invokation of this function.
1998-08-24 05:26:53 +00:00
Tim Janik
9cde2ffe5f made private functions static.
Mon Aug 17 15:21:42 1998  Tim Janik  <timj@gtk.org>

        * grel.c: made private functions static.
1998-08-17 14:47:49 +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
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