Update location of pkgconfig from sourceforge.net to new location at
[platform/upstream/glib.git] / ChangeLog
1 2001-07-26  Darin Adler  <darin@bentspoon.com>
2
3         * configure.in:
4         * m4macros/glib-2.0.m4:
5         Update location of pkgconfig from sourceforge.net to new
6         location at freedeskop.org.
7
8 2001-07-26  Michael Natterer  <mitch@convergence.de>
9
10         * gobject/glib-genmarshal.c: added a "release_check" to the
11         OutArgument structure, which, if present, gets integrated in the
12         marshaller code and protects us from stuff like
13         g_object_unref(NULL) on marshaller return values.
14
15 2001-07-23  Padraig O'Briain  <Padraig.Obriain@sun.com>
16
17         * gobject/gobjectnotifyqueue.c: fix unconditional check of
18         first GParamSpec in g_object_notify_queue_thaw(); prevent
19         property notification being lost
20
21 2001-07-23  Ron Steinke  <rsteinke@w-link.net>
22
23         * glib/giochannel.c: fixed g_io_channel_seek_position() so that
24         G_SEEK_CUR works for UTF-8 channel encoding, and unallocated
25         converters are not flushed after the seek; fixed
26         g_io_channel_get_buffer_condition() so that G_IO_IN is only
27         set if the read buffer contains at least one full character
28
29 2001-07-23  Sven Neumann  <sven@gimp.org>
30
31         * Makefile.am: removed glib.def from EXTRA_DIST ...
32         * glib/Makefile.am: ... and added it here.
33
34 2001-07-22  Hans Breuer  <hans@breuer.org>
35
36         * glib/giochannel.c (g_io_channel_get_buffer_condition) : make
37         the code actually have an effect (Use |= to set bits). Not
38         absolutely sure if is the right one.
39
40         * glib/giowin32.c (g_io_win32_<check|prepare>) : don't modify
41         watch->condition but restored the previous behaviour.
42         Now gio-test as well as The Gimp work again ...
43         
44 2001-07-21  Hans Breuer  <hans@breuer.org>
45
46         * glib/giowin32.c (g_io_channel_new_file) : set the
47         corresponding p(ermission)mode of the file when creating,
48         otherwise a wronly file couldn't be overwritten (at least
49         not on Win9x).
50
51 2001-07-21  Hans Breuer  <hans@breuer.org>
52
53         * glib/giowin32.c : intial implementation of new API functions.
54         Not sure if it behaves as intended ...
55
56         * glib.def : removed, glib/glib.def is the file used since moved
57         * glib/glib.def : updated
58
59         * tests/makefile.msc : added iochannel-test
60
61 Fri Jul 20 19:19:10 (UTC) 2001  Ron Steinke  <rsteinke@w-link.net>
62
63         * glib/giochannel.c: API changes, fixes to
64         error handling, some internal restructuring
65         * glib/giochannel.h: API changes, documentation for
66         elements in GIOChannel structure
67         * glib/giounix.c: Matched API changes, implemented
68         backend to set is_readable, is_writeable, is_seekable
69         flags, added a test to catch large values of count
70         for which the behavior of write() is undefined
71         * glib/giowin32.c: Changed to match new prototypes for
72         io_close() and io_seek(), removed references to
73         G_IO_STATUS_INTR, set is_seekable flag in channel
74         creation functions
75         * glib.def: Renamed g_channel_error_quark() and
76         g_channel_error_from_errno() to g_io_channel_error_quark() and
77         g_io_channel_error_from_errno(); added new functions
78         g_io_channel_get_buffered() and g_io_channel_set_buffered()
79         * docs/reference/glib/glib-sections.txt: Modified iochannel
80         section to reflect new functions and API changes
81         * tests/iochannel-test.c: Fixed to work with API changes
82         * tests/iochannel-test-infile: New file; input file
83         for iochannel-test
84         * tests/unicode-collate.c tests/unicode-normalize.c:
85         Changed G_IO_FILE_MODE_READ to "r" to match API change
86
87 Fri Jul 20 19:16:24 (UTC) 2001  Ron Steinke  <rsteinke@w-link.net>
88
89         * gobject/glib-genmarshal.c: modified to create header files
90         using G_[BEGIN,END]_DECLS instead of #ifdef __cplusplus ...
91
92 Fri Jul 20 14:11:29 2001  Owen Taylor  <otaylor@redhat.com>
93
94         * glib/gutf8.c glib/gunidecomp.c: s/size_t/gsize/ to match
95         prototypes.
96
97 Thu Jul 19 16:05:21 2001  Owen Taylor  <otaylor@redhat.com>
98
99         * glib/gcompletion.c (g_completion_complete): Fix memory
100         leak and dubious list manipulation. (Found by 
101         Ron Koerner, #53408)
102
103         * glib/gfileutils.c (get_contents_stdio): Call fclose()
104         on FILE * on error. (#57057)
105
106 2001-07-20  Hans Breuer  <hans@breuer.org>
107
108         * glib/glib/giowin32.c : make it compile again
109
110         * glib/glib.def : updated exports
111
112         * glib/makefile.msc.in :
113         * glib/makefile.mingw.in : 
114         * tests/makefile.msc.in : reflect glib move
115
116         * tests/mainloop-test.c : #include <io.h> for _pipe()
117
118         * tests/gio-test.c : casts for strict compiler settings
119
120         * makefile.msc.in : new master makefile reflecting the glib
121         move. The '.in' isn't really needed anymore, because there
122         is no version number in it
123
124 2001-07-19  Darin Adler  <darin@bentspoon.com>
125
126         * glib/gstrfuncs.c: (g_ascii_strdown), (g_ascii_strup): Add
127         missing const.
128         (g_strsplit): Add g_return_val_if_fail for case of empty
129         delimiter, which can result in an infinite loop otherwise.
130         * glib/gstrfuncs.h: Add missing const.
131         * tests/.cvsignore: Ignore a generated file.
132         
133         * tests/array-test.c:
134         * tests/dirname-test.c:
135         * tests/hash-test.c:
136         * tests/list-test.c:
137         * tests/node-test.c:
138         * tests/relation-test.c:
139         * tests/shell-test.c:
140         * tests/slist-test.c:
141         * tests/spawn-test.c:
142         * tests/strfunc-test.c:
143         * tests/string-test.c:
144         * tests/testglib.c:
145         * tests/tree-test.c:
146         * tests/type-test.c:
147         Add an #undef G_DISABLE_ASSERT so all tests will assert even if
148         asserts are disabled inside glib itself.
149
150 Fri Jul 13 19:20:06 2001  Owen Taylor  <otaylor@redhat.com>
151
152         * glib/gstring.c (g_string_insert/append/prepend_unichar):
153         Add functions to insert a unichar as UTF-8, since this
154         is reasonably common.
155
156         * glib/gutf8.c glib/gunicode.h (g_utf8_get_char_validated):
157         New function exposing iterating through possibly invalid/incomplete
158         UTF-8 to unicode to the outside world.
159
160         * glib/gutf8.c (g_utf8_get_char_extended): Fix max_len argument
161         to be gssize, not gsize.
162
163 2001-07-17  Kjartan Maraas  <kmaraas@gnome.org>
164
165         * configure.in: Added "nn" to ALL_LINGUAS.
166         
167 2001-07-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
168
169         * glib/gmain.c: Add some assertions. Simplify and fix
170         g_main_context_release(). Fix some locking bugs in
171         g_main_loop_run().
172
173 2001-07-12  Mark Murnane  <Mark.Murnane@sun.com>
174
175         * glib/gmessages.c: Changed prototype of printf_string_upper_bound
176         to return gsize.  Now matches the actual function body.
177
178         * glib/gstrfuncs.c (g_strrstr_len): Changed type of parameter #2 
179         from gint to gssize.  Now matches the prototype in gstrfuncs.h.
180         
181 2001-07-11  Darin Adler  <darin@bentspoon.com>
182
183         * .cvsignore: Add some generated files.
184
185         * glib/gmain.c: (g_main_context_iterate): Comment out cruft
186         after #endif to avoid gcc warning.
187         * gmodule/gmodule.c: (g_module_set_error_unduped): Remove
188         const from type to avoid gcc warning.
189         * gobject/gsignal.c: (g_signal_emitv): ifdef variable used
190         only if G_ENABLE_DEBUG to avoid gcc warning.
191         * gobject/gtype.c: (type_iface_vtable_init_Wm),
192         (type_iface_vtable_finalize_Wm): ifdef call needed only
193         if !G_DISABLE_ASSERT to avoid gcc warning.
194         * tests/testglib.c: (main): ifdef call needed only if
195         !G_DISABLE_ASSERT to avoid gcc warning. Maybe later we
196         should make the test to #undef G_DISABLE_ASSERT.
197         * tests/unicode-collate.c: Add include of <string.h> to
198         avoid gcc warning.
199
200 Wed Jul 11 11:13:50 2001  Owen Taylor  <otaylor@redhat.com>
201
202         * glib/Makefile.am (libglib_1_3_la_SOURCES): Add gunicomp.h
203         (Reported by Sven Neumann).
204
205         * glib/guniprop.c (g_utf8_str/updown) glib/gunicollate.c
206         (g_utf8_collate_key): Fix shadowing problems reported by
207         many (D. Adler, S. Neumann, M. Murmane, L. Peter)
208
209 Fri Jul  6 00:02:41 2001  Tim Janik  <timj@gtk.org>
210
211         * glib/gmessages.c (printf_string_upper_bound): fix negative exponent
212         handling (numbers<0).
213         
214         * glib/gutils.h (g_bit_storage): take a gulong as argument.
215         same for g_bit_nth_lsf() and g_bit_nth_msf() as mask.
216
217 2001-07-08  Martin Baulig  <baulig@suse.de>
218
219         * tests/unicode-normalize.c, tests/unicode-collate.c:
220         Reflect latest g_io_channel_new_file() API changes, use
221         G_IO_FILE_MODE_READ instead of "r".
222
223 Fri Jul  6 22:34:32 2001  Owen Taylor  <otaylor@redhat.com>
224
225         * glib/gunicode.h glib/gunidecomp.c glib/guniprop.c 
226           glib/gunicollate.c: Add length arguments to
227         g_utf8_{strup,strdown,casefold,collate_key}.
228
229         * glib/gdate.c: Fix for above.
230
231 2001-07-06  Pablo Saratxaga <pablo@mandrakesoft.com>
232
233         * configure.in: added Basque (eu) to ALL_LINGUAS
234
235 Mon Jul  2 19:48:52  2001 Andrew Lanoix <alanoix@umich.edu>
236
237         *giowin32.c: g_source_remove()ing an socket iochannel closes
238         the socket when it should not. Patch by Peter Zelezny 
239         <zed@linux.com>
240
241         *giowin32.c: Fix a few typos
242         
243 Mon Jul  2 16:03:21 2001  Owen Taylor  <otaylor@redhat.com>
244
245         * glib/giochannel.c (g_io_channel_get_buffer_condition): Fix.
246
247         * glib/giunix.c: Fix prepare/check/dispatch for watches.
248
249         * tests/unicode-normalize.c: #include <string.h>
250
251 Sat Jun 30 23:14:32 2001  Tim Janik  <timj@gtk.org>
252
253         * glib/glist.[hc]: added g_list_insert_before().
254
255         * glib/gslist.c (g_slist_insert_before): provide an implementation,
256         prototype was already present...
257
258 Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
259
260         * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
261         rather than a custom macro.
262
263         * glib/gen-unicode-tables.pl: Adapt to changes in table
264         formats for Unicode 3.1
265
266         * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
267           glib/gen-unicode-tables.pl: Add case conversion functions
268         g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
269
270         * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
271           tests/gen-casemap-txt.pl tests/casefold.txt 
272           tests/casemap.txt: Test cases for case conversion.
273
274         * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
275           glib/gen-unicode-tables.pl: Add function to do Unicode
276         normalization g_utf8_normalize().
277
278         * tests/unicode-normalize.c: Test program for case conversion.
279
280         * glib/gunicode.h glib/gunicollate.c: Add collation functions
281         g_utf8_collate, g_utf8_collate_key.
282
283         * test/unicode-collate.c: Test program for collation.
284
285         * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
286         variable.
287
288         * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
289         Make work with UTF-8 even if the locale isn't UTF-8 based.
290         Still somewhat of broken, if the format string contains 
291         characters not representable in the current locale, will warn
292         and not work.
293         
294         * glib/gdate.c: Use UTF-8 normalization and casefolding.
295
296 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
297
298         * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
299         Rename GSourceFuncs::destroy to GSourceFuncs::finalize.
300         (#56858)
301
302 Sat Jun 30 15:49:10 2001  Owen Taylor  <otaylor@redhat.com>
303
304         * glib/gmain.[ch]: (Mostly patch from Sebastian Wilhemi)
305         Make some changes to the way that GMainContext works:
306
307          - a GMainContext is no longer associated with a single
308            thread, but any thread can acquire ownership 
309            of thread and iterate.
310
311          - There is a facility g_main_context_wait() for
312            non-owner-threads to wait either for ownership
313            or for a condition to be broadcast.
314
315          - For efficiency, GMainLoop just piggybacks of
316            of the loops mutex / condition instead of
317            having a separate mutex/condition for each
318            GMainLoop.
319
320         * glib/gthread.[ch]: Remove hacks to store the thread's
321         GMainContext in the GThread structures, since we
322         no longer have the GMainContext <=> GThread correspondence.
323         
324         * glib/gmain.[ch]: Make g_main_context_wakeup() public
325         so someone could completely duplicate GMainLoop 
326         with the public API.
327
328         * tests/mainloop-test: Fix up to the new API. Decidedly
329         doesn't work at the moment, but that may be the IO
330         channel changes, or preexisting locking problems.
331
332 Sat Jun 30 13:18:28 2001  Owen Taylor  <otaylor@redhat.com>
333
334         * glib/gstrfuncs.c glib/gstring.h: Try compiling
335         before committing, why don't you? Simple fixes
336         for my stupid typos. 
337
338 Sat Jun 30 12:49:26 2001  Owen Taylor  <otaylor@redhat.com>
339
340         Patch from Darin Adler (#54166)
341         
342         * glib/gstrfuncs.[ch]: Add ascii-only, locale-insensitive
343         g_ascii_to[lower/upper], g_ascii_str[down/up],
344         g_ascii_is[upper/lower] and deprecate the locale-affected
345         versions which break for UTF-8, etc. Make
346         g_ascii_strup/strdown duplicating,
347         not in-place for consistency with UTF-8 functions.
348
349         * glib/gstring.[ch]: Add ascii-only, locale-insensitive
350         g_string_ascii_[down/up], and deprecate the locale-affected
351         versions which break for UTF-8, etc.
352
353         * glib/gutils.c glib/gwin32.c test/testglib.c: Use
354         the g_ascii_* functions where appropriate.
355
356 Fri Jun 29 13:36:39 2001  Owen Taylor  <otaylor@redhat.com>
357
358         * glib/gstring.[ch] (g_string_set_size): Add function to 
359         allow setting the length of a string greater than the 
360         current length (for buffering usage)
361
362         * glib/gstring.[ch]: Expose string->allocated_len, since
363         that is useful when using GString simply as a buffer. 
364         (Renamed from string->alloc)
365
366         * glib/giochannel.[ch] glib/giounix.c glib/giowin32.c:
367         Major patch from Hidetoshi Tajima and Ron Steinke
368         reworking GIOChannel to have:
369
370          - Buffering
371          - Sane and useful error reporting
372          - Streaming encoding conversion with iconv
373          - Convenience functions to read by lines or 
374            an entire file.
375
376         Also fix remaining 64 bit cleanliness issues.
377
378         * tests/iochannel-test.c tests/Makefile.am: Test case
379         for IO channel streaming conversion. Still needs 
380         some fixing up.
381
382 Thu Jun 28 16:57:44 2001  Tim Janik  <timj@gtk.org>
383
384         * configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
385         interface age 0, binary age 0.
386
387 2001-06-27  Kjartan Maraas  <kmaraas@gnome.org>
388
389         * glib/gmarkup.c: Fix a typo.
390         
391 2001-06-27  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
392
393         * Makefile.am, configure.in: Removed glib-config-2.0, as we have
394         pkg-config now.
395
396         * glib/Makefile.am: Added -I$(top_srcdir) for builddir != srcdir.
397
398         * Makefile.am: Removed gen-unicode-tables.pl from EXTRA_DIST.
399
400 Tue Jun 26 11:43:46 2001  Owen Taylor  <otaylor@redhat.com>
401
402         * configure.in Makefile.am *.[ch] glib/*.[ch] glib/Makefile.am:
403         Move glib library into a subdirectory, make all GLib include
404         files include as <glib/glist.h>
405
406         * tests/testglib.c tests/testgdate.c tests/testgdateparser.c
407           tests/timeloop.c tests/timeloop-basic.c: Move all tests into
408         the tests/ subdirectory.
409
410 Sat Jun 23 17:34:38 2001  Tim Janik  <timj@gtk.org>
411
412         * gmessages.c (g_logv): use G_BREAKPOINT() instead of raise(5).
413
414 Wed Jun 20 12:00:54 2001  Owen Taylor  <otaylor@redhat.com>
415
416         Changes for 64-bit cleanliness, loosely based on patch 
417         from Mark Murnane.
418         
419         * gconvert.c (g_convert/g_convert_with_fallback): Remove
420         workarounds for since-fixed GNU libc bugs. Minor
421         doc fix.
422
423         * gconvert.[ch]: Change gint to gsize/gssize as
424         appropriate.
425
426         * gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
427         computation of bytes_read / bytes_written.
428
429         * gfileutils.[ch] (g_file_get_contents): Make length
430         out parameter 'gsize *len'.
431
432         * ghook.c (g_hook_compare_ids): Don't compare a
433         and b as 'a - b'.
434
435         * gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
436         GSIZE_TO_POINTER.
437
438         * gmain.c (g_timeout_prepare): Rewrite to avoid
439         overflows. (Fixes bug when system clock skews
440         backwards more than 24 days.)
441
442         * gmarkup.[ch]: Make lengths passed to callbacks
443         gsize, length for g_markup_parse-context_parse(),
444         g_markup_escape_text() gssize.
445
446         * gmessages.[ch] (g_printf_string_upper_bound): Change
447         return value to gsize.
448
449         * gmessages.c (printf_string_upper_bound): Remove
450         a ridiculous use of 'inline' on a 300 line function.
451
452         * gstring.[ch]: Represent size of string as a gsize,
453         not gint. Make parameters to functions take gsize,
454         or gssize where -1 is allowed.
455
456         * gstring.c (g_string_erase): Make
457         g_string_erase (string, pos, -1) a synonym for
458         g_string_truncate for consistency with other G*
459         APIs.
460
461         * gstrfuncs.[ch]: Make all functions taking a string
462         length, take a gsize, or gssize if -1 is allowed.
463         (g_strstr_len, g_strrstr_len). Also fix some boundary
464         conditions in g_str[r]str[_len].
465
466         * gutf8.c tests/unicode-encoding.c: Make parameters that 
467         are byte lengths gsize, gssize as appropriate. Make 
468         character offsets, other counts, glong.
469
470         * gasyncqueue.c gcompletion.c
471           timeloop.c timeloop-basic.c gutils.c gspawn.c.
472         Small 64 bit cleanliness fixups.
473
474         * glist.c (g_list_sort2, g_list_sort_real): Fix functions
475         that should have been static.
476
477         * gdate.c (g_date_fill_parse_tokens): Fix extra
478         declaration that was shadowing another.
479
480         * tests/module-test.c: Include string.h
481
482 Mon Jun 18 15:43:29 2001  Owen Taylor  <otaylor@redhat.com>
483
484         * gutf8.c (g_get_charset): Make argument
485         G_CONST_RETURN char **.
486
487 2001-06-22  Andrew Lanoix <alanoix@umich.edu>
488         
489         *giowin32.c: Debug and partial rewrite of async socket code
490         on windows, which fixes major MT issues. Some test code kindly 
491         provided by wroberts1@home.com.
492         
493 Thu Jun 14 14:09:46 2001  Owen Taylor  <otaylor@redhat.com>
494
495         * gstrfuncs.c (g_strconcat): Fix a use of strcat that
496         wasn't replaced with g_stpcpy in the original 
497         stpcpy-for-efficiency patch.
498
499 2001-06-11  Havoc Pennington  <hp@redhat.com>
500
501         * NEWS: updated
502
503         * configure.in (GLIB_MICRO_VERSION): increment version to 1.3.6
504
505 2001-06-08  Alex Larsson  <alexl@redhat.com>
506
507         * gstrfuncs.[ch]:
508         Added new functions g_strstr_len, g_strrstr and g_strrstr_len
509         
510         * tests/strfunc-test.c:
511         Add some tests for the new functions.
512         
513         * gunicode.h:
514         * gutf8.c:
515         Add length argument to g_utf8_strchr and g_utf8_strrchr.
516         
517 2001-06-08  Havoc Pennington  <hp@redhat.com>
518
519         * gspawn.c: support G_SPAWN_FILE_AND_ARGV_ZERO specifying that 
520         the vector passed in to g_spawn_* contains a filename to 
521         execute in argv[0] then the actual argv begins at argv + 1.
522         Kind of a lame hack, but this isn't something you commonly want
523         to do, and avoids adding more function arguments.
524
525 2001-06-08  Pablo Saratxaga <pablo@mandrakesoft.com>
526
527         * configure.in: Added Azeri (az) to ALL_LINGUAS
528
529 2001-06-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
530
531         * docs/Makefile.am, configure.in: Remove docs/glib-config.1.in.
532
533         * gthread-2.0-uninstalled.pc.in (Cflags): Add @G_THREAD_CFLAGS@.
534
535 2001-06-07  Havoc Pennington  <hp@redhat.com>
536
537         * m4macros/glib-2.0.m4: subst GLIB_GENMARSHAL, GOBJECT_QUERY, 
538         GLIB_MKENUMS variables
539
540         * gmodule-2.0.pc.in: add gmodule_supported variable
541
542         * glib-2.0.pc.in: add glib_genmarshal, gobject_query,
543         glib_mkenums variables  
544
545         * configure.in: put G_MODULE_SUPPORTED value into 
546         .pc files
547
548         * autogen.sh: support AUTOGEN_SUBDIR_MODE
549
550         * Makefile.am: add -uninstalled.pc.in to EXTRA_DIST
551
552 2001-06-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
553
554         * configure.in: Look for nanosleep function. 
555
556         * gtimer.c: Use nanosleep for g_usleep, when found.
557
558         * gtimer.c, gtimer.h: Add g_time_val_add function. Closes #54271.
559
560         * gasyncqueue.c: Documentation updates.
561
562         * gthreadpool.c: Use g_time_val_add now that we have it.
563
564 2001-06-01  Jon Trowbridge  <trow@gnu.org>
565
566        * gdate.c (g_date_update_julian): Changed to take a const
567        argument, and then to cast out const.
568        (g_date_update_dmy): Changed to take a const argument, and then
569        cast out const.
570        (g_date_get_weekday): Changed argument to be const.
571        (g_date_get_month): Changed argument to be const.
572        (g_date_get_year): Changed argument to be const.
573        (g_date_get_day): Changed argument to be const.
574        (g_date_get_julian): Changed argument to be const.
575        (g_date_get_day_of_year): Changed argument to be const.
576        (g_date_get_monday_week_of_year): Changed argument to be const.
577        (g_date_get_sunday_week_of_year): Changed argument to be const.
578        (g_date_compare): Changed arguments to be const.
579        (g_date_to_struct_tm): Changed GDate argument to be const.
580        (g_date_strftime): Changed GDate argument to be const.
581        (g_date_clamp): Added.  The equivalent of the CLAMP macro for
582        GDates.
583        (g_date_order): Added.  Ensure that the first GDate argument
584        preceeds the second, swapping them if necessary.
585        (g_date_days_between): Added.  Computes the (signed) number of days
586        between two dates.
587
588 Mon Jun  4 16:02:57 2001  Owen Taylor  <otaylor@redhat.com>
589
590         * gstrfuncs.c (g_strup/strdown): to match g_strcasecmp,
591         check if it is lower/upper before converting to upper/lower
592         [ not required by ISO... ] (#55682, Jon Trowbridge)
593
594 Mon Jun  4 15:59:15 2001  Owen Taylor  <otaylor@redhat.com>
595
596         * gunicode.h: Make a bit more standalone by adding include
597         of gerror.h. #54543.
598         
599         * gunicode.h: Change size_t to g_size. (Ugh)
600
601 2001-05-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
602
603         * grand.h (g_random_boolean, g_rand_boolean): Fix to stupid bug in
604         g_random_boolean, also both functions now return 1 or 0 instead of
605         1<<15 or 0.
606
607         * tests/rand-test.c: Extended testcases.
608
609         * configure.in: Remove G_HAVE_ISO_CXX_VARARGS and
610         G_HAVE_ISO_C_VARARGS and define G_HAVE_ISO_VARARGS directly
611         guarded by #if(n)def __cplusplus.
612
613 2001-05-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
614
615         * gthread-2.0.pc.in: Add @G_THREAD_CFLAGS@ to Cflags.
616
617 Tue May 29 18:17:11 2001  Owen Taylor  <otaylor@redhat.com>
618
619         * autogen.sh (have_libtool): Fix GNU sedism
620
621 2001-05-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
622
623         * tests/Makefile.am, tests/qsort-test.c: Add test case for the
624         g_qsort_with_data func. It works. This fixes bug #52605.
625
626         * tests/Makefile.am, tests/cxx-test.C: Now that we check for a C++
627         compiler in configure.in anyway, I added a test, that the GLib
628         headers can be inclued into a C++ program. This fixes bug #52605.
629
630         * configure.in: Don't bail out, if no C++ compiler is
631         found. Define G_HAVE_ISO_VARARGS only if appropriate.
632
633         * gmessages.h: Thus we can revert the previous patch.
634
635 2001-05-29  James Henstridge  <james@daa.com.au>
636
637         * gmessages.h: "#ifdef G_HAVE_ISO_VARARGS" will always succeed
638         even when we don't have ISO vararg support.  Changed to
639         "#if G_HAVE_ISO_VARARGS".
640
641 Mon May 28 11:40:34 2001  Owen Taylor  <otaylor@redhat.com>
642
643         * configure.in: Check for __VARARGS__ separately for C and C++.
644
645 2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
646
647         * configure.in: Fix typo.
648
649 Sun May 27 05:09:18 2001  Tim Janik  <timj@gtk.org>
650
651         * gmain.c (g_main_context_prepare): unlock context when bailing
652         out with a warning.
653         (g_main_context_check): same here.
654
655         * gmain.c (g_main_context_check): before returning due to
656         changed pollfds, unlock context.
657         
658 Thu May 24 21:24:16 CEST 2001 Paolo Molaro <lupus@ximian.com>
659
660         * gmarkup.c: back out change by mitch@convergence.de and apply patch in
661         bug id #52067 that fixes the same problem in a more complete manner.
662         This fixes also a segfault for a malformed XML file and adds a new
663         test case.
664
665 2001-05-24  Hans Breuer  <hans@breuer.org>
666
667         * grel.c : reflect renaming of g_string_sprintfa to g_string_printfa
668
669         * makefile.msc.in : create an additional static lib to be used from
670         (at least) glib-genmarshal
671
672 2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
673
674         * garray.c (g_array_remove_index_fast): Tiny speed improvement
675         suggested by noon@users.sourceforge.net.
676
677 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
678
679         * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
680         "gthread-win32.c".
681
682         * glibconfig.h.win32.in: Define G_HAVE_ISO_VARARGS for gcc, don't
683         know about MSC. Define G_THREADS_IMPL_WIN32 instead of
684         G_THREADS_IMPL_POSIX and define the right static mutex macros and
685         types.
686
687         * glib.def: g_thread_create renamed to g_thread_create_full.
688
689         * gthread.c: memcpy is not necessary here. We can simply use
690         struct assignment.
691
692         * gmessages.c: Fix compilation error on win32. Added
693         GFileDescriptor, wich is gint on Unix and FILE* on win32.
694
695 2001-05-21  Andrew Lanoix <alanoix@umich.edu>
696
697         *giowin32.c: G_IO_WIN32_WINDOWS_MESSAGES channels
698         not handled correctly in g_io_win32_check()
699
700 Sun May 20 10:47:47 2001  Owen Taylor  <otaylor@redhat.com>
701
702         * configure.in: Fix some problems in writing out varargs
703         tests in configure.in
704
705 Fri May 18 10:52:23 2001  Owen Taylor  <otaylor@redhat.com>
706
707         * configure.in gmessages.h: Use compile checks for ISO C99 and GNU
708         extension varargs macros syntax and store result in glibconfig.h
709         (G_HAVE_ISO_VARARGS, G_HAVE_GNUC_VARARGS) rather than relying
710         on checking predefined macros.
711
712 2001-05-18  Michael Natterer  <mitch@convergence.de>
713
714         * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
715         their values twice but simply copy the string pointers from the
716         GMarkupAttribute struct to the string arrays before passing them
717         to start_element().
718
719 2001-05-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
720
721         * gthread.c, gthread.h: Renamed g_thread_create to
722         g_thread_create_full and added macro g_thread_create, which omits
723         'stack_size', 'bound' and 'priority' parameters. Also removed
724         'bound' from GThread struct.
725
726         * gthreadpool.h, gthreadpool.c: Adapted GThreadPool to the above
727         changes. GThreadPool lost the 'priority' and 'bound'
728         members. g_thread_pool_new the 'stack_size', 'bound' and
729         'priority' parameters.
730
731         * tests/mainloop-test.c, tests/thread-test.c,
732         tests/threadpool-test.c: Adapted to the above changes.
733
734         * gmem.c (g_mem_profile): Fixed mutex deadlock.
735
736 2001-05-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
737
738         * makefile.mingw.in: Add gpattern.o to objects.
739
740         * glib.def: Export g_thread_exit as well.
741
742         * Makefile.am: Fix BUILT_EXTRA_DIST exporting.
743
744 Sun May 13 10:31:17 2001  Owen Taylor  <otaylor@redhat.com>
745
746         * glib/Makefile.am gobject/Makefile.am gmodule/Makefile.am:
747         Add inter-library dependencies.
748
749         * acinclude.m4: Remove libtool macros.
750
751         * autogen.sh: Require libtool-1.4, automake-1.4p1.
752
753 2001-05-15  Havoc Pennington  <hp@redhat.com>
754
755         * configure.in (AC_OUTPUT): m4macros/Makefile
756
757         * m4macros/Makefile.am, m4macros/glib-2.0.m4,
758         m4macros/glib-gettext.m4:
759         m4 files moved here on server, Makefile.am added
760          
761         This is so you can aclocal -I m4macros while avoiding acinclude.m4
762
763         * Makefile.am: add m4macros subdir, remove references to glib-2.0.m4
764
765 2001-05-14  Havoc Pennington  <hp@redhat.com>
766
767         * gutf8.c (g_utf8_get_char): fix docs; they said we validated 
768         the UTF-8, but we can't possibly detect partial chars since
769         there's no length arg here, so trying to use this function 
770         on invalid UTF-8 is a bad idea.
771
772 Thu May 10 23:21:30 2001  Owen Taylor  <otaylor@redhat.com>
773
774         * gmessages.c (g_log_write_prefix): Avoid using stdio
775         to be as robust as possible in out-of-memory.
776
777         * gmessages.c (g_log_default_handler): Remove some dead
778         code.
779
780         * gutils.c (g_parse_debug_string): Fix to avoid mallocs.
781
782 Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
783
784         * gdataset.c:
785         (g_dataset_foreach):
786         (g_datalist_foreach): make these safe against removal of the
787         current element.
788
789 2001-05-10  Havoc Pennington  <hp@pobox.com>
790
791         * gmessages.c (g_log_write_prefix): change env variable to
792         G_MESSAGES_PREFIXED, suggested by Tim
793
794 Thu May 10 15:19:01 2001  Tim Janik  <timj@gtk.org>
795
796         * gscanner.c (g_scanner_key_hash): use g_str_hash() algorithm
797         to generate hashes.
798
799         * gmem.c (standard_calloc): free() doesn't return a value
800         (Mark Murnane).
801
802 2001-04-26  Havoc Pennington  <hp@redhat.com>
803
804         * configure.in: Get rid of --enable-msg-prefix
805
806         * gmessages.c: make whether to prefix the messages with
807         appname/pid a runtime setting, not a compile-time setting.  Change
808         default to include prefix for debug/warning/error type messages.
809
810 2001-05-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
811
812         * gthread.c, gthread.h: Renamed 'value' and 'arg' to 'data' and
813         'thread_func' to 'func' to make it more consistent with the rest
814         of GLib.
815
816         * gthreadpool.c, gthreadpool.h: Moved 'stack_size' from the public
817         members of GThreadPool to the private ones. Renamed 'thread_func'
818         to 'func' as above. Moved up 'user_data' in g_thead_pool_new
819         argument list and in GThreadPool struct.
820         
821 Tue May  8 15:33:31 2001  Tim Janik  <timj@gtk.org>
822
823         * gcompletion.h: removed #include <unistd.h> sneaked in by
824         sopwith in november.
825
826 2001-05-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
827
828         * gmain.c, gthread.c, gthread.h: Moved func and arg members from
829         GRealThread to GThread, such that they can be accessed by the
830         user.
831
832         * gthread.c, gthread.h: Due to popular demand (Tim being the
833         populus here ;-) threads now have a 'return value', which is
834         returned by g_thread_join and is either the return of the topmost
835         thread function or the value given to g_thread_exit.
836         
837         * gthreadpool.c, tests/mainloop-test.c, tests/thread-test.c:
838         Adapted to the above change.
839
840 2001-01-06  Hans Breuer  <hans@breuer.org>
841
842         * glib.def : don't try to export g_strcpy, it is g_stpcpy;
843         updated and added some tweaking for functions which got 
844         renamed recently, to avoid the update hassle if it can 
845         simply be done compatible. Should vanish if there is a 
846         stable version for win32.
847
848 Fri May  4 11:49:18 2001  Owen Taylor  <otaylor@redhat.com>
849
850         * Released 1.3.5
851
852         * NEWS: Updated
853
854         * configure.in (GLIB_MICRO_VERSION): Up version to 1.3.5,
855         interface/binary age 0.
856
857 2001-05-04  Sven Neumann  <sven@convergence.de>
858
859         * ghash.c: fixed a typo in a comment.
860
861         * gtree.[ch]: added new functions g_tree_new_full(), g_tree_replace(), 
862         g_tree_steal() and g_tree_foreach() to adapt GTree to the GHashTable
863         API. Moved comments into the C file.
864
865         * docs/reference/glib/glib-sections.txt
866         * docs/reference/glib/tmpl/glib-unused.sgml
867         * docs/reference/glib/tmpl/hash_tables.sgml
868         * docs/reference/glib/tmpl/linked_lists_double.sgml
869         * docs/reference/glib/tmpl/linked_lists_single.sgml
870         * docs/reference/glib/tmpl/macros_misc.sgml
871         * docs/reference/glib/tmpl/trees-binary.sgml: updated documentation
872         
873 Thu May  3 06:38:28 2001  Owen Taylor  <otaylor@redhat.com>
874
875         * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
876         foreach() safe against removal of the _current_ element. While
877         this could break some code, the new behavior is consistent with
878         the rest of GLib/GTK+ and probably is what people expect in most
879         cases. (Suggested by Paul Kuykendall, #50071)
880
881 Wed May  2 11:10:22 2001  Owen Taylor  <otaylor@redhat.com>
882
883         * gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
884         (#50404, fix from Jonas Borgström)
885         
886 Sun Apr 29 00:37:34 2001  Tim Janik  <timj@gtk.org>
887
888         * ghook.[hc]: made hook ids a gulong.
889
890 2001-04-20  Dan Winship  <danw@ximian.com>
891
892         * configure.in: Add a check for the Darwin dynamic linker. Use
893         AC_TRY_LINK when checking for "nonposix getpwuid_r" so it notices
894         "no getpwuid_r" correctly.
895
896         * testglib.c (main): Make template[] bigger to prevent an overrun.
897         Remove an unused variable. Initialize error to NULL.
898
899         * tests/gio-test.c (main): Add a cast to prevent a warning when
900         size_t is a long.
901
902         * tests/type-test.c (main): Add an #ifdef to prevent a warning
903         when G_HAVE_GINT64 is defined and G_GINT64_FORMAT isn't.
904
905 2001-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
906
907         * ghash.c, ghash.h: Remove definition of g_hash_table_freeze and
908         g_hash_table_thaw. Instead added G_DISABLE_DEPRECATED-guarded
909         macros to ghash.h to go along the lines of the standard.
910
911         * gscanner.c, gscanner.h: Dito for g_scanner_freeze_symbol_table
912         and g_scanner_thaw_symbol_table.
913
914         * gutils.c, gutils.h: Dito for g_dirname. g_basename is still
915         defined in gutils.c, but declared ing gutils.h only
916         G_DISABLE_DEPRECATED-guarded.
917         
918         * configure.in: Removed bashism in test for the pkg-config
919         version.
920
921         * configure.in: Rewrote test for multithread flag. Now uses
922         localtime_r, which hopefully has a consistent prototype across
923         different platforms. Also it uses a clever double EGREP trick
924         instead of compiling, which could give false positives. Thanks to
925         Dan Winship <danw@ximian.com> for the hint.
926
927 Wed Apr 18 17:35:38 2001  Owen Taylor  <otaylor@redhat.com>
928
929         * gutils.c (_glib_gettext): Add missing static pointed
930         out by Michael Meeks.
931
932 Wed Apr 18 09:37:07 2001  Owen Taylor  <otaylor@redhat.com>
933
934         * MAINTAINERS: Removed. Keeping README, README.cvs-commits
935         HACKING, and AUTHORS up to date is plenty without extra
936         random files that someone thought a module should have.
937         (Actually, I believe this was used for debbugs in the past.)
938
939 Tue Apr 17 11:47:07 2001  Owen Taylor  <otaylor@redhat.com>
940
941         * Released 1.3.4
942
943         * NEWS: Updated
944
945 Tue Apr 17 10:43:36 2001  Owen Taylor  <otaylor@redhat.com>
946
947         * gstrfuncs.c: Define _GNU_SOURCE for stpcpy
948
949         * tests/mainloop-test.c (main): Wait for all threads
950         to start before beginning tests.
951
952 2001-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
953
954         * gthreadpool.c (g_thread_pool_thread_proxy): Until now every
955         thread pool always had at least one tread waiting to avoid
956         switching overhead in case a new task would be added soon after
957         one finished. This however means a big waste of threads, if many
958         mostly inactive thread pools are involved. Now such a waiting
959         thread will only wait for half a second (This value is of course
960         very randomly picked) and go to the global threadpool afterwards.
961
962 Mon Apr 16 12:04:52 2001  Owen Taylor  <otaylor@redhat.com>
963
964         * configure.in: Remove warnings about conflicts with the
965         stable version.
966
967         * glib-2.0.m4: Fix some of the error text to be halfway
968         up to date.
969
970         * README.in INSTALL.in: Add these to generate README, INSTAL
971         (as in the stable branch). Update.
972
973         * HACKING: Update.
974
975 2001-04-16  Havoc Pennington  <hp@redhat.com>
976
977         * gqsort.c: docs
978
979         * gfileutils.c: docs
980
981         * gwin32.c: docs fixes
982
983         * gconvert.c: docs
984
985         * guniprop.c: docs
986
987         * gutf8.c: docs
988
989 2001-04-16  Havoc Pennington  <hp@redhat.com>
990
991         * glib-2.0.m4: put AC_PATH_PROG(pkg-config) before "Checking for
992         glib" so the output looks right 
993
994 2001-03-23  Havoc Pennington  <hp@redhat.com>
995
996         * gutils.c (g_parse_debug_string): make GDebugKeys argument 
997         const
998
999 2001-04-14  Hans Breuer  <hans@breuer.org>
1000
1001         * glib.def : 
1002         * makefile.msc.in : updated
1003
1004         * gpattern.c : include "gutils.h" to resolve the inline hassle
1005
1006 2001-04-11  Alexander Larsson  <alexl@redhat.com>
1007
1008         * glib-2.0.m4: Pass pkg-config options
1009         before the other args so it works even if
1010         POSIXLY_CORRECT is set.
1011
1012 Mon Apr  9 18:57:44 2001  Tim Janik  <timj@gtk.org>
1013
1014         * configure.in: increment version to 1.3.4 (binary 0, interface 0).
1015
1016 2001-04-05  Christian Rose  <menthos@menthos.com>
1017
1018         * configure.in: Added sv to ALL_LINGUAS.
1019
1020 Wed Apr  4 09:18:55 2001  Tim Janik  <timj@gtk.org>
1021
1022         * Released GLib-1.3.3.
1023
1024 Tue Apr  3 20:22:59 2001  Tim Janik  <timj@gtk.org>
1025
1026         * NEWS: updates.
1027
1028         * NEWS.pre-1-3: take over old news.
1029
1030 Tue Apr  3 12:38:16 2001  Owen Taylor  <otaylor@redhat.com>
1031
1032         * glib-config-2.0.in: Exit with an error message that you
1033         should use pkg-config instead.
1034
1035         * configure.in (PACKAGE): Require pkg-config.
1036
1037         * tests/Makefile.am (EXTRA_DIST): Add utf8.txt.
1038
1039         * configure.in (GLIB_MICRO_VERSION): Up MICRO to 3,
1040         leave interface/binary at 0.
1041
1042 Tue Apr  3 13:46:22 2001  Tim Janik  <timj@gtk.org>
1043
1044         * glist.[hc]: added g_list_nth_prev() which walks ->prev instead
1045         of ->next.
1046
1047         * gpattern.[hc]: added shell-style pattern matching code from beast,
1048         derived from the gtk_pattern_*() code, but with a couple of bug fixes
1049         and a number of optimizations.
1050
1051 2001-04-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1052
1053         * gthreadpool.c: Added documentation.
1054
1055         * gthreadpool.c: The global thread pool now also is seperated for
1056         bound and unbound threads. Only threads with standard stack size
1057         go to the global pool. g_thread_pool_new now protects the global
1058         setup of inform_mutex etc. with a lock. Fixed some typos. Unlock
1059         the queue after g_thread_pool_wakeup_and_stop_all in the proxy.
1060
1061 2001-04-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1062
1063         * gmain.c: Use the new GRealThread member "context" instead of a
1064         GStaticPrivate to store the thread specific main loop context.
1065
1066         * gthread.c: Added "context" member to GRealThread and updated
1067         g_thread_create, g_thread_self and g_thread_cleanup accordingly.
1068         
1069         * gthread.c, gthread.h: Removed the functions
1070         g_static_private_(get|set)_for_thread and adapted
1071         g_static_private_(get|set) and g_static_private_free
1072         accordingly. This fixes Bug #51435.
1073         
1074 2001-03-30  Sven Neumann  <sven@gimp.org>
1075
1076         * ghash.[ch]
1077         * docs/reference/glib/tmpl/hash_tables.sgml: added new functions
1078         g_hash_table_new_full, g_hash_table_replace, g_hash_table_steal and
1079         g_hash_table_foreach_steal. Moved most docs out of the template
1080         file into the C file. Please proofread the new documentation.
1081
1082 2001-03-29  Tor Lillqvist  <tml@iki.fi>
1083
1084         * glib.def: Updates.
1085         * tests/makefile.mingw.in
1086         * tests/makefile.msc.in: Add module-test rules.
1087
1088 Mon Mar 26 14:14:53 2001  Owen Taylor  <otaylor@redhat.com>
1089
1090         * Makefile.am (INCLUDES): -DG_DISABLE_DEPRECATED
1091
1092         * gmain.h timeloop.c: Surround the cruftiest stuff with
1093         #ifndef G_DISABLE_DEPRECATED.
1094
1095         * gcompat.h gdate.h: Move compat defines back to 
1096         gdate.h, surround with #ifndef G_DISABLE_DEPRECATED. 
1097         Remove gcompat.h.
1098
1099 Mon Mar 26 13:34:50 2001  Owen Taylor  <otaylor@redhat.com>
1100
1101         [ Patch from DindinX  <David.Odin@bigfoot.com>, added docs ]
1102  
1103         * gstrfuncs.c, gstrfuncs.h: Add g_stpcpy () for platform that don't
1104         have stpcpy ().
1105         * gstrfuncs.c (g_strjoin, g_strjoinv and g_strconcat): use
1106         g_stpcpy () so these functions run much faster.
1107         * config.h.win32.in, glib.def: add reference to g_stpcpy ()
1108         * configure.in: Add a test for the stpcpy () function.
1109  
1110 2001-03-20  Havoc Pennington  <hp@redhat.com>
1111
1112         * gutf8.c (g_utf8_strlen): rewrite, based on bug #52328 from
1113         Anders
1114
1115 2001-03-19  Havoc Pennington  <hp@redhat.com>
1116
1117         * gutf8.c (g_unichar_validate): added this function
1118
1119 2001-03-18  Tor Lillqvist  <tml@iki.fi>
1120
1121         * gspawn-win32.c (SETUP_DEBUG): Add braces to silence gcc -Wall.
1122
1123         * gspawn-win32-helper.c (write_no_error): Remove unused function.
1124
1125         * tests/makefile.mingw.in (module-test.exe): Add rules for
1126         building module-test.
1127
1128 Wed Mar 14 18:46:54 2001  Tim Janik  <timj@gtk.org>
1129
1130         * gscanner.[hc]: removed archaic gpointer derived_data; relict and
1131         added a GData member instead.
1132         
1133         * glist.[hc]: added g_list_remove_all().
1134
1135         * gslist.[hc]: added g_slist_remove_all().
1136
1137 Sat Mar 17 19:54:51 2001  Owen Taylor  <otaylor@redhat.com>
1138
1139         * timeloop.c: Reorder headers to make FreeBSD happy. 
1140
1141 2001-03-13  Tor Lillqvist  <tml@iki.fi>
1142
1143         From Edward M. Lee  <tailbert@yahoo.com>:
1144
1145         * gdate.c (g_date_set_parse): add support for dates that in the
1146         form "Wed Mar 14 2001". Running testgdate on cygwin requires this.
1147
1148 Fri Mar  9 18:01:43 2001  Tim Janik  <timj@gtk.org>
1149
1150         * gscanner.[hc]: made config arg to g_scanner_new() const.
1151
1152 2001-03-12  Tor Lillqvist  <tml@iki.fi>
1153
1154         * tests/Makefile.am (libmoduletestplugin_b_la_LIBADD,
1155         libmoduletestplugin_b_la_LIBADD): Link with the libgmodule la only
1156         on Win32.
1157
1158 2001-03-10  Tor Lillqvist  <tml@iki.fi>
1159
1160         * glibconfig.h.win32.in: Define G_PLATFORM_WIN32 here, too.
1161
1162         * tests/Makefile.am: Use the _LIBADD dependency on libglib only on
1163         Win32.
1164
1165 2001-03-09  Tor Lillqvist  <tml@iki.fi>
1166
1167         * README.win32: Update with some information about using configure
1168         and libtool.
1169
1170 2001-03-09  Hans Breuer  <hans@breuer.org>
1171
1172         * gobject/gobject.def : updated
1173
1174 2001-03-08  Tor Lillqvist  <tml@iki.fi>
1175
1176         * glib.def
1177         * gobject/gobject.def
1178         * gobject/makefile.mingw.in: Update.
1179
1180 2001-03-08  Sven Neumann  <sven@gimp.org>
1181
1182         * gtree.[ch]: 
1183         * docs/reference/glib/tmpl/trees-binary.sgml: added new function 
1184         g_tree_lookup_extended().
1185
1186 Thu Mar  8 16:23:34 2001  Tim Janik  <timj@gtk.org>
1187
1188         * ghook.[hc]: destruction cleanup. there's one
1189         ->finalize_hook member in the hooklist now that gets
1190         called when a hook should be destroyed, that's it.
1191         that function is guarranteed to be called only when
1192         all ref_counts to the hook vanished, thus also when
1193         the hook is not in call.
1194
1195 2001-03-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1196
1197         * configure.in (FLAG_DOES_NOT_WORK): Fix typo and thus bug #51862.
1198
1199 Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
1200
1201         * glib-object.h: add gvaluearray.h.
1202
1203         * gstring.[hc]: fixup naming of g_string_sprint*.
1204         
1205         * gtypes.h: fixed GCompareDataFunc naming.
1206
1207 2001-03-07  Christian Meyer  <chrisime@gnome.org>
1208
1209         * configure.in: Added de (German) to ALL_LINGUAS.
1210
1211 2001-03-02  Christophe Merlet  <redfox@eikonex.org>
1212
1213         * configure.in: Added fr (French) to ALL_LINGUAS.
1214
1215 2001-03-01  Tor Lillqvist  <tml@iki.fi>
1216
1217         * gutils.c (g_path_is_absolute): (Win32) Remove test for initial
1218         double backslash (UNC path), this will of course be matched by the
1219         test for an initial G_DIR_SEPARATOR right up front. Silly me.
1220         (g_find_program_in_path): Implement on Win32. Append the
1221         executable file name suffixes from PATHEXT in turn while looking
1222         for the program.
1223         (g_find_program_in_path): If the program we are looking for is a
1224         relative path in a subdirectory, don't do any path search.
1225         (g_get_any_init): (Win32) Also look for the USERPROFILE env var
1226         indicating the home directory equivalent.
1227         (g_find_program_in_path): (Win32): Use MAXPATHLEN, not PATH_MAX
1228         which isn't defined with MSVC.
1229
1230         * testglib.c (main): Test g_find_program_in_path() on Win32 by
1231         looking for more.com and regedit.
1232
1233         * glib.def: Add g_find_program_in_path.
1234
1235 2001-02-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1236
1237         * gthreadpool.c (g_thread_pool_thread_proxy): Make
1238         max_unused_threads work for -1 as well.
1239
1240 2001-02-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1241
1242         * gthread.h (struct _GThread): Change the order to match the order
1243         in g_thread_create().
1244
1245         * gthread.c (g_static_rec_mutex_lock_full): Also do the right
1246         thing (behave like 'depth' calls to g_static_rec_mutex_lock) for a
1247         mutex, that is already locked.
1248
1249 Thu Feb 22 10:31:36 2001  Owen Taylor  <otaylor@redhat.com>
1250
1251         * gmain.c (g_source_remove_poll): Add missing implementation
1252         of g_source_remove_poll. (Pointed out by Stefan Westerfeld)
1253
1254 2001-02-21  Tor Lillqvist  <tml@iki.fi>
1255
1256         * gutils.c (g_find_program_in_path): Implement on Win32.
1257
1258         Cygwin support contributed by Stefan Ondrejicka
1259         <ondrej@idata.sk>. Hopefully I got it all in while simultaneously
1260         adding support for auto*/libtool for mingw.
1261
1262         * Makefile.am: Changes for auto* support on Cygwin and Win32. Do
1263         still distribute the hand-written makefiles and *.win32.in files,
1264         though. Use GIO, GSPAWN and PLATFORMDEP macros set by configure.
1265         Use -no-undefined. Pass -export-symbols glib.def to libtool.
1266         
1267         * configure.in: Define G_PLATFORM_WIN32 on both pure Win32 (mingw)
1268         and Cygwin. Add AC_CYGWIN, AC_EXEEXT and AC_LIBTOOL_WIN32_DLL
1269         calls for Cygwin and mingw support.  Check for %I64u guint64
1270         format (in MS C library). Set G_MODULE_IMPL on mingw and
1271         Cygwin. Use ac_object and ac_exeext.  Set GIO, GSPAWN, PLATFORMDEP
1272         and G_LIBS_EXTRA. Compile timeloop only on Unix. Define OS_WIN32
1273         automake conditional on Win32.
1274         
1275         * glib.h: Include gwin32.h also on Cygwin.
1276
1277         * gfileutils.c (get_contents_posix): Use O_BINARY (defined as 0 on
1278         Unix) for Cygwin's sake.
1279
1280         * gtimer.c (GETTIME): Reduce #ifdefs, use a macro GETTIME().
1281
1282         * gconvert.c
1283         * gthread.c
1284         * gutf8.c
1285         * gutils.c: For code needed both on Cygwin and native Win32,
1286         test for G_PLATFORM_WIN32.
1287
1288         * gmarkup.h: Use G_BEGIN_DECLS and G_END_DECLS.
1289         
1290         * gtypes.h: Refine GLIB_VAR definition. Also check for DLL_EXPORT
1291         in case compiling a static library on Win32 or Cygwin.
1292
1293         * gwin32.c: No <direct.h> on Cygwin. No need for ftruncate() or
1294         dirent emulation on Cygwin.
1295         (get_package_directory_from_module) Convert return value from
1296         GetModuleFileName() to POSIX path on Cygwin.
1297
1298         * tests/Makefile.am (progs_LDADD): Link with libglib, libgthread
1299         and libgmodule as appropriate. Use -no-undefined.
1300
1301         * gbacktrace.c: Move #ifdefs around a bit on Win32.
1302
1303 2001-02-21  Tor Lillqvist  <tml@iki.fi>
1304
1305         * gshell.c (unquote_string_inplace): Make static.
1306
1307         * gthread.h: Include gtypes.h to be sure to get GLIB_VAR
1308         definition, remove definition from here.
1309
1310         * gunicode.h: Remove duplicate GLIB_VAR definition from here, too.
1311
1312         * gutils.c: (Win32) Use USERPROFILE as home dir if present. On
1313         Win2k, HOMEDRIVE and HOMEPATH aren't reliable.
1314         
1315         * Makefile.am (INCLUDES): Add -DGLIB_COMPILATION.
1316
1317         * makefile.mingw.in: Remove install target, Windows isn't Unix.
1318         (DEFINES): Add -DDLL_EXPORT.
1319
1320         * testgdate.c
1321         * testgdateparser.c
1322         * testglib.c: Undefine GLIB_COMPILATION.
1323
1324         * testglib.c: Make some vars static. Add Cygwin path tests.
1325
1326         * glib.def: Updates.
1327
1328         * .cvsignore
1329         * */.cvsignore: Ignore also .obj, .dll, .lib and .exe files.
1330
1331 2001-02-19  Hans Breuer <hans@breuer.org>
1332
1333         * glib/glib.def, gobject/gobject.def : added nissing symbols
1334
1335         * gobject/makefile.msc : updated
1336
1337         * glib/gmessages.c : call the "debug interrupt" before exiting the
1338         program, if build with msvc as debug version. Which gives the opportunity
1339         to see the callstack, etc.
1340
1341         * glib/gthread.c : thread->pid is only defined #ifdef
1342         G_THREAD_USE_PID_SURROGATE
1343
1344 Mon Feb 19 07:32:38 2001  Tim Janik  <timj@gtk.org>
1345
1346         * glib-config-2.0.in (lib_glib): my name is glib-config-2.0!
1347         don't exit with errorcode!=0 for --help or -h.
1348         
1349         * Makefile.am:
1350         * configure.in: build glib-config-2.0.
1351
1352 2001-02-17  Havoc Pennington  <hp@pobox.com>
1353
1354         * gthread.c: include string.h
1355
1356         Applied patch from Soeren Sandmann:
1357         
1358         * testglib.c: const fixes
1359
1360         * gwin32.h: format cleanups
1361
1362         * gutils.c (g_atexit): constify a variable
1363         (g_find_program_in_path): constification
1364         (g_basename): G_CONST_RETURN
1365         (g_path_skip_root): G_CONST_RETURN
1366         (g_getenv): G_CONST_RETURN
1367         (g_get_user_name): G_CONST_RETURN
1368         (g_get_real_name): G_CONST_RETURN
1369         (g_get_home_dir): G_CONST_RETURN
1370         (g_get_tmp_dir): G_CONST_RETURN
1371         (g_get_prgname): G_CONST_RETURN
1372         (_glib_gettext): G_CONST_RETURN
1373
1374         * gunicode.h: formatting cleanups
1375
1376         * gstrfuncs.c (g_strerror): G_CONST_RETURN
1377         (g_strsignal): G_CONST_RETURN
1378
1379         * gspawn.c (g_execute): const on variables
1380
1381         * gmessages.c (printf_string_upper_bound): fix const on a variable
1382
1383         * gmem.c (g_mem_chunk_new): make the "name" arg const
1384         (struct _GRealMemChunk): make the "name" field const
1385
1386         * gfileutils.c (g_file_open_tmp): store const return in a const
1387         gchar* variable
1388
1389         * gdataset.c (g_quark_to_string): G_CONST_RETURN
1390
1391 Sat Feb 17 07:26:33 2001  Tim Janik  <timj@gtk.org>
1392
1393         * configure.in (G_MODULE_HAVE_DLERROR): add check for broken RTLD_GLOBAL
1394         (on OSF1 V5.0).
1395
1396 2001-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1397
1398         * acconfig.h, configure.in: Reverted the changes necessary to
1399         enlarge the system thread for G_THREAD_USE_PID_SURROGATE.
1400
1401         * gthread.c: Now implement G_THREAD_USE_PID_SURROGATE in gthread.c
1402         instead of gthread/gthread-posix.c. While the latter has the
1403         advantage, that it is conceptually cleaner, it makes
1404         g_thread_self_posix_impl _very_ slow and that hurts
1405         GStaticRecMutex and other things. So the new version is less
1406         clean, but faster.
1407
1408 2001-02-09  Havoc Pennington  <hp@redhat.com>
1409
1410         * gconvert.c (g_convert): don't overwrite errors
1411
1412         * gerror.c (g_set_error): improve warning message if an error is
1413         overwritten     
1414         (g_propagate_error): ditto
1415
1416 2001-02-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1417
1418         * gthread.c, gthread.h: Added functions g_static_rec_mutex_init,
1419         g_static_rec_mutex_free, g_static_private_init,
1420         g_static_private_free, g_static_rw_lock_init to allow the usage of
1421         all those types dynamically. (g_static_rw_lock_free already
1422         existed). Aditionally freed static_private indeces are reused
1423         now. Untill now the array would just grow if you would use more
1424         and more static_private. That required adding a slist of all
1425         running threads, which could potentially be of good use later. It
1426         is not exported however. Renamed a LOCK and small indentation
1427         fixes.
1428
1429         * tests/thread-test.c: Test the new static_private index freing
1430         and reusing feature.
1431         
1432 Mon Feb 12 15:01:09 2001  Owen Taylor  <otaylor@redhat.com>
1433
1434         * configure.in (gtk_doc_min_version): Add check for gtk-doc version.
1435
1436 2001-02-10  Tor Lillqvist  <tml@iki.fi>
1437
1438         * gtypes.h
1439         * gutils.h: Move GLIB_VAR definition from gutils.h to gtypes.h
1440
1441         * glib.def
1442         * gmem.h: Mark glib_mem_profiler_table for export.
1443
1444         * gwin32.c (get_package_directory_from_module): Don't store
1445         address of local variable in hashtable.
1446
1447 2001-02-08  Fatih Demir <kabalak@kabalak.net>
1448
1449         * configure.in: Added "tr" to ALL_LINGUAS.
1450
1451 2001-02-04  Tor Lillqvist  <tml@iki.fi>
1452
1453         * gwin32.c (g_win32_getlocale): Use "nn" for Nynorsk, as nn.po
1454         files are appearing now. If the sublanguage starts with '@', don't
1455         use a '_' separator. South Africa is 'ZA', not 'SA'.
1456
1457 Sun Feb  4 07:38:32 2001  Tim Janik  <timj@gtk.org>
1458
1459         * docs/debugging.txt: s/glib_trap_/g_trap_/. add comments on
1460         g_trap_instance_signals, g_trace_instance_signals and
1461         GRUNTIME_DEBUG.
1462
1463         * gmem.c: s/glib_trap_/g_trap_/.
1464         
1465 2001-02-04  Tor Lillqvist  <tml@iki.fi>
1466
1467         * tests/Makefile.am (thread_LDADD): Change order of libs,
1468         put progs_LDADD last. Needed for cygwin, says jbdoll@kepri.re.kr.
1469
1470 2001-02-02  Tor Lillqvist  <tml@iki.fi>
1471
1472         * giochannel.h
1473         * giowin32.c
1474         * gmain.c: Stylistic cleanups. Use G_STRLOC in g_warning() calls.
1475
1476         * glib.def: Add missing functions.
1477
1478 2001-02-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1479
1480         * gthread.c, gthread.h: Added g_static_mutex_init to allow
1481         initialization of a GStaticMutex, that can not be initialized with
1482         G_STATIC_MUTEX_INIT, for example in allocated structures.
1483
1484 Wed Jan 31 13:46:58 2001  Owen Taylor  <otaylor@redhat.com>
1485
1486         * acinclude.m4 glib-gettext.m4: Fix problem with --disable-nls.
1487
1488 2001-01-31  Tor Lillqvist  <tml@iki.fi>
1489
1490         * glibconfig.h.win32.in: Corresponding change as below to
1491         GStaticMutex.
1492
1493 2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1494
1495         * gthread.c, gthread.h: Added g_static_mutex_free to allow using
1496         GStaticMutexes with limited lifetime without leaking.
1497         
1498         * configure.in: GStaticMutex doesn't have to provide extra space
1499         for debugging information for G_ERRORCHECK_MUTEXES, as then the
1500         non-default implementation (runtime_mutex) is used anyway.
1501
1502         * gthread.h (g_cond_wait): Added debug information for
1503         g_mutex_free calls, if G_ERRORCHECK_MUTEXES is defined.
1504
1505 2001-01-29  Tor Lillqvist  <tml@iki.fi>
1506
1507         * glibconfig.h.win32.in: Use the same GMutex structure as the
1508         configure-generated glibconfig.h does.
1509
1510         * gstrfuncs.c (g_strsignal): Declare strsignal() on Cygwin, too,
1511         says jbdoll@kepri.re.kr.
1512
1513 2001-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1514
1515         * gthread.c: Broadcast the condition, if there are waiting
1516         readers, as all might read at the same time. Only signal the
1517         writer thread, if there are no more readers.
1518
1519 2001-01-25  Tor Lillqvist  <tml@iki.fi>
1520
1521         * makefile.mingw.in
1522         * */makefile.mingw.in: Protect the rule to rebuild makefile.mingw
1523         if makefile.mingw.in has changed with a check if said .in file
1524         exists. (This rule is mainly a convenience for yours truly.)
1525
1526         * giowin32.c: Socket support rewritten. It was utterly broken, and
1527         untested in fact. We still do use a thread for each socket being
1528         watched, but instead of blocking in recv() (which of course was
1529         plain stupid for sockets being listen()ed on in a server-type
1530         application), we block in select(). The read method for sockets
1531         calls recv(). It is now possible for the application to call
1532         accept(), recv() or send() in the callback, just like on
1533         Unix. Tested with code kindly provided by Andrew Lanoix.
1534
1535         Rename g_io_channel_win32_new_stream_socket() to
1536         g_io_channel_win32_new_socket() as it isn't restricted to stream
1537         sockets.
1538         
1539         * gmain.c (g_poll): Related changes in the Win32 version of
1540         g_poll(). When polling for messages, always do a PeekMessage()
1541         first. We used to miss messages if several were posted between
1542         calls to g_poll().
1543
1544         * giochannel.h: Improve Win32-related comments.
1545
1546         * gutf8.c: (Win32) Include <stdio.h> for sprintf.
1547
1548         * tests/gio-test.c: (Win32) Add tests for polling for Windows
1549         messages.
1550
1551         * tests/makefile.mingw.in: Remove superfluous compilation command
1552         line.
1553
1554 2001-01-23  Alex Larsson  <alexl@redhat.com>
1555
1556         * gmain.c (g_source_callback_unref): Free the callback
1557         (g_source_set_callback): Initialize the callback refcount
1558
1559 2001-01-20  Tor Lillqvist  <tml@iki.fi>
1560
1561         * gutils.c (g_get_codeset): (Win32) Even if g_get_codeset() is
1562         currently commented out from gutils.h, fix it to return the same
1563         CP%d value as g_get_charset().
1564
1565 2001-01-19  Kjartan Maraas  <kmaraas@gnome.org>
1566
1567         * gconvert.c: Fix typo.
1568         * gfileutils.c: Same here.
1569         * configure.in: Added no to ALL_LINGUAS
1570         
1571 2001-01-17  Tor Lillqvist  <tml@iki.fi>
1572
1573         * gwin32.c (g_win32_getlocale, g_win32_error_message): Add doc
1574         comments.
1575         (g_win32_get_package_installation_directory): Add one parameter,
1576         the name of a DLL in the package. Add possibility to use that to
1577         deduce the installation directory if not entered into the
1578         Registry. Make the return value dynamically allocated.
1579         (g_win32_get_package_installation_subdirectory): New convenience
1580         function.
1581
1582         * gutils.c (GLIB_LOCALE_DIR)
1583         * gwin32.h: Adapt accordingly.
1584
1585         * testglib.c (main): Adapt tests accordingly.
1586
1587 Tue Jan 16 23:20:38 2001  Owen Taylor  <otaylor@redhat.com>
1588
1589         * gutils.c glibintl.h: Optimize for size rather than speed by
1590         making _() always call _glib_gettext() instead of conditionally
1591         calling gettext() or _glib_gettext_init. glib only uses translated
1592         strings in slow error handling code anyways.
1593
1594         * glibintl.h: g'ify types.
1595
1596         * Makefile.am: include glibintl.h in _SOURCES
1597
1598 2001-01-17  Tor Lillqvist  <tml@iki.fi>
1599
1600         * config.h.win32.in: Define ENABLE_NLS and GETTEXT_PACKAGE.
1601
1602         * makefile.mingw.in
1603         * makefile.msc.in: Use the GNU intl library.
1604
1605         * gwin32.c (g_win32_get_package_installation_directory): New
1606         function. To be used by various GLib-using packages to get their
1607         installation directory, which should be stored in the Registry by
1608         some installer.
1609
1610         * gwin32.h: Declare it.
1611
1612         * testglib.c (main): Test it.
1613
1614         * gutils.c: On Win32, define GLIB_LOCALE_DIR using
1615         g_win32_get_package_installation_directory().
1616
1617         * glib.def: Update.
1618
1619 Mon Jan 15 21:39:06 2001  Owen Taylor  <otaylor@redhat.com>
1620
1621         * glib-2.0.pc.in (Libs) glib-config-2.0.in: Add @INTLLIBS@.
1622
1623 Mon Jan 15 21:12:49 2001  Owen Taylor  <otaylor@redhat.com>
1624
1625         * configure.in acconfig.h glibintl.h gutils.c
1626         po/{Makefile.in.in,POTFILES.in,po2tbl.in}: Add gettext
1627         support.
1628
1629         * glib-gettext.m4 acinclude.m4: Clean up the GTK+ gettext macros
1630         some more and put them in this file, though they also need
1631         to be included in acinclude.m4 due to the brokeness of
1632         aclocal.
1633
1634         * gspawn.c gspawn-win32.c gutf8.c gconvert.c gfileutils.c
1635         gshell.c: Remove dummy _() #defines, include glibintl.m4.
1636
1637 2001-01-09  Tor Lillqvist  <tml@iki.fi>
1638
1639         * giowin32.c: Rework the changes needed to pass mainloop-test. Now
1640         we don't need to call TerminateThread() after all, which is a
1641         relief, as the docs have a BIG RED WARNING SIGN about using that
1642         API. Instead, when closing a fd channel that has a reader thread
1643         running, just mark it as non-running and additionally mark the fd
1644         as ripe for closing. When the reader thread hopefully eventually
1645         gets something (and EOF or some actual data), it will note that it
1646         shouldn't be running, break out of the loop, and close the fd.
1647
1648         The socket channel closing code should probably be changed
1649         similarily, but that will have to wait until I have a test case.
1650         
1651         (g_pipe_readable_msg, g_io_channel_win32_new_pipe,
1652         g_io_channel_win32_new_pipe_with_wakeups,
1653         g_io_channel_win32_pipe_request_wakeups,
1654         g_io_channel_win32_pipe_readable): Remove these, have been
1655         obsolete for some time.
1656         
1657         * gutils.c (g_basename, g_dirname): Don't warn about deprecation
1658         on Win32. Code written for GLib 1.2 doesn't have much choice but
1659         to use GLib >= 1.3 on Win32.
1660
1661         * glib.def: Update.
1662
1663 2001-01-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1664
1665         * gmem.c: Made g_profile_mutex a GMutex* instead of
1666         G_LOCK_DEFINE_STATIC to avoid deadlock for thread implementations
1667         without native static mutexes. Contruct g_profile_mutex in
1668         g_mem_init().
1669
1670 2001-01-06  Tor Lillqvist  <tml@iki.fi>
1671
1672         * gconvert.c (g_locale_to_utf8, g_locale_from_utf8): Get len using
1673         strlen() if arg is negative in the Win32 code, too.
1674
1675         * giowin32.c: Changes necessary to be able to run
1676         mainloop-test. We can't close the fd that our (internal) reader
1677         thread is sitting doing a blocking read() from. We must terminate
1678         the thread first. Keep track of thread handle, and close it when
1679         thread is dying. Start reader thread with the lower-level
1680         CreateThread() instead of _beginthreadex() from the C runtime, in
1681         order to be able to use TerminateThread(). Hopefuly this isn't
1682         harmful.
1683
1684         * glib.def: Update.
1685
1686         * tests/makefile.{mingw,msc}.in (TESTS): Add mainloop-test and
1687         unicode-encoding.
1688
1689         * tests/mainloop-test.c: Portability: <unistd.h>, need <fcntl.h>
1690         on Win32.
1691
1692         * tests/unicode-encoding.c (process): Add missing "line" argument
1693         to fail(). On Win32, convert UTF-16LE, as libiconv'c ivonf always
1694         converts to UTF-16BE if we ask for unspecific UTF-16.
1695         (main) Handle also '\r'.
1696
1697 Fri Jan  5 11:25:42 2001  Owen Taylor  <otaylor@redhat.com>
1698
1699         * configure.in (PACKAGE): move $enable_debug down below
1700         checks for GCC to avoid setting CFLAGS prematurely,
1701         change checks to avoid adding -g twice.
1702
1703         * gutf8.c (g_ucs4_to_utf8): Support len < 0 to mean
1704         0 termination.
1705
1706         * gutf8.c (g_utf8_to_ucs4): Terminate result with 0.
1707
1708         * tests/mainloop-test.c (main): Fix uses of 
1709         g_main_loop_destroy().
1710
1711         * tests/unicode-encoding.c tests/Makefile.am tests/utf8.txt:
1712         Tests for unicode-conversion code.
1713
1714         * gconvert.c (g_convert, g_convert_with_fallback): work around
1715         a couple of GNU libc bugs.
1716
1717         * gconvert.[ch] (g_{locale,filename}_{to,from}_utf8): Standardize
1718         arguments to match g_convert(). Document.
1719
1720         * gunicode.[ch]: 
1721           - Implement conversion functions to and from UTF-16
1722           - Standardize unicode conversion functions on prototype like
1723             g_convert.
1724           - Add a lot of error checking to unicode conversion functions.
1725
1726         * gunicode.[ch] (g_utf8_to_ucs4_fast): Add fast, non-checking
1727         variant of g_utf8_to_ucs4.
1728
1729         * gutf8.c (g_utf8_validate): 
1730          - add g_return_if_fail (str != NULL).
1731          - add checks for overlong strings, non-valid Unicode characters (>= 110000)
1732            and single surrogates.
1733
1734 2001-01-05  Tor Lillqvist  <tml@iki.fi>
1735
1736         * testglib.c (main): Add test for g_path_skip_root().
1737
1738         * gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
1739         forward slashes in the template.
1740
1741         * gutils.c (g_path_skip_root): On Win32, skip the \\server\share
1742         part of UNC paths. On all platforms, skip several initial
1743         slashes. Add a few comments.
1744         (g_get_any_init): On Win32, in case HOME is Unix-style with
1745         (forward) slashes (some other applications apparently set it up
1746         this way, convert to backslashed form.
1747
1748         * configure.in (glib_os): Remove stray 'v'. Add case for mingw,
1749         although using configure for mingw surely doesn't work yet.
1750
1751         * glib.def: Update.
1752
1753 2001-01-02  Havoc Pennington  <hp@redhat.com>
1754
1755         * configure.in: remove glib-config-2.0
1756
1757         * Makefile.am: remove glib-config-2.0
1758
1759 2001-01-03  Havoc Pennington  <hp@pobox.com>
1760
1761         * tests/Makefile.am (INCLUDES): -I$(top_srcdir)/gmodule, 
1762         fix from Michael Meeks
1763
1764         * Makefile.am (INCLUDES): DISABLE was spelled wrong
1765
1766 Wed Jan  3 14:10:49 2001  Owen Taylor  <otaylor@redhat.com>
1767
1768         * gmain.[ch]: Switch GMainLoop to be ref/unref, use to
1769         make dropping reference to running loop safe.
1770
1771 Wed Dec 13 20:41:49 2000  Owen Taylor  <otaylor@redhat.com>
1772
1773         * gmain.c (g_source_unref_internal): Unref callback->cb_data
1774         if it was still set when the source is freed. (Usually, this
1775         will be done by g_source_destroy.)
1776
1777 2001-01-02  Dan Winship  <danw@helixcode.com>
1778
1779         * garray.h (g_array_append_val, g_array_prepend_val,
1780         g_array_insert_val): Use parentheses around an argument to make
1781         these cause an error if you pass a non-lvalue for the value,
1782         rather than silently doing the wrong thing.
1783
1784 2000-12-29  Tor Lillqvist  <tml@iki.fi>
1785
1786         * glibconfig.h.win32.in: Add GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG.
1787
1788         * glib.def: Update.
1789
1790         * {.,*}/makefile.{mingw,msc}.in: Add -DG_ENABLE_DEBUG.
1791         
1792 Fri Dec 29 14:53:18 2000  Tim Janik  <timj@gtk.org>
1793
1794         * configure.in: we can't grow _cv_ variables by using a backticked
1795         expr that refers back to the variable (glib_cv_sizeof_system_thread for
1796         G_THREAD_USE_PID_SURROGATE), that'd keep the variable growing every time
1797         it's evaluated. quantum states, anyone?)
1798
1799 Thu Dec 28 10:21:46 2000  Tim Janik  <timj@gtk.org>
1800
1801         * gmem.[hc]: got rid of outdated dmalloc support. provide g_try_malloc()
1802         and g_try_realloc() which _may_ fail and return NULL.
1803         nuked g_mem_check(), provided GMemVTable for memory function
1804         virtualization, alterable at program startup with g_mem_set_vtable().
1805         provided glib_mem_profiler_table and g_mem_profile() to support limited
1806         profiling information out of the box (uses mprotect() for free()ed areas
1807         on linux).
1808         provide globally visible G_MEM_ALIGN.
1809         buncha cleanups.
1810
1811         * docs/macros.txt: file to get a clue about the various configuration
1812         macros.
1813
1814         * docs/debugging.txt: explain debugging traps.
1815
1816         * configure.in: got rid of --enable-mem-check and --enable-mem-profile,
1817         define GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG. check malloc prototypes
1818         and define SANE_MALLOC_PROTOS is we can use them.
1819         <boy, is this file a mess>
1820
1821         * gutils.c, gscanner.c: fix up compatibility warnings, use g_message().
1822
1823 2000-12-27  Tor Lillqvist  <tml@iki.fi>
1824
1825         * README.win32: Update.
1826
1827 2000-12-25  Tor Lillqvist  <tml@iki.fi>
1828
1829         * gmessages.c: (Win32) Use a MessageBox for fatal
1830         messages. Collect eror message into a buffer, and display that.
1831
1832         * glib.def: Update.
1833
1834         * glibconfig.h.win32.in: Update. Remove unused wchar and wctype
1835         macros, add G_MODULE_SUFFIX.
1836
1837 2000-12-24  Ali Abdin  <aliabdin@aucegypt.edu>
1838
1839         * Makefile.am, gcompat.h, glib.h: New gcompat.h header file
1840           as recommended by Havoc.
1841
1842         * gdate.c, gdate.h, testgdate.c,
1843           docs/reference/glib/glib-sections.txt,
1844           docs/reference/glib/tmpl/date.sgml, tests/date-test.c: Rename some
1845           of the gdate functions to use the '_get' in their name. Patch
1846           reviewed by Havoc.
1847                 
1848 2000-12-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1849
1850         * configure.in: Determine the suffix of the shared librarries for
1851         this system. This is done analogous to
1852         ltconfig.sh. G_MODULE_SUFFIX in glibconfig.h is set to either
1853         "sl", "dll", or (most often) "so".
1854
1855         * tests/Makefile.am, tests/module-test.c,
1856         tests/libmoduletestplugin_a.c, tests/libmoduletestplugin_b.c:
1857         Added new testcase for gmodule. This is mostly copied from
1858         gmodule/testgmodule.c, but unlike that is is quiet. (Why BTW are
1859         some tests that verbose, not to say loquacious...)
1860
1861 2000-12-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1862
1863         * grand.c: Updated G_RAND_DOUBLE_TRANSFORM to be more
1864         accurate. Redid g_rand_double() such that it returns 52 bits after
1865         the point instead of 32 as before. That OTOH requires calling
1866         g_rand_int() twice. Overhauled g_rand_int_range(), which is easier
1867         now thanks to the new precision of g_rand_double(). Thanks to
1868         Sverre Johansen <sj@ifi.uio.no> for the hint.
1869
1870         * grand.h: Added g_rand_boolean() and g_random_boolean()
1871         macros. While they could be omitted due to extreme simplicity,
1872         they make intention clearer in code and are therefore good to have.
1873
1874         * grand.c, grand.h: Renamed all 'min' and 'max' parameters to'
1875         begin' and 'end' resp. to avoid making people think, that 'max' is
1876         included in the interval. 'end' now isn't, whereas 'begin'
1877         is. That's similar to the use in the STL.
1878
1879         * gslist.c, glist.c: Ok, I'm a moron. When I originally
1880         implemented ENABLE_GC_FRIENDLY, I forgot to include config.h into
1881         the affected files. Now that Alex did that for those two,
1882         inevitable typos surfaced, which are now fixed.
1883         
1884         * garray.c, ghash.c, gqueue.c, gtree.c: Include config.h as well,
1885         as ENABLE_GC_FRIENDLY should be known.
1886
1887 2000-12-19  Alexander Larsson  <alexl@redhat.com>
1888
1889         * configure.in:
1890         Added --disable-mem-pools option.
1891
1892         * glist.c:
1893         * gslist.c:
1894         * gnode.c:
1895         * gmem.c:
1896         Disable free list and memory chunks if DISABLE_MEM_POOLS is defined.
1897
1898 2000-12-17  Tor Lillqvist  <tml@iki.fi>
1899
1900         * gutf8.c (g_utf8_get_charset_internal): (Win32) Use GetACP to get
1901         the current ANSI codepage.
1902
1903         * gunicode.h: Add comment that the static string g_get_charset
1904         sets the parameter to point to should be copied in case the
1905         charset might be changed later in the program.
1906
1907 2000-12-14  Tor Lillqvist  <tml@iki.fi>
1908
1909         * makefile.{mingw,msc}.in: No need to -DGSPAWN_HELPER when
1910         compiling gspawn-win32-helper any longer.
1911
1912         * giowin32.c (g_io_win32_dispatch): Warn if no callback. Call
1913         callback correctly.
1914         (g_io_win32_create_watch): Fix typo.
1915         (g_io_win32_fd_create_watch): Ditto.
1916         (g_io_channel_unix_new): If it is a file descriptor (i.e., a Unix
1917         fd lookalike provided by the C library), call
1918         g_io_channel_win32_new_fd(). If it is a socket (from WinSock),
1919         call g_io_cahnnel_win32_new_stream_socket(). Hopefully sockets and
1920         fds don't overlap. TODO: Implement also datagram sockets.
1921         (g_io_channel_win32_poll): Call g_main_context_get_poll_func().
1922
1923         * gcompletion.h: Include <unistd.h> only on Unix. Is this
1924         inclusion really needed here? OTOH, do include <stddef.h>, for
1925         size_t.
1926
1927         * gmessages.c: (Win32) Don't define a function called "write" that
1928         might clash with the prototype from <io.h>, use a #define.
1929
1930         * glib.def: Update.
1931
1932         * gmain.c (g_source_add_poll): Don't return a value from void
1933         function.
1934         (g_main_context_get_poll_func): Compile also for non-Win32, as
1935         presumably was intended. The result var is a GPollFunc, not a
1936         GPollFunc*. Return the result!
1937
1938 2000-12-13  Havoc Pennington  <hp@redhat.com>
1939
1940         * gconvert.c (open_converter): make static
1941
1942         * gutf8.c (g_utf8_validate): Simplify logic a bit, maybe 
1943         speeding it up - now we just return FALSE if we had to bail out
1944         for any reason before getting to the end of the string, as defined 
1945         by a nul byte if len was -1, defined by the len otherwise. This 
1946         also fixes a bug where nul bytes were not treated as invalid 
1947         when the length was specified.
1948
1949 2000-12-12  Havoc Pennington  <hp@pobox.com>
1950
1951         * gmain.c (g_main_context_destroy): don't try to use thread stuff
1952         unless G_THREADS_ENABLED
1953         (g_main_context_query): ditto
1954         (g_main_context_check): ditto
1955         (g_main_loop_quit): ditto
1956
1957 Tue Dec 12 18:58:22 2000  Tim Janik  <timj@gtk.org>
1958
1959         * ghash.c (g_hash_table_remove): return whether a value
1960         got removed.
1961
1962 Tue Dec 12 15:18:10 2000  Owen Taylor  <otaylor@redhat.com>
1963
1964         * gmain.[ch]: Revert unauthorized changes.
1965
1966 2000-12-12  Elliot Lee  <sopwith@redhat.com>
1967
1968         * gmain.c, gmain.h (g_main_context_new, g_main_context_destroy):
1969         GMainContext useful in implementing some additional styles of
1970         main loop usage.  To do this, however, Joe Hacker needs to be able
1971         to create/destroy GMainContext's at will. This is just an export
1972         of existing functionality, rather than any new functionality.
1973
1974         They are listed in the "Low level functions for implementing custom
1975         main loops" section of the header file, to avoid confusing people.
1976
1977 Sun Dec 10 10:47:11 2000  Owen Taylor  <otaylor@redhat.com>
1978
1979         * gmain.c (g_source_destroy_internal): Remove pollfds
1980         from the context here, not when actually freeing the
1981         source.
1982
1983         * gmain.c (g_source_unref_internal): Free source list
1984         and source, call source->source_funcs->destroy().
1985
1986         * giochannel.c: Unreference io_channel properly.
1987
1988 Thu Dec  7 15:22:30 2000  Owen Taylor  <otaylor@redhat.com>
1989
1990         * tests/mainloop-test.c (recurser_start): Add a bunch
1991         of unrefs.
1992
1993         * gmain.c (g_source_attach): Reference the source
1994         when adding (pointed out by Elliot)
1995
1996 2000-12-08  Raja R Harinath  <harinath@cs.umn.edu>
1997
1998         * acglib.m4 (GLIB_AC_DIVERT_BEFORE_HELP): 
1999         Rename from GLIB_DIVERT_BEFORE_HELP.  
2000         Update to track autoconf 2.49b.
2001         * configure.in: Reflect above change.
2002         (AC_EGREP_HEADER): Rename from really obselete AC_HEADER_EGREP.
2003         (debug_default): Replace "if test `expr ...`" with "case". 
2004
2005         * tests/Makefile.am (TESTS): Rearrange into other variables, and
2006         include run-markup-tests.sh.
2007         (TESTS_ENVIRONMENT): New.  Pass $srcdir to tests.
2008         (noinst_PROGRAMS): Rename to ...
2009         (check_PROGRAMS): ... this.  'automake' ensures that these are
2010         built before running the tests.
2011         * tests/run-markup-tests.sh: Support $srcdir != $builddir.
2012
2013 2000-12-08  Havoc Pennington  <hp@pobox.com>
2014
2015         * tests/Makefile.am (TESTS): move markup-test to noinst_PROGRAMS;
2016         it isn't a proper test, the proper test would be 
2017         run-markup-tests.sh, but that can't go in tests, so we need 
2018         a manual make check rule. Didn't do that yet.
2019
2020 2000-12-07  Raja R Harinath  <harinath@cs.umn.edu>
2021
2022         * gmain.h: Don't put anything after an #endif.
2023         * gmain.c: Likewise.
2024
2025 2000-12-06  Havoc Pennington  <hp@pobox.com>
2026
2027         * tests/strfunc-test.c (main): add g_strdupv test
2028
2029         * gstrfuncs.c (g_strdupv): Add a function to copy 
2030         an array of strings
2031
2032 Tue Dec  5 12:23:04 2000  Owen Taylor  <otaylor@redhat.com>
2033
2034         * gmain.[hc]: Major change in API for creating sources
2035         to handle multiple main loops (GMainContext *). 
2036
2037         GSources are now exposed as GSource * and implemented
2038         with structure derivation.
2039
2040         * giochannel.[ch]: Changed vtable for GIOChannel to correspond
2041         to the new mainloop API, add g_io_channel_create_watch().
2042          
2043         * gtypes.h: Move GTimeVal here.
2044
2045         * gthread.h: Remove gmain.h include to avoid circularity.
2046         
2047         * giounix.c: Update for new GMain API.
2048          
2049         * giowin32.c: Update for new GMain API. (No check for
2050         proper compilation or working.)
2051
2052         * timeloop.c timeloop-basic.c: A benchmarking program for
2053         the main loop comparing the main loop against a 
2054         hand-written (timeloop-basic.c) variant. 
2055
2056         * tests/mainloop-test.c: New torture test of mainloop.
2057         
2058         * docs/Changes-2.0.txt: Started. Added text about
2059         changes to GMain.
2060
2061         * gmain.c (g_main_add_poll_unlocked): Initial fd->revents
2062         to zero. (#8482, Benjamin Kahn)
2063
2064 2000-12-01  Tor Lillqvist  <tml@iki.fi>
2065
2066         * {.,*}/makefile.msc.in: Include make.msc from GLib's build subdir.
2067
2068         * makefile.{mingw,msc}.in (glib_OBJECTS): Add gunibreak.
2069
2070         * glib.def: Update correspondingly.
2071
2072 2000-11-21  Havoc Pennington  <hp@pobox.com>
2073
2074         * gmacros.h: Provide G_CONST_RETURN which is 'const' by default,
2075         and nothing when G_DISABLE_CONST_RETURNS is defined.
2076
2077 2000-11-29  Havoc Pennington  <hp@redhat.com>
2078
2079         * gunidecomp.c (COMBINING_CLASS): 
2080         s/UNICODE_LAST_CHAR/G_UNICODE_LAST_CHAR/
2081
2082         * gunichartables.h: Update for data in Unicode 3.0.1
2083
2084         * gunidecomp.h: Ditto
2085         
2086         * gunicode.h (GUnicodeBreakType): Enum for line break properties
2087         (g_unichar_break_type): Get the break property for a char
2088         
2089         * gunibreak.h: Autogenerated line break property tables
2090
2091         * gunibreak.c (g_unichar_break_type): added 
2092         
2093         * Makefile.am (EXTRA_DIST): dist gen-unicode-tables.pl
2094
2095         * Makefile.am (libglib_1_3_la_SOURCES): Add gunibreak.h, gunibreak.c
2096         
2097         * gen-unicode-tables.pl: Include the script to update the unicode
2098         char tables
2099
2100 2000-11-28  Elliot Lee  <sopwith@redhat.com>
2101
2102         * gmarkup.c: Fix warnings.
2103
2104         * guniprop.c, gunidecomp.c: Make warnings go away by using
2105         GPOINTER_TO_INT() instead of (int).
2106
2107         * gcompletion.[ch]: Add g_completion_set_compare(),
2108         to allow (for example) using case-insensitive completion.
2109
2110 2000-11-28  Tor Lillqvist  <tml@iki.fi>
2111
2112         Patches by Hans Breuer:
2113         
2114         * gspawn-win32.c: Move the code for gspawn-win32-helper to its own
2115         file.
2116
2117         * makefile.{mingw,msc}.in: Change accordingly.
2118
2119         * gspawn-win32-helper.c: New file.
2120
2121         * Makefile.am (EXTRA_DIST): Add it.
2122
2123         * gmarkup.c (find_current_text_end): Fix assertion not to check an
2124         uninitialised variable.
2125
2126 2000-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2127
2128         * gthread.c: Set the thread data before locking the mutex, because
2129         the locking call might use g_thread_self ().
2130
2131         * gthread.h: Do only show the location of the locking/unlocking
2132         for -DG_ERRORCHECK_MUTEXES and not the name of the mutex. Add the
2133         errorcheck capability for g_cond_wait and g_cond_timed_wait as
2134         well.   
2135
2136 2000-11-27  Havoc Pennington  <hp@redhat.com>
2137
2138         * gthread.h: Add void in empty function arg list
2139
2140 2000-11-22  Tor Lillqvist  <tml@iki.fi>
2141
2142         * makefile.{mingw,msc}.in: Add gqsort.
2143
2144         * glib.def: Update.
2145
2146 2000-11-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2147
2148         * configure.in: Add a surrogate for thread priorities using PID
2149         niceness for systems with no thread priorities and different PIDs
2150         for threads of the same process (most notably: Linux). Define
2151         G_THREAD_USE_PID_SURROGATE in that case, as used by
2152         gthread-posix.c. Also make the system thread bigger by
2153         sizeof (long) to contain the thread's PID.
2154
2155         * gfileutils.c: Include stdlib.h for mkstemp prototype.
2156
2157         * gthread.c: Add priority range checks to the affected functions.
2158
2159         * gthreadpool.c: Remove unused variable.
2160
2161 Mon Nov 20 18:55:17 2000  Jonathan Blandford  <jrb@redhat.com>
2162
2163         * gtree.[hc]: Patch from David Benson <daveb@idealab.com> to add
2164         user_data support to gtree functions.
2165
2166 Mon Nov 13 18:35:52 2000  Jonathan Blandford  <jrb@redhat.com>
2167
2168         * gtypes.h (GCompareFuncData): new func type to let you use user
2169         data when comparing nodes.
2170
2171         * gslist.c (g_list_sort_with_data): new function to sort with
2172         user_data. 
2173
2174         * glist.c (g_list_sort_with_data): new function to sort with
2175         user_data. 
2176
2177         * garray.[ch]: Added convenience functions to sort arrays.
2178
2179 2000-11-16  Havoc Pennington  <hp@redhat.com>
2180
2181         * guniprop.c (g_unichar_isspace): Use a switch here, maybe helps 
2182         the compiler optimize things. Also, ' ' is a SPACE_SEPARATOR,
2183         so don't special case it.
2184
2185 2000-11-17  Tor Lillqvist  <tml@iki.fi>
2186
2187         * glib.def: Add g_trash_stack entry points.
2188
2189 Fri Nov 17 15:43:00 2000  Owen Taylor  <otaylor@redhat.com>
2190
2191         * Released 1.3.2
2192         
2193         * NEWS: Update.
2194
2195         * tests/Makefile.am (dist-hook): Add code to distribute
2196         markup test files.
2197
2198 2000-11-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2199
2200         * configure.in: Check for the sched.h header and include it on
2201         gthread/gthread-posix.c if available.
2202
2203         * configure.in: Add -D_POSIX4_DRAFT_SOURCE to
2204         GTHREAD_COMPILE_IMPL_DEFINES. Also add -D_POSIX4A_DRAFT10_SOURCE
2205         to G_THREAD_CFLAGS. Really deploy GTHREAD_COMPILE_IMPL_DEFINES,
2206         when searching for thread libs. Look for sched_* functions in
2207         -lrte as well. All of that is necessary on DG/UX.
2208
2209         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADERS in
2210         various places to make it work more reliable, to make it accept
2211         macros instead of functions etc.
2212
2213         * configure.in: Replace some NULL's for checks with 0 to make it
2214         work without stdio.h everywhere.
2215
2216         * configure.in, gutils.c: changed the test for getpwuid_r to first
2217         test for a posix version and then for a non-posix version. No code
2218         change in gutils.c. Again this change deals better with getpwuid_r
2219         being a macro and not a function. Most of the above with kind help
2220         from Tethys <tet@isengard.europe.dg.com>. This fixes Bug #13403.
2221         
2222 2000-11-14  Tor Lillqvist  <tml@iki.fi>
2223
2224         * gwin32.h: Make #endif comment match #ifdef.
2225
2226 Mon Nov 13 14:00:20 2000  Owen Taylor  <otaylor@redhat.com>
2227
2228         * configure.in: Up version to 1.3.2
2229
2230         * gconvert.h (enum GConvertError): Remove trailing ,
2231
2232         * gfileutils.c (g_file_open_tmp): Fix comment to 
2233         properly describe return value.
2234
2235 2000-11-13  Tor Lillqvist  <tml@iki.fi>
2236
2237         * config.h.win32.in: Add USE_LIBICONV.
2238
2239         * gconvert.c: Check G_OS_WIN32 only after including glib.h. 
2240
2241         * glib.def: Update.
2242
2243 2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2244
2245         * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
2246         work when the thread system is not (yet) initialized.
2247
2248 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
2249
2250         * gconvert.[ch]: Create wrapper functions for iconv()
2251         so that we can transparently use the native iconv, 
2252         libiconv, or (in the future) a mini-iconv included
2253         with glib.
2254
2255         * glib-config-2.0.in glib-2.0.pc.in: Include @ICONV_LIBS@
2256
2257         * INSTALL: Added note about libiconv.
2258
2259         * configure.in: Add checks for libiconv from pango. If
2260         EILSEQ is not defined in errno.h add define for it into
2261         glibconfig.h so g_iconv can use it. (Note, recompiling
2262         from a system without EILSEQ to a system with EILSEQ
2263         will break binary compatibility)
2264
2265 2000-11-12  Robert Brady  <robert@suse.co.uk>
2266
2267         * gstrfuncs.c, gstrfuncs.h: Remove g_filename_{to,from}_utf8
2268
2269         * gconvert.c, gconvert.h: Add g_filename_{to,from}_utf8 and
2270         g_locale_{to.from}_utf8.  The locale_ variant honours 
2271         nl_langinfo(CODESET), the filename_ variant uses UTF-8 unless
2272         asked otherwise.
2273
2274         (g_convert): Add G_CONVERT_ERROR_PARTIAL_INPUT error, if bytesread
2275         != length and no bytesread pointer passed.
2276
2277 Sun Nov 12 15:29:53 2000  Owen Taylor  <otaylor@redhat.com>
2278
2279         * gfileutils.[ch]: template is a reserved word in
2280         C++ s/template/tmpl/. 
2281
2282 2000-11-11  Havoc Pennington  <hp@pobox.com>
2283
2284         * gmarkup.c (g_markup_parse_context_parse): Handle a long stream
2285         of bytes containing no UTF-8 character starts
2286
2287 2000-11-11  Tor Lillqvist  <tml@iki.fi>
2288
2289         * glib.def: Add missing entry points.
2290
2291         * gfileutils.c (g_mkstemp): Improve chance to generate unique
2292         names with less effort a bit.
2293
2294         * gfileutils.h: Add g_file_open_tmp() declaration.
2295
2296         * testglib.c: Include <io.h> on Win32.
2297
2298         * makefile.mingw.in: Correct the way to invoke sub-makes.
2299
2300 Sun Nov  5 13:20:54 2000  Owen Taylor  <otaylor@redhat.com>
2301
2302         * glib-object.h: Add gtypemodule.h
2303
2304 2000-11-11  Tor Lillqvist  <tml@iki.fi>
2305
2306         * gfileutils.c (g_file_open_tmp): New function, suggested by Havoc
2307         earlier this month.
2308         (g_mkstemp): Use only one case for letters in temp file name, as
2309         this will be used on systems with case-insensitive file systems.
2310
2311         * testglib.c (main): Test g_mkstemp() and g_file_open_tmp().
2312
2313 2000-11-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2314
2315         * gthreadpool.c: Don't take other threads with other priorities
2316         into account as changing the priority is highly
2317         unportable. (Actually using it at all already is unportable, but
2318         even sometimes where that works, changing priority is not
2319         possible).
2320
2321 2000-11-05  Havoc Pennington  <hp@pobox.com>
2322
2323         * gmarkup.h: rename G_MARKUP_FOO to
2324         G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG
2325
2326         * gmarkup.c: don't start doc comments with "Returns"
2327         
2328 2000-11-05  Havoc Pennington  <hp@pobox.com>
2329
2330         * gmarkup.c: inline docs
2331         (unescape_text): properly check strtoul for failure.
2332         
2333         * gerror.c (g_propagate_error): Free the src error if the dest
2334         location is NULL - I'm pretty sure that's what this function was 
2335         supposed to do.
2336
2337 2000-11-05  Havoc Pennington  <hp@pobox.com>
2338
2339         * gutils.c (g_find_program_in_path): cleanup docs, sync param 
2340         names to those in the header
2341
2342         * gfileutils.c (g_mkstemp): clean up docs
2343
2344         * gshell.h: sync param names with param names in .c file
2345
2346         * gfileutils.h (enum GFileTest): remove trailing comma from last
2347         member, confuses gtk-doc
2348
2349         * gmarkup.h: s/GMarkupErrorType/GMarkupError/g; to follow
2350         convention
2351
2352 2000-11-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2353
2354         * gasyncqueue.c: Added documentation for asyncronous queues.
2355
2356         * gspawn.c: Include sys/select.h (some platforms need it for
2357         select). 
2358
2359         * gspawn.c: Changed unportable __FUNCTION__ to the verbatim
2360         function name.
2361
2362 2000-10-31  Tor Lillqvist  <tml@iki.fi>
2363
2364         * gutils.c
2365         * gutils.h
2366         * gfileutils.c
2367         * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
2368
2369 2000-10-30  Tor Lillqvist  <tml@iki.fi>
2370
2371         * configure.in: Check for mkstemp.
2372
2373         * gutils.c (g_mkstemp): New function. If HAVE_MKSTEMP, just call
2374         it, otherwise use code lifted from glibc.
2375
2376         * gutils.h: Declare it.
2377
2378         * glib.def: Here, too. Plus two missing functions.
2379
2380 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2381
2382         * gcache.h, gcache.c, ghash.h, ghash.c, grel.c, grel.h, gtypes.h:
2383         Introduced new function type GEqualFunc to return TRUE for equal
2384         params. This is now used instead of GCompareFunc (which should
2385         work akin to strcmp) here. This kind of fixes Bug #14412. Note
2386         that technically GCompareFunc and GEqualFunc are still the same
2387         types, as gint == gboolean.
2388
2389         * ghash.h, gutils.c: g_int_equal and g_direct_equal now return
2390         gboolean to be really become GEqualFunc.
2391
2392         * gscanner.c, testglib.c, tests/hash-test.c: Some tiny changes to
2393         follow the above change.
2394
2395 2000-10-27  Tor Lillqvist  <tml@iki.fi>
2396
2397         * makefile.{mingw,msc}.in (glib_OBJECTS): Add gmarkup.
2398
2399         * glib.def: Add missing functions.
2400
2401         * tests/makefile.{mingw,msc}.in (TESTS): Add markup-test.
2402
2403 2000-10-24  Havoc Pennington  <hp@pobox.com>
2404
2405         * gmarkup.h, gmarkup.c: New module to parse a simple
2406         markup language
2407         
2408         * Makefile.am: add gmarkup.h, gmarkup.c
2409
2410         * tests/Makefile.am: add markup-test
2411
2412         * gstring.h (g_string_new_len): new function to create a string
2413         with a length
2414         (g_string_new): avoid a gratuitous realloc
2415
2416 2000-10-26  Tor Lillqvist  <tml@iki.fi>
2417
2418         * makefile.{mingw,msc}.in: Cosmetics.
2419
2420 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2421
2422         * gstrfuncs.c (g_strsplit): When the string is ended by a
2423         delimiter, return an extra empty string just like for a delimiter
2424         at the start of the string. This makes the function behave more
2425         consistent and also fixes Bug #15026.
2426
2427 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
2428
2429         * glib-object.h: added newly added gobject/ headers.
2430
2431         * gmesage.c: print g_message() output to stderr instead of stdout.
2432
2433 2000-10-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2434
2435         * configure.in: Use one = instead of two, which is plainly wrong.
2436
2437 2000-10-19  Tor Lillqvist  <tml@iki.fi>
2438
2439         * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link
2440         with user32.lib.
2441
2442         * gspawn-win32.c
2443         * gfileutils.c: Make them compile with picky MSVC.
2444
2445         * gwin32.h: New file. Move Win32-only stuff that isn't related to
2446         GIOChannels here from giochannel.h.
2447
2448         * Makefile.am: Add it here.
2449
2450         * giochannel.h: Move stuff to gwin32.h.
2451
2452         * glib.h: On Win32, include gwin32.h.
2453
2454 Mon Sep 11 10:03:24 2000  Owen Taylor  <otaylor@redhat.com>
2455
2456         * glib.h convert.c (g_convert_with_fallback): Change
2457         ERROR_OTHER to ERROR_FAILED, add some dummy marking with _().
2458
2459         * docs/reference/glib/glib-sections.txt
2460         docs/reference/glib/glib-docs.sgml Update for g_convert,
2461         g_unicode_validate.
2462
2463 2000-10-16  Tor Lillqvist  <tml@iki.fi>
2464
2465         * glibconfig.h.win32.in: Remove alloca stuff from here. galloca.h
2466         takes care of it, correctly.
2467
2468         * giowin32.c (reader_thread): Some more debugging output.
2469         (g_io_channel_win32_poll): Remove unused vars.
2470
2471         * gfileutils.c: Changes for Win32, with no unistd.h and no
2472         S_ISLNK().
2473
2474         * gspawn-win32.c: Implementation of the g_spwan_* functions for
2475         Win32. Due to the general non-Unixness of Win32, much of the
2476         functionality that is relatively clean to implement on Unix, is
2477         hard to do on Win32. We must use a separate helper program to
2478         change directory, close extra file descriptors, redirect the std
2479         ones, as needed, and only then start the child process. No child
2480         process pid can be returned, unfortunately. Or if we used
2481         CreateProcess directly, it probably could. (Now we use the spawnv*
2482         functions from msvcrt.)
2483
2484         * Makefile.am (EXTRA_DIST): Add gspawn-win32.c
2485
2486         * glib.def: Add new entry points.
2487
2488         * glib.def
2489         * giowin32.c: Remove g_io_channel_win32_wait_for_condition(),
2490         g_io_channel_win32_poll() subsumes it.
2491
2492         * gbacktrace.h: G_BREAKPOINT for MSVC (on the ix86).
2493
2494         * gwin32.c (g_win32_getlocale): Use "sp" for
2495         LANG_CROATIAN+SUBLANG_SERBIAN_LATIN.
2496
2497         * makefile.{mingw,msc}.in (glib_OBJECTS): Add new files.
2498         Add gspawn-win32-helper.exe rule.
2499
2500         * tests/makefile.{mingw,msc}.in (TESTS): Add shell-test and
2501         spawn-test.
2502
2503         * tests/spawn-test.c: (run_tests): On Win32, don't try to run
2504         /bin/sh, but ipconfig (no special significance in choosing that,
2505         just a program that outputs something to stdout).
2506
2507 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
2508
2509         Remove need for acconfig.h, and misc. cleanups.
2510         * acglib.m4 (GLIB_SIZEOF): Add 'autoheader' comment to
2511         AC_DEFINE_UNQUOTED.
2512         (GLIB_BYTE_CONTENTS): Likewise.
2513
2514         * configure.in: Add 'autoheader' comments to all AC_DEFINE(...)
2515         and AC_DEFINE_UNQUOTED(...) lines.
2516         Replace AC_MSG_CHECKING/AC_CACHE_VAL with AC_CACHE_CHECK.
2517         (AM_PROG_LIBTOOL): Move after AC_PROG_CC.
2518         
2519         * acconfig.h: Empty out.
2520
2521         * Makefile.am (BUILT_EXTRA_DIST): New variable.  List 'dist'able
2522         files that are created in the builddir.
2523         (dist-hook): Handle those files.
2524         (libglib_1_3_la_SOURCES): Remove @ALLOCA@.  @ALLOCA@ should only
2525         be used in an _LDADD or _LIBADD, since it expands (if necessary)
2526         to 'alloca.o'.
2527
2528         * tests/Makefile.am (BUILT_EXTRA_DIST): New variable.
2529         (dist-hook): Handle $(BUILT_EXTRA_DIST).
2530         
2531 2000-10-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2532
2533         * grand.c: Added inline documentation. 
2534
2535         * gtypes.h, gnode.h, gutils.h: Readded GFreeFunc,
2536         g_node_insert_after and g_find_program_in_path resp., which
2537         mysteriously disappeared during the glib.h dissection.
2538
2539 2000-10-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2540
2541         * glibconfig.h.win32.in: Adapted accordingly to header separation
2542         and GLIB_HAVE_ALLOCA_H renaming.
2543
2544         * Makefile.am: Added the new headers to glibinclude_HEADERS.
2545
2546         * glib.h: Forgot to include gerror.h.
2547
2548         * glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
2549         gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
2550         ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
2551         gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
2552         grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
2553         gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
2554         into many header files mostly according to the resp. *.c-files.
2555         
2556         * gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
2557         of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
2558         __END_DECLS.
2559
2560         * configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
2561         gunicode.h, : Changed guard-macro names to something more
2562         consistent.
2563
2564         * configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2565
2566         * configure.in: Defined GLIB_HAVE_ALLOCA_H instead of including
2567         alloca.h in glibconfig.h, GLIB_HAVE_ALLOCA_H is used in glib.h.
2568
2569         * configure.in: Removed cruft from old threading code.
2570
2571 2000-10-09  Raja R Harinath  <harinath@cs.umn.edu>
2572
2573         Work with beta autoconf 2.50.
2574         * configure.in (GLIB_MAJOR_VERSION): Use GLIB_DIVERT_BEFORE_HELP
2575         instead of AC_DIVERT_PUSH(),AC_DIVERT_POP.
2576         (AC_CHECK_HEADERS): Remove redundant AC_DEFINE(HAVE_...).
2577         (REALLOC_0_WORKS): Move AC_DEFINE outside AC_CACHE_VAL.
2578         (dlopen): Quote nested AC_CHECK_... calls.
2579
2580         * acglib.m4 (GLIB_TR_SH, GLIB_TR_CPP): Utility macros copied from
2581         beta autoconf 2.50.
2582         (GLIB_DIVERT_BEFORE_HELP): New macro that works both with autoconf
2583         2.13 and beta autoconf 2.50.
2584         (GLIB_SIZEOF, GLIB_BYTECONTENTS): Use GLIB_TR_*.
2585
2586         * Makefile.am (CONFIGURE_DEPENDENCIES): Use this to specify
2587         that 'configure' depends on acglib.m4.
2588
2589 2000-10-09  Havoc Pennington  <hp@redhat.com>
2590
2591         * Makefile.am, tests/Makefile.am: Add new files.
2592
2593         * tests/spawn-test.c, tests/shell-test.c: new tests for
2594         the shell/spawn stuff
2595
2596         * gutils.c (g_find_program_in_path): convert a relative
2597         program name into an absolute pathname to an existing 
2598         executable
2599
2600         * gspawn.h, gspawn.c: New fork/exec API
2601
2602         * gshell.h, gshell.c: Shell-related utilities, at the moment
2603         simply routines to parse argv and quote/unquote strings
2604
2605         * guniprop.c (g_unichar_isspace): Return TRUE for the 
2606         ASCII space characters isspace() returns TRUE for.
2607
2608         * gfileutils.c (g_file_get_contents): Convenience function 
2609         to slurp entire file into a string and return it. Partially
2610         written by Joel Becker.
2611         (g_file_test): file test function
2612
2613 2000-10-06  Tor Lillqvist  <tml@iki.fi>
2614
2615         * makefile.msc.in: Revamp to be like makefile.mingw.in, make
2616         the MSVC build actually work again.
2617
2618         * gmodule/makefile.msc.in
2619         * gobject/makefile.msc.in
2620         * gthread/makefile.msc.in: New files, like their mingw counterparts.
2621
2622         * gmodule/Makefile.am
2623         * gobject/Makefile.am
2624         * gthread/Makefile.am: Make and distribute them.
2625
2626         * */makefile.mingw.in: Allow override of GLib version number from
2627         the build/win32/module.defs file.
2628
2629         * glib.def: Add new entry point.
2630
2631         * tests/gio-test.c (main): Fix the Win32-only code to use current
2632         API, g_io_channel_win32_make_pollfd() and g_io_channel_win32_poll().
2633
2634         Fixes from Hans Breuer:
2635
2636         * glib.h (struct DIR): Keep the last readdir result cached inside
2637         the DIR struct, to enable several DIRs being open simultaneously.
2638
2639         * gwin32.c (g_win32_readdir): Use the above instead of static.
2640
2641         * giowin32.c (g_io_channel_win32_make_pollfd): Insert cast to keep
2642         MSVC happy.
2643
2644 2000-10-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2645
2646         * glib.h: Changed alloca stuff a bit: when we have a working
2647         alloca.h, we're not messing with alloca any further. Should fix a
2648         bug reported by Bernd Demian <wega@csc-dd.de>.
2649
2650 2000-09-29  Jonathan Blandford  <jrb@redhat.com>
2651
2652         * gnode.c (g_node_insert_after): Added function to keep symmetry
2653         with g_node_insert_before. 
2654
2655 2000-09-29  Martin Baulig  <baulig@suse.de>
2656
2657         Several minor ANSI C fixes.
2658
2659         Added missing casts:
2660         * gdate.c (g_date_fill_parse_tokens): `s = (guchar *) str'.
2661         * gmain.c (g_idle_dispatch): `func = (GSourceFunc) source_data'.
2662         (g_idle_add_full): `(gpointer) function' in call to g_source_add().
2663         * gstrfuncs.c (g_strdown): `s = (guchar *) string' and
2664         `return (gchar *) string'.
2665         (g_strup): Likewise.
2666         (g_strchug): `start = (guchar*) string' in 1st for() argument;
2667         `strlen ((gchar *) start)' in call to g_memmove().
2668         * gstring.c (g_string_down): `s = (guchar *) string->str'.
2669         (g_string_up): Likewise.
2670         * gthreadpool.c (stop_this_thread_marker):
2671         `(gpointer) &g_thread_pool_new'.
2672         * gunidecomp.h (decomp_table[]): Cast all the strings to
2673         `unsigned char *'.
2674
2675         Put text following #endif into comments:
2676         * gmain.c: here.
2677
2678 2000-09-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2679
2680         * configure.in, glib.h: Added errorcheck mutexes. These are
2681         activated through the preprocessor symbol
2682         G_ERRORCHECK_MUTEXES. Need to add an extra word to StaticMutex in
2683         order to achieve this. g_(static_)mutex_* functions instrument the
2684         mutex operations with mutex name and location, when compiled with
2685         -DG_ERRORCHECK_MUTEXES. g_thread_init activates the errorcheck
2686         mutexes, when compiled with -DG_ERRORCHECK_MUTEXES.
2687
2688 2000-09-28  Havoc Pennington  <hp@pobox.com>
2689
2690         * glib.h (GThreadPriority): fix indentation
2691         (GConvertError): generic error is conventionally called
2692         _FAILED rather than _OTHER, at least at the moment, 
2693         according to GError docs in docs/reference.
2694
2695         * gconvert.c: s/_OTHER/_FAILED/
2696
2697 2000-09-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2698
2699         * configure.in: Adjusted the test for an unimplemented
2700          getpwuid_r. Info from Michael Pruett. This is just a forward
2701          merge from glib-1-2.
2702
2703         * configure.in: Moved determination of G_THREAD_FLAGS before
2704         G_THREAD_LIBS. Check for UnixWare systems and set the right cflags
2705         and libs there (it needs -Kthread for the native compiler and
2706         -pthread for gcc). Thanks to Boyd Lynn Gerber <gerberb@zenez.com>
2707         for the info.
2708
2709         * configure.in: Fail immediately, when no thread library is found,
2710         instead of continuing searching for rt libs etc. Changed almost
2711         all occurances of $enable_threads to $have_threads, as that's,
2712         what we want.
2713
2714         * tests/threadpool-test.c: Define vars inside the guard to avoid
2715         warnings.
2716
2717         * configure.in, tests/type-test.c: Some platforms support 64 bit
2718         'long long', but you can not printf or scanf them. In that case,
2719         don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
2720         to reflect that.
2721
2722         * gutils.c (g_get_current_dir): max_len can't be initialized
2723         statically as it might call a function. So do it at first call.
2724
2725 Tue Sep 26 2000 Elliot Lee <sopwith@redhat.com>
2726
2727         * glib.h: Add G_GNUC_PURE macro (but don't use it anywhere).
2728
2729 Mon Sep 25 2000 Elliot Lee <sopwith@redhat.com>
2730
2731         * garray.c, glib.h, gmem.c: Add a few missing G_GNUC_CONST's.
2732
2733 2000-09-21  Tor Lillqvist  <tml@iki.fi>
2734
2735         * makefile.mingw.in: Add gconvert.o. Use libiconv.
2736
2737         * config.h.win32.in: Define HAVE_GETCWD.
2738
2739         * glib.def: Add new entry points.
2740
2741 2000-09-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2742
2743         * configure.in: The last released automake (1.4) still requires
2744         AM_PROG_LIBTOOL instead of AC_PROG_LIBTOOL, so use that for the
2745         time being.
2746
2747 2000-09-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2748
2749         * acconfig.h, configure.in, gutils.c: Test for the existence of
2750         getcwd, and use it only when found.
2751
2752         * glib.h: Only use the gcc-variable-macro-argument-extension for
2753         gcc >= 2.4. Both patches from Jonas Oberg <jonas@gnu.org>.
2754
2755 Mon Sep 18 10:58:21 2000  Owen Taylor  <otaylor@redhat.com>
2756
2757         * gutf8.c: Implement g_ucs4_to_utf8 which was in
2758         the header file but not implemented.
2759
2760 Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
2761
2762         * glib.h configure.in: Define g_alloca() as an
2763         alloca-that-works-anywhere.
2764
2765         * gconvert.c: Fix warnings which could have caused problems on
2766         64-bit platforms.
2767
2768 Sun Sep 10 12:37:40 2000  Owen Taylor  <otaylor@redhat.com>
2769
2770         * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
2771         of convenient character set conversion using iconv, with
2772         the addition of GError. We probably need a fallback that
2773         just does conversions between, say UTF-8,16,32 and ISO-8859-1
2774         for targets without iconv at all.
2775
2776         Also add g_convert_with_fallback() to take care of conversions 
2777         where we accept some loss going to the target encoding.
2778
2779 2000-09-10  Havoc Pennington  <hp@redhat.com>
2780
2781         * gutf8.c (g_utf8_validate): Add this function.
2782
2783 Sat Sep  9 18:50:42 2000  Owen Taylor  <otaylor@redhat.com>
2784
2785         * gstrfuncs.c (g_strescape): Add a missing g_return_if_fail().
2786
2787 Mon Aug 21 03:57:46 2000  Tim Janik  <timj@gtk.org>
2788
2789         * glib.h (G_BREAKPOINT): for non-i386 and non-alpha, or non gcc,
2790         implement BREAKPOINT() as raise (5 /* SIGTRAP */);
2791
2792         * glib.h: provide user-definable switch G_IMPLEMENT_INLINES,
2793         to turn on compilation of inline function implementations provided
2794         in header files with extern linkage.
2795         wrap inline function implementations into ifdef __G_UTILS_C__, so we
2796         really only compile them for gutils.c and not also into arbitrary user
2797         code that wants to make use of G_IMPLEMENT_INLINES.
2798         adjusted comment apropriately.
2799
2800         * gutils.c: to turn on compilation of inline functions, provide
2801         #define G_IMPLEMENT_INLINES 1 and #define __G_UTILS_C__.
2802
2803 2000-09-06  Havoc Pennington  <hp@redhat.com>
2804
2805         * gerror.c: docs
2806
2807         * docs/reference/glib/tmpl/error_reporting.sgml: docs
2808
2809 Wed Sep  6 10:28:34 2000  Owen Taylor  <otaylor@redhat.com>
2810
2811         * guniprop.c gunicode.h gutf8.c: Some inline docs fixes.
2812
2813 2000-09-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2814
2815         * glib.h, gtimer.c, tests/thread-test.c:
2816         s/G_MICROSEC/G_USEC_PER_SEC/
2817
2818         * glib.h: Removed G_G{U}{SHORT|INT|LONG}_FORMAT from glib.h, as
2819         they are really superfluous.
2820
2821 Tue Sep  5 20:16:27 2000  Owen Taylor  <otaylor@redhat.com>
2822
2823         * configure.in docs/Makefile.am: Add gtk-doc checks
2824         for newly added docs/reference/ subdir.
2825
2826 2000-09-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2827
2828         * gthread.c (g_thread_error_quark): Don't use a G_LOCK, as it
2829         isn't necessary.
2830
2831 2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2832
2833         * gstring.c (g_string_free): Use g_return_val_if_fail instead of
2834         g_return_if_fail, as the function now is supposed to return
2835         something.
2836
2837         * gerror.c, gerror.h (g_propagte_error): Added function
2838         g_propagte_error to hand over local errors to the calling
2839         function.
2840
2841         * glib.h: Include gerror.h before it is used for some g_thread_*
2842         functions.
2843
2844         * gthread.c, gthreadpool.c, glib.h: Enable error reporting for
2845         thread creation, namely for g_thread_create, g_thread_pool_new,
2846         g_thread_pool_push and g_thread_pool_set_max_threads.
2847
2848         * tests/thread-test.c, tests/threadpool-test.c: Adapted
2849         accordingly.
2850
2851 2000-08-31  Tor Lillqvist  <tml@iki.fi>
2852
2853         * glib.h
2854         * glib.def
2855         * giowin32.c (g_io_channel_win32_make_pollfd): New function, to
2856         make a GPollFD from a GIOChannel. Creates the events and starts
2857         the reader thread if necessary.
2858
2859         * glib.h
2860         * giowin32.c (g_io_channel_win32_poll): No use for separate
2861         condition parameter.
2862
2863         * gmain.c (g_get_current_time): (Win32): Simplify, use
2864         GetSystemTimeAsFileTime().
2865
2866 2000-08-27  Tor Lillqvist  <tml@iki.fi>
2867
2868         * giowin32.c (g_io_channel_win32_poll): New function, otherwise
2869         like g_io_channel_win32_wait_for_condition(), but accept several
2870         GPollFDs.
2871         (g_io_channel_win32_wait_for_condition): Call
2872         g_io_channel_win32_poll().
2873
2874         * glib.h: Declare g_io_channel_win32_poll().
2875
2876         * gwin32.c (g_win32_error_message): Don't believe return value
2877         from FormatMessage.
2878
2879 2000-08-25 Elliot Lee <sopwith@redhat.com>
2880
2881         * glib.h, gunicode.h, gmodule/gmodule.h:
2882         Mark the following functions G_GNUC_CONST (to allow optimization)
2883         because their results are a function of only their parameters: 
2884         g_int_hash, g_int_equal, g_direct_hash, g_direct_equal,
2885         g_quark_to_string, g_date_is_leap_year, g_date_days_in_month,
2886         g_date_monday_weeks_in_year, g_date_sunday_weeks_in_year,
2887         g_spaced_primes_closest, g_unichar_is*, g_unichar_to*,
2888         g_unichar_*digit_value, g_unichar_type
2889
2890 2000-08-21 Elliot Lee <sopwith@redhat.com>
2891
2892         * gobject/Makefile.am, gobject/gobject-query.c,
2893         gobject/gparamspecs.c: Fix inclusion of config.h
2894
2895 Mon Aug 21 14:46:23 2000  Owen Taylor  <otaylor@redhat.com>
2896
2897         * tests/gio-test.c: Fix a couple of trivial bugs that
2898         were causing warnings.
2899
2900 Mon Aug 21 14:39:36 2000  Owen Taylor  <otaylor@redhat.com>
2901
2902         * glib.h: Use C99 varargs macros where possible 
2903         (check __STDC_VERSION__), otherwise, on gcc, use an alternate 
2904         form of gcc varargs which is more likely
2905         to be supported going forward. (Based on some code
2906         from Raja Harinath)
2907
2908 2000-08-17  Darin Adler  <darin@eazel.com>
2909
2910         * glib.h:
2911         * garray.c: (g_array_free), (g_ptr_array_free),
2912         (g_byte_array_free): Return the data left behind.
2913         * gstring.c: (g_string_free): Return the data left behind.
2914
2915         Changed the free calls that leave data behind so they
2916         return a pointer to the left-behind data, NULL if told not
2917         to leave anything behind. This makes these calls easier
2918         to use correctly, without any incompatible API change for
2919         callers that don't know about the return value. Of course,
2920         it would be even clearer if the free calls weren't dual-purpose
2921         in the first place.
2922
2923 2000-08-12  Tor Lillqvist  <tml@iki.fi>
2924
2925         * giowin32.c: Some indentation and spacing fixes. Add some more
2926         logging.
2927         (g_io_win32_add_watch): New function, with common code from
2928         g_io_win32_fd_add_watch and g_io_win32_sock_add_watch. Don't start
2929         more than one reader thread for a GIOChannel. We should obviously
2930         have just one reader thread reading a file descriptor or socket.
2931
2932 2000-08-10  Havoc Pennington  <hp@redhat.com>
2933
2934         * gthread-2.0.pc.in (Cflags): don't duplicate glib Cflags
2935
2936         * gmodule-2.0.pc.in (Cflags): don't duplicate glib Cflags
2937
2938         * gobject-2.0.pc.in (Cflags): don't duplicate Cflags from glib
2939         itself
2940
2941 2000-08-10  Havoc Pennington  <hp@redhat.com>
2942
2943         * glib-2.0.pc.in (Cflags): Look in glib-2.0/include for
2944         glibconfig.h
2945
2946 2000-08-07  Tor Lillqvist  <tml@iki.fi>
2947
2948         * tests/gio-test.c (shutdown_source): New function, that calls
2949         g_source_remove(). Check return value of g_source_remove(), and
2950         decrement running subprocess counter only if g_source_remove()
2951         actually did remove the source.
2952
2953         (recv_message): Call shutdown_source() on EOF condition. Return
2954         FALSE on G_IO_HUP and G_IO_ERR condition. Fix printf format typo.
2955
2956 Sun Aug  6 20:06:02 2000  Tim Janik  <timj@gtk.org>
2957
2958         * gmessages.c (g_log_domain_check_free): keep *last updated while
2959         running through the domain list, so we don't screw up the removal,
2960         patch provided by Gady Kozma <gadykozma@hotmail.com>.
2961
2962 Sun Aug  6 20:03:41 2000  Tim Janik  <timj@gtk.org>
2963
2964         * gmessages.c (g_log_remove_handler): keep *last updated while running
2965         through the handler list, so we don't screw up the removal.
2966
2967 Sun Jul 30 16:54:13 2000  Owen Taylor  <otaylor@redhat.com>
2968
2969         * gunicode.h: Fix stray character
2970
2971         * gutf8.c (g_unichar_to_utf8): Allow outbuf to be NULL, in
2972         which case we just compute the length.
2973
2974 2000-07-31  Havoc Pennington  <hp@redhat.com>
2975
2976         * Makefile.am (EXTRA_DIST): forgot to add .pc.in to EXTRA_DIST
2977
2978 2000-07-31  Havoc Pennington  <hp@redhat.com>
2979
2980         * glib-2.0.pc.in, gobject-2.0.pc.in, gmodule-2.0.pc.in,
2981         gobject-2.0.pc.in: pkg-config data files         
2982
2983         * Makefile.am: Install/dist the .pc files
2984
2985         * configure.in: Output the .pc files
2986
2987 2000-07-31  Tor Lillqvist  <tml@iki.fi>
2988
2989         * giowin32.c (buffer_read): The code didn't compile (must
2990         have been sleepy when committing). "return" instead of "break"
2991
2992         (g_io_win32_fd_add_watch): Cannot check if the file descriptor is
2993         readable by calling ReadFile to read zero bytes. ReadFile blocks
2994         on NT even if trying to read nothing at all. So, don't check if
2995         file descriptor is readable; assume this function isn't called
2996         otherwise.
2997
2998 Sun Jul 30 10:44:16 2000  Tim Janik  <timj@gtk.org>
2999
3000         * gmain.c (g_get_current_time): fix tor's recent changes which
3001         got rid of a required variable in the non-windows path.
3002
3003 2000-07-30  Tor Lillqvist  <tml@iki.fi>
3004
3005         Finally, a new and improved IO Channel and condition watch
3006         implementation for Win32. Based on code provided by Craig Setera.
3007
3008         When watching file descriptors, for which there is no select()
3009         like functionality on Win32 that would work on all Win32 platforms
3010         for all types of file descriptors (including anonymous pipes), we
3011         start a new thread that blocks while trying to read from the file
3012         descriptor. When the read returns, a Win32 Event is signalled that
3013         the polling routine eventually notices. Meanwhile, the data being
3014         read is stored in a circular buffer, from where the IO channel's
3015         read() method picks it up.
3016
3017         If the buffer fills up the reading thread has to wait for space
3018         becoming available. For this another Win32 Event is used. The IO
3019         Channel's read() method signals this when it has read some data
3020         out of the buffer.
3021
3022         The separate reader thread(s), and the circular buffer(s) with
3023         associated events mean lots of possibilities for fun parallelism
3024         errors. But it seems to work OK, i.e. GIMP runs.
3025
3026         * gmain.c: Small changes to the Win32 polling function.
3027         (g_main_win32_get_poll_func): New function. Perhaps it would be a
3028         good idea to provide this on all platforms.
3029
3030         * giowin32.c: The bulk of the new implementation.
3031         (g_io_channel_win32_wait_for_condition): New function. To be used
3032         where on Unix one does a select() on the channel's fd, like
3033         libgimp's gimp_extension_process(). Could be provided on all
3034         platforms.
3035
3036         * glib.h: Update documentation for IO Channels on Win32. Remove
3037         the declarations for the as of now obsolete old functions related
3038         to IO Channels for pipes with "wakeup" messages.
3039
3040         * glib.def: Some new functions.
3041
3042         * tests/gio-test.c: New file, to test GIOChannel and main loop.
3043
3044         * tests/Makefile.am
3045         * tests/makefile.mingw.in: Add it.
3046
3047         (Later the same night:)
3048
3049         * giowin32.c: Compile in the debugging code all the time, but only
3050         output debug messages if told so. Add (unadvertised) function to
3051         turn on/off debug messages for a channel.
3052
3053         (buffer_read): Don't loop. It is expected behaviour to return a
3054         short read occasionally, for instance when reading from
3055         pipes. It's the calling code that should loop if it *knows* how
3056         much the writer has written.
3057
3058         * tests/gio-test.c: Correct the program's name in the output.
3059         (recv_message): Loop calling g_io_channel_read() (in a new
3060         function read_all()) until we have all the bytes we want (that we
3061         know the writer has written/will write).
3062
3063 Thu Jul 27 05:15:11 2000  Tim Janik  <timj@gtk.org>
3064
3065         * gstrfuncs.c (g_strlcpy, g_strlcat): completed tor's fix
3066         to cover both #ifdef branches.
3067
3068 2000-07-26  Tor Lillqvist  <tml@iki.fi>
3069
3070         * gstrfuncs.c (g_strlcpy, g_strlcat): Return 0 on error, not NULL.
3071
3072         * glib.def: Add g_strlcpy, g_strlcat.
3073
3074         * glibconfig.h.win32.in: Add gsize and gssize.
3075
3076 Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>
3077
3078         * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
3079         updates the license headers to the GNU Lesser General Public License,
3080         as well as updating the copyright year to 2000.
3081
3082 Wed Jul 26 05:47:48 2000  Tim Janik  <timj@gtk.org>
3083
3084         * configure.in:
3085         * testglib.c:
3086         * gstrfuncs.c:
3087         * glib.h: added g_strlcat() and g_strlcpy() wrappers, supplied by
3088         David Wheeler <dwheeler@ida.org>:
3089
3090         * glib.h, gstrfuncs.c: added g_strlcpy and g_strlcat to support
3091           safe manipulation of fixed-length string buffers.
3092           These functions were originally developed by Todd Miller to simplify
3093           development of security-related programs, and
3094           are available on many (but not all) Unix-like systems,
3095           including OpenBSD, FreeBSD, and Solaris.  See
3096           ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3
3097           and http://www.openbsd.org/security.html.
3098           If there's a strlcpy/strlcat on the system, it's called, otherwise
3099           an implementation is provided.
3100
3101         * testglib.c: Added tests for g_strlcpy, g_strlcat.
3102
3103 Wed Jul 26 05:03:24 2000  Tim Janik  <timj@gtk.org>
3104
3105         * acglib.m4 (GLIB_SIZEOF): include <stdlib.h> and <stddef.h> if
3106         STDC_HEADERS is defined.
3107
3108         * glib.h:
3109         * glibconfig.h: define gsize and gssize in terms of GLIB_SIZEOF_SIZE_T
3110
3111         * glib.h (g_return_if_reached): applied darin's fix for copy'n
3112         paste error in the macro implementation.
3113
3114 Wed Jul 26 00:46:03 2000  Tim Janik  <timj@gtk.org>
3115
3116         * glib.h: applied patch from Darin Adler <darin@eazel.com> which
3117         supplies g_return_if_reached(), g_return_val_if_reached() and
3118         g_critical().
3119
3120 2000-07-22  Tor Lillqvist  <tml@iki.fi>
3121
3122         * build-dll: Fix resource handling, the resource file got left out
3123         from the DLL after all... Remove the WIN32APIHEADERS, not needed
3124         with current windres.
3125
3126         * glib.def: Add new functions.
3127
3128 2000-07-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3129
3130         * gutils.c, glib.h: Mark the functions g_basename and g_dirname
3131         deprecated. They will issue an warning once, when compiled with
3132         G_ENABLE_DEBUG, but continue to work as before. Instead the
3133         functions g_path_get_basename and g_path_get_dirname should be
3134         used, which BOTH return newly allocated memory, that has to freed
3135         by g_free. The new g_path_get_basename now strips trailing slashes
3136         from the path. This fixes #5097. For discussion see
3137         http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
3138
3139         * gwin32.c, testglib.c, tests/dirname-test.c: Use the new
3140         functions instead of the old ones.
3141
3142         * ghash.c, gscanner.c, glib.h: Mark the functions
3143         g_hash_table_freeze, g_hash_table_thaw and thus
3144         g_scanner_freeze_symbol_table and g_scanner_thaw_symbol_table
3145         deprecated. They will issue an warning once, when compiled with
3146         G_ENABLE_DEBUG. This fixes Bug #3883. For discussion see
3147         http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
3148
3149 2000-07-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3150
3151         * configure.in, glib.h: glibconfig.h and glib.h now include files
3152         outside of the extern "C" block. Makes some C++ compiler
3153         happy. Reported by Denis Vakatov <vakatov@peony.nlm.nih.gov>.
3154
3155 Sat Jul 15 23:49:03 2000  Owen Taylor  <otaylor@redhat.com>
3156
3157         * glib/glib.texi: Remove incomplete start of info file -
3158         real docs are in RDP.   
3159
3160 Sat Jul 15 22:44:22 2000  Owen Taylor  <otaylor@redhat.com>
3161
3162         * configure.in: Add build/Makefile and 
3163         build/win32/Makefile to AC_OUTPUT() so things build
3164         again.
3165
3166 Sat Jul 15 09:11:46 2000  Tim Janik  <timj@gtk.org>
3167
3168         * gstrfuncs.c (g_strncasecmp): fixed an off by 0 error (yeah,
3169         the function went off when the while (n--) loop failed due to
3170         n==0 ;), reported by Jean-Louis HAMEL <jlhamel@club-internet.fr>.
3171
3172 2000-07-15  Tor Lillqvist  <tml@iki.fi>
3173
3174         * Makefile.am (SUBDIRS): Include the "build" module in GLib, too,
3175         to make it more self-contained. If your CVS client doesn't
3176         automatically get it, do a cvs get build in glib.
3177
3178         * */makefile.mingw.in: Include make.mingw from build in the glib
3179         source directory.
3180
3181 Fri Jul 14 16:26:35 2000  Owen Taylor  <otaylor@redhat.com>
3182
3183         * Release 1.3.1
3184
3185 Fri Jul 14 12:22:49 2000  Owen Taylor  <otaylor@redhat.com>
3186
3187         * configure.in Makefile.am glib-config.m4 glib.m4: Move
3188         glib-config to glib-config-2.0 move glib.m4 to
3189         glib-2.0.m4
3190
3191         * Makefile.am gobject/Makefile.am gmodule/Makefile.am
3192         gthread/Makefile.am tests/Makefile.am: Change 
3193         library names to libglib-1.3.la, etc, so that we
3194         can distinguish glib-1.2 and glib-2.0 on the linkline.
3195
3196         * Makefile.am gobject/Makefile.am gmodule/Makefile.am:
3197         Move include files into /usr/include/glib-2.0.
3198
3199 Thu Jul  6 18:54:49 2000  Owen Taylor  <otaylor@redhat.com>
3200
3201         * docs/Makefile.am (EXTRA_DIST): Remove info files
3202         from the build.
3203
3204 2000-07-14  Tor Lillqvist  <tml@iki.fi>
3205
3206         * glib.def: Add g_error functions.
3207
3208         * makefile.mingw.in: Add gbacktrace.o.
3209
3210         * gbacktrace.c: No need to include <process.h>.
3211
3212 2000-07-12  Havoc Pennington  <hp@redhat.com>
3213
3214         * glib.h: #include <gerror.h>
3215
3216         * Makefile.am (include_HEADERS): Add gerror.h
3217         (libglib_la_SOURCES): Add gbacktrace.c
3218
3219         * gbacktrace.c: Move g_on_error_query() in here (moved on the 
3220         server, so history is preserved)
3221
3222         * gerror.h: GError interface
3223
3224         * gerror.c: GError implementation replaces stuff that's now in 
3225         gbacktrace.c
3226
3227 Sun Jul  9 21:20:45 2000  Owen Taylor  <otaylor@redhat.com>
3228
3229         * gunicode.h: Include stddef.h instead of stdlib.h
3230
3231 2000-07-08  Tor Lillqvist  <tml@iki.fi>
3232
3233         * glib.h (GLIB_VAR): Rename the GUTILS_C_VAR macro to GLIB_VAR.
3234
3235         * gunicode.h: Mark the g_utf8_skip array with GLIB_VAR.
3236
3237         * glib.def: Add two missing entry points.
3238
3239 Thu Jul  6 15:35:28 2000  Owen Taylor  <otaylor@redhat.com>
3240
3241         * Release 1.3.1
3242
3243         * Makefile.am (EXTRA_DIST): Dist fixes.
3244
3245         * configure.in: Moderate the warnings just a little bit.
3246
3247 2000-07-05  Tor Lillqvist  <tml@iki.fi>
3248
3249         * README.win32: Update.
3250
3251 Mon Jul  3 17:58:02 2000  Owen Taylor  <otaylor@redhat.com>
3252
3253         * gutf8.c (g_utf8_get_charset_internal): Fix up
3254         to correspond to configure.in checks.
3255
3256 Mon Jul  3 17:18:19 2000  Owen Taylor  <otaylor@redhat.com>
3257
3258         * glib.h: Comment g_get_codeset() out of the header file
3259         temporarily. (Very similar to g_get_charset(), need
3260         to resolve the two.)
3261
3262 2000-07-01  Tor Lillqvist  <tml@iki.fi>
3263
3264         * glib.def: Add new entry points.
3265
3266         * makefile.{mingw,msc}.in: Add the new Unicode object files.
3267
3268 Thu Jun 29 15:57:28 2000  Owen Taylor  <otaylor@redhat.com>
3269
3270         * NEWS: updated
3271
3272         * Makefile.am: added snapcheck target to go along with snapshot
3273
3274         * gstring.c glib.h (g_string_hash): Add g_string_hash to 
3275         go along with g_string_equal.
3276
3277 Tue Jun 27 12:40:23 EDT 2000  David A. Wheeler <dwheeler@dwheeler.com>
3278
3279         * glib.h: Added g_string_equal for comparing GStrings;
3280         changed g_str_equal so it returns gboolean (instead of gint).
3281
3282         * gstring.c: Modified GString implementation to support embedded
3283         ASCII NUL ('\0') characters, and implemented g_string_equal.
3284
3285         * testglib.c tests/string-test.c: Added tests for g_string_equal
3286         and tests for proper handling of embedded ASCII NUL characters.
3287
3288 Wed Jun 28 22:52:00 2000  Owen Taylor  <otaylor@redhat.com>
3289
3290         * Makefile.am (libglib_la_SOURCES): Fix
3291         gunichartable.h => gunichartables.h. (From Eric Limings)
3292
3293 Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
3294
3295         * glib.h: define gstring in terms of gchar*. this typedef reflects
3296         the type name of the primitive G_TYPE_STRING in the gobject module.
3297
3298 Wed Jun 21 12:09:03 2000  Owen Taylor  <otaylor@redhat.com>
3299
3300         * gunicode.h gutf8.c guniprop.c gunidecomp.[ch] gunichartables.h
3301         Makefile.am glib.h: Initial pass at adding unicode support
3302         functions. A few things still need to be implemented, a bit
3303         of cleanup needs to be done, tests need to be added, and 
3304         the docs need to be finished, but this should allow replacing
3305         most or all use of libunicode.
3306
3307 2000-06-06  Tor Lillqvist  <tml@iki.fi>
3308
3309         * giowin32.c (g_io_channel_win32_pipe_readable): If we are
3310         watching the same pipe for different conditions (with different
3311         callbacks), check them all. Only call the callback for G_IO_IN
3312         from here. (This bug popped up when a watch for G_IO_ERR|G_IO_HUP
3313         was added to gimplib.)
3314
3315 2000-05-30  Tor Lillqvist  <tml@iki.fi>
3316
3317         * gutils.c (g_locale_get_codeset): Implement on Win32.
3318
3319         * glib.def: Add g_get_codeset.
3320
3321         * tests/Makefile.am (EXTRA_DIST): makefile.cygwin* has been
3322         renamed to makefile.mingw*.
3323
3324 Tue May 30 16:01:32 2000  Owen Taylor  <otaylor@redhat.com>
3325
3326         * glib.h gutils.c: Move the g_locale_get_codeset() up in the 
3327         header file to correspond to to comments about memory
3328         management. Rename to g_get_codeset() to avoid 
3329         polluting the g_locale_* namespace, which probably
3330         would have g_locale_get_codeset (GLocale *locale).
3331         Add a doc comment.
3332
3333 Mon May 29 14:10:35 2000  Owen Taylor  <otaylor@redhat.com>
3334
3335         * gutils.c (g_locale_get_codeset): Add function to get the 
3336         codeset name for the current locale.
3337
3338         * configure.in acconfig.h: Add check for nl_langinfo(CODESET);
3339
3340 Fri May 19 11:39:29 2000  Tim Janik  <timj@gtk.org>
3341
3342         * gutils.c (g_snprintf):
3343         (g_vsnprintf): added argument assertments.
3344
3345         * gstring.c (g_string_assign): added argument assertments.
3346         (g_string_truncate): make len a guint.
3347
3348 Fri May 19 09:00:44 2000  Tim Janik  <timj@gtk.org>
3349
3350         * gmem.c (g_free): fixed SIZEOF_LONG==4 assumption with
3351         ENABLE_MEM_CHECK, from Art Haas <ahaas@neosoft.com>.
3352
3353         * gslist.c (g_slist_reverse): shut up compiler.
3354
3355         * gscanner.c (g_scanner_get_token_ll): removed inline assignment.
3356
3357         * garray.c: remove index>=0 checks for unsigned indices.
3358
3359         * gmain.c (g_idle_prepare): timeout assignment fix.
3360
3361         * gtree.c (g_tree_node_rotate_right): shut up compiler.
3362
3363 2000-05-13  Tor Lillqvist  <tml@iki.fi>
3364
3365         * makefile.mingw.in
3366         * tests/makefile.mingw.in
3367         * build-dll: Rename makefile.cygwin(.in) to
3368         makefile.mingw(.in), which better describes what it is. Move the
3369         build of gmodule, gthread and gobject DLLs to makefiles in those
3370         directories. Move resource file handling and build number bump to
3371         build-dll, where it sits much cleaner.
3372
3373         * README.win32
3374         * Makefile.am (EXTRA_DIST): Update accordingly.
3375
3376         * glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
3377         G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
3378         implementations.
3379
3380         * glib.def: Add g_strcanon.
3381
3382         * gtree.c (g_tree_node_rotate_left): Remove unused variables.
3383
3384         * gwin32.c (g_win32_opendir): Remove unneeded statement.
3385
3386 Thu May  4 02:04:46 2000  Tim Janik  <timj@gtk.org>
3387
3388         * configure.in (STRIP_DUMMY): some Make 3.79 $(strip ) versions are
3389         broken and require an empty arg, give it to them.
3390
3391 Fri Apr 28 23:54:35 2000  Tim Janik  <timj@gtk.org>
3392
3393         * setup things for a new sub-library libgobject:
3394
3395         * Makefile.am (SUBDIRS): added gobject
3396
3397         * glib-config.in: feature -lgobject.
3398
3399         * configure.in (AC_OUTPUT): generate gobject/Makefile.
3400
3401         * glib.m4 (AM_PATH_GLIB): feature gobject module.
3402
3403         * glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*
3404
3405 Fri Apr 28 21:41:49 2000  Tim Janik  <timj@gtk.org>
3406
3407         * glib.h: added G_STRLOC macro.
3408         G_STRUCT_OFFSET(): signedness corrections.
3409         (G_CSET_DIGITS): list 0-9.
3410         * gscanner.c (g_scanner_config_template): use G_CSET_DIGITS.
3411
3412         * glib.h: 
3413         * gstrfuncs.c:
3414         (g_strdown):
3415         (g_strup):
3416         (g_strreverse): return the modified string instead of void, so
3417         calls to these functions can be nested.
3418         (g_strcanon): new function, canonicalizes string according to
3419         a given character set.
3420
3421 Fri Apr 28 19:45:16 2000  Tim Janik  <timj@gtk.org>
3422
3423         * gasyncqueue.c (g_async_queue_unref): get rid of an unused variable.
3424
3425 Wed May 10 19:52:44 2000  Owen Taylor  <otaylor@redhat.com>
3426
3427         * glib.m4: Print found version when test succeeds.
3428
3429 2000-05-04  Tor Lillqvist  <tml@iki.fi>
3430
3431         * makefile.cygwin.in
3432         * tests/makefile.cygwin.in: Include the common makefile snippet
3433         from ../build/win32.
3434
3435         Maybe CVSROOT/modules should be changed so that the 'build' module
3436         is included within the glib module (and gtk+, and gimp, and maybe
3437         others later), in the same way as the 'macros' module is included
3438         in lots of GNOME CVS modules?
3439
3440 2000-05-02  Tor Lillqvist  <tml@iki.fi>
3441
3442         * glib.def: Add new functions.
3443
3444         * makefile.{cygwin,msc}.in (glib_OBJECTS): Add new object files.
3445
3446         * tests/makefile.{cygwin,msc}.in: Add threadpool-test.
3447
3448 2000-04-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3449
3450         * gasyncqueue.c: New File implementing an asynchronous queue to be
3451         used for asynchronous inter-thread communication.
3452
3453         * gthreadpool.c: New File implementing a thread pool to be used
3454         for distributing work among several threads. 
3455
3456         * glib.h: Added the type and function declarations for these two
3457         types.
3458
3459         * tests/threadpool-test.c: New File implementing a test for the
3460         thread pool. This also checks the asynchronous queue underlying
3461         the thread pool.
3462
3463         * tests/Makefile.am: Changed accordingly.
3464
3465 2000-04-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3466
3467         * configure.in: Look for both pthread_create and pthread_join in
3468         the thread library. Some systems define one of them, but not both
3469         in libc. Arghh. Now we really start a thread and join it later and
3470         check, whether the thread to actually ran.
3471
3472         * glib.h, gcache.c, gtree.c: Changed the 'value' parameter of
3473         g_cache_remove from gpointer to gconstpointer. Dito for the 'key'
3474         parameter of g_tree_lookup and g_tree_remove and the 'data'
3475         parameter of g_tree_search. This function now takes a function of
3476         type GCompareFunc instead of GSearchFunc. This fixes Bug
3477         #8267. Thanks to Juan Toledo <toledo@users.sourceforge.net> for
3478         pointing that out.
3479
3480         * glib.h: Removed declaration of GSearchFunc.
3481
3482         * gmem.c: s/GSearchFunc/GCompareFunc/.
3483
3484 2000-04-19  Tor Lillqvist  <tml@iki.fi>
3485
3486         * glib.def: Update entry point list.
3487
3488 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3489
3490         * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
3491         for compilers with funny G_STMT_(START|END) macros.
3492
3493         * tests/thread-test.c: Implemented a check for that.
3494
3495         * gutils.c (g_getenv): Changed the win32 part of this function to
3496         be thread safe and to make the returned environment string
3497         persistent to match the UN*X behavior. This is again a response to
3498         Bug #8983.
3499
3500         * glib.h (G_LOCK_NAME): Removed parentheses around the lock name,
3501         as that seems to cause problems for some compilers and really
3502         isn't necessary.
3503
3504 Wed Apr 19 08:32:32 2000  Tim Janik  <timj@gtk.org>
3505
3506         * gscanner.c (g_scanner_new): make sure that
3507         scanner->config->cset_skip_characters is "" instead of NULL, so we
3508         don't segfault further on.
3509
3510 2000-04-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3511
3512         * glib.h, glist.h, gslist.h: Changed the 'data' parameters from
3513         gpointer to gconstpointer for the functions
3514         g_(list|slist)_(remove|find|find_custom|index), as they do not
3515         change this parameter. This fixes bug #4836.
3516
3517         * glib.h: Changed comment for g_getenv to reflect, that the
3518         returned memory must not be freed. Fixes bug #8983.
3519
3520 2000-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3521
3522         * configure.in, acconfig.h: Add configure test for garbage
3523         collector friendliness for GLib. If enabled, ENABLE_GC_FRIENDLY
3524         will be defined.
3525
3526         * garray.c, ghash.c, glist.c, gmain.c, gmem.c, gnode.c, gqueue.c,
3527         gslist.c, gtree.c: If ENABLE_GC_FRIENDLY is defined, NULLify all
3528         memory released by the user, but cached by GLib. This lets a
3529         garbage collector have a more correct view of the actually used
3530         memory.
3531
3532         * garray.c, glib.h: Added g_(array|ptr_array|byte_array)_sized_new
3533         functions, that reserve a certain amount of memeory for the array
3534         at creation time to avoid reallocation. Fixes bug #6707 from
3535         Charles Kerr <ckerr@osserver1.nssl.noaa.gov>.
3536
3537         * glib.h, gqueue.c, tests/queue-test.c (main): Renamed
3538         g_queue_create to g_queue_new in conformance to all other GLib
3539         data types.
3540
3541 2000-04-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3542
3543         * grand.c (g_rand_new): Fixed bug. Thanks to Marko Kreen
3544         <marko@l-t.ee> for reporting that.
3545
3546 2000-03-26  Tor Lillqvist  <tml@iki.fi>
3547
3548         * README.win32: Tell about using the mingw-based gcc, which is
3549         much easier than modifying the cygwin gcc to product mingw code
3550         for the msvcrt runtime.
3551
3552         * makefile.cygwin.in (WIN32APIHEADERS): Kludge to make it work
3553         with a "pure" mingw gcc, too.
3554
3555 2000-03-24  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3556
3557         * garray.c: Made GArray behave correctly. Now zero_terminated
3558         really means, that the element array->data[array->len] exists and
3559         is zeroed, and clear means that any unassigned elements obtained
3560         through g_array_set_size (the only way to get unassigned elements
3561         AFAICT) are zeroed. Added some macros to make the code more
3562         obvoius. Also made GPtrArray zero elements after
3563         g_ptr_array_set_size. This is done in a portbale way (assignment
3564         of NULL instead of just memsetting it to zero), though that might
3565         be more portability than we actually want.
3566
3567         * Makefile.am, gthread/Makefile.am, gmodule/Makefile.am,
3568         tests/Makefile.am: Added various win32 related *.in files to
3569         EXTRA_DIST to let 'make distcheck' procude all the corresponding
3570         files, which it silently fails to do currently.
3571
3572 2000-03-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3573
3574         * configure.in: After finding the right thread library (containing
3575         e.g. pthread_create) we now search for the right realtime library
3576         (containing e.g. sched_get_priority_max). Makes the output of the
3577         thread related libraries correct. 
3578
3579         * gtimer.c (g_usleep): The current implementation of g_usleep
3580         (simply calling select) doesn't work reliable for multi-threaded
3581         programs on some platforms (bad omen for the main loop....), so I
3582         changed the implementation for thread-using programs to wait for a
3583         GCond for the specified amount of time (NB: sleep and usleep are
3584         not MT-safe in general, because they often use signals).
3585
3586 Wed Mar 22 16:49:57 2000  Owen Taylor  <otaylor@redhat.com>
3587
3588         * gmem.c (g_mem_chunk_area_compare): Fix indentation.
3589
3590 2000-03-22 Elliot Lee <sopwith@redhat.com>
3591
3592         * gmem.c (g_mem_chunk_area_compare): Fix 64-bitness bug in
3593         comparing two pointers more than 4G apart.
3594
3595 2000-03-22  Tor Lillqvist  <tml@iki.fi>
3596
3597         * gutils.c: Move Win32-only includes after inclusion of glib.h, so
3598         that G_OS_WIN32 is defined.
3599
3600         * glibconfig.h.win32.in: Add GSystemThread.
3601
3602 2000-03-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3603
3604         * gutils.c (g_get_current_dir): Ok, Marcus Brinkmann
3605         <Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me, that 128 KB
3606         path length might not be enough for the HURD. So I changed the
3607         loop to at least avoid an integer overflow, which could happen at
3608         beyond 2GB size ;-)
3609
3610         * configure.in: Test for sched_yield as the native yield function
3611         first. Corrected typo g_thread_sleep -> g_usleep. Corrected
3612         message for the pthread_create test. Negative Priorities are
3613         allowed (and used on Solaris), so consider
3614         sched_get_priority_min failed only if it returns -1, not <0. Check
3615         for sched_get_priority_min also in -lrt, if not found in -lpthread
3616         alone and add -lrt to G_THREAD_LIBS then. Remove special case
3617         handling of priorities for older solaris versions and posix
3618         threads. Thanks to Wan-Teh Chang <wtc@netscape.com> for suggesting
3619         some of those changes.
3620
3621         * config.guess, config.sub, ltconfig, ltmain.sh:
3622         Upgrade to libtool 1.3.4.
3623
3624 2000-03-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3625
3626         * glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
3627         even when not needed by GLib. That's actually also the way, the
3628         GLib reference manual describes that macro. Therefore I had to
3629         remove the lonesome #include <glibconfig.h> in gutils.c, which
3630         doesn't seem to be needed there however. This change should make
3631         Ben Gertzfield <che@debian.org> happy.
3632
3633         * gutils.c: Furthermore two warnings in gutils.c were voided,
3634         which crept in due to my last change.
3635
3636         * gutils.c (g_get_current_dir): Allocate only up to 128KB for a
3637         pathname. While this is an arbitrary value just like 2048, it
3638         seems to be enough (after all, even 4GB is an arbitrary value).
3639
3640 2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3641
3642         * gmain.c (g_main_poll): Warn in case of an error during the call
3643         to poll(2). Closes Bug#7564 as reported by David Helder
3644         <dhelder@umich.edu>.
3645
3646         * gutils.c (g_get_current_dir): Make g_get_current_dir work on
3647         systems with unlimited pathname length like the HURD (It worked
3648         there before, but only for pathes shorter than 2048). Closes
3649         Bug#4525 as reported by Marcus Brinkmann
3650         <Marcus.Brinkmann@ruhr-uni-bochum.de>.
3651
3652 2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3653
3654         * giounix.c (g_io_unix_write, g_io_unix_read): Interpret EINTR as
3655         G_IO_ERROR_AGAIN.
3656
3657 2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3658
3659         * configure.in: Added the missing POSIX_NO_YIELD and
3660         POSIX_NO_PRIORITIES warning messages.
3661
3662         * configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
3663         real thread support. On solaris pthread_create can be linked to
3664         even in -lc, but it doesn't work then.
3665
3666         * configure.in: Don't use priorities for threads, when the
3667         minimal/maximal priorities couldn't be determined at configure
3668         time.
3669
3670         * configure.in, gthread.c: Always define GSystemThread in
3671         glibconfig.h to represent a system thread.
3672
3673         * configure.in: Do not use native recursive threads, when
3674         possibe. We use some features, that they do not expose (namely the
3675         depth counter).
3676
3677         * glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
3678         now implemented in a different way, which should be way
3679         faster. Alsothere are now functions g_static_rec_mutex_unlock_full
3680         and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
3681         completly.
3682
3683         * gthread.c (g_thread_self): Do not test the system_thread to be
3684         non-zero to speed things up.
3685
3686         * gthread.c (g_mutex_init): Therefore set the system_thread of the
3687         main thread here.
3688
3689         * tests/thread-test.c: Rerun all tests once again, but this time
3690         we fool the system into thinking, that the available thread system
3691         is not native, but userprovided.
3692
3693 2000-03-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3694
3695         * gqueue.c (g_queue_push_tail_link, g_queue_push_head_link): We
3696         want the next and prev pointer of the inserted link to be NULL.
3697
3698 2000-03-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3699
3700         * configure.in: Another small change to the pthread_.. search
3701         pattern. Should work *now* for AIX.
3702
3703 2000-03-04  Tor Lillqvist  <tml@iki.fi>
3704
3705         * gwin32.c (g_win32_error_message): New function that returns the
3706         message string for a Win32 error code.
3707
3708         * glib.h: Declare it.
3709
3710         * glib.def: Export it, plus g_node_copy.
3711
3712 2000-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3713
3714         * configure.in: Make the search for pthread_attr_... prototypes
3715         find names at the start of a line also, like it is on AIX. Thanks
3716         to Valdis Kletnieks <Valdis.Kletnieks@vt.edu> for the info.
3717
3718 Wed Mar  1 10:39:39 2000  Tim Janik  <timj@gtk.org>
3719
3720         * gslist.c (g_slist_reverse): minor optimization.
3721
3722         * testglib.c (g_node_test): added a couple of tests for
3723         g_node_copy().
3724
3725         * glib.h:
3726         * gnode.c (g_node_copy): new function to copy subtrees,
3727         supplied by dbsears@ix.netcom.com.
3728         changed iterator to walk the children list backwards, so
3729         we get down from O(n^2) to O(n).
3730
3731         * gnode.c (g_node_first_sibling): applied patch from
3732         dbsears@ix.netcom.com to optimize access if node->parent
3733         is present.
3734
3735         * gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
3736         assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
3737         thus breaks the original code.
3738
3739         * merged changes from 1.2.7.
3740
3741 Fri Jan 28 11:37:41 2000  Owen Taylor  <otaylor@redhat.com>
3742
3743         Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
3744
3745         * gtimer.c (g_timer_elapsed): Never report negative times -
3746         clip times to 0.
3747
3748         * gmain.c (g_timeout_prepare): Guard against unexpected
3749         clock shifts by never setting a timeout of more than
3750         data->interval msecs.
3751
3752 2000-02-27  Tor Lillqvist  <tml@iki.fi>
3753
3754         * glib.def: Add new functions.
3755
3756 2000-02-23  Tor Lillqvist  <tml@iki.fi>
3757
3758         * README.win32: Add a missing step to the setup instructions for
3759         gcc-2.95.2. Thanks to Arnaud Charlet.
3760
3761         * glib.def: Add missing entry point.
3762
3763 2000-02-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3764
3765         * configure.in: Changed GCC version test to also accept major
3766         versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
3767         pointing this out.
3768
3769 Thu Feb 17 12:53:44 2000  Tim Janik  <timj@gtk.org>
3770
3771         * gstring.c: changed g_str_hash() to a 31 bit version based on
3772         a submission by Karl Nelson and hand optimized ad absurdum by
3773         various people ;)
3774
3775         * gstring.c: applied patch from havoc for new gstring functions,
3776         added some more sanity checks, coding style fixups.
3777
3778 2000-02-13  Havoc Pennington  <hp@pobox.com>
3779
3780         * tests/string-test.c (main): Add tests for the new GString 
3781         features
3782
3783         * testglib.c (main): Add tests for the new GString features
3784
3785         * gstring.c (g_string_insert_len): New function; insert 
3786         a given length of string at a given position. 
3787         (g_string_append): reimplement in terms of g_string_insert_len
3788         (g_string_append_len): new function
3789         (g_string_insert_c): accept -1 for "pos" arg to mean "append"
3790         (g_string_append_c): reimplement in terms of g_string_insert_c
3791         (g_string_prepend): reimplement in terms of g_string_insert_len
3792         (g_string_prepend_len): new function
3793         (g_string_prepend_c): reimplement in terms of g_string_insert_c
3794         (g_string_insert): reimplement in terms of g_string_insert_len
3795
3796         * glib.h: Declare g_string_insert_len, g_string_append_len,
3797         g_string_prepend_len
3798
3799 Sun Feb 13 08:16:47 2000  Tim Janik  <timj@gtk.org>
3800
3801         * configure.in: wtf??? someone destroyed the configure.in, reverting to
3802         an older version from Feb 4 which apears to still work.
3803
3804 2000-02-07  Tor Lillqvist  <tml@iki.fi>
3805
3806         * gmodule.rc.in gthread.rc.in: Move to corresponding subdirectories.
3807
3808         * Makefile.am
3809         * gmodule/Makefile.am
3810         * gthread/Makefile.am: Change accordingly.
3811
3812         * makefile.cygwin: Corresponding changes, some cleanup.
3813
3814 2000-02-05  Tor Lillqvist  <tml@iki.fi>
3815
3816         * glib.rc.in gmodule.rc.in gthread.rc.in: New files, for putting
3817         version info in the DLLs on Win32.
3818
3819         * Makefile.am: Generate corresponding *.rc files and distribute
3820         them.
3821
3822         * makefile.cygwin.in: Add rules to automatically bump a "build
3823         number" in the version info in the rc files each time the DLL is
3824         built. But do this only for the person who releases binaries. If
3825         others build the DLLs, the build number is set to zero.
3826
3827 Fri Feb  4 19:36:05 2000  Tim Janik  <timj@gtk.org>
3828
3829         * glib.h: 
3830         * gdataset.c: return stolen data from g_datalist_id_remove_no_notify()
3831         and g_dataset_id_remove_no_notify() to avoid second lookup for common
3832         use.
3833
3834 2000-02-01  Tor Lillqvist  <tml@iki.fi>
3835
3836         * glib.h
3837         * gstrfuncs.c (g_filename_to_utf8, g_filename_from_utf8): New
3838         functions for conversion between UTF-8 and the encoding expected
3839         by C runtime functions like open() and stat(), and returned by
3840         readdir().
3841
3842         Implement them on Win32 where we use the system "ANSI" codepage,
3843         which might be single-byte or double-byte. On Unix, just skip the
3844         issue for now and provide dummy implementations that return a copy
3845         of the argument.
3846
3847         * README.win32
3848         * build-dll
3849         * glib.def: Minor updates.
3850
3851 Wed Jan 26 05:24:38 2000  Tim Janik  <timj@gtk.org>
3852
3853         * glib.h:
3854         * gmain.c: s/current_time/dispatch_time/ for the dispatch() handlers.
3855         refetch the current time after invocation of poll() to cover up for
3856         the time spent in that function call.
3857
3858 Fri Jan 21 10:18:24 2000  Owen Taylor  <otaylor@redhat.com>
3859
3860         * glib.h (G_N_ELEMENTS): Added G_N_ELEMENTS macro to determine
3861         the number of elements in an array.
3862
3863 Sun Jan  9 13:28:36 2000  Tim Janik  <timj@gtk.org>
3864
3865         * gstrfuncs.c (g_strtod): correctly fetch the current locale,
3866         fix from owen.
3867
3868 1999-12-16  Tor Lillqvist  <tml@iki.fi>
3869
3870         * gmodule/gmodule-win32.c: Use FormatMessage to translate system
3871         error codes into textual messages.
3872
3873 1999-11-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3874
3875         * glib.h (G_TRYLOCK): This of course should return TRUE in a
3876         program with a thread-disabled GLib.
3877
3878 1999-11-18  Tor Lillqvist  <tml@iki.fi>
3879
3880         * glib.def: g_strjoin was missing.
3881
3882 1999-11-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3883
3884         * acconfig.h, config.h.win32.in, configure.in: Renamed
3885         GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect
3886         changed meaning.
3887
3888         * configure.in: Cope with systems, that have a pthread_t type,
3889         that is not a pointer. Hint from Karl Nelson
3890         <kenelson@ece.ucdavis.edu>. Define GLIB_SIZEOF_SYSTEM_THREAD to 4
3891         for Solaris. Cope with systems, that have no default mutex
3892         initialize, like obviously most DCE systems.
3893
3894         * glib.h, gthread.c: Changed the prototype of thread_create and
3895         thread_self to return the system thread into provided memory
3896         instead of a return value. This is necessary, as HPUX has a
3897         pthread_t, that is bigger than the biggest integral type there.
3898
3899         * gthread.c: system_thread is no longer a pointer, but an memory
3900         area of size GLIB_SIZEOF_SYSTEM_THREAD. Changed the
3901         zeroinitialization and the tests for zeroness accordingly.
3902
3903 1999-11-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3904
3905         * configure.in: Create docs/glib-config.1 from
3906         docs/glib-config.1.in. Makes 'make distcheck' happy (and me too).
3907
3908         * glib-config.1: Removed from CVS, as it is a generated file.
3909
3910 1999-11-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3911
3912         * configure.in: Make the test for getpwuid_r work on newer AIX
3913         versions, too. Still works on Solaris and Linux. Patch from Craig
3914         Rodrigues <rodrigc@mediaone.net>.
3915
3916 1999-11-08  Tor Lillqvist  <tml@iki.fi>
3917
3918         * gwin32.c (g_win32_getlocale): Look at env vars LC_ALL, LC_CTYPE
3919         and LANG first. Some refinements to the sublanguage logic.
3920
3921 1999-11-04  Tor Lillqvist  <tml@iki.fi>
3922
3923         * makefile.{cygwin,msc}.in: Add gwin32 object. Add rule to make .i
3924         (preprocessed source) files.
3925
3926 1999-11-01  Tor Lillqvist  <tml@iki.fi>
3927
3928         * glib.h
3929         * glib.def: Rename Win32-only functions from gwin_* to g_win32_*
3930         to match the GLib naming conventions.
3931
3932         * gutils.c
3933         * gwin32.c
3934         * testglib.c
3935         * Makefile.am: Move the Win32-only functions to the new
3936         file gwin32.c
3937
3938 1999-10-31  Tor Lillqvist  <tml@iki.fi>
3939
3940         * gutils.c (gwin_getlocale): New Win32-specific function, returns
3941         a Unixish current locale string (en, zh_TW etc).
3942
3943         * glib.h: Declare it.
3944
3945         * glib.def: Export it.
3946
3947         * testglib.c: Test it.
3948
3949         * gmessages.c (Win32: ensure_stdout_valid): Some improvements,
3950         make sure we don't call AllocConsole several times, which I think
3951         has happened.
3952
3953 Sun Oct 31 18:55:01 1999  ape@spacetec.no  (Asbjorn Pettersen)
3954
3955         * gcache.c (g_cache_remove): Test if node is NULL.
3956         If not tested, GIMP's script-fu will crash. 
3957
3958 Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
3959
3960         * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
3961         destroy() notification here as well.
3962
3963 1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
3964
3965         * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
3966         is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
3967
3968 Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
3969
3970         * glib.h: removed useless g_string(x) macro that cluttered the namespace
3971         and was just a poor wrapper around the cpp '#' symbol, use #x if you
3972         need to work around this.
3973         added new macro G_STRINGIFY(arg) that will convert arg to a string,
3974         no matter whether it contains macros or not.
3975
3976 1999-10-12  Tor Lillqvist  <tml@iki.fi>
3977
3978         * config.h.win32.in: Define the new GLIB_SIZEOF_* constants here,
3979         too.
3980
3981         * glib.h: Small Win32 comments improvement.
3982
3983 Tue Oct 12 12:16:12 1999  Tim Janik  <timj@gtk.org>
3984
3985         * gmessages.c (g_printf_string_upper_bound): completly new
3986         implementation for printf string upper bounds calculation.
3987         we handle all glibc 2.1 format specifiers now, except for positional
3988         parameters (%nn$...) and wide char strings, plus some obscure upper
3989         case variants of the standard conversions. this fixes a lot of
3990         bugs in the old code, i.e.
3991         - NULL format strings
3992         - floats with exponents >+24
3993         - %G
3994         - precision specifications in general
3995         - negative field widths
3996         - %p for SIZEOF_VOID_P > 4 platforms
3997         we now issue warnigns in places where the old code would have
3998         caused buffer overruns anyways. warnings are suppressed when invoked
3999         from glogv(), to avoid infinite recursions if someone passes a log
4000         message that comes with really obscure format specifications.
4001
4002 Tue Oct 12 11:49:00 1999  Tim Janik  <timj@gtk.org>
4003
4004         * gstrfuncs.c: nuked old g_printf_string_upper_bound() version.
4005
4006 Tue Oct 12 03:34:40 1999  Tim Janik  <timj@gtk.org>
4007
4008         * glib.h: added GFloatIEEE754 and GDoubleIEEE754 unions to access sign,
4009         mantissa and exponent of IEEE floats and doubles (required by the new
4010         version of g_printf_string_upper_bound). the unions are endian specific,
4011         we handle G_LITTLE_ENDIAN and G_BIG_ENDIAN as of currently. ieee floats
4012         and doubles are supported (used for storage) by at least intel, ppc and
4013         sparc, reference:
4014         http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html
4015
4016 Mon Oct 11 18:01:49 1999  Tim Janik  <timj@gtk.org>
4017
4018         * configure.in: added additional checks to figure sizes of size_t,
4019         ptrdiff_t and intmax_t (required by g_printf_string_upper_bound).
4020
4021 Wed Oct  6 12:44:23 PDT 1999 Manish Singh <yosh@gimp.org>
4022
4023         * configure.in: blah. use G_WITH_CYGWIN instead of G_HAVE_CYGWIN
4024
4025 1999-10-05  Tor Lillqvist  <tml@iki.fi>
4026
4027         * glib.h: (Win32) Drop the mapping of POSIX function names to the
4028         underscored versions, it's unnecessary after all. With MSVC we get
4029         them from oldnames.lib, with gcc-2.95 and mingw32 from
4030         -lmoldname-msvc. Add comment about what headers to include for
4031         prototypes.
4032
4033         * glibconfig.h.win32.in: Don't define WIN32 and NATIVE_WIN32.
4034
4035         * gerror.c (g_on_error_query): (Win32) Slightly increased verbosity.
4036
4037         * build-dll: Don't strip.
4038
4039         * tests/string-test.c tests/dirname-test.c: Use G_OS_WIN32.
4040
4041         * glib.def: Add g_thread_use_default_impl.
4042
4043 Sun Oct  3 19:46:55 PDT 1999 Manish Singh <yosh@gimp.org>
4044
4045         * configure.in: use G_HAVE_CYGWIN instead of G_OS_FEATURE_CYGWIN
4046
4047 Sun Oct  3 19:25:42 PDT 1999 Manish Singh <yosh@gimp.org>
4048
4049         * acconfig.h
4050         * configure.in
4051         * glibconfig.h.win32: G_OS_FOO #defines. I *think* I got the cygwin
4052         and beos stuff right, but I haven't tested it. The respective
4053         porters should fix any screwups
4054
4055         * glib.h
4056         * gerror.c
4057         * gmain.c
4058         * gmessages.c
4059         * gscanner.c
4060         * gthread.c
4061         * gtimer.c
4062         * gutils.c
4063         * testglib.c: use G_OS stuff
4064
4065 Wed Sep 22 01:53:18 1999  Tim Janik  <timj@gtk.org>
4066
4067         * glib.h (NULL): define NULL as (0L) if __cplusplus is defined, to
4068         avoid "ANSI C++ forbids implicit conversion from `void *' in argument
4069         passing" errors upon NULL usage in C++ programs (gcc-2.95 is on crack
4070         for erroring out on this, instead of just issueing a warning).
4071
4072         * glib.h (g_trash_stack_pop): use uncasted NULL again.
4073
4074 Fri Sep 17 10:24:45 1999  Tim Janik  <timj@gtk.org>
4075
4076         * gmem.c (g_mem_chunk_compute_size) (g_mem_chunk_new): applied
4077         patch from Soeren Sandmann <sandmann@daimi.au.dk>, to force mem
4078         chunk's area sizes to be a multitiple of atom_size, and to
4079         eliminate the MAX_MEM_AREA restriction of 65536 bytes. we also
4080         catch cases where users pass an area size < atom size with a
4081         return_if_fail statement now (which is ok, because previously this
4082         lead to memory corruption anyways).
4083
4084 Thu Sep 16 13:19:54 1999  Tim Janik  <timj@gtk.org>
4085
4086         * glib.h (g_trash_stack_pop): add explicit (GTrashStack*) cast for NULL
4087         pointer to cure ANSI C++ error.
4088
4089 Mon Sep 13 23:25:59 1999  Tim Janik  <timj@gtk.org>
4090
4091         * gmessages.c (g_logv): in case we have to abort the program,
4092         debugging is enabled and we are not called recursively, try
4093         to abort with raise (SIGTRAP) first, so developers may ignore
4094         certain failure conditions during debugging stage.
4095
4096 Thu Aug 26 15:09:36 1999  Tim Janik  <timj@gtk.org>
4097
4098         * Makefile.am:
4099         * gmodule/Makefile.am:
4100         * gthread/Makefile.am: added --export-dynamic so we can load dynmic
4101         modules, (required, according to the libtool 1.3.3 docu).
4102
4103 1999-07-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4104
4105         * grand.c (g_rand_new): Use /dev/urandom, as it doesn't block,
4106         which /dev/random might do. Do not XOR the time, when getting the
4107         seed form /dev/urandom, as this is good itself. Prevent the
4108         initial seed from being zero, which causes the PRNG to produce
4109         only zeros. Hints from Colin Plumb <colin@pgp.com>.
4110
4111 1999-08-17  Tor Lillqvist  <tml@iki.fi>
4112
4113         * glib.h (g_trash_stack_push): Add a cast.
4114
4115         * gslist.c
4116         * glist.c: Make the inline functions static inline, and add
4117         separate extern wrappers. Not all compilers produce callable entry
4118         points for inline functions, even if gcc does.
4119
4120 Sun Aug 15 02:47:14 1999  Tim Janik  <timj@gtk.org>
4121
4122         * glib.h (g_trash_stack_pop): eliminate memset() call, since string.h
4123         has not neccessarily been included prior to glib.h.
4124
4125 Mon Aug  2 21:03:10 1999  Tim Janik  <timj@gtk.org>
4126
4127         * configure.in: added --enable-msg-prefix option.
4128
4129         * gmessages.c (g_log_default_handler): feature "prg_name (pid:%u): "
4130         if --enable-msg-prefix was selected (use "(process:%u): " if
4131         g_get_prgname () returns NULL, along the lines of g_on_error_query).
4132
4133 1999-08-03  Tor Lillqvist  <tml@iki.fi>
4134
4135         * glib.h
4136         * gstrfuncs.c
4137         * tests/strfunc-test.c: Rename g_strccpy to g_strcompress and
4138         g_strecpy to g_strescape per Tim Janik's suggestion. Dropped the
4139         destination parameter, always g_malloc a new string.  Fix bug in
4140         g_strcompress, octal digits were gobbled up without limit, should
4141         use max three.
4142
4143         Sources that use g_strescape must have ifdefs to be compilable
4144         both with GLib 1.2 and 1.3.
4145
4146 Sat Jul 31 17:52:03 PDT 1999 Manish Singh <yosh@gimp.org>
4147
4148         * glib.h
4149         * gstrfuncs.c: the #define for g_strescape interfered with the
4150         compilation of the function, so just remove the function and
4151         note that it's deprecated in the header
4152
4153 1999-08-01  Tor Lillqvist  <tml@iki.fi>
4154
4155         * gstrfuncs.c (g_strccpy, g_strecpy): New functions.
4156
4157         * glib.h: Declare and document them. Define the deprecated
4158         g_strescape as a macro that calls g_strecpy.
4159
4160         * tests/strfunc-test.c (main): Test them.
4161
4162         * makefile.{cygwin,msc}.in
4163         * tests/makefile.{cygwin,msc}.in: Remove gstack and its test
4164         program.
4165
4166         * glib.def: Additions and removals.
4167
4168         * README.win32: Improve gcc build instructions.
4169
4170         * build-dll: Also build import library for MSVC.
4171
4172 Sat Jul 24 20:11:35 1999  Tim Janik  <timj@gtk.org>
4173
4174         * merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
4175         * incorporated proposed cleanups from gtk-devel-list.
4176
4177         * bumped version number to GLib-1.3.1
4178
4179         * glib.h:
4180         * gqueue.c:
4181         * gstring.c:
4182         * glist.c:
4183         removed string tokenisation (we got g_strsplit() and g_strjoin()
4184         already) and readline functions.
4185         s/g_list_delete/g_list_delete_link.
4186         implemented g_slist_delete_link.
4187         removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
4188         macro, g_atexit() is provided for public consumption.
4189         added GTrashStack inline utility functions.
4190         reimplement double eneded queues.
4191         removed GStack implementation, people can use a queue or a (singly)
4192         linked list for this task.
4193         deprecated g_strescape(), we need the SunOS variants here.
4194
4195         * gdate.c: added DEBUG_MSG() macro to wrap old messages.
4196
4197         * *.*: CVS merges.
4198
4199         * upgrade to libtool 1.3.3.
4200
4201 1999-07-21  Tor Lillqvist  <tml@iki.fi>
4202
4203         Win32: With the latest gcc (2.95, pre-release), we can have binary
4204         compatibility with MSVC by using the switch -fnative-struct. No
4205         longer build DLLs with .gcc in the name when using gcc.
4206
4207         * README.win32: Renew gcc build instructions.
4208
4209         * build-dll: Comments change, handle also .a files.
4210
4211         * makefile.cygwin.in
4212         * tests/makefile.cygwin.in: Remove .gcc from DLL name.
4213
4214 1999-07-13  Tor Lillqvist  <tml@iki.fi>
4215
4216         * README.win32: Correct URL for mingw runtime sources.
4217
4218         * build-dll: Combine commands with &&.
4219
4220         * glib.h: Map also rmdir() and hypot() for MSVCRT library.
4221
4222         * makefile.cygwin.in
4223         * tests/makefile.cygwin.in: New DLL naming style. GCC-compiled DLLs are
4224         now called *.gcc.dll, to avoid binary incompatibilities with
4225         MSVC-compiled versions.
4226
4227         * makefile.msc.in: Cosmetics.
4228
4229 1999-07-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4230
4231         * configure.in: Test for pthread_join rather than for
4232         pthread_create to determine the right thread-lib. Makes it work on
4233         mips-sgi-irix6.5. Hitn from to Jari Vuoksenranta
4234         <javu@piano.ux.phys.jyu.fi>.
4235
4236 1999-07-02  Tor Lillqvist  <tml@iki.fi>
4237
4238         * README.win32: Note about need to fix another bug in the mingw32
4239         headers.
4240
4241         * makefile.msc.in: Debugging turned on via an nmake variable,
4242         no need to edit the makefile.
4243
4244 1999-07-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4245
4246         * configure.in, acconfig.h, gutils.c: Added a g_memmove
4247         replacement for platforms without memmove, where bcopy can't
4248         handle overlapping copies and the corresponding checks, which is
4249         taken form the PERL Configure routine.
4250
4251         * glib.h: Updated the commentary about g_memmove to be right and
4252         more GLib-like.
4253
4254         * configure.in: Removed test for rand_r, as it isn't used anymore.
4255
4256 1999-06-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4257
4258         * glib.h, grand.c: Finally removed the g_random_normal and
4259         g_rand_normal functions.
4260
4261 1999-06-28  Tor Lillqvist  <tml@iki.fi>
4262
4263         * glib.def: Add missing export of g_strncasecmp.
4264
4265 1999-06-21  Jose Mercado  <jmercado@mit.edu>
4266
4267         * glib.spec.in: Changed version number (1.1->1.3) in files section
4268         to allow rpm to build packages again.
4269
4270 1999-06-21  Tor Lillqvist  <tml@iki.fi>
4271
4272         * README.win32: Update the pthreads snapshot version we want.
4273         Advice how to hand-expand the makefile.*.in files.
4274
4275         * config.h.win32.in: Define values needed by Sebastian Wilhelmi's
4276         new thread stuff.
4277
4278         * glib.def: Add new functions.
4279
4280         * glibconfig.h.win32.in: Update the pthreads snapshot version.
4281         Fix typo.
4282
4283         * gthread.c: Include config.h, guard inclusion of unistd.h.  When
4284         using gcc on Win32, g_thread_functions_for_glib_use must be marked
4285         for export here, too.
4286
4287         * gtimer.c: Implement g_usleep on native Win32 using Sleep (which
4288         only has millisecond granularity, though).
4289
4290         * makefile.cygwin.in
4291         * makefile.msc.in: Update pthreads snapshot version. File
4292         name changes. Remove testgthread.
4293
4294         * tests/makefile.cygwin.in
4295         * tests/makefile.msc.in: Add thread-test. Link with gthread lib.
4296
4297 1999-06-18  Jeff Garzik  <jgarzik@pobox.com>
4298
4299         * tests/Makefile.am:  Re-order tests in alpha order.
4300
4301 1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4302
4303         * configure.in: Changed test for pthread_attr_setstacksize from
4304         AC_TRY_COMPILE to AC_TRY_LINK.
4305
4306 1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4307
4308         * configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
4309         Completed the thread support in GLib. Thread creation,
4310         prioritizing threads, yielding, joining threads as well as
4311         reader/writer locks and recursive mutexes are now in place. Please
4312         test heavily on your platform. It is so far tested on
4313         Linux/i386/pthreads, Solaris/Sparc/pthreads and
4314         Solaris/Sparc/solaristhreads.
4315
4316         * gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
4317         thread safe sleeping. (sleep() is not MT-safe at all!)
4318
4319         * gutils.c: Avoid compiler warning.
4320
4321         * tests/Makefile.am, tests/thread-test.c: New program to test some
4322         aspects of the thread implementation.
4323
4324         * gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
4325         change of content.
4326
4327         * configure.in: Purged all appearances of nspr. 
4328
4329 Wed Jun  2 11:42:46 PDT 1999 Manish Singh <yosh@gimp.org>
4330
4331         * acinclude.m4
4332         * config.guess
4333         * config.status
4334         * ltconfig
4335         * ltmain.sh: upgrade to libtool 1.3.2 (BeOS changes merged)
4336
4337 1999-05-29  Tor Lillqvist  <tml@iki.fi>
4338
4339         * gstrfuncs.c (g_strescape): Backslashify also '"' characters.
4340
4341         * glib.h: Document g_strescape.
4342
4343 1999-05-12  Tor Lillqvist  <tml@iki.fi>
4344
4345         * glib.h (Win32): Map fileno to _fileno for mingw32. Map fstat to
4346         _fstat.
4347
4348         * README.win32: Advice also to remove -lmoldname in the
4349         patch to the egcs-1.1.2 spec file.
4350
4351 Wed May 12 00:23:55 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
4352
4353         * gmodule/Makefile.am: Another small fix.
4354
4355 1999-05-08  Tor Lillqvist  <tml@iki.fi>
4356
4357         * Makefile.am tests/Makefile.am: Correct rules for making the
4358         win32-related files that are made from corresponding .in files.
4359         Is there a cleaner way than explicitly writing rules that invoke
4360         config.status?
4361
4362 Fri Jul 16 22:18:36 PDT 1999 Manish Singh <yosh@gimp.org>
4363
4364         * ltconfig
4365         * ltmain.sh: upgrade to libtool 1.3.3
4366
4367 1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4368
4369         * gdate.c, gstrfuncs.c, gstring.c: Fixed the use of the
4370         is..... and to..... macros, which take unsigned chars, not chars!
4371         Thanks to Morten Welinder <terra@diku.dk> for pointing this out.
4372
4373 Thu Jun  3 16:30:31 PDT 1999 Manish Singh <yosh@gimp.org>
4374
4375         * gerror.c (g_on_error_query): check isatty() before querying so
4376         we don't loop endlessly
4377
4378 Sat May 29 11:16:29 PDT 1999 Manish Singh <yosh@gimp.org>
4379
4380         * acinclude.m4
4381         * config.guess
4382         * config.status
4383         * ltconfig
4384         * ltmain.sh: upgrade to libtool 1.3.2
4385
4386 1999-05-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4387
4388         * gmain.c: provide a poll prototype for SunOS, as they do not do
4389         it self. Hint from Christian Parg <cparg@fs-design.de>.
4390
4391 Tue May 25 12:23:07 1999  Owen Taylor  <otaylor@redhat.com>
4392
4393         * gstrfuncs.c (g_strchug): Use g_memmove() not memmove().
4394         (Reported by Charles Levert <charles@comm.polymtl.ca>)
4395
4396 Mon May 10 22:03:52 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
4397
4398         * Released GLib 1.2.3
4399
4400 1999-05-08  Tor Lillqvist  <tml@iki.fi>
4401
4402         * Makefile.am tests/Makefile.am: Correct rules for making the
4403         win32-related files that are made from corresponding .in files.
4404         Is there a cleaner way than explicitly writing rules that invoke
4405         config.status?
4406
4407 Sat May  1 10:18:01 PDT 1999 Manish Singh <yosh@gimp.org>
4408
4409         * acinclude.m4
4410         * config.guess
4411         * config.status
4412         * ltconfig
4413         * ltmain.sh: upgrade to libtool 1.3
4414
4415 1999-04-30  Tor Lillqvist  <tml@iki.fi>
4416
4417         * Makefile.am: Don't distribute glibconfig.h.win32.in, but
4418         glibconfig.h.win32. Generate it when making a dist. Also generate
4419         makefile.msc and config.h.win32 from corresponding .in files when
4420         making dist.
4421
4422         * configure.in: Also substitute @GLIB_INTERFACE_AGE@ and
4423         @GLIB_BINARY_AGE@ (needed in config.h.win32).
4424
4425         * glibconfig.h.win32.in: Use static mutex structure and initial
4426         value corresponding to the 1999-04-07 snapshot of pthreads-win32.
4427
4428         * tests/Makefile.am: Distribute makefile.msc. Generate it when
4429         making dist.
4430
4431         * tests/makefile.msc.in: New file.
4432
4433         * tests/node-test.c: Include <stdlib.h> for exit().
4434
4435 Thu Apr 29 02:16:36 1999  Tim Janik  <timj@gtk.org>
4436
4437         * gstrfuncs.c: minor code cleanups.
4438
4439 Tue Apr 27 13:11:29 1999  Owen Taylor  <otaylor@redhat.com>
4440
4441         * gmain.c (g_main_poll): Mask out ERR HUP and NVAL from
4442         the events field so we don't give IRIX fits.
4443
4444 Tue Apr 20 08:42:22 1999  Tim Janik  <timj@gtk.org>
4445
4446         * gscanner.c (g_scanner_unexp_token): behave conservative with
4447         G_TOKEN_IDENTIFIER_NULL and always assume scanner->value.v_string
4448         to be "null" in that case.
4449
4450 1999-04-20  Havoc Pennington  <hp@pobox.com>
4451
4452         * gutils.c (g_vsnprintf):  When using the vsnprintf()
4453         implementation, '\0'-terminate the resulting string
4454         and return its length rather than -1.
4455
4456 Mon Apr 19 13:42:21 1999  Owen Taylor  <otaylor@redhat.com>
4457
4458         * gmain.c (g_main_iterate): Added missing
4459         #ifdef G_THREADS_ENABLED. (I never liked G_THREADS_ENABLED in
4460         the first place!)
4461
4462 1999-04-18  Havoc Pennington  <hp@pobox.com>
4463
4464         * gutils.c (g_snprintf): When using the vsnprintf()
4465         implementation, '\0'-terminate the resulting string
4466         and return its length rather than -1.
4467
4468 Fri Apr 16 06:52:07 1999  Tim Janik  <timj@gtk.org>
4469
4470         * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid
4471         expected token as well, so we get "- expected end of file" instead of
4472         "- expected (unknown) token <0>".
4473
4474 Tue Apr 13 16:16:14 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
4475
4476         * Released GLib 1.2.2
4477
4478 1999-04-12  Elliot Lee  <sopwith@mh69.mh.cuc.edu>
4479
4480         * g_strchug(): s/strcpy/memmove/
4481
4482 1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4483
4484         * configure.in: Adjusted the test for an unimplemented
4485         getpwuid_r. Info from Michael Pruett <mikep@ugcs.caltech.edu>.
4486
4487 Sun Apr 11 15:07:34 1999  Tim Janik  <timj@gtk.org>
4488
4489         * configure.in: bumped versin number to GLib 1.2.2, interface 2,
4490         binary 2.
4491
4492         * NEWS: updates.
4493
4494 Sun Apr 11 14:37:06 1999  Tim Janik  <timj@gtk.org>
4495
4496         * gstrfuncs.c (g_strcasecmp): always check for s1, s2 != NULL.
4497
4498 Sat Apr 10 19:30:50 1999  Tim Janik  <timj@gtk.org>
4499
4500         * glib.h: removed braces around inline strings for the G_GNUC_FUNCTION
4501         and G_GNUC_PRETTY_FUNCTION macros, so the macros can be used for
4502         compile time string concatenation.
4503
4504 Thu Apr  8 19:53:19 1999  Owen Taylor  <otaylor@redhat.com>
4505
4506         * gmain.c (g_main_iterate): Check for two threads
4507         calling g_main_iterate at once.
4508
4509         * gmain.c: If the set of poll file descriptors changes
4510         during a call to poll(), abort that call, and start
4511         a new poll. My test program still segfaults
4512         obscurely on glibc 2.0 (in read()!!!), but now it works on
4513         glibc 2.1, so I'll blame something else for the other segfault.
4514
4515 1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4516
4517         * configure.in: Fixed slight bug, that made configure hang on some
4518         systems. Please do not merge this into 1.3 branch. It's taken care
4519         of differently there. Info from J. Rhett Aultman
4520         <cuplan@alley.gator.net>
4521
4522 Wed Mar 24 21:23:47 CST 1999 Shawn T. Amundson <amundson@gtk.org>
4523
4524         * Released GLib 1.2.1
4525
4526         * README:
4527           INSTALL: 
4528           NEWS: 
4529           sanity_check: updated
4530
4531         * glibconfig.h.win32.in:
4532           Makefile.am:
4533           docs/glib-config.1.in:
4534           docs/Makefile.am: Added files used to generate new files.
4535
4536         * glibconfig.h.win32:
4537           docs/glib-config.1: Removed, now generated.
4538
4539         * configure.in: Added to output now-generated files.
4540
4541 Tue Mar 23 13:43:39 PST 1999 Manish Singh <yosh@gimp.org>
4542
4543         * giounix.c: add user_data param to check and prepare functions
4544
4545 Mon Mar 22 03:54:43 1999  Tim Janik  <timj@gtk.org>
4546
4547         * glib.h:
4548         * gmain.c: add user_data to the GSource ->check and ->prepare
4549         functions, so it can be used to e.g. pass a GPollFd.
4550         (g_main_poll): only add poll records with an events mask != 0 to the
4551         fd_array. don't even bother calling poll_func() if fds=timeout=0.
4552         added debugging printouts around poll_func() invokation that can be
4553         enabled with #define G_MAIN_POLL_DEBUG.
4554
4555 Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
4556
4557         * acinclude.m4
4558         * config.guess
4559         * config.sub
4560         * ltconfig
4561         * ltmain.sh: upgrade to libtool 1.2f
4562
4563         * autogen.sh: libtool is not required to autogen glib
4564
4565         * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
4566         needed)
4567
4568 1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4569
4570         * gmem.c: Fixed another stupid fault of mine: Did
4571         s/g_static_/g_private_/g
4572
4573 Wed Mar 17 03:17:42 1999  Tim Janik  <timj@gtk.org>
4574
4575         * configure.in bumped versin number to GLib 1.2.1, interface 1,
4576         binary 1.
4577
4578         * NEWS: updates.
4579
4580         * glib.h: added GLIB_CHECK_VERSION() macro similar to
4581         GTK_CHECK_VERSION().
4582
4583 Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
4584
4585         * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
4586         to g_return_if_fail().
4587         (g_mem_profile): 
4588         (g_mem_chunk_print): 
4589         (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
4590         messages.
4591
4592         * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
4593         to g_return_if_fail().
4594         * grel.c (g_*): changed a bunch of g_assert() statements to
4595         g_return_if_fail() and added some extra ones to check relation != NULL.
4596
4597 1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4598
4599         * configure.in: Also accept _Pctime_r instead of ctime_r, while
4600         seraching for the right `_REENTRANT' flag. This is for Digital
4601         UNIX 4.0d. Thanks to Sascha Brawer <sb@adasys.ch>.
4602
4603 Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
4604
4605         * configure.in: check for working realloc (NULL,).
4606         * gmem.c (g_realloc): use malloc() for initial allocation on systems
4607         where realloc(NULL,) will not work (this is the case on SunOS, reported
4608         by Tom Geiger).
4609
4610 Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
4611
4612         * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
4613         flag around the call to g_hook_free() to avoid spurious
4614         warnings (happens during destruction phase).
4615
4616 1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4617
4618         * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
4619         from config.h.win32 to glibconfig.h.win32
4620
4621         * acconfig.h, configure.in, config.h.win32: Added test for DCE
4622         versions of mutex_trylock and cond_timedwait. The win32 versions
4623         are posix, aren't they?
4624
4625 1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4626
4627         * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
4628         Friedrich Dominicus <Friedrich.Dominicus@inka.de>
4629
4630 1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4631
4632         * gutils.c (g_get_any_init): Fixed yet another bloody
4633         implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
4634         <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
4635         test better than that, but have no idea, how to do that easily.
4636
4637 Sun Feb 21 22:11:51 CST 1999  Shawn T. Amundson <amundson@gtk.org>
4638
4639         * Released GLib 1.2.0
4640
4641         * AUTHORS: updated
4642
4643 Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>
4644
4645         * *.[ch]: inserted additional note to look for ChangeLog and
4646           AUTHORS file for a log of modifications.
4647
4648 Sun Feb 21 14:01:00 1999  Dr Mike <drmike@redhat.com>
4649
4650         * Made specfile generated, tweaked slightly
4651
4652 Sat May  8 06:00:17 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
4653
4654         * configure.in
4655           gmodule/Makefile.am
4656           gthread/Makefile.am: Better testing reveals better
4657           methods.  Fixes for BeOS.
4658
4659 Sat May  8 01:52:29 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
4660
4661         * configure.in
4662           gerror.c
4663           gmain.c
4664           gstrfuncs.c
4665           gutils.c
4666           ltconfig
4667           ltmain.sh
4668           gmodule/Makefile.am
4669           gmodule/gmodule.c
4670           gmodule/gmoduleconf.h.in
4671           gmodule/gmodule-beos.c
4672           gthread/Makefile.am: Port to BeOS by myself and Richard Offer.
4673
4674 1999-05-06  Tor Lillqvist  <tml@iki.fi>
4675
4676         * makefile.msc.in makefile.cygwin.in glibconfig.h.win32.in
4677         config.h.win32.in tests/makefile.msc.in tests/makefile.cygwin.in:
4678         New files, used to generate corresponding non-.in files when
4679         making a dist. This is just so the version numbers will be kept in
4680         synch automatically.
4681
4682         * configure.in: Also substitute @GLIB_MAJOR_VERSION@,
4683         @GLIB_MINOR_VERSION@, and @GLIB_INTERFACE_AGE@.
4684
4685         * Makefile.am tests/Makefile.am: Also distribute makefile.cygwin.
4686
4687         * gerror.c (g_on_error_query): On Win32, put up a MessageBox and
4688         then exit.
4689
4690         * glib.def: Add a couple of functions.
4691
4692 Sat May  1 10:26:20 PDT 1999 Manish Singh <yosh@gimp.org>
4693
4694         * acinclude.m4
4695         * config.guess
4696         * config.status
4697         * ltconfig
4698         * ltmain.sh: upgrade to libtool 1.3
4699
4700 1999-04-25  Tor Lillqvist  <tml@iki.fi>
4701
4702         * README.win32: More editing.
4703         * build-dll: Use gcc, not ld to link.
4704         * glib.h: On native Win32 use _unlink().
4705         * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
4706         not _MSC_VER.
4707         * gstring.c: Include <io.h> on Win32 for _read prototype.
4708         * gutils.c: Remove old IO channel code (was in #if 0).
4709         * makefile.cygwin: Don't need to link with kernel32 and msvcrt
4710         explicitly, they are included anyway.
4711
4712 1999-04-24  Tor Lillqvist  <tml@iki.fi>
4713
4714         Support added for building using a GNU toolchain on Win32,
4715         i.e. gcc -mno-cygwin on cygwin (a.k.a. mingw32, using egcs-1.1.2).
4716
4717         * README.win32: Updated.
4718         * build-dll makefile.cygwin tests/makefile.cygwin: New files.
4719         * glib.h glib.def glibconfig.h.win32: Slight updates. 
4720         * gmain.c: No need to include <fcntl.h> and <io.h> on Win32.
4721         * gmain.c gutils.c testglib.c tests/string-test.c: Test for
4722         NATIVE_WIN32, not _MSC_VER.
4723         * gmutex.c: Must declare g_thread_functions_for_glib_use as
4724         exported (using the GUTILS_C_VAR macro).
4725         * gutils.c gmodule/libgplugin_[ab].c: LibMain not needed.
4726         * gmodule/gmoduleconf.h.win32: Need underscore with gcc.
4727         * gthread/gthread.c: With gcc on Win32, must use memcpy to assign
4728         value of g_thread_functions_for_glib_use (?).
4729         * makefile.msc tests/makefile.msc: Cosmetics.
4730
4731 Fri Apr 23 14:29:25 BST 1999  Tony Gale <gale@gtk.org>
4732
4733         * glib.h: Fix typo in g_string_ncasecmp macro (by me).
4734           Add b_string_strncasecmp macro.
4735
4736 1999-04-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4737
4738         * gutils.c (g_get_any_init): use sysconf (_SC_GETPW_R_SIZE_MAX) as
4739         the new initinal bufsize for getpwuid_r on systems, that support
4740         this. Hint from Holger Duerer <H.Duerer@zait.uni-bremen.de>.
4741
4742 Sat Apr 17 20:55:13 BST 1999  Tony Gale <gale@gtk.org>
4743
4744         * glib.h, gstring.c: Add new g_string functions for reading
4745           from file/socket descriptors, and tokenising strings.
4746
4747           Added various g_string macros.
4748
4749 Tue Apr 13 23:28:32 1999  Tor Lillqvist  <tml@iki.fi>
4750
4751         * README.win32: Mention the tests directory.
4752
4753         * glib.def: Add the functions from grand.c.
4754
4755         * glibconfig.h.win32: Add unsigned max values, and the format
4756         strings.
4757
4758         * makefile.msc: Add grand.
4759
4760         * tests/{date-test,node-test}.c: Include <stdlib.h> for exit().
4761
4762         * tests/makefile.msc: New file.
4763
4764 1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4765
4766         * glib.h: Moved struct declaration up. Style fixes.
4767
4768         * grand.c: Style fixes. Only try to open /dev/random once.
4769
4770         * tests/rand-test.c (main): New tests; Slight bug fix. 
4771
4772 1999-04-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4773
4774         * grand.c, tests/rand-test.c: New files to implement the Mersenne
4775         Twister Pseudo Random Number Generator.
4776
4777         * glib.h, AUTHORS, Makefile.am, tests/Makefile.am: Changed
4778         accordingly.
4779
4780 Thu Apr  8 21:12:30 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
4781
4782         * Released GLib 1.3.0
4783
4784 1999-03-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4785
4786         * configure.in: Added a check for the right format to printf and
4787         scanf long longs. It is %qi instead of %lli on FreeBSD for
4788         whatever reason.
4789
4790 1999-03-28  Raja R Harinath  <harinath@cs.umn.edu>
4791
4792         * Makefile.am (glibconfig.h): Make sure `glibconfig.h' exists
4793         after the rule is fired.
4794         (install-exec-local): Install glibconfig.h only if the contents
4795         are different from the currently installed glibconfig.h.
4796
4797 1999-03-26  Raja R Harinath  <harinath@cs.umn.edu>
4798
4799         * Makefile.am (configexecincludedir): Rename from 
4800         configincludedir so that glibconfig.h will be installed 
4801         as part of `make install-exec'. 
4802
4803 Thu Mar 25 22:45:47 1999  Tor Lillqvist  <tml@iki.fi>
4804
4805         * config.h.win32: Update version numbers.
4806
4807         * glibconfig.h.win32: Update version numbers and pthreads-win32-
4808         related magic values.
4809
4810         * README.win32: Some improvements.
4811
4812         * makefile.msc: Add gqueue and gstack. Correct version number.
4813
4814 Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
4815
4816         * acinclude.m4
4817         * config.guess
4818         * config.sub
4819         * ltconfig
4820         * ltmain.sh: upgrade to libtool 1.2f
4821
4822         * autogen.sh: libtool is not required to autogen glib
4823
4824         * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
4825         needed)
4826
4827 1999-03-18  Jeff Garzik  <jgarzik@pobox.com>
4828
4829         * glib.def: Add new g_list, g_stack, g_queue functions.
4830
4831 1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4832
4833         * configure.in: added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
4834         to hold various defines to get the right thread implementation on
4835         different platforms. Also look in -ldce for pthread_create. Should
4836         make it work on HP-UX 10.x. Information from "D. Emilio Grimaldo
4837         Tunon" <emilio_tunon@nl.compuware.com>.
4838
4839 1999-03-17  Jeff Garzik  <jgarzik@pobox.com>
4840
4841         * gstack.c, gqueue.c:
4842         Add copyright, clean up code a bit.
4843
4844 1999-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4845
4846         * configure.in: Added missing values for G_MAXU(SHORT|INT|LONG) on
4847         platforms with only /usr/include/values.h.
4848
4849         * acconfig.h: Removed unnecessary macros.
4850
4851         * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
4852         from config.h.win32 to glibconfig.h.win32. Taken from glib 1.2
4853         branch.
4854
4855         * configure.in: Also accept _Pctime_r instead of ctime_r, while
4856         seraching for the right `_REENTRANT' flag. This is for Digital
4857         UNIX 4.0d. Taken from glib 1.2 branch.
4858
4859 Wed Mar 17 03:14:56 1999  Tim Janik  <timj@gtk.org>
4860
4861         * glib.h: added GLIB_CHECK_VERSION() macro similar to
4862         GTK_CHECK_VERSION().
4863
4864 Wed Mar 17 01:46:28 1999  Tim Janik  <timj@gtk.org>
4865
4866         * merges from glib-1-2:
4867
4868 Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
4869
4870         * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
4871         to g_return_if_fail().
4872         (g_mem_profile):
4873         (g_mem_chunk_print):
4874         (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
4875         messages.
4876
4877         * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
4878         to g_return_if_fail().
4879         * grel.c (g_*): changed a bunch of g_assert() statements to
4880         g_return_if_fail() and added some extra ones to check relation != NULL.
4881
4882 Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
4883
4884         * configure.in: check for working realloc (NULL,).
4885         * gmem.c (g_realloc): use malloc() for initial allocation on systems
4886         where realloc(NULL,) will not work (this is the case on SunOS, reported
4887         by Tom Geiger).
4888
4889 Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
4890
4891         * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
4892         flag around the call to g_hook_free() to avoid spurious
4893         warnings (happens during destruction phase).
4894
4895 1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4896
4897         * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
4898         Friedrich Dominicus <Friedrich.Dominicus@inka.de>
4899
4900 1999-03-16  Timur Bakeyev  <mc@bat.ru>
4901
4902         * configure.in: Fix problem with pthread_create in libc, as running
4903         "gcc test.c -l " is not legal.
4904
4905 1999-03-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4906
4907         * tests/type-test.c: Added a test for the
4908         G_(U)?INT(16|32|64)_FORMAT and G_(MIN|MAX|MAXU)(SHORT|INT|LONG)
4909         macros.
4910
4911         * configure.in: Removed G_(U)?INT8_FORMAT again, as it can't be
4912         used for scanf.
4913
4914         * configure.in: Added the macros G_MAXU(SHORT|INT|LONG). I do not
4915         know how to handle these on platforms with /usr/include/values.h,
4916         but without /usr/include/limits.h. Please someone add this.
4917
4918
4919 1999-03-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4920
4921         * configure.in: Added the macros G_(U)?INT(8|16|32|64)_FORMAT to
4922         use for printf and (much more important) scanf format strings for
4923         the corresponding GLib types. 
4924
4925         * glib.h Added G_(U)?(SHORT|INT|LONG)_FORMAT for consistency. It
4926         however makes no sense to also provide G_(FLOAT|DOUBLE)_FORMAT, as
4927         they are different for printf (f for both) and scanf (f for float,
4928         lf for double). Defining G_INT_FORMAT makes sense however, as we
4929         might want to define gint to something different than int someday
4930         in the future. Idea from Sascha Brawer <sb@adasys.ch>.
4931
4932 1999-03-14  Jeff Garzik  <jgarzik@pobox.com>
4933
4934         * gdate.c:
4935         Commented out debugging output.
4936
4937         * tests/Makefile.am, tests/date-test.c:
4938         Added test of the GDate module, based closely on testgdate.c.
4939
4940         * tests/Makefile.am:
4941         Bugfix - compile tests with @GLIB_DEBUG_FLAGS@.
4942
4943 1999-03-14  Raja R Harinath  <harinath@cs.umn.edu>
4944
4945         * configure.in (glibconfig.h): Remove widechar tests and defines.
4946         (fd_set): Change the grep for `fd_mask' to search for `fd_set'.
4947         * gerror.c (fd_mask): Remove conditional typedef.  It is not used
4948         elsewhere in the file.
4949         * gmain.c (fd_mask): Likewise.
4950
4951 1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4952
4953         * configure.in: Test for posix threads first, then for dce threads.
4954
4955 1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4956
4957         * configure.in: Revamped the thread configure stuff. Now dce
4958         threads (old posix draft) are recogniced. This is necessary,
4959         because dce threads are in fact working quite differently from
4960         posix threads. Also changed the conditions for checking for MT
4961         safe functions a bit, because G_THREADS_IMPL_NONE still have to
4962         compile thread safe. NOTE: Please do not commit my change to
4963         glib-1-2/{acconfig.h,configure.in,config.h.win32} from 1999-03-03,
4964         as the current change will take care of that too.
4965
4966 Tue Mar  9 14:37:32 1999  Jeff Garzik  <jgarzik@pobox.com>
4967
4968         * Makefile.am, glib.h, gstack.c, gqueue.c,
4969           tests/Makefile.am, tests/queue-test.c, tests/stack-test.c:
4970         Added stack, queue ADTs and related tests.
4971
4972         * glib.h, glist.c:
4973         New g_list_delete() function.
4974
4975 Sat Mar  6 11:03:08 1999  Asbjorn Pettersen  <ape@lrdpf.spacetec.no>
4976
4977         * gutils.c (g_get_any_init): add OS/2 changes.
4978         change '\\' in HOME to '/'.
4979
4980 1999-03-03  Josh MacDonald  <jmacd@spin.dsl.pacbell.net>
4981
4982         * glib.def: g_spaced_primes_closest was omitted here, so I
4983         couldn't build Xdelta on Windows.
4984
4985 1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4986
4987         * gutils.c (g_get_any_init): Fixed yet another bloody
4988         implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
4989         <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
4990         test better than that, but have no idea, how to do that easily.
4991
4992 Sat Feb 27 01:18:47 1999  Tim Janik  <timj@gtk.org>
4993
4994         * ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started
4995         new one.
4996
4997         * configure.in: set glib version to 1.3.0.