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