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 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.
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-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-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.
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
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-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.
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-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.
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.
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.
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-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 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-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-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.
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>.
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-12 Tor Lillqvist <tml@iki.fi>
* config.h.win32.in: Define the new GLIB_SIZEOF_* constants here,
too.
* glib.h: Small Win32 comments improvement.
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).
* 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 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.
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.
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).
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.
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-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>.
* 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.
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).
* 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.
* 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
* 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.
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.