Commit Graph

43 Commits

Author SHA1 Message Date
Manish Singh
0dbf1d8cc4 Added g_memdup implementation
-Yosh
1998-09-18 18:32:59 +00:00
Tim Janik
4193614b1c make the datalists a safe type (not using a generic gpointer) by expecting
Fri Sep 18 18:46:14 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gdataset.c: make the datalists a safe type (not using a generic
        gpointer) by expecting a GData* argument in the g_datalist functions.
        provide g_dataset_foreach() and g_datalist_foreach() functions that
        allow a GDataForeachFunc function to walk the data lists.
        (g_dataset_destroy_internal): made this function truely reentrant (i.e.
        can be called from within destroy notifiers as well).
        the *_foreach functions are _not_ reentrant (unless all the other
        dataset and datalist functions).
1998-09-18 18:16:49 +00:00
Tim Janik
ea4b8e4c02 implemented g_datalist_* along the lines of g_dataset, but operates on an
Thu Sep 17 06:36:25 1998  Tim Janik  <timj@gtk.org>

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

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

        * gmodule.h:
        * gmodule.c: implemented g_module_make_resident() which can be
        used to make modules resident.
        fixed a buglet about the optional "g_module_de_init" function in
        modules, which could get invoked twice on very obscure occasions.
1998-09-17 04:59:41 +00:00
Tim Janik
91e9b770c6 explicitely include the prototypes for inline functions to cure gcc
Fri Sep 11 02:11:46 1998  Tim Janik  <timj@gtk.org>

        * glib.h: explicitely include the prototypes for inline functions
        to cure gcc warnings for -Wmissing-prototypes.
1998-09-11 00:16:22 +00:00
Tim Janik
1d59832946 abandon the use of ATEXIT(), we keep the fallback macros for backwards
Tue Sep  8 05:04:06 1998  Tim Janik  <timj@gtk.org>

        * glib.h: abandon the use of ATEXIT(), we keep the fallback
        macros for backwards compatibility. people ought to use g_atexit().

        * gutils.c (g_atexit): new function to take over the implementation
        of ATEXIT. this function is guarranteed to succeed, similar to
        g_malloc().
1998-09-08 04:00:13 +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
bb8d9aba23 provide proper ATEXIT behavior on NeXTStep by !atexit
-Yosh
1998-09-06 19:33:54 +00:00
Tom Tromey
f57c045bd6 Define. New define. (g_bit_nth_msf): Use it. Also, add prototype.
Sat Sep  5 18:03:36 1998  Tom Tromey  <tromey@cygnus.com>

	* gutils.c (GLIB_INLINE): Define.
	* glib.h (GLIB_INLINE): New define.
	(g_bit_nth_msf): Use it.  Also, add prototype.
	(g_bit_storage): Likewise.
	(g_bit_storage): Likewise.
1998-09-06 00:31:48 +00:00
Tim Janik
1c3646f597 use g_mem_chunk_alloc0() to allocate the memchunk, so the correct size of
Sat Sep  5 04:40:02 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        (g_chunk_new0): use g_mem_chunk_alloc0() to allocate the memchunk,
        so the correct size of the memchunk is allocated with 0's and not
        a memory portion of the size of the desired type.

        * gmem.c: new function g_mem_chunk_alloc0() which will initialize
        a memory area allocated with g_mem_chunk_alloc() with 0's.
1998-09-05 06:53:43 +00:00
Owen Taylor
fa58379289 make data argument const.
Wed Sep  2 19:13:28 1998  Owen Taylor  <otaylor@redhat.com>

	* garray.c glib.h (g_array_[ap/pr]epend_vals): make
	data argument const.
1998-09-02 23:11:04 +00:00
Tim Janik
519435e642 new function g_strnfill() to return a new string of specified length,
Wed Aug 26 06:32:40 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gstrfuncs.c: new function g_strnfill() to return a new string
        of specified length, filled with a specific character.
