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