Released GLib 1.1.9
[platform/upstream/glib.git] / ChangeLog.pre-2-8
1 Wed Dec 16 23:04:26 CST 1998 Shawn T. Amundson <amundson@gtk.org>
2
3         * Released GLib 1.1.9 
4
5         * INSTALL:
6           NEWS:
7           README:
8           configure.in:
9           glib.spec:
10           docs/glib-config.1: version=1.1.9
11
12 Wed Dec 16 22:32:13 CST 1998 Shawn T. Amundson <amundson@gtk.org>
13
14         * glib.h:
15           giounix.c: s/g_main_poll_add/g_main_remove_add/g
16                      s/g_main_poll_remove/g_main_remove_poll/g
17                      s/g_main_poll_add_unlocking/g_main_add_unlocking_poll/g
18           (from Tim Janik)
19
20 Wed Dec 16 20:04:10 PST 1998 Manish Singh <yosh@gimp.org>
21
22         * configure.in: check for pthread_attr_init in all cases, du4
23         needs this since most of the other functions are just #defines
24
25 Thu Dec 17 04:10:49 1998  Tim Janik  <timj@gtk.org>
26
27         * glib.h (G_LOCK_DECLARE_*): if !G_THREADS_ENABLED, eat the
28         trailing semicolon with a bogus function declaration, instead
29         of with a bogus variable declarations, so we avoid unused
30         variable warnings.
31
32 Wed Dec 16 07:49:16 PST 1998 Shawn T. Amundson <amundson@gtk.org>
33
34         * Released GLib 1.1.8  (CVS tag is GLIB_1_1_8a)
35
36 1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
37
38         * giounix.c (g_io_channel_unix_get_fd): Fixed small bug.
39
40 1998-12-16  Joel Becker  <jlbec@ocala.cs.miami.edu>
41
42         * glib.h, gscanner.c: changed func_data to user_data in
43         g_scanner_scope_symbol_foreach and associated friends, because
44         AIX headers #define func_data.
45
46 1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
47
48         * configure.in: Fixed stupid bug, that made
49         g_static_mutex_lock(*mutex) not work as expected.
50
51         * docs/glib-config.1: Updated to reflect the existence of gthread.
52
53         * gmain.c (g_main_poll_add_unlocking): Changed
54         g_main_poll_add_unlocked to g_main_poll_add_unlocking to match
55         semantic, (indeed, main_loop must be locked, when calling this
56         function). Removed the unlocking from the end of that function, as
57         that is not right. Made a 'HOLDS' comment above the function.
58
59 Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>
60
61         * configure.in: version bump to 1.1.8, binary age 0, interface age 0.
62
63         * glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
64         g_trylock() to G_TRYLOCK(), since these are macros that expand to
65         nothing with --disable-threads.
66         changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
67         G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
68         changed semantics of g_thread_supported to g_thread_supported() so it
69         can be used as a function like g_module_supported(). the actuall
70         definition is still a macro that expands into a variable for
71         performance reasons though.
72         various indentation and coding style cleanups.
73
74         * configure.in: added --enable-threads that defaults to yes.
75
76         * gmutex.c: changed tests g_thread_supported to g_thread_supported (),
77         changed variable settings of g_thread_supported
78         to g_threads_got_initialized.
79
80         garray.c:
81         gcache.c:
82         gdataset.c:
83         gdate.c:
84         ghash.c:
85         glist.c:
86         gmain.c:
87         gnode.c:
88         gslist.c:
89         gstring.c:
90         gtree.c:
91         gutils.c:
92         changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
93         s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
94
95 Tue Dec 15 23:16:05 CST 1998 Shawn T. Amundson <amundson@gtk.org>
96
97         * INSTALL:
98           NEWS:
99           README 
100           configure.in:
101           glib.spec:
102           docs/glib-config.1: Incremented version
103
104 Wed Dec 16 22:29:48 1998  Joel Becker  <jlbec@ocala.cs.miami.edu>
105
106         * configure.in: fixed the AIX thread checking.
107         Just an error on the wildcard.  BTW, -D_THREAD_SAFE
108         is correct for AIX.
109
110 Wed Dec 16 02:02:48 1998  Tim Janik  <timj@gtk.org>
111
112         * glib-config.in (lib_glib): fixed library and flag ordering for
113         --libs
114
115 Tue Dec 15 17:17:46 1998  Owen Taylor  <otaylor@redhat.com>
116
117         * glib.h giounix.c giochannel.c: Use an "inheritance"
118         scheme for IO channel memory allocation.h
119
120 1998-12-15  Havoc Pennington  <hp@pobox.com>
121
122         * gdate.c (g_date_prepare_to_parse): Solaris has a broken strftime
123         that produced garbage output for the test date I was using to 
124         set up the parser. So use a different date that Solaris seems
125         to like.
126
127 1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
128
129         * configure.in: Dont complain, if --without-threads or
130         --with-threads=none is supplied; Test for pthread_attr_init
131         instead of pthread_cond_init, if threads seems to be supported by
132         standard glib. (CFLAGS): Use G_THREAD_CFLAGS for compiling of glib
133         as well.
134
135         * glib.h, gmutex.c: Changed private to private_key to avoid
136         problems when compiling with under C++.
137
138 1998-12-15  Jeff Garzik  <jgarzik@Pobox.com>
139
140         * configure.in:
141         bugfixes, correctly support --without-threads and friends
142
143         * gthread/testgthread.c: corrected 64-bitness problem
144
145 Tue Dec 15 10:40:09 1998  Owen Taylor  <otaylor@redhat.com>
146
147         * gnode.c glist.c gslist.c: Make sure all
148         calls to g_node_validate_allocator are within
149         current_allocator lock, so we have consistency
150         on that point. (Should not really matter,
151         but this way we match the comments)
152
153         * glist.c (g_list_free_1): Removed some lines
154         that should never have been committed. (For
155         debugging)
156
157 1998-12-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
158
159         * gthread/gthread-nspr.c, configure.in: Added new default thread
160         implementation on top of the mozilla nspr library.
161
162         * gmem.c, gmessaged.c, gthread/gthread.c, gthread/gthread-*.c:
163         Changed GStaticMutex and GStaticPrivate in gmem.c and gmessages.c
164         into GMutex and GPrivate resp. to make error reporting and use of
165         gmem possible in most (not all, though) gthread functions. Also
166         initialized the modules via new init functions.
167
168         * configure.in: Fixed syntax bug in definition of type
169         GStaticMutex.
170
171         * gthread/testgthread.c: Updated to work with nspr, but see note
172         there for remaining problems.
173
174 1998-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
175
176         * gmutex.c, glib.h: Now abort, if a mutex/cond/private is
177         allocated before the thread system is set up.
178
179         * gthread/gthread.c (g_thread_init): Removed g_thread_try_init(),
180         as it is not necessary. Changed the error message. Corrected logic
181         for g_thread_use_default_impl.
182
183         * gmutex.c (g_mutex_init): Keep the thread private data array
184         after calling g_thread_init().
185
186 1998-12-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
187
188         * gthread/testgthread.c (new_thread): Now also working for posix
189         threads; (wait_thread): Now a better implementation, that does not
190         use 100% CPU.
191
192         * Made the thread related code follow GNU coding standard.
193
194         * Made a comment (HOLDS:) above each function, that expects the
195         given locks to be held.
196
197         * Changed try_lock to trylock throughout.
198
199         * glib.c: Eventually removed the #if 0'ed code for old GStaticMutex.
200
201         * glib.c: Corrected g_trylock macro for G_DEBUG_LOCKS.
202
203         * gmain.c (g_main_poll_add_unlocked): first take a new poll record
204         form the poll_free_list.
205                 
206         * gmem.c, gstrfuncs.c, gutils.c: Made it MT safe.
207
208         * gthraed/*.c: Added copyright headers.
209
210         * gthread/gthread-solaris.c: do not use g_log for errors, as g_log
211         uses these module and endless recursions might happen, just use a
212         plain fprintf(stderr,...).
213
214         * gthread/gthread.c (g_thread_try_init): Call g_mutex_init().
215
216         * gthread/testgthread.c: updated test program.
217         
218 Tue Dec  8 18:49:56 1998  Owen Taylor  <otaylor@redhat.com>
219
220         * Start at adding thread-safety. (mostly work
221         of Sebastian Wilhelmi <wilhelmi@ira.uka.de>)
222
223         - configure.in now looks for a system thread implementation.
224         Currently support is included for POSIX threads
225         and Solaris threads. The default support is built
226         into a separate library -lgthread.
227
228         - The thread implementation can be modified by passing
229         a vector of functions g_thread_init().
230
231         - The default or supplied functions are used to
232         implement a small set of thread functions for
233         mutexes, condition variables, and thread-private
234         data.
235
236         - GLib now uses these functions to provide thread
237         safety. (In the sense that all global static
238         data is locked... individual structures must still
239         be locked by the caller.)
240
241 Sat Dec 12 19:08:59 1998  Tim Janik  <timj@gtk.org>
242
243         * configure.in: always define G_HAVE_INLINE if __cplusplus is
244         defined, reported by Wan-Teh Chang <wtc@netscape.com>.
245
246 Thu Dec 10 21:49:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
247
248         * Released GLib 1.1.7
249
250         * INSTALL:
251           NEWS:
252           README:
253           configure.in:
254           glib.spec:
255           docs/glib-config.1: Increased version to 1.1.7
256
257 Wed Dec  9 22:44:44 EST 1998 Joel Becker <jlbec@ocala.cs.miami.edu>
258
259         * Removed #define of G_COMPILED_WITH_DEBUGGING from glibconfig.h
260         It shouldn't be there, and it was causing a double #define.
261         (config.h defines it also)
262
263 Tue Dec  8 12:18:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
264
265         * Released GLib 1.1.6
266
267         * NEWS: updated
268
269 Mon Dec  7 23:10:41 PST 1998 Manish Singh <yosh@gimp.org>
270
271         * gmain.c: fixes to #undef HAVE_POLL case
272
273 1998-12-02  Havoc Pennington  <hp@pobox.com>
274
275         * gdate.c (g_date_set_month): If Julian is valid, we have to 
276         update the dmy representation before setting the components
277         of it.
278         (g_date_set_day): Same.
279         (g_date_set_year): Same.
280
281 1998-12-02  Havoc Pennington  <hp@pobox.com>
282
283         * testgdate.c, testgdateparser.c: Two new files. This is kind of 
284         ugly code, but I want to go ahead and make the tests available. 
285         It isn't contaminating any other code. :-) Since one of these 
286         is interactive and the other takes a while to run, I've kept 
287         them separate from testglib for now.
288         * Makefile.am: Build gdate test programs.
289         
290 1998-12-02  Havoc Pennington  <hp@pobox.com>
291
292         * gdate.c (g_date_valid): Rely on GDate::dmy and GDate::Julian
293         flags, rather than re-checking the validity of the actual
294         values. This should be the correct behavior, the old way was
295         leftover cruft.
296
297         * glib.h, gdate.c: Changed MDY to DMY throughout.
298
299 Sat Nov 28 12:53:47 1998  Owen Taylor  <otaylor@redhat.com>
300
301         * Makefile.am configure.in acconfig.h giochannel.c
302           glib.h glist.c gmain.c gutils.c:
303
304         - Revised GIOChannel to provide a generic virtual-function
305           based interface.
306         - Added unix fd-based GIOChannel's
307         - Added generic main-loop abstraction
308         - Added timeouts and idle functions using main-loop abstraction.
309
310 1998-12-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
311
312         * glib.h: 
313         * gdate.c: changed `gpointer struct_tm_p' parameter of
314         g_date_to_struct_tm back to `struct tm *tm' and forward declared
315         `struct tm' in glib.h; yes, this is nice, we still need not
316         include time.h.
317
318 Tue Dec  1 23:01:44 CST 1998 Shawn T. Amundson <amundson@gtk.org>
319
320         * INSTALL:
321           NEWS:
322           README:
323           glib.spec:
324           docs/glib-config.1: Incremented versions to 1.1.6.
325         
326 Wed Dec  2 02:10:59 1998  Tim Janik  <timj@gtk.org>
327
328         * gdate.c: s/time_t/GTime/ and s/g_print/g_message/
329         include time.h.
330
331         * glib.h: removed #include <time.h>, changed time_t paramter of
332         g_date_set_time() to time_t, changed struct tm parameter of
333         g_date_to_struct_tm to `gpointer struct_tm_p'. yes, this is not
334         nice, but including time.h actually breaks a bunch of code.
335         
336         * incremented GLib version to 1.1.6.
337
338 1998-11-30  Havoc Pennington  <hp@pobox.com>
339
340         * gdate.c: New file, implements calendrical calculations.
341         
342         * glib.h: Added declarations for GDate module.
343
344 Mon Nov 30 07:12:10 1998  Tim Janik  <timj@gtk.org>
345
346         * glib.h:
347         * ghook.c: added g_hook_list_marshal_check() to eventually destroy
348         hooks after they got marshalled.
349
350 Sun Nov 29 17:31:43 EST 1998  Jeff Garzik  <jgarzik@pobox.com>
351
352         * configure.in, Makefile.am, gmodule/Makefile.am:
353         Put -DFOO stuff into Makefile.am INCLUDES.
354
355 Sun Nov 29 14:17:09 PST 1998 Manish Singh <yosh@gimp.org>
356
357         * configure.in: put debug -DFOO stuff into CPPFLAGS, not CFLAGS,
358         so CFLAGS can be overridden at make time properly
359
360 Sat Nov 28 01:23:25 1998  Tim Janik  <timj@gtk.org>
361
362         * ghash.c: implemented incremental freezing facility.
363
364 Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
365
366         * glib.h: 
367         * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
368         since it's to specialized and needs to be resolved in a generic
369         fashion.
370
371 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
372
373         * applied glib-tml-981120-0, change log appended below.
374
375         * glibconfig.h.win32: passthrough 64-bit constants unchanged, VC++
376         infers them
377
378 Fri Nov 20 22:26:43 1998  Tor Lillqvist  <tml@iki.fi>
379
380         * glib.h: Moved MSC pragmas from glib.h to glibconfig.h.win32.
381         peer_offset field in WIN32 part of GIOChannel removed, need_wakeups
382         added. Added "extern" to __declspec(dllimport).
383
384         * gutils.c: Initialise need_wakeups.
385
386         * glibconfig.h.win32: Pragmas moved here. Define G_GINT64_CONSTANT.
387
388         * gmodule/gmodule.def: Added g_module_build_path.
389
390         * gscanner.c: (g_scanner_cur_value) Move initailisation of v
391         to before its use.
392
393         * glib.def: Added g_(s)list_sort.
394
395         * makefile.msc: A few more comments.
396
397 Tue Nov 24 14:05:47 EST 1998    Michael K. Johnson <johnsonm@redhat.com>
398
399         * glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
400         prototype.
401         * ghash.c: added g_hash_table_set_key_freefunc() implementation.
402         Modified the prototypes of the functions g_hash_node_destroy() and 
403         g_hash_nodes_destroy(), and changed the functions that call them
404         to match the new definitions.
405         This changes no external interfaces, and should create no binary
406         or source incompatibilities.  It does add a member to the
407         GHashTable structure.
408
409 Tue Nov 24 09:40:00 1998  Tim Janik  <timj@gtk.org>
410
411         * glib.h: removed the GListAllocator type and its g_*_allocator_*()
412         function variants (which weren't working anyways) in favour of a
413         generic GAllocator type. new functions:
414         g_allocator_new, g_allocator_free, g_slist_push_allocator,
415         g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
416         g_node_push_allocator and g_node_pop_allocator.
417
418         * gstring.c: removed bogus slist allocator code.
419         * gtree.c: maintain own list of free tree nodes and don't waste
420         GSLists for that, removed bogus slist allocator code.
421         * glist.c: use GAllocators for node allocation.
422         * gslist.c: use GAllocators for node allocation.
423         * gnode.c: use GAllocators for node allocation.
424
425         * gdataset.c: cleanups wrt automatic initialization.
426
427 Mon Nov 23 10:03:58 1998  Owen Taylor  <otaylor@gtk.org>
428
429         * glib.h garray.[ch]: added g_array_insert_vals() to
430         insert elements at an arbitrary index, and
431         g_array_insert_val() macro.
432
433 Sun Nov 22 17:07:03 1998  Tim Janik  <timj@gtk.org>
434
435         * glib.h:
436         * gslist.c: new function g_slist_copy() to duplicate a list with all its
437         data pointers.
438         * glist.c: new function g_list_copy.
439
440 Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
441
442         * INSTALL:
443           NEWS:
444           README:
445           configure.in:
446           glib.spec: Updated to version 1.1.5
447
448         * Released GLib 1.1.5
449
450 Wed Nov 18 1998 Elliot Lee <sopwith@redhat.com>
451
452         * gdataset.c: There was a code path into g_data_set_internal
453           through a function (g_datalist_id_set_full). Neither function
454           checked for g_dataset_init having been run, but
455           g_data_set_internal used the memchunk. I added
456           a check into g_data_set_internal so it will do the
457           initialization if needed. (There's probably a better way.)
458
459 Mon Nov 16 07:48:06 1998  Tim Janik  <timj@gtk.org>
460
461         * glib.h (g_bit_nth_msf): fixed off-by-one error, so we don't waste
462         a loop iteration if (-1) was passed, reported by Andreas Bombe
463         <andreas.bombe@munich.netsurf.de>.
464
465 Fri Nov 13 15:17:34 1998  Owen Taylor  <otaylor@redhat.com>
466
467         * glist.c gslist.c glib.h: Added g_list_sort() and
468         g_slist_sort() to merge sort GLists and GSLists.
469         Submitted by Sven Over <sven.over@ob.kamp.net>
470         over a year ago!
471
472         * testglib.c: Test the new sort functions.
473
474 Wed Nov 11 23:23:22 EST 1998 Jeff Garzik <jgarzik@pobox.com>
475
476         * Makefile.am : INCLUDES is the right way to add to CFLAGS, not
477         DEFS.  Also there are bugs with '+=' in makefiles.
478         Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
479         Removed redundant -I from INCLUDES.
480
481 Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
482
483         * docs/*.sgml : Batch of new documentation that should be easier
484         to maintain and extend. Plus generate whatever sort of doc file
485         you would like. I didn't change the Makefile stuff as I'm not sure
486         what default doc type people want. Oh and this is all DocBook format.
487         Enjoy!
488
489 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
490
491         * configure.in: use __extension__ for long long on gcc >= 2.8 and
492         egcs, and provide a G_GINT64_CONSTANT wrapper so -ansi -pedantic
493         compiles clean.
494
495         * glib.h: make the endian x86 asm __const__ so the compiler can do
496         better optimizations. Also remove the cc clobber, these shouldn't
497         be changing condition codes. Ditch some redundant casts. Add an
498         optimization for 64-bit endian conversions in x86. Use constant
499         wrapper for the generic method.
500
501         * testglib.c: use constant wrappers for 64-bit constants
502
503 1998-11-04  Phil Schwan  <pschwan@cmu.edu>
504
505         * configure.in: Added 'strncasecmp' to the list of functions to be
506         searched for.
507         * glib.h: Added a prototype for 'g_strncasecmp'
508         * gstrfuncs.c: (g_strncasecmp) new function modeled closely after
509         'g_strcasecmp'
510
511 Wed Nov  4 15:06:44 PST 1998 Manish Singh <yosh@gimp.org>
512
513         * config.h.win32 (new file)
514         * glibconfig.h.win32
515         * glib.def
516         * makefile.msc: applied glib-tml-981104, win32 sync
517
518 1998-11-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
519
520         * glib.h: 
521         * garray.c:
522         (g_array_remove_index): new function for removing an entry from an
523         array while preserving the order
524         (g_array_remove_index_fast): new function for removing an entry
525         from an array. the order might be distorted
526         (g_ptr_array_remove_index_fast, g_ptr_array_remove_fast): new
527         functions; working similiar to the above. (they have the semantic
528         of the old g_ptr_array_remove[_index] functions)
529         (g_ptr_array_remove_index, g_ptr_array_remove): new semantic. now
530         the order of the elements in the array is not changed
531         (g_byte_array_remove_index, g_byte_array_remove_index_fast): new
532         functions; byte_array wrapper for g_array_remove_index[_fast]
533
534 Sun Nov  1 23:00:18 PST 1998 Manish Singh <yosh@gimp.org>
535
536         * glib.h
537         * configure.in: endian macros defined using the glibconfig.h
538         mechanism now
539
540         * ghook.c: casts for GHookFunc and GHookCheckFunc to avoid warnings
541
542 Sat Oct 31 20:14:22 PST 1998 Manish Singh <yosh@gimp.org>
543
544         * applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
545         entry appended below)
546
547         * testglib.c
548         * gstrfuncs.c
549         * glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone
550
551         * gmessages.c
552         * gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H
553  
554 1998-11-01 Tor Lillqvist <tml@iki.fi>
555
556         * glib.def: Added the new functions.
557
558         * gutils.c:
559         (g_getenv): Better implementation on Win32. No loop necessary.
560         (g_get_any_init): Use P_tmpdir if defined as tmp directory. Don't
561         set home dir always to NULL on Win32.  Don't use tmp directory as
562         last resort home directory, but return NULL if no home
563         directory is known (application must check).
564
565         * makefile.msc: Better touch command, just COPYing a single file
566         sets the timestamp from that file, which isn't what touching should
567         do.
568
569 1998-10-31  Raja R Harinath  <harinath@cs.umn.edu>
570
571         Land glib-rrh-19981025-0.patch.
572         * Makefile.am (glibconfig.h): New rule.  
573         (stamp-gc-h): New rule.  Generate `glibconfig.h'.
574         * configure.in (AM_CONFIG_HEADER): It is now `config.h'.
575         (HAVE_BROKEN_WCTYPE): On Solaris, look for iswalnum in -lw before
576         concluding "broken wctype".
577         (glibconfig.h): Use AC_OUTPUT_COMMANDS to put generation code into
578         config.status.
579         * glib.h: Remove a lot of tests and defines.  All these have been
580         moved to `configure.in (glibconfig.h)'.
581         * gerror.c: Include <config.h>.
582         * gmem.c: Likewise.
583         * gstrfuncs.c: Likewise.
584         * gutils.c: Likewise.
585         
586 Sat Oct 31 05:08:26 1998  Tim Janik  <timj@gtk.org>
587
588         * glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
589         added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
590         G_STRUCT_MEMBER() for handling structure fields through their offsets.
591         (struct _GHookList): added a hook_free function member, that can be used
592         to free additional fields in derived hook structures.
593         g_hook_free(): if hook_list->hook_free != NULL, call this function prior
594         to freeing the hook. (this functionality should have been there in the
595         first place, it just got forgotten as an implementation detail).
596
597 Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
598
599         * glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
600         <robert@physiol.med.tu-muenchen.de>
601
602 Tue Oct 27 07:25:53 1998  Tim Janik  <timj@gtk.org>
603
604         * glib.h:
605         * gscanner.c:
606         (g_scanner_sync_file_offset): new function for file input.
607         rewind the filedescriptor to the current buffer position and blow
608         the file read ahead buffer. usefull for third party uses of our
609         filedescriptor, which hooks onto the current scanning position.
610         (this became neccessary with the implementation of buffered
611         reads).
612         (g_scanner_input_file): 
613         (g_scanner_input_text): automatically blow the read ahead buffer.
614         (g_scanner_get_char): blow the read ahead buffer when the end of
615         input is reached, i.e. a '\000' char is read.
616
617 Tue Oct 27 00:27:31 PST 1998 Manish Singh <yosh@gimp.org>
618
619         * glib.h: get rid of duplicate #g_htonl and friends in the
620         NATIVE_WIN32 part
621
622 Mon Oct 26 22:42:01 PST 1998 Manish Singh <yosh@gimp.org>
623
624         * glibconfig.h.win32
625         * gutils.c
626         * makefile.msc: win32 patch from Tor Lillqvist (glib-tml-981027-0),
627         fixes some minor win32 buglets
628
629 Mon Oct 26 22:12:03 PST 1998 Manish Singh <yosh@gimp.org>
630
631         * glib.h: reimplemented the endian stuff, using inline asm
632         for x86. #define g_htonl and friends.
633
634         * testglib.c: new tests for the endian stuff
635
636         * configure.in: care for AIX in gmodule linker flags test (from
637         Joel Becker <jlbec@raleigh.ibm.com>). Check $host_os for linux
638         instead of existance of /usr/include/linux
639
640         * gutils.c: buh-bye evil warning. Thou hast been #ifdef'd out
641         of thine existance!
642
643 Tue Oct 27 03:00:50 1998  Tim Janik  <timj@gtk.org>
644
645         * glib.h: removed dummy structure definitions for struct _GCache,
646         _GTree, _GTimer, _GMemChunk, _GListAllocator and _GStringChunk.
647
648         * gutils.c: implement glib's inline functions _after_ all include
649         statements have been processed.
650         removed Tor's MAXPATHLEN check since there already was one supplied
651         further down in this file.
652         (LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32,
653         since lcc maybe used on other platforms as well. why in hell is this
654         stuff required?
655         (g_get_any_init): for windows, if the user name is supplied, use it as
656         realname also.
657         in general, if there is no homedir specified, use the tmpdir that
658         we already figured.
659
660         * gtimer.c (g_timer_elapsed): changed a g_assert() statement to
661         g_return_if_fail().
662
663         * applied glib-tml-981020-0.patch for WIN32 portability, added some
664         comments and g_return_if_fail() statements, minor indentation fixes.
665         ChangeLog entry from Tor Lillqvist is appended.
666
667         * glib.h (struct dirent): use lower case structure members.
668
669         * glib.h: 
670         * makefile.lcc:
671         * makefile.msc:
672         s/COMPILING_GLIB/GLIB_COMPILATION/
673
674 1998-10-20: Tor Lillqvist <tml@iki.fi>
675
676         * README.win32 glib.def gmodule.def
677         * glibconfig.h.win32 gmodule/gmoduleconf.h.win32:
678         New files for the Windows port. The .def files list exported
679         symbols for the Microsoft linker and compatibles.
680
681         * configure.in:
682         Added checks for some platform-dependent headers: pwd.h sys/param.h
683         sys/select.h sys/time.h sys/times.h unistd.h, and the function lstat.
684
685         * gerror.c:
686         Conditionalized inclusion of system-dependent headers. Changes
687         for Windows: no gdb to do a stack trace. Just call abort().
688
689         * glib.h:
690         Changes for Windows:
691
692         Added macros G_DIR_SEPARATOR, G_DIR_SEPARATOR_S for
693         platform-dependent file name syntax elements. Added macros
694         G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S for
695         platform-dependent search path syntax conventions.
696
697         Added pragmas for Microsoft C to make it more pedantic.
698
699         Marked GLib's global variables for export from DLL.
700
701         Added the function g_strescape that escapes backslashes.
702
703         Added functions g_path_is_absolute and g_path_skip_root to
704         handle platform-dependent file name syntax.
705
706         Added the function g_getenv that expands environment variables
707         that contain references to other environment variables, as is
708         typical on Windows NT.
709
710         Added the GIOChannel structure which is used to encapsulate the
711         IPC mechanism used by the GIMP's plug-ins, and possibly other
712         things later. On Unix a GIOChannel encapsulates just a file
713         descriptor. On Windows it contains a file handle from _pipe() and a
714         few other things related to the implementation of gdk_input_add
715         and GIMP plug-in communication. Subject to change.
716
717         Removed duplicate declarations of the version variables.
718
719         For the Microsoft compiler, declare own implementation of
720         ftruncate and the <dirent.h> functions.
721
722         * gmem.c:
723         Define a symbolic name  for the profiling table size.
724
725         * gmessages.c:
726         Conditionalized inclusion of unistd.h. On Windows, output using
727         stdio to stdout.
728
729         * gscanner.c:
730         Conditionalized inclusion of unistd.h. Added changes for
731         Microsoft C. Added CR to the skipped character set. Added small
732         workaround for MSC compiler bug in g_scanner_cur_value.
733         
734         * gstrfuncs.c:
735         Added the function g_strescape, which escapes the backslash
736         character. Needed especially when printing Windows filenames.
737
738         * gtimer.c:
739         Conditionalized inclusion of unistd.h and sys/time.h. Added
740         implementations for Windows.
741
742         * gutils.c:
743         Conditionalized inclusion of platform-dependent headers. Use
744         the platform-independent file name syntax macros.
745         Conditionalize code on platform-dependent features. Added the
746         functions g_path_is_absolute g_path_skip_root and g_getenv.
747         Added the GIOChannel-related functions. Added
748         compiler-dependent Unix compatibility functions for Windows.
749
750         * makefile.lcc makefile.msc:
751         New files. Compiler-specific makefiles for LCC-Win32 and
752         Microsoft C. Only Microsoft C is actually supported currently.
753         
754         * testglib.c:
755         Added pathname check cases for Windows. Added workaround for
756         bug in the Microsoft runtime library. Improved some tests a bit.
757         
758 Sun Oct 25 01:24:01 CST 1998 Shawn T. Amundson <amundson@gtk.org>
759
760         * Released GLib 1.1.4
761
762         * docs/Makefile.am:
763         * docs/.cvsignore
764         * docs/glib-config.1: 
765         * docs/glib.texi: Moved docs from gtk and created glib-config.1 
766         from gtk-config.1 in gtk
767
768         * configure.in:
769         * Makefile.am:
770         * sanity_check: added in docs directory, change rule 'release'
771         to 'snapshot' and created a new 'release' rule for doing the
772         distribution.  Added in a 'sanity' rule.
773
774         * NEWS:
775         * README: 
776         * INSTALL: Updated for the release
777
778 Sun Oct 25 07:30:10 1998  Tim Janik  <timj@gtk.org>
779
780         * gscanner.c:
781         (g_scanner_peek_next_char): 
782         (g_scanner_get_char): no more characters are available if read() returns
783         anything less than 1, not only on 0 return.
784
785         * glib.h: 
786         * gstrfuncs.c: final API cleanup of string arrays to suit sopwith's
787         argument order requirements.
788         (g_strsplit): renamed from g_str_array_split().
789         (g_strjoinv): renamed from g_str_array_joinv(), string array is
790         now passed as last parameter. removed `const' qualifier from string
791         array pointer (again).
792         (g_strjoin): new function from sopwith to concatenate strings with
793         an additional seperator.
794         (g_strfreev): renamed from g_str_array_free.
795
796 Sat Oct 24 22:23:04 PDT 1998 Manish Singh <yosh@gimp.org>
797
798         * gnode.c: small fix to g_node_children_foreach to make it work right.
799         From Paco Moya <paco@cadnotebk17.eecs.berkeley.edu>
800
801 Wed Oct 21 19:22:58 1998  Tim Janik  <timj@gtk.org>
802
803         * configure.in (G_MODULE_HAVE_DLERROR): reverted part of the changes
804         from Sebastian Wilhelmi (1998-10-20). don't specify a specific loading
805         behaviour (i.e. RTLD_NOW) when we are not sure whether it is supplied.
806         changed the return value from (!f2 && f1) to (!f2 || f1) so we default
807         to not needing an underscore. reverted the extra plugin.c building,
808         because .lo files are not ELF libraries, this can't work. This needs
809         further investigation on Solaris...
810
811 Wed Oct 21 17:03:05 1998  Tim Janik  <timj@gtk.org>
812
813         * glib.h: 
814         * gstrfuncs.c: API cleanups of the new g_str* functions for consistency
815         with the existing naming scheme for g_str* functions. grouped the g_str*
816         functions that will return a newly allocated string seperatedly. all of
817         the in_place arguments were skipped, the caller is supposed to pass a
818         g_strdup()ed string if he wants to retrive a new copy. indentation and
819         coding style fixups. added some g_return_if_fail() statements.
820         string array functions are prefixed with g_str_array_.
821         (g_strdelimit): return the modified string like all other g_str*
822         functions, that operate in place.
823         (g_strchug): renamed from g_str_chug(), removed in_place argument.
824         (g_strchomp): renamed from g_str_chomp(), removed in_place argument.
825         (g_strstrip): renamed from g_str_strip(), removed in_place argument.
826         (g_str_array_join): renamed from g_strconcatv(), since it actually
827         operates on a string array and has totaly different semantics from
828         g_strconcat(). check for separator != NULL, don't segfault if the first
829         string is NULL. removed the `const' from the string array that's passed,
830         so users can operate on gchar** string arrays.
831         (g_str_array_split): renamed from g_str_split() because we actually
832         produce a string array. reimplemented this function for efficiency.
833         removed macro aliases g_str_joinv and g_str_join.
834
835 1998-10-20  Elliot Lee  <sopwith@redhat.com>
836
837         * glib.h, gstrfuncs.c: Move string join/split/free routines from
838         libgnome/gnome-string, rename, and add g_str_chug.
839
840 1998-10-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
841
842         * configure.in: made the check for needed _ in module's func-names
843         work on solaris. (G_MODULE_NEED_USCORE must be set outside
844         AC_CACHE_VAL, dlopen(0,0) refused to work on solaris).
845
846 Tue Oct 20 03:32:58 PDT 1998 Manish Singh <yosh@gimp.org>
847
848         * configure.in
849         * acconfig.h: added test for endianness
850
851         * glib.h: #define endian macros for system and some conversions
852         between byte order
853
854 Thu Oct  8 06:47:27 1998  Tim Janik  <timj@gtk.org>
855
856         * glib.h:
857         * gdataset.c: removed functions g_dataset_id_set_destroy and
858         g_datalist_id_set_destroy and macros g_dataset_set_destroy and
859         g_datalist_set_destroy.
860         added new functions g_dataset_id_remove_no_notify and
861         g_datalist_id_remove_no_notify plus associated macros
862         g_dataset_remove_no_notify and g_datalist_remove_no_notify, which
863         will remove a certain data portion without invokation of its destroy
864         notifier, this should only be used in very controled circumstances.
865
866 Wed Oct  7 05:31:24 1998  Tim Janik  <timj@gtk.org>
867
868         * glib.h:
869         removed the #pragma } statement after extern "C" {. use
870         (c-set-offset 'inextern-lang 0) to fixup emacs cc-mode indentation.
871
872         * glib.h:
873         * ghook.c: API and code cleanups. changed the G_HOOK_ACTIVE and
874         G_HOOK_IN_CALL enum vals to G_HOOK_FLAG_ACTIVE and G_HOOK_FLAG_IN_CALL.
875         changed the G_HOOK_IS_ACTIVE() and G_HOOK_IS_IN_CALL() macros to
876         G_HOOK_ACTIVE() and G_HOOK_IN_CALL().
877         fixed the g_hook_find* functions, so they iterate over non-active
878         hooks as well.
879         (g_hook_first_valid):
880         (g_hook_next_valid): added an extra argument gboolean may_be_in_call,
881         which indicates whether G_HOOK_IN_CALL() hooks are considered valid
882         or not. these two functions are meant as iterators for the hook list
883         invocation, so they need to a) provide functionality to implement
884         may_recurse bahaviour and b) only walk active hooks.
885
886 Tue Oct  6 14:29:47 1998  Tim Janik  <timj@gtk.org>
887
888         * gmem.c (g_malloc0): fixed memory offsett when ENABLE_MEM_CHECK is
889         defined and ENABLE_MEM_PROFILE is not (patch from Martin Pool
890         <mbp@wistful.humbug.org.au>).
891
892 Sat Oct  3 01:18:10 1998  Tim Janik  <timj@gtk.org>
893
894         * glib.h:
895         * ghook.c:
896         (g_hook_list_invoke):
897         (g_hook_list_invoke):
898         (g_hook_list_marshal): properly handle the first valid hook to call,
899         it maybe IN_CALL already.
900         (g_hook_list_marshal): minor name change.
901
902 Fri Oct  2 23:21:21 1998  Tim Janik  <timj@gtk.org>
903
904         * glib.h:
905         * ghook.c: renamed GHook.id to GHook.hook_id so we don't get troubles
906         with ObjC which reserves "id" as a keyword (Raja R Harinath
907         <harinath@cs.umn.edu>).
908
909 Wed Sep 30 10:53:03 1998  Tim Janik  <timj@gtk.org>
910
911         * Makefile.am: added ghook.c.
912
913         * glib.h:
914         * ghook.c: generic callback maintenance functions.
915
916         * glib.h: define G_GNUC_UNUSED.
917
918 Fri Sep 25 00:04:37 1998  Tim Janik  <timj@gtk.org>
919
920         * configure.in: version bump to 1.1.4, binary age 0, interface age 0.
921
922         * glib.h (struct _GScanner): dumped peeked_char and text_len in favour
923         of *text_end and *buffer for buffered read()s.
924
925         * gscanner.c: changed peeking and retrival of next character so we
926         have buffered reads. fixed minor bug with number parsing error
927         reporting. made some static!!! variables local ones (why did we use
928         static temporary variables in the lowlevel tokenization code anyways?).
929
930 Mon Sep 21 23:23:10 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
931
932         * Released GLib 1.1.3
933
934 Mon Sep 21 07:43:13 1998  Tim Janik  <timj@gtk.org>
935
936         * glib.h: added g_renew() which works as g_new() for g_realloc().
937
938 Mon Sep 21 02:22:12 1998  Tim Janik  <timj@gtk.org>
939
940         * NEWS file update for upcoming release of GLib + GModule
941         version 1.1.3, binary age 0, interface age 0. (GModule uses
942         the same version numbers as GLib.)
943
944         * glib.h: swap the inclusion of of float.h and limits.h to work
945         around a egcs 1.1 oddity on Solaris 2.5.1 (fix provided by
946         Per Abrahamsen  <abraham@dina.kvl.dk>).
947
948         * glib.h:
949         * gscanner.c: renamed the GValue union to GTokenValue, this should
950         not affect source compatibility in most cases.
951
952         * ghash.c: added some g_return_if_fail() statements. make
953         g_hash_table_lookup_node() an inline function so we save an extra
954         function invokation on lookups.
955
956 Sun Sep 20 18:21:46 1998  Owen Taylor  <otaylor@redhat.com>
957
958         * ltmain.sh: Patch to libtool-1.2b to make --disable-static
959         work.
960
961 Sun Sep 20 02:09:44 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
962
963         * glib.h: New function g_hash_table_foreach_remove is similar to
964         g_hash_table_foreach, but the callback's return value indicates
965         whether to remove the element (if TRUE) or not (if FALSE).  
966         Returns the number of elements deleted.
967
968 Fri Sep 18 11:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
969
970         * glib.h
971         * gstrfuncs.c: added g_memdup implementation
972
973 Fri Sep 18 18:46:14 1998  Tim Janik  <timj@gtk.org>
974
975         * glib.h:
976         * gdataset.c: make the datalists a safe type (not using a generic
977         gpointer) by expecting a GData* argument in the g_datalist functions.
978         provide g_dataset_foreach() and g_datalist_foreach() functions that
979         allow a GDataForeachFunc function to walk the data lists.
980         (g_dataset_destroy_internal): made this function truely reentrant (i.e.
981         can be called from within destroy notifiers as well).
982         the *_foreach functions are _not_ reentrant (unless all the other
983         dataset and datalist functions).
984
985 Fri Sep 18 03:41:20 1998  Tim Janik  <timj@gtk.org>
986
987         * gtree.c (g_tree_new): check for key_compare_func != NULL (reported
988         by Michal Kara).
989
990 Thu Sep 17 18:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
991
992         * config.h.in: removed from repository
993
994         * install-sh
995         * missing
996         * mkinstalldirs: updated to latest automake version
997
998 Thu Sep 17 06:36:25 1998  Tim Janik  <timj@gtk.org>
999
1000         * glib.h:
1001         * gdataset.c: implemented g_datalist_* along the lines of g_dataset,
1002         but operates on an opaque gpointer *datalist; pointer, e.g. for the
1003         implementation of GtkObject named data.
1004         we cache a certain portion of the already freed data entries now, to
1005         gain a slight performance improve with data reallocation.
1006
1007 Tue Sep 15 14:57:30 1998  Owen Taylor  <otaylor@redhat.com>
1008
1009         * Makefile.am glib-config.in l*: Update to libtool-1.2b,
1010         change library versioning scheme to drop LT_RELEASE
1011         from the -l line, while keeping it in the soname.
1012
1013 Fri Sep 11 02:11:46 1998  Tim Janik  <timj@gtk.org>
1014
1015         * glib.h: explicitely include the prototypes for inline functions
1016         to cure gcc warnings for -Wmissing-prototypes.
1017
1018 Wed Sep  9 02:52:04 PDT 1998 Manish Singh <yosh@gimp.org>
1019
1020         * configure.in: added -posix check for NeXTStep
1021
1022 Tue Sep  8 05:04:06 1998  Tim Janik  <timj@gtk.org>
1023
1024         * glib.h: abandon the use of ATEXIT(), we keep the fallback
1025         macros for backwards compatibility. people ought to use g_atexit().
1026
1027         * gutils.c (g_atexit): new function to take over the implementation
1028         of ATEXIT. this function is guarranteed to succeed, similar to
1029         g_malloc().
1030
1031 Mon Sep  7 20:07:38 PDT 1998 Manish Singh <yosh@gimp.org>
1032
1033         * configure.in: comment the -std1 check and save LIBS properly
1034
1035 Mon Sep  7 07:53:21 1998  Tim Janik  <timj@gtk.org>
1036
1037         * configure.in: check for all three inline keywords individually.
1038
1039         * glib.h: inlining hassle. for compilers that don't allow the `inline'
1040         keyword, mostly because of strict ANSI C compliance or dumbness, we try
1041         to fall back to either `__inline__' or `__inline'. 
1042         we define G_CAN_INLINE, if the compiler seems to be actually *capable*
1043         to do function inlining, in which case inline function bodys do make
1044         sense. we also define G_INLINE_FUNC to properly export the function
1045         prototypes if no inlinig can be performed. we special case most of the
1046         stuff, so inline functions can have a normal implementation by defining
1047         G_INLINE_FUNC to extern and G_CAN_INLINE to 1.
1048
1049         * ltconfig: (compiler PIC flag test): special case linux for non
1050         aout systems to honour lcc's position independant code (cases
1051         "linux*aout)" and "linux*)" got added). (this needs to go into
1052         libtool which does an advanced test, checking for __LCC__).
1053
1054         * autogen.sh: take $CC=lcc into account by invoking automake with
1055         --include-deps so lcc isn't scared by gcc's auto-dependancy
1056         generation code. care about $ACLOCAL_FLAGS. optionally feature
1057         autoheader.
1058
1059         * minor fixups in other places to cure some of lcc's warnings.
1060
1061 Sun Sep  6 19:08:53 PDT 1998 Manish Singh <yosh@gimp.org>
1062
1063         * configure.in: added -std1 check for ANSI compliance (from gtk)
1064
1065 Sun Sep  6 12:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
1066
1067         * glib.h: provide proper ATEXIT behavior on NeXTStep by !atexit
1068
1069 Sat Sep  5 18:03:36 1998  Tom Tromey  <tromey@cygnus.com>
1070
1071         * gutils.c (GLIB_INLINE): Define.
1072         * glib.h (GLIB_INLINE): New define.
1073         (g_bit_nth_msf): Use it.  Also, add prototype.
1074         (g_bit_storage): Likewise.
1075         (g_bit_storage): Likewise.
1076
1077 Sat Sep  5 04:40:02 1998  Tim Janik  <timj@gtk.org>
1078
1079         * glib.h: 
1080         (g_chunk_new0): use g_mem_chunk_alloc0() to allocate the memchunk,
1081         so the correct size of the memchunk is allocated with 0's and not
1082         a memory portion of the size of the desired type.
1083
1084         * gmem.c: new function g_mem_chunk_alloc0() which will initialize
1085         a memory area allocated with g_mem_chunk_alloc() with 0's.
1086
1087 Wed Sep  2 19:13:28 1998  Owen Taylor  <otaylor@redhat.com>
1088
1089         * garray.c glib.h (g_array_[ap/pre]pend_vals): make
1090         data argument const.
1091
1092 Wed Aug 26 06:32:40 1998  Tim Janik  <timj@gtk.org>
1093
1094         * glib.h:
1095         * gstrfuncs.c: new function g_strnfill() to return a new string
1096         of specified length, filled with a specific character.
1097
1098 Tue Sep  1 23:46:31 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
1099
1100         * testglib.c (main): Update the array tests.  Reduce the number of
1101         iterations for the prepend test from 10000 to 100 since it is
1102         O(n^2) and was taking longer than I would like to wait.
1103
1104         * garray.c: I've worked on the GArray interface, mostly.  It was
1105         seriously broken before and I hate to do it, but this is going to
1106         break some code.  It is important to do this now, because more and
1107         more people are starting to use glib and the interface was both
1108         broken and inconsistent.  First, rename the _truncate functions of
1109         both the GArray and GPtrArray classes to _set_size, since this
1110         function can also be used to extend the arrays.  GArray now
1111         accepts two more initialization arguments: clear and element_size.
1112         Instead of providing the type to each access function, the array
1113         now stores the element size.  Clear, if set, causes the library to
1114         zero element's memory as the array expands.  The major broken-ness
1115         here was that array->len was in bytes, not elements.  Now, since
1116         the array knows its element size, array->len is correct and I have
1117         removed the g_array_length macro.  The only macro which now
1118         accepts the type as an argument is g_array_index, which casts the
1119         element to the right type--this interface does not change.  The
1120         append and prepend functions simply need the types removed.
1121         g_ptr_array_remove_index now returns the removed element.
1122
1123         * gprimes.c (g_spaced_primes_closest): Move this function out of
1124         ghash.c and rename it from g_hash_closest_prime.  Fix the primes
1125         so that they are actually prime (they weren't all -- isn't that
1126         nice?).
1127
1128 Mon Aug 24 02:08:56 1998  Tim Janik  <timj@gtk.org>
1129
1130         * glib.h:
1131         * gstring.c:
1132         * gstrfuncs.c:
1133         (g_vsprintf): removed this function which was not publically
1134         exported in glib.h. to export it, it should have been named
1135         differently in the first place, since its semantics differ from
1136         vsprintf(). apart from that, it was a possible cause for
1137         problems since it worked on a previously allocated memory area and
1138         was used in a lot places of glib. exporting it would have been a
1139         guararant for problems with threaded programs.
1140         (g_printf_string_upper_bound): exported this function to return
1141         a string size, guarranteed to be big enough to hold the fully
1142         expanded format+args string. added 'q', 'L' and 'll' flag handling.
1143         in fact, the newly allocated area is in most cases much bigger than
1144         required.
1145         (g_strdup_vprintf()): new function returning a newly allocated string
1146         containing the contents of *format and associated args (size is
1147         calculated with g_printf_string_upper_bound()).
1148         (g_strdup_printf): new function which wraps g_strdup_vprintf().
1149
1150         * configure.in: check for va_copy() or __va_copy() alternatively.
1151         check whether va_lists can be copyied by value.
1152
1153         * glib.h: provide a definition for G_VA_COPY.
1154
1155         * glib.h:
1156         * gmessages.c:
1157         (g_logv):
1158         (g_vsnprintf):
1159         pass va_lists by value, not by reference, since this causes problems
1160         on platforms that implement va_list as as arrays. internaly, use
1161         G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
1162         va_list variable, if multiple passes are required. changed all
1163         callers.
1164
1165         * glib.h:
1166         * gerror.h:
1167         renamed g_debug() to g_on_error_query(), cleaned up a bit.
1168         renamed g_stack_trace() to g_on_error_stack_trace() since both
1169         functions cluttered different namespaces.
1170         there is an appropriate comment in glib.h now that explains the
1171         unix and gdb specific dependencies of both functions.
1172         removed g_attach_process().
1173         g_on_error_stack_trace() should probably be handled with caution,
1174         i've seem several different linux versions (2.0.x) become unstable
1175         after invokation of this function.
1176
1177 1998-08-18: Elliot Lee <sopwith@redhat.com>
1178
1179         * In gmem.c, add the ability to exclude memory chunks from the
1180           memory profiling information.
1181
1182 Tue Aug 18 18:23:09 PDT 1998 Manish Singh <yosh@gimp.org>
1183
1184         * glib.h
1185         * gstrfuncs.c: added g_strndup
1186
1187 Tue Aug 18 04:40:17 1998  Tim Janik  <timj@gtk.org>
1188
1189         * glib.h:
1190         * gmessages.c: new function g_log_set_always_fatal() to set an
1191         additional fatal_mask for log levels that are considered to be fatal
1192         globally (required by gtk). since this mask is not domain-associated,
1193         it is restricted to the log levels, introduced by glib itself.
1194
1195         * gmem.c:
1196         * grel.c:
1197         * gtree.c (g_tree_node_check):
1198         don't use g_print() calls for informational/debugging output,
1199         but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
1200         libraries shouldn't use printf(), g_print() or g_printerr() at all.
1201
1202 Tue Aug 18 02:46:44 1998  Tim Janik  <timj@gtk.org>
1203
1204
1205         * glib.h (__STRICT_ANSI__): if __STRICT_ANSI__ is defined, make
1206         `inline' a noop, since strict ANSI rules don't permit `inline'.
1207
1208 Mon Aug 17 15:21:42 1998  Tim Janik  <timj@gtk.org>
1209
1210         * grel.c: made private functions static.
1211
1212 Sun Aug 16 23:23:46 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
1213
1214         * gmodule/Makefile.am: added gmodule-dl.c and gmodule-dld.c to
1215           EXTRA_DIST
1216         * glib.spec: version = 1.1.3
1217
1218 Mon Aug 17 01:46:14 1998  Tim Janik  <timj@gtk.org>
1219
1220         * glib.m4: feature an extra MODULES parameter, so glib-config can
1221         be invoked with the "gmodule" argument.
1222
1223         * glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
1224         g_return*_if_fail statements, and made them issue a message
1225         like "assertion `%s' failed".
1226
1227         * gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
1228         g_log_find_domain.
1229
1230 Sun Aug 16 20:28:27 1998  Tim Janik  <timj@gtk.org>
1231
1232         * version bump to 1.1.3, binary age 0, interface age 0.
1233
1234         * glib.h: be nice to platforms that don't have gint64 and don't
1235         issue #warning on every compilation. since glib doesn't require
1236         gint64 itself, packages that need gint64 should test for this
1237         themselves.
1238
1239         * glib.h:
1240         * gutils.c: added a new function g_vsnprintf().
1241
1242 Sun Aug 16 Elliot Lee
1243
1244         glib.h: #error out if we don't recognize the SIZEOF_VOID_P
1245                 #warning if no gint64
1246
1247 Fri Aug 14 16:41:53 1998  Tim Janik  <timj@gtk.org>
1248
1249         * glib.h: added static inline functions for bit mask tests:
1250         g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.
1251
1252 Fri Aug 13 14:23:37 1998  Tim Janik  <timj@gtk.org>
1253
1254         * glib.h:
1255         * gmessages.c:
1256         revised the message handling system, which is now based on a new
1257         mechanism g_log*. most of the assertment macros got adapted to
1258         feature the new g_log() call with an additional specification of
1259         the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
1260         is undefined upon the includion of glib.h, it'll be defined with a
1261         value of (NULL) and thus preserves the original bahaviour for
1262         warning and error messages. the message handler setting functions
1263         for g_warning, g_error and g_message are only provided for backwards
1264         compatibility and might get removed somewhen.
1265
1266         * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
1267         to "GLib" upon compilation. we currently have to add this definition
1268         to the DEFS variable.
1269         * testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
1270         of this file currently, since automake doesn't support per target
1271         _CFLAGS yet.
1272
1273         * glib.h: changed some gints to gbooleans, made a few const corrections,
1274         removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
1275         in other required places.
1276
1277         * gnode.c:
1278         (g_node_prepend):
1279         (g_node_insert_before):
1280         (g_node_insert):
1281         (g_node_append_data):
1282         (g_node_prepend_data):
1283         (g_node_insert_data_before):
1284         (g_node_insert_data):
1285         (g_node_append):
1286         return (node), so these macros/functions can be usefully chained with
1287         g_node_new().
1288
1289 Mon Aug 10 17:56:11 PDT 1998 Manish Singh <yosh@gimp.org>
1290
1291         * glib.h: it's GTime now, and it's back!
1292
1293 Mon Aug 10 02:17:19 1998  Tim Janik  <timj@gtk.org>
1294
1295         * Makefile.am: minor hack to cause SUBDIRS (gmodule) to be build
1296         last. we do this by making all-recursive-am depend on all-am.
1297
1298 Sun Aug  9 15:56:11 1998  Tim Janik  <timj@gtk.org>
1299
1300         * configure.in: added GModule checks. generate files in gmodule/.
1301         * glib-config.in: support library specifications `glib' and `gmodule'.
1302         * Makefile.am: feature the gmodule/ subdir.
1303
1304 Wed Aug  5 10:04:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
1305
1306         * Released GLib 1.1.2
1307
1308 Wed Aug 05 01:15:36 1998  George Lebl  <jirka@5z.com>
1309
1310         * testglib.c: fix 64-bitness in g_prints, sizeof doesn't
1311           seem to return int so I cast it for printing, probably
1312           just cosmetic
1313
1314 Tue Aug  4 19:54:06 PDT 1998 Shawn T. Amundson <amundson@gkt.org>
1315
1316         * Released GLib 1.1.1
1317
1318 Tue Aug  4 15:17:54 1998  Tim Janik  <timj@gtk.org>
1319
1320         * configure.in: version bump to 1.1.1, binary age 1, interface age 0.
1321         * NEWS: updates.
1322         * README: updates.
1323         * INSTALL: updates and fixes.
1324         * COPYING: include the GNU LGPL, rather than shipping an empty file.
1325         * AUTHORS: listed original authors here, and added people who made
1326         significant improvements to glib.
1327
1328         * glib.h:
1329         * gutils.c: implement g_get_current_dir() which returns a newly
1330         allocated string, instead of a g_getcwd() variant that operates
1331         on a static buffer.
1332         export glib_interface_age and glib_binary_age.
1333         as a convenience, macro definitions have been added for
1334         g_node_insert_data, g_node_insert_data_before, g_node_append_data and
1335         g_node_prepend_data.
1336
1337         * testglib.c: minor cleanups, print current dir.
1338
1339 Mon Aug  3 16:02:26 1998  Tim Janik  <timj@gtk.org>
1340
1341         * glib.h:
1342         * gnode.c: change order of gpointer data; field in struct _GNode to
1343         be partly binary compatible with GList and GSList.
1344
1345 1998-08-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1346
1347         * garray.c (g_ptr_array_remove_index): bugfix: index check for
1348         array has been wrong.
1349
1350 Fri Jul 31 22:17:05 1998  Tim Janik  <timj@gtk.org>
1351
1352         * testglib.c (g_node_test): added a GNode test.
1353
1354 Fri Jul 31 09:08:16 1998  Tim Janik  <timj@gtk.org>
1355
1356         * Makefile.am: compile gnode.c.
1357
1358         * glib.h:
1359         * gnode.c: added implementation of n-way trees.
1360
1361         * gtree.c (g_tree_traverse): added a warning to the switch() statement
1362         which says that G_LEVEL_ORDER is not implemented.
1363
1364 Mon Jul 27 00:17:30 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
1365
1366         * Released GLib 1.1.0
1367
1368 Mon Jul 27 01:02:27 1998  Tim Janik  <timj@gtk.org>
1369
1370         * glib.h: #if 0'ed out the GTime definition, until it is definitively
1371         needed. #if 0'ed out the g_getcwd() version, because it is the wrong
1372         implementation.
1373
1374 Sat Jul 25 16:09:00 1998  Mark Crichton <crichton@expert.cc.purdue.edu>
1375
1376         * glib.h: gtime changed to g_time.  gtime is used in
1377         /usr/include/time.h in NetBSD, causing multiple headaches.
1378         If this isn't the right way of fixing it.... ;)
1379
1380 Thu Jul 23 00:29:14 1998  Tim Janik  <timj@gtk.org>
1381
1382         * glib.h:
1383         * gscanner.c: new functions to make a scanner scope sensitive wrt
1384         symbol lookups.
1385         g_scanner_scope_foreach_symbol, g_scanner_scope_lookup_symbol,
1386         g_scanner_scope_remove_symbol, g_scanner_scope_add_symbol and
1387         g_scanner_set_scope.
1388         g_scanner_add_symbol, g_scanner_remove_symbol and
1389         g_scanner_foreach_symbol are now aliases for scope 0.
1390
1391 Mon Jul 20 23:05:34 1998  George Lebl  <jirka@5z.com>
1392
1393         * glib.h: typo fixed for alphas for gint64
1394
1395 Tue Jul 14 09:05:18 1998  Tim Janik  <timj@gtk.org>
1396
1397         * glib.h:
1398         * gutils.c: new fuction g_dirname() which returns a newlly
1399         allocated string.
1400
1401 Fri Jul 10 06:33:43 1998  Tim Janik  <timj@gtk.org>
1402
1403         * glib.h:
1404         * gutils.h: added a bunch of utility/wrapper functions:
1405         g_basename(), g_getcwd(), g_get_user_name(), g_get_real_name(),
1406         g_get_home_dir(), g_get_tmp_dir(), g_get_prgname() and g_set_prgname().
1407
1408         * gutils.c: removed all g_str* functions.
1409         * gstrfuncs.c: moved the bunch g_str* functions from gutils.c in this
1410         place. this file shall never include <unistd.h> to avoid clashes for
1411         some of the g_str* functions on some OSes.
1412
1413 Fri Jul 10 00:29:03 EEST 1998 Lauri Alanko <nether@gimp.org>
1414
1415         * glib.h:
1416         * ghash.c: Renamed g_hash_table_lookup_full to
1417         g_hash_table_lookup_extended to conform with naming conventions.
1418
1419 Tue Jul  7 03:18:58 EEST 1998 Lauri Alanko <nether@gimp.org>
1420
1421         * glib.h:
1422         * ghash.c: Generic cleanup, added a function:
1423         (g_hash_table_lookup_full): Return whether the lookup succeeded,
1424         and also retrieve the key and value. This allows one to
1425         distinguish between failed lookup and finding a NULL, and also
1426         allows one to free a key in the hash.
1427
1428 Mon Jul  6 10:12:05 PDT 1998 Manish Singh <yosh@gimp.org>
1429
1430         * ltconfig: fix for properly detecting shared lib support on
1431         SunPro cc (taken from libtool 1.2.a)
1432
1433 Sat Jul  4 13:38:52 PDT 1998 Manish Singh <yosh@gimp.org>
1434
1435         * glib.h: added g_array_length
1436
1437 Tue Jun 30 11:58:25 1998  Tim Janik  <timj@gtk.org>
1438
1439         * gscanner.c (g_scanner_unexp_token): take symbol_2_token into
1440         account. react on valid/invalid string pairs.
1441
1442 Sat Jun 27 21:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
1443
1444         * glib.m4: ftp.glib.org -> ftp.gtk.org, since glib.org isn't
1445         ours. ;)
1446
1447 Fri Jun 19 03:11:02 1998  Tim Janik  <timj@gtk.org>
1448
1449         * gdataset.c: removed g_dataset_try_key, g_dataset_force_id and
1450         g_dataset_retrive_key in favour of GQuarks.
1451         a GQuark is an numeric id wich is associated with a certain string.
1452         (g_quark_try_string): try to get the quark associated with this string,
1453         if the lookup failed return 0.
1454         (g_quark_from_string): get the associated quark for a string, if there
1455         isn't currently a GQuark associated with this string, then allocate a
1456         new quark and return that.
1457         (g_quark_from_static_string): like the above function, but the string
1458         isn't strdup()ed to save memory.
1459         (g_quark_to_string): get the string that is associated with a certain
1460         GQuark.
1461
1462         * gdataset.c (g_dataset_id_set_data_full): invoke the destroy function
1463         _after_ the new data has been setup.
1464
1465 Thu Jun 18 02:35:21 1998  Owen Taylor  <otaylor@gtk.org>
1466
1467         * glib.h: Changed messages for g_return_[val]_if_fail to
1468         be somewhat more clear: assertion "blah" failed.
1469
1470 1998-06-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1471
1472         * testglib.c (main): Use GINT_TO_POINTER casts to remove compiler
1473         warnings.
1474
1475         * grel.c: #include <string.h>
1476
1477 Fri Jun 12 15:39:06 1998  Tim Janik  <timj@gtk.org>
1478
1479         * glib.h (GScanner): cleanups of the structure fields (binary
1480         incompatible).
1481
1482 Fri Jun 12 00:39:28 1998  Josh MacDonald  <jmacd@icw.EECS.Berkeley.EDU>
1483
1484         * glib.h: add new hash and equal functions g_int_*.  complement
1485         g_direct_hash with g_direct_equal.
1486
1487         * grel.c: new file, GRelations implement tuples of N-N mappings.
1488         A comment in glib.h briefly describes the interface.
1489
1490         * ghash.c: new function, g_hash_table_size
1491
1492         * glib.h: new typedefs, gsize, gssize, gtime.
1493
1494         * garray.c: new functions implementing a simplified GArray.  This
1495         GPtrArray is an array of gpointers and has functions to add and
1496         remove elements, much like java.lang.Vector.
1497
1498         * garray.c: new functions for the single-byte special case of
1499         GArray.  The functions g_byte_array* operate on arrays of bytes.
1500         Internally, a GArray is used.
1501
1502         * testglib.c: tests for g_ptr_array, g_byte_array, and g_relation...
1503
1504 1998-06-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1505
1506         * gdataset.c: #include <string.h>
1507
1508 Thu Jun 11 04:15:31 1998  Tim Janik  <timj@gtk.org>
1509
1510         * glib.h:
1511         * gdataset.c: new function g_dataset_retrive_key. adjusted prealloc
1512         sizes, to take up less space on initial allocation.
1513
1514 1998-06-10  Raja R Harinath  <harinath@cs.umn.edu>
1515
1516         * acinclude.m4: New file.  Contains `libtool.m4' from libtool-1.2,
1517         the version from which glib's libtool forked.  Needed for people
1518         who use post-1.2 alphas of libtool.
1519         * configure.in (enable_mem_check, enable_mem_profile): Replace
1520         `echo -n' with AC_MSG_CHECKING.
1521         (fd_set): Explain test for `fd_set' better.
1522
1523 Wed Jun 10 19:29:51 1998  Owen Taylor  <otaylor@gtk.org>
1524
1525         * Makefile.am glib.m4 configure.in:
1526
1527         Moved out from GTK+; added AM_PATH_GLIB macro.
1528
1529 Wed Jun 10 12:56:07 1998  Owen Taylor  <otaylor@gtk.org>
1530
1531         * glib.h: renamed g_const_pointer => gconstpointer
1532
1533 Tue Jun  9 17:47:33 1998  Owen Taylor  <otaylor@gtk.org>
1534
1535         * glib.h: Remove #error - HP/UX.
1536
1537 Sat May 23 19:00:01 1998  Owen Taylor  <otaylor@gtk.org>
1538   [ Combination of:
1539      gtk-rrh-980412-0.patch (Raja R Harinath <harinath@cs.umn.edu>)
1540      gtk-jbuhler-980516-0 (Jeremy Buhler <jbuhler@cs.washington.edu>) ]
1541
1542         * glib.h ghash.c gstring.c gdataset.c gutils.c:
1543         - Added new typedef g_const_pointer; expunged all incorrect
1544           uses of 'const gpointer'.
1545         - Fixed up warnings that that created,
1546         - Changed GHashFunc and GCompareFunc to take g_const_pointer
1547           arguments. (Necessary, but will cause warnings in existing
1548           code until fixed)
1549         - Added other new const in harmless positions.
1550
1551 Mon Jun  8 01:06:47 1998  Tim Janik  <timj@gtk.org>
1552
1553         * glib.h: added enum-helper macros for code generation.
1554         added G_BREAKPOINT().
1555
1556 Sat Jun  6 14:09:22 PDT 1998 Manish Singh <yosh@gimp.org>
1557
1558         * gmem.c: commented out MEM_PROFILE and MEM_CHECK, causing weird
1559         problems
1560
1561 Wed Jun  3 06:19:42 1998  Tim Janik  <timj@gtk.org>
1562
1563         * glib.h (g_chunk_new0): convenience macro, for allocating small chunks
1564         like g_chunk_new() with additional 0 initialization.
1565
1566 Mon Jun  1 04:43:27 1998  Tim Janik  <timj@gtk.org>
1567
1568         * ghash.c (g_hash_table_insert): wrote a comment describing why
1569         a hash node's key should not also get replaced when overriding
1570         previous entries.
1571
1572 Tue May 26 18:30:06 1998  Tim Janik  <timj@gtk.org>
1573
1574         * glib.h (g_string_sized_new): new function to controll the preallocated
1575         size of a GString.
1576
1577         * glib.h (g_strreversed): new function to reverse a string.
1578
1579 Mon May 18 22:14:39 1998  Owen Taylor  <otaylor@gtk.org>
1580 (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp> : gtk-joke-980517-0.patch)
1581
1582         * gutils.c: Restored a missing prototype for g_vsprintf.
1583
1584 Wed May 20 05:02:26 1998  Tim Janik  <timj@gtk.org>
1585
1586         * glib.h: conditionally define NULL, FALSE and TRUE.
1587         (g_mem_chunk_create): new convenience macro as a short hand for
1588         g_mem_chunk_new().
1589         (g_chunk_free): new convenience macro to be consistent with g_chunk_new.
1590
1591 Tue, 19 May 1998 09:00:02 +0200  Paolo Molaro <lupus@debian.org>
1592
1593         * gcompletion.c: generic functions for com<TAB>pletion...
1594
1595 Sun May 17 10:48:27 1998  Tim Janik  <timj@gtk.org>
1596
1597         * gscanner.c (g_scanner_unexp_token): provide usefull default
1598         specifications for identifier_spec and symbol_spec.
1599
1600         * glib.h: new functions g_slist_nth_data and g_list_nth_data to return
1601         the data of the nth element in the list.
1602
1603 Fri May 15 22:31:49 1998  Tim Janik  <timj@gtk.org>
1604
1605         * gscanner.c (g_scanner_unexp_token): removed spurious va_end(args)
1606         that for some reason didn't produce a compiler warning on my machine
1607         (is va_end defined to nothing for i386?).
1608
1609 Fri May 15 12:32:08 1998  rodo  <doulik@karlin.mff.cuni.cz>
1610
1611         * gscanner.c: replaced some snprintf with g_snprintf
1612
1613 Fri May 15 00:56:59 1998  Tim Janik  <timj@gtk.org>
1614
1615         * glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
1616         G_GNUC_NORETURN and G_GNUC_CONST.
1617
1618         * gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
1619         (g_scanner_msg_handler): "\n" at end of line!
1620         (g_scanner_foreach_symbol): new function to iterate over the symbol
1621         table (GScanner does value-wrapping).
1622
1623 Thu May 14 04:14:12 1998  Tim Janik  <timj@gtk.org>
1624
1625         * glib.h: typedef gint gboolean;
1626         this is needed to provide portability with big-endian platforms (e.g.
1627         try sizeof(bool) for c++ on big-endians - it's 4).
1628         this is also needed to maintain some_union.d_gint==some_union.d_gboolean.
1629         plus, gint to gboolean casts and vice versa need to be possible without
1630         loss.
1631
1632 Tue May 12 19:22:58 1998  Owen Taylor  <otaylor@gtk.org>
1633
1634         * glib/glib.h: Added macros G[U]INT_TO_POINTER() and
1635         GPOINTER_TO_[U]INT for storing small integers integers
1636         inside pointers.
1637
1638         * glib/testglib.c: Print sizeof() results
1639         as g_print("%ld", (glong)sizeof(foo)), to deal with
1640         size_t being long on Alpha's.
1641
1642 Tue May 12 16:54:15 1998  Owen Taylor  <otaylor@gtk.org>
1643         (James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
1644
1645         * glib.h gstring.c gmessages.c: Added some missing
1646         const to arguments.
1647
1648         * gutils.c (g_strsignal.c): Added missing return statements.
1649
1650 Mon May 11 21:11:54 1998  Owen Taylor  <otaylor@gtk.org>
1651
1652         * gutils.c gmessages.c: Moved g_error, g_warning, g_message and
1653         g_print from gutils.c to new file gmessages.c, to avoid having to
1654         include <unistd.h> in gutils.c which was causing problems for the
1655         g_strsignal implementation on FreeBSD boxes.
1656
1657 Mon May 11 09:53:43 1998  Tim Janik  <timj@gtk.org>
1658
1659         * configure.in: preserve automake CFLAGS.
1660
1661         * Makefile.am: fully rename the created library to libglib-1.1.la.
1662         this means we need to change certain portions of the Makefile.am on
1663         major/minor version bumps.
1664
1665         * ltmain.sh: the -release option is not required anymore.
1666
1667         * glib.h: provide G_GNUC_FUNCTION and G_GNUC_PRETTY_FUNCTION to
1668         avoid conditionals. unconditionally define NULL, TRUE, FALSE, MAX,
1669         MIN, ABS and CLAMP, these macros might be screwed from other headers.
1670
1671 Mon May 11 01:44:10 1998  Tim Janik  <timj@gtk.org>
1672
1673         * gdataset.c: new file, gdatasets implement the object data
1674         mechanism from GtkObject. a generic data pointer is associated with
1675         a certain location and a key id.
1676
1677 Sat May  9 20:08:12 1998  Owen Taylor  <otaylor@gtk.org>
1678
1679         * glib/gmem.c: Experimentally restore GMemChunk
1680         to its primeval state - where mem areas are
1681         freed incrementally instead of searching the tree
1682         every time a mem area is completely empty. Also,
1683         always keep one mem chunk around. (Reduced calls
1684         to malloc() a lot, but doesn't really improve
1685         performance significiantly)
1686
1687 Thu May  7 08:17:28 1998  Tim Janik  <timj@gtk.org>
1688
1689         * glib.h (G_GNUC_PRINTF):
1690         (G_GNUC_SCANF): macros to facilitate the printf/scanf format argument
1691         checking of gcc.
1692
1693         * gstring.c: const corrections, string!=NULL checks at function entry.
1694         (g_string_down): new function for tolower(3) conversion.
1695         (g_string_up): new function for toupper(3) conversion.
1696
1697         * gutils.c: const corrections.
1698         (g_strdown): g_string_down() counterpart.
1699         (g_strup): g_string_up() counterpart.
1700
1701         * gscanner.c (g_scanner_unexp_token):
1702         (g_scanner_error):
1703         (g_scanner_warn): new functions to let a scanner put out warnings
1704         or errors, especially to react on unexpected tokens.
1705
1706         * gslist.c:
1707         (g_slist_index): find out about about the position of a
1708         certain data pointer.
1709         (g_slist_position): find out about about the position of a
1710         certain node.
1711
1712         * glist.c:
1713         (g_list_index): find out about about the position of a
1714         certain data pointer.
1715
1716 Thu May  7 05:14:19 1998  Tim Janik  <timj@gtk.org>
1717
1718         * ltmain.sh: added a new commandline flag -postfix similar to -release,
1719         but will immediately change the library name.
1720
1721         * Makefile.am: specify -postfix and -version-info
1722
1723         * configure.in: version bump to 1.1.0. added GLIB_INTERFACE_AGE and
1724         GLIB_BINARY_AGE. calculate LT_* variables for libtool.
1725
1726 Fri May  1 16:36:08 1998  Owen Taylor  <otaylor@gtk.org>
1727
1728         * gutils.c: (g_strcasecmp). Check for isupper before
1729         taking tolower, and account for macroized tolower.
1730
1731         * gutils.c (g_error): Check for recursion.
1732
1733 1998-04-27  Elliot Lee  <sopwith@cuc.ml.org>
1734
1735         * glist.c (g_list_position): New function to find the position of
1736         a link in a list - should be the inverse of g_list_nth(), but
1737         haven't tested it so poof.
1738
1739 Thu Apr 30 21:41:30 1998  Owen Taylor  <otaylor@gtk.org>
1740
1741         * gstring.c : Check arguments more carefully,
1742         (gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
1743
1744 Tue Apr  7 19:36:48 1998  Owen Taylor  <owt1@cornell.edu>
1745
1746         * gutils.c (g_direct_compare): Removed, because that's what
1747         a NULL comparison function means. And it wasn't 64 bit safe.
1748
1749 Mon Apr  6 18:43:25 1998  Tim Janik  <timj@gtk.org>
1750
1751         * gscanner.c (g_scanner_get_token_ll): fixed a bug that caused floats
1752         of the format ".xxx" to be parsed as "xxx".
1753
1754 Fri Apr  3 20:36:35 1998  Owen Taylor  <owt1@cornell.edu>
1755
1756         * gutils.c (g_parse_debug_string): Make debug string
1757         parsine case-insensitive
1758
1759 Fri Apr  3 17:03:18 PST 1998 Manish Singh <yosh@gimp.org>
1760
1761         * gstring.c: corrected possible overrun when inserting into
1762         GStrings (thanks Elrond)
1763
1764 Fri Apr  3 18:05:45 1998  Owen Taylor  <owt1@cornell.edu>
1765
1766         * testglib.c: Removed literal german from strings
1767         to appease SGI compiler.
1768
1769 Thu Mar 26 20:47:21 1998  Owen Taylor  <owt1@cornell.edu>
1770
1771         * configure.in glib glibconfig.h.in: Add test for atexit/on_exit -
1772         use on_exit if atexit not found in definition of ATEXIT.
1773
1774 Wed Mar 25 15:23:37 1998  Owen Taylor  <owt1@cornell.edu>
1775
1776         * Makefile.am: Switched glibconfig.h rule from HEADERS
1777         to DATA, so that it is not added to DISTFILES
1778
1779 Wed Mar 18 22:27:08 PST 1998 Manish Singh <yosh@gimp.org>
1780
1781         * garray.c: g_rarray_truncate length done correctly
1782
1783 Sun Mar 15 07:13:34 1998  Tim Janik  <timj@gimp.org>
1784
1785         * gutils.c: changed *_handler variables to be named glib_*_handler,
1786         so you can easily access them from gdb.
1787
1788 Sat Mar 14 17:47:43 1998  Owen Taylor  <owt1@cornell.edu>
1789
1790         * Makefile.am: Don't refer to current directory as $(top_builddir)
1791         to avoid confusing non-gmakes
1792
1793 Sat Mar 14 01:37:35 1998  Owen Taylor  <owt1@cornell.edu>
1794
1795         * Makefile.am (configincludedir): Moved glibconfig.h to
1796           $(pkglibdir)/include
1797
1798 Tue Mar 10 02:03:12 1998  Tim Janik  <timj@gimp.org>
1799
1800         * gscanner.c (g_scanner_destroy_symbol_table_entry): new function to
1801         free symbol table entries upon destruction
1802         (gtk-gronlund-980309-0.patch.gz).
1803
1804 Mon Mar  9 15:02:21 1998  Tim Janik  <timj@gimp.org>
1805
1806         * glib.h: changed *_length functions to return guint.
1807         changed *_nth functions to take guint as argument.
1808
1809         * glist.c: adapted g_list_length and g_list_length.
1810
1811         * gslist.c: adapted g_slist_length and g_slist_length.
1812
1813 Mon Mar  2 17:51:18 1998  Owen Taylor  <owt1@cornell.edu>
1814
1815         * glib.h gutils.c : changed g_strcasecmp
1816           to take gchar* not guchar*
1817
1818         * testglib.c: Remove trailing ; after functions
1819
1820 Sun Mar  1 19:04:40 1998  Owen Taylor  <owt1@cornell.edu>
1821
1822         * glib.h gstring.c: Added g_string_insert[_c]()
1823           and g_string_erase().
1824
1825           From: Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>
1826
1827 Mon Feb 16 23:05:06 1998  Owen Taylor  <owt1@cornell.edu>
1828
1829         * glist.c (g_list_insert_sorted): Changed function
1830           so elements are always inserted, even if they compare
1831           equal with another.
1832
1833 Thu Feb 12 22:48:11 1998  Owen Taylor  <owt1@cornell.edu>
1834
1835         * gstring.c glib.h: removed deprecated g_string_equal
1836           and g_string_hash.
1837
1838 Tue Feb 10 13:04:36 1998  Owen Taylor  <owt1@cornell.edu>
1839
1840         * configure.in: Add check to see if the C library's
1841           iswalnum can actually be used. (Not true for
1842           Linux libc-5.4.38)
1843
1844 Sat Feb  7 11:48:09 1998  Owen Taylor  <owt1@cornell.edu>
1845
1846         * gstring.c gutils.c: added some additional consts in
1847           appropriate places to remove a warning
1848
1849 Sat Feb  7 11:15:54 1998  Owen Taylor  <owt1@cornell.edu>
1850
1851         * gutils.c: include <ctype.h> for tolower()
1852
1853 Fri Jan 30 23:57:17 PST 1998 Manish Singh <yosh@gimp.org>
1854
1855         * added and autoconfigured in a new utility function
1856         g_strcasecmp
1857
1858 Wed Jan 28 23:53:27 PST 1998 Manish Singh <yosh@gimp.org>
1859
1860         * glist.c
1861         * gslist.c
1862         * testglib.c: the sort functions compared backwards. Fixed
1863         * glib.h: list iterator macros now check for NULL pointers
1864
1865 Tue Jan 27 09:46:57 PST 1998 Manish Singh <yosh@gimp.org>
1866
1867         * gstring.c: g_string_prepend and g_string_prepend_c had
1868         interchanged src and dest parameters for g_memmove. Fixed.
1869
1870 Tue Jan 27 01:38:52 PST 1998 Manish Singh <yosh@gimp.org>
1871
1872         * gslist.c: fixed a really, really lame error. g_slist_insert
1873         didn't hook the data in! Reworked the routine to reflect the
1874         functionality of g_list
1875
1876 Wed Jan 21 01:13:25 1998  Tim Janik  <timj@psynet.net>
1877
1878         * Applied patch from (Raja R Harinath <harinath@cs.umn.edu>)
1879           to add function g_snprintf.
1880         * configure.in (AC_CHECK_FUNCS): Check for vsnprintf.
1881         * glib.h: Add prototype for g_snprintf.
1882         * glibconfig.h.in: Add HAVE_VSNPRINTF.
1883         * gutils.c (g_snprintf): new function.
1884
1885 Sat Jan 17 23:52:40 1998  Owen Taylor  <owt1@cornell.edu>
1886
1887         * gstring.{c,h} gscanner.c:
1888            renamed g_string_equal => g_str_equal
1889            renamed g_string_hash => g_str_hash
1890           And const corrected. Old functions left in for now.
1891
1892 Fri Jan  9 20:03:46 1998  Tim Janik  <timj@psynet.net>
1893
1894         * gutils.c (g_strerror): changed message for EAGAIN from
1895         "no more processes" to "try again" since EAGAIN is used with
1896         functions else than fork().
1897
1898         * gscanner.c (g_scanner_get_token_ll): use strtol() instead of
1899         strtoul() to avoid conflicts with solaris.
1900
1901         * merged the glib portions from Jan 2 to Jan 7 out of gtk+/ChangeLog
1902         into this file.
1903
1904 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
1905
1906         * glib.h:
1907         * glist.c:
1908         * gslist.c:
1909         * testglib.c: Added g_[s]list_insert_sorted function
1910         and appropriate tests in testglib
1911
1912 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
1913
1914         * glib.h: Changed guint32 -> guint for bitfields.
1915         (Bitfields must be int or unsigned int?)
1916
1917 Fri Jan  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
1918
1919         * glib_pre1.h:
1920         * glib_pre2.h:
1921         * glib.h: reverted glibconfig.h and glib.h files back to the
1922         way they were before my ugly hack.
1923
1924         * gscanner.c: removed inlines from clist and gscanner
1925
1926 Tue Dec 23 02:49:51 1997  Tim Janik  <timj@psynet.net>
1927
1928         * gscanner.c: new file for GScanner: Flexible lexical scanner for
1929         general purpose.
1930         * glib_pre2.h: added GScanner includes. added g_strconcat and g_strtod.
1931         gutils.c (g_strconcat): new function for string concatenation of NULL
1932         terminated parameter list.
1933         (g_strtod): new function to perform best string to double conversion
1934         with or without consideration of the current locale.
1935
1936 Mon Dec 15 19:33:58 1997  Tim Janik  <timj@psynet.net>
1937
1938         * glist.c: minor optimizations:
1939         (g_list_append): `if' optimized for common code path, commented out
1940         unneccessary `assert', saved one variable assignment.
1941         (g_list_prepend): saved two (conditioned) variable assignment.
1942         (g_list_insert): saved one  (conditioned) variable assignment,
1943         saved one variable assignment.
1944         (g_list_remove): `if' optimized for common code path, saved two
1945         variable assignments by using `g_list_free_1' (which is even
1946         faster) instead of `g_list_free'.
1947         (g_list_reverse): saved allocation of one variable, saved one
1948         variable assignment.
1949
1950 Wed Dec 10 23:27:20 1997  Tim Janik  <timj@psynet.net>
1951
1952         * glib_pre1.h:
1953         * glib_pre2.h:
1954         * glib.h: this file now gets concatenated by makeglib_h from
1955         glib_pre1.h and glib_pre2.h to merge in glibconfig.h wich got
1956         created by configure (done by Jay Painter).
1957
1958         * glib_pre2.h: the g_assert*() and g_return_*_fail() macros
1959         are wrapped by G_STMT_START and G_STMT_END now, to avoid conflicts
1960         when used within if (...) g_macro(); else ... conditionals.
1961
1962 Tue Dec 17 13:14:07 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1963
1964         * glib.h: Changed 'g_return_if_fail' and 'g_return_val_if_fail' to
1965         not call 'g_string' but to simply stringify the
1966         expression. Calling 'g_string' causes the expression to be
1967         expanded which is undesired.
1968
1969 Sun Dec  1 01:30:48 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1970
1971         * Started ChangeLog