1998-09-02 14:57:10 +00:00
Manish Singh
7401460a60 Mostly changes to GArray code. See ChangeLog. 1998-09-02 07:44:02 +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
Manish Singh
47074edbbd added g_strndup
-Yosh
1998-08-19 01:24:13 +00:00
Tim Janik
e1f0fb0c1e new function g_log_set_always_fatal() to set an additional fatal_mask for
Tue Aug 18 04:40:17 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gmessages.c: new function g_log_set_always_fatal() to set an
        additional fatal_mask for log levels that are considered to be fatal
        globally (required by gtk). since this mask is not domain-associated,
        it is restricted to the log levels, introduced by glib itself.

        * gmem.c:
        * grel.c:
        * gtree.c (g_tree_node_check):
        don't use g_print() calls for informational/debugging output,
        but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
        libraries shouldn't use printf(), g_print() or g_printerr() at all.
1998-08-18 03:50:35 +00:00
Tim Janik
d7f2383949 if __STRICT_ANSI__ is defined, make `inline' a noop, since strict ANSI
Tue Aug 18 02:46:44 1998  Tim Janik  <timj@gtk.org>

        * glib.h (__STRICT_ANSI__): if __STRICT_ANSI__ is defined, make
        `inline' a noop, since strict ANSI rules don't permit `inline'.
1998-08-18 01:01:54 +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
e93e494518 feature an extra MODULES parameter, so glib-config can be invoked with the
Mon Aug 17 01:46:14 1998  Tim Janik  <timj@gtk.org>

        * glib.m4: feature an extra MODULES parameter, so glib-config can
        be invoked with the "gmodule" argument.

        * glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
        g_return*_if_fail statements, and made them issue a message
        like "assertion `%s' failed".

        * gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
        g_log_find_domain.
1998-08-17 00:00:51 +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
Elliot Lee
ab385b6f05 Sun Aug 16 Elliot Lee
glib.h - #error out if we don't recognize the SIZEOF_VOID_P
		 #warning if no gint64
1998-08-16 16:56:52 +00:00
Manish Singh
731d403c87 It's GTime now, and it's back!
-Yosh
1998-08-11 00:57:36 +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
8b853a62c5 change order of gpointer data; field in struct _GNode to be partly binary
Mon Aug  3 16:02:26 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gnode.c: change order of gpointer data; field in struct _GNode to
        be partly binary compatible with GList and GSList.
1998-08-03 14:06:18 +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
fe00841ff8 #if 0'ed out the GTime definition, until it is definitively needed. #if
Mon Jul 27 01:02:27 1998  Tim Janik  <timj@gtk.org>

        * glib.h: #if 0'ed out the GTime definition, until it is definitively
        needed. #if 0'ed out the g_getcwd() version, because it is the wrong
        implementation.
1998-07-27 01:23:18 +00:00
Tim Janik
822650b4e5 #if 0'ed out the GTime definition, until it is definitively needed.
Mon Jul 27 01:02:27 1998  Tim Janik  <timj@gtk.org>

        * glib.h: #if 0'ed out the GTime definition, until it is definitively
        needed.
1998-07-26 23:06:01 +00:00
Mark Crichton
a87caec45b DANGER WILL ROBINSON! Ok, normally I don't do things like this, but this
DANGER WILL ROBINSON!
Ok, normally I don't do things like this, but this one is simple to reverse.
On NetBSD, /usr/include/time.h defines gtime.  This conflicts with gtime in
glib.h.  HENCE, I changed the glib.h gtime to g_time.  If this is wrong, please
put in a more proper fix.

Thanks,
Mark Crichton
<mcrichto@purdue.edu>
1998-07-25 20:16:56 +00:00
Tim Janik
ce85619724 indentation fixes. 1998-07-25 03:03:01 +00:00
Tim Janik
b813e192c6 new functions to make a scanner scope sensitive wrt symbol lookups.
Thu Jul 23 00:29:14 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gscanner.c: new functions to make a scanner scope sensitive wrt
        symbol lookups.
        g_scanner_scope_foreach_symbol, g_scanner_scope_lookup_symbol,
        g_scanner_scope_remove_symbol, g_scanner_scope_add_symbol and
        g_scanner_set_scope.
        g_scanner_add_symbol, g_scanner_remove_symbol and
        g_scanner_foreach_symbol are now aliases for scope 0.
1998-07-22 22:32:22 +00:00
George Lebl
d2063fdc73 typo fixed for alphas for gint64
Mon Jul 20 23:05:34 1998  George Lebl  <jirka@5z.com>

        * glib.h: typo fixed for alphas for gint64
1998-07-21 06:06:12 +00:00
Elliot Lee
4e2aaa2372 Add gint64/guint64 if possible (HAVE_GINT64 is defined if we have it,
Add gint64/guint64 if possible (HAVE_GINT64 is defined if we have it,
since I don't think "long long" works on 32-bit platforms that don't have
gcc...
1998-07-20 15:53:36 +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
Manish Singh
da0f2dde98 While we're off changing glib.h, correct some cosmetic nits. No changed
functionality.

-Yosh
1998-07-10 06:53:27 +00:00
Tim Janik
49ae057a97 added a bunch of utility/wrapper functions: g_basename(), g_getcwd(),
Fri Jul 10 06:33:43 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gutils.h: added a bunch of utility/wrapper functions:
        g_basename(), g_getcwd(), g_get_user_name(), g_get_real_name(),
        g_get_home_dir(), g_get_tmp_dir(), g_get_prgname() and g_set_prgname().

        * gutils.c: removed all g_str* functions.
        * gstrfuncs.c: moved the bunch g_str* functions from gutils.c in this
        place. this file shall never include <stdlib.h> to avoid clashes for
        some of the g_str* functions on some OSes.
1998-07-10 05:51:17 +00:00
Lauri Alanko
5b52f01535 Renamed g_hash_table_lookup_full to g_hash_table_lookup_extended to
conform with naming conventions.
1998-07-09 21:35:59 +00:00
Lauri Alanko
7519c2338a Generic hash cleanup, added a function (g_hash_table_lookup_full). 1998-07-07 08:27:58 +00:00
Manish Singh
61bccc36a9 Added g_array_length
-Yosh
1998-07-04 20:39:29 +00:00
Tim Janik
afdf8b93a3 removed g_dataset_try_key, g_dataset_force_id and g_dataset_retrive_key in
Fri Jun 19 03:11:02 1998  Tim Janik  <timj@gtk.org>

        * gdataset.c: removed g_dataset_try_key, g_dataset_force_id and
        g_dataset_retrive_key in favour of GQuarks.
        a GQuark is an numeric id wich is associated with a certain string.
        (g_quark_try_string): try to get the quark associated with this string,
        if the lookup failed return 0.
        (g_quark_from_string): get the associated quark for a string, if there
        isn't currently a GQuark associated with this string, then allocate a
        new quark and return that.
        (g_quark_from_static_string): like the above function, but the string
        isn't strdup()ed to save memory.
        (g_quark_to_string): get the string that is associated with a certain
        GQuark.

        * gdataset.c (g_dataset_id_set_data_full): invoke the destroy function
        _after_ the new data has been setup.
1998-06-19 02:00:23 +00:00
Owen Taylor
12edfe9084 Changed messages for g_return_[val]_if_fail to be somewhat more clear:
Thu Jun 18 02:35:21 1998  Owen Taylor  <otaylor@gtk.org>

	* glib.h: Changed messages for g_return_[val]_if_fail to
	be somewhat more clear: assertion "blah" failed.
1998-06-19 01:24:25 +00:00
Tim Janik
860af205b6 cleanups of the structure fields (binary incompatible).
Fri Jun 12 15:39:06 1998  Tim Janik  <timj@gtk.org>

        * glib.h (GScanner): cleanups of the structure fields (binary
        incompatible).
1998-06-12 14:39:38 +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
Tim Janik
b49ead6fe5 new function g_dataset_retrive_key. adjusted prealloc sizes, to take up
Thu Jun 11 04:15:31 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gdataset.c: new function g_dataset_retrive_key. adjusted prealloc
        sizes, to take up less space on initial allocation.
1998-06-11 03:38:33 +00:00
Owen Taylor
375b23836d Added glib.h which was mistakenly in .cvsignore 1998-06-10 23:28:29 +00:00