Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com> Define g_alloca() as an
[platform/upstream/glib.git] / ChangeLog
1 Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
2         * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere.
3         * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms.
4
5 Sun Sep 10 12:37:40 2000  Owen Taylor  <otaylor@redhat.com>
6
7         * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
8         of convenient character set conversion using iconv, with
9         the addition of GError. We probably need a fallback that
10         just does conversions between, say UTF-8,16,32 and ISO-8859-1
11         for targets without iconv at all.
12
13         Also add g_convert_with_fallback() to take care of conversions 
14         where we accept some loss going to the target encoding.
15         
16 2000-09-10  Havoc Pennington  <hp@redhat.com>
17
18         * gutf8.c (g_utf8_validate): Add this function.
19
20 Sat Sep  9 18:50:42 2000  Owen Taylor  <otaylor@redhat.com>
21
22         * gstrfuncs.c (g_strescape): Add a missing g_return_if_fail().
23
24 Mon Aug 21 03:57:46 2000  Tim Janik  <timj@gtk.org>
25
26         * glib.h (G_BREAKPOINT): for non-i386 and non-alpha, or non gcc,
27         implement BREAKPOINT() as raise (5 /* SIGTRAP */);
28
29         * glib.h: provide user-definable switch G_IMPLEMENT_INLINES,
30         to turn on compilation of inline function implementations provided
31         in header files with extern linkage.
32         wrap inline function implementations into ifdef __G_UTILS_C__, so we
33         really only compile them for gutils.c and not also into arbitrary user
34         code that wants to make use of G_IMPLEMENT_INLINES.
35         adjusted comment apropriately.
36
37         * gutils.c: to turn on compilation of inline functions, provide
38         #define G_IMPLEMENT_INLINES 1 and #define __G_UTILS_C__.
39
40 2000-09-06  Havoc Pennington  <hp@redhat.com>
41
42         * gerror.c: docs
43
44         * docs/reference/glib/tmpl/error_reporting.sgml: docs
45
46 Wed Sep  6 10:28:34 2000  Owen Taylor  <otaylor@redhat.com>
47
48         * guniprop.c gunicode.h gutf8.c: Some inline docs fixes.
49
50 2000-09-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
51
52         * glib.h, gtimer.c, tests/thread-test.c:
53         s/G_MICROSEC/G_USEC_PER_SEC/
54
55         * glib.h: Removed G_G{U}{SHORT|INT|LONG}_FORMAT from glib.h, as
56         they are really superfluous.
57
58 Tue Sep  5 20:16:27 2000  Owen Taylor  <otaylor@redhat.com>
59
60         * configure.in docs/Makefile.am: Add gtk-doc checks
61         for newly added docs/reference/ subdir.
62
63 2000-09-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
64
65         * gthread.c (g_thread_error_quark): Don't use a G_LOCK, as it
66         isn't necessary.
67
68 2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
69
70         * gstring.c (g_string_free): Use g_return_val_if_fail instead of
71         g_return_if_fail, as the function now is supposed to return
72         something.
73         
74         * gerror.c, gerror.h (g_propagte_error): Added function
75         g_propagte_error to hand over local errors to the calling
76         function.
77
78         * glib.h: Include gerror.h before it is used for some g_thread_*
79         functions.
80
81         * gthread.c, gthreadpool.c, glib.h: Enable error reporting for
82         thread creation, namly for g_thread_create, g_thread_pool_new,
83         g_thread_pool_push and g_thread_pool_set_max_threads.
84
85         * tests/thread-test.c, tests/threadpool-test.c: Adapted
86         accordingly.
87         
88 2000-08-31  Tor Lillqvist  <tml@iki.fi>
89
90         * glib.h
91         * glib.def
92         * giowin32.c (g_io_channel_win32_make_pollfd): New function, to
93         make a GPollFD from a GIOChannel. Creates the events and starts
94         the reader thread if necessary.
95
96         * glib.h
97         * giowin32.c (g_io_channel_win32_poll): No use for separate
98         condition parameter.
99
100         * gmain.c (g_get_current_time): (Win32): Simplify, use
101         GetSystemTimeAsFileTime().
102
103 2000-08-27  Tor Lillqvist  <tml@iki.fi>
104
105         * giowin32.c (g_io_channel_win32_poll): New function, otherwise
106         like g_io_channel_win32_wait_for_condition(), but accept several
107         GPollFDs.
108         (g_io_channel_win32_wait_for_condition): Call
109         g_io_channel_win32_poll().
110
111         * glib.h: Declare g_io_channel_win32_poll().
112
113         * gwin32.c (g_win32_error_message): Don't believe return value
114         from FormatMessage.
115
116 2000-08-25 Elliot Lee <sopwith@redhat.com>
117
118         * glib.h, gunicode.h, gmodule/gmodule.h:
119         : Mark the following functions G_GNUC_CONST (to allow
120         optimization) because their results are a function of only their parameters:
121         g_int_hash, g_int_equal, g_direct_hash, g_direct_equal, g_quark_to_string,
122         g_date_is_leap_year, g_date_days_in_month, g_date_monday_weeks_in_year,
123         g_date_sunday_weeks_in_year, g_spaced_primes_closest, g_unichar_is*,
124         g_unichar_to*, g_unichar_*digit_value, g_unichar_type
125
126 2000-08-21 Elliot Lee <sopwith@redhat.com>
127
128         * gobject/Makefile.am, gobject/gobject-query.c, gobject/gparamspecs.c: Fix inclusion of
129         config.h
130
131 Mon Aug 21 14:46:23 2000  Owen Taylor  <otaylor@redhat.com>
132
133         * tests/gio-test.c: Fix a couple of trivial bugs that
134         were causing warnings.
135
136 Mon Aug 21 14:39:36 2000  Owen Taylor  <otaylor@redhat.com>
137
138         * glib.h: Use C99 varargs macros where possible 
139         (check __STDC_VERSION__), otherwise, on gcc, use an alternate 
140         form of gcc varargs which is more likely
141         to be supported going forward. (Based on some code
142         from Raja Harinath)
143
144 2000-08-17  Darin Adler  <darin@eazel.com>
145
146         * glib.h:
147         * garray.c: (g_array_free), (g_ptr_array_free),
148         (g_byte_array_free): Return the data left behind.
149         * gstring.c: (g_string_free): Return the data left behind.
150
151         Changed the free calls that leave data behind so they
152         return a pointer to the left-behind data, NULL if told not
153         to leave anything behind. This makes these calls easier
154         to use correctly, without any incompatible API change for
155         callers that don't know about the return value. Of course,
156         it would be even clearer if the free calls weren't dual-purpose
157         in the first place.
158
159 2000-08-12  Tor Lillqvist  <tml@iki.fi>
160
161         * giowin32.c: Some indentation and spacing fixes. Add some more
162         logging.
163         (g_io_win32_add_watch): New function, with common code from
164         g_io_win32_fd_add_watch and g_io_win32_sock_add_watch. Don't start
165         more than one reader thread for a GIOChannel. We should obviously
166         have just one reader thread reading a file descriptor or socket.
167
168 2000-08-10  Havoc Pennington  <hp@redhat.com>
169
170         * gthread-2.0.pc.in (Cflags): don't duplicate glib Cflags
171
172         * gmodule-2.0.pc.in (Cflags): don't duplicate glib Cflags
173
174         * gobject-2.0.pc.in (Cflags): don't duplicate Cflags from glib
175         itself
176
177 2000-08-10  Havoc Pennington  <hp@redhat.com>
178
179         * glib-2.0.pc.in (Cflags): Look in glib-2.0/include for
180         glibconfig.h
181
182 2000-08-07  Tor Lillqvist  <tml@iki.fi>
183
184         * tests/gio-test.c (shutdown_source): New function, that calls
185         g_source_remove(). Check return value of g_source_remove(), and
186         decrement running subprocess counter only if g_source_remove()
187         actually did remove the source.
188
189         (recv_message): Call shutdown_source() on EOF condition. Return
190         FALSE on G_IO_HUP and G_IO_ERR condition. Fix printf format typo.
191
192 Sun Aug  6 20:06:02 2000  Tim Janik  <timj@gtk.org>
193
194         * gmessages.c (g_log_domain_check_free): keep *last updated while
195         running through the domain list, so we don't screw up the removal,
196         patch provided by Gady Kozma <gadykozma@hotmail.com>.
197
198 Sun Aug  6 20:03:41 2000  Tim Janik  <timj@gtk.org>
199
200         * gmessages.c (g_log_remove_handler): keep *last updated while running
201         through the handler list, so we don't screw up the removal.
202
203 Sun Jul 30 16:54:13 2000  Owen Taylor  <otaylor@redhat.com>
204
205         * gunicode.h: Fix stray character
206         
207         * gutf8.c (g_unichar_to_utf8): Allow outbuf to be NULL, in
208         which case we just compute the length.
209
210 2000-07-31  Havoc Pennington  <hp@redhat.com>
211
212         * Makefile.am (EXTRA_DIST): forgot to add .pc.in to EXTRA_DIST
213
214 2000-07-31  Havoc Pennington  <hp@redhat.com>
215
216         * glib-2.0.pc.in, gobject-2.0.pc.in, gmodule-2.0.pc.in,
217         gobject-2.0.pc.in: pkg-config data files         
218         
219         * Makefile.am: Install/dist the .pc files
220
221         * configure.in: Output the .pc files
222
223 2000-07-31  Tor Lillqvist  <tml@iki.fi>
224
225         * giowin32.c (buffer_read): The code didn't compile (must
226         have been sleepy when committing). "return" instead of "break"
227
228         (g_io_win32_fd_add_watch): Cannot check if the file descriptor is
229         readable by calling ReadFile to read zero bytes. ReadFile blocks
230         on NT even if trying to read nothing at all. So, don't check if
231         file descriptor is readable; assume this function isn't called
232         otherwise.
233
234 Sun Jul 30 10:44:16 2000  Tim Janik  <timj@gtk.org>
235
236         * gmain.c (g_get_current_time): fix tor's recent changes which
237         got rid of a required variable in the non-windows path.
238
239 2000-07-30  Tor Lillqvist  <tml@iki.fi>
240
241         Finally, a new and improved IO Channel and condition watch
242         implementation for Win32. Based on code provided by Craig Setera.
243
244         When watching file descriptors, for which there is no select()
245         like functionality on Win32 that would work on all Win32 platforms
246         for all types of file descriptors (including anonymous pipes), we
247         start a new thread that blocks while trying to read from the file
248         descriptor. When the read returns, a Win32 Event is signalled that
249         the polling routine eventually notices. Meanwhile, the data being
250         read is stored in a circular buffer, from where the IO channel's
251         read() method picks it up.
252  
253         If the buffer fills up the reading thread has to wait for space
254         becoming available. For this another Win32 Event is used. The IO
255         Channel's read() method signals this when it has read some data
256         out of the buffer.
257
258         The separate reader thread(s), and the circular buffer(s) with
259         associated events mean lots of possibilities for fun parallellism
260         errors. But it seems to work OK, i.e. GIMP runs.
261
262         * gmain.c: Small changes to the Win32 polling function.
263         (g_main_win32_get_poll_func): New function. Perhaps it would be a
264         good idea to provide this on all platforms.
265
266         * giowin32.c: The bulk of the new implementation.
267         (g_io_channel_win32_wait_for_condition): New function. To be used
268         where on Unix one does a select() on the channel's fd, like
269         libgimp's gimp_extension_process(). Could be provided on all
270         platforms.
271
272         * glib.h: Update documentation for IO Channels on Win32. Remove
273         the declarations for the as of now obsolete old functions related
274         to IO Channels for pipes with "wakeup" messages.
275         
276         * glib.def: Some new functions.
277         
278         * tests/gio-test.c: New file, to test GIOChannel and main loop.
279
280         * tests/Makefile.am
281         * tests/makefile.mingw.in: Add it.
282
283         (Later the same night:)
284
285         * giowin32.c: Compile in the debugging code all the time, but only
286         output debug messages if told so. Add (unadvertised) function to
287         turn on/off debug messages for a channel.
288         
289         (buffer_read): Don't loop. It is expected behaviour to return a
290         short read occasionally, for instance when reading from
291         pipes. It's the calling code that should loop if it *knows* how
292         much the writer has written.
293
294         * tests/gio-test.c: Correct the program's name in the output.
295         (recv_message): Loop calling g_io_channel_read() (in a new
296         function read_all()) until we have all the bytes we want (that we
297         know the writer has written/will write).
298         
299 Thu Jul 27 05:15:11 2000  Tim Janik  <timj@gtk.org>
300
301         * gstrfuncs.c (g_strlcpy, g_strlcat): completed tor's fix
302         to cover both #ifdef branches.
303
304 2000-07-26  Tor Lillqvist  <tml@iki.fi>
305
306         * gstrfuncs.c (g_strlcpy, g_strlcat): Return 0 on error, not NULL.
307
308         * glib.def: Add g_strlcpy, g_strlcat.
309
310         * glibconfig.h.win32.in: Add gsize and gssize.
311
312 Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>
313
314         * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
315         updates the license headers to the GNU Lesser General Public License,
316         as well as updating the copyright year to 2000.
317
318 Wed Jul 26 05:47:48 2000  Tim Janik  <timj@gtk.org>
319
320         * configure.in:
321         * testglib.c:
322         * gstrfuncs.c:
323         * glib.h: added g_strlcat() and g_strlcpy() wrappers, supplied by
324         David Wheeler <dwheeler@ida.org>:
325
326         * glib.h, gstrfuncs.c: added g_strlcpy and g_strlcat to support
327           safe manipulation of fixed-length string buffers.
328           These functions were originally developed by Todd Miller to simplify
329           development of security-related programs, and
330           are available on many (but not all) Unix-like systems,
331           including OpenBSD, FreeBSD, and Solaris.  See
332           ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3
333           and http://www.openbsd.org/security.html.
334           If there's a strlcpy/strlcat on the system, it's called, otherwise
335           an implementation is provided.
336
337         * testglib.c: Added tests for g_strlcpy, g_strlcat.
338
339 Wed Jul 26 05:03:24 2000  Tim Janik  <timj@gtk.org>
340
341         * acglib.m4 (GLIB_SIZEOF): include <stdlib.h> and <stddef.h> if
342         STDC_HEADERS is defined.
343
344         * glib.h:
345         * glibconfig.h: define gsize and gssize in terms of GLIB_SIZEOF_SIZE_T
346
347         * glib.h (g_return_if_reached): applied darin's fix for copy'n
348         paste error in the macro implementation.
349
350 Wed Jul 26 00:46:03 2000  Tim Janik  <timj@gtk.org>
351
352         * glib.h: applied patch from Darin Adler <darin@eazel.com> which
353         supplies g_return_if_reached(), g_return_val_if_reached() and
354         g_critical().
355
356 2000-07-22  Tor Lillqvist  <tml@iki.fi>
357
358         * build-dll: Fix resource handling, the resource file got left out
359         from the DLL after all... Remove the WIN32APIHEADERS, not needed
360         with current windres.
361
362         * glib.def: Add new functions.
363
364 2000-07-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
365
366         * gutils.c, glib.h: Mark the functions g_basename and g_dirname
367         deprecated. They will issue an warning once, when compiled with
368         G_ENABLE_DEBUG, but continue to work as before. Instead the
369         functions g_path_get_basename and g_path_get_dirname should be
370         used, which BOTH return newly allocated memory, that has to freed
371         by g_free. The new g_path_get_basename now strips trailing slashes
372         from the path. This fixes #5097. For discussion see
373         http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
374
375         * gwin32.c, testglib.c, tests/dirname-test.c: Use the new
376         functions instead of the old ones.
377
378         * ghash.c, gscanner.c, glib.h: Mark the functions
379         g_hash_table_freeze, g_hash_table_thaw and thus
380         g_scanner_freeze_symbol_table and g_scanner_thaw_symbol_table
381         deprecated. They will issue an warning once, when compiled with
382         G_ENABLE_DEBUG. This fixes Bug #3883. For discussion see
383         http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
384         
385 2000-07-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
386
387         * configure.in, glib.h: glibconfig.h and glib.h now include files
388         outside of the extern "C" block. Makes some C++ compiler
389         happy. Reported by Denis Vakatov <vakatov@peony.nlm.nih.gov>.
390
391 Sat Jul 15 23:49:03 2000  Owen Taylor  <otaylor@redhat.com>
392
393         * glib/glib.texi: Remove incomplete start of info file -
394         real docs are in RDP.   
395
396 Sat Jul 15 22:44:22 2000  Owen Taylor  <otaylor@redhat.com>
397
398         * configure.in: Add build/Makefile and 
399         build/win32/Makefile to AC_OUTPUT() so things build
400         again.
401
402 Sat Jul 15 09:11:46 2000  Tim Janik  <timj@gtk.org>
403
404         * gstrfuncs.c (g_strncasecmp): fixed an off by 0 error (yeah,
405         the function went off when the while (n--) loop failed due to
406         n==0 ;), reported by Jean-Louis HAMEL <jlhamel@club-internet.fr>.
407
408 2000-07-15  Tor Lillqvist  <tml@iki.fi>
409
410         * Makefile.am (SUBDIRS): Include the "build" module in GLib, too,
411         to make it more self-contained. If your CVS client doesn't
412         automatically get it, do a cvs get build in glib.
413
414         * */makefile.mingw.in: Include make.mingw from build in the glib
415         source directory.
416
417 Fri Jul 14 16:26:35 2000  Owen Taylor  <otaylor@redhat.com>
418
419         * Release 1.3.1
420
421 Fri Jul 14 12:22:49 2000  Owen Taylor  <otaylor@redhat.com>
422
423         * configure.in Makefile.am glib-config.m4 glib.m4: Move
424         glib-config to glib-config-2.0 move glib.m4 to
425         glib-2.0.m4
426
427         * Makefile.am gobject/Makefile.am gmodule/Makefile.am
428         gthread/Makefile.am tests/Makefile.am: Change 
429         library names to libglib-1.3.la, etc, so that we
430         can distinguish glib-1.2 and glib-2.0 on the linkline.
431
432         * Makefile.am gobject/Makefile.am gmodule/Makefile.am:
433         Move include files into /usr/include/glib-2.0.
434         
435 Thu Jul  6 18:54:49 2000  Owen Taylor  <otaylor@redhat.com>
436
437         * docs/Makefile.am (EXTRA_DIST): Remove info files
438         from the build.
439
440 2000-07-14  Tor Lillqvist  <tml@iki.fi>
441
442         * glib.def: Add g_error functions.
443
444         * makefile.mingw.in: Add gbacktrace.o.
445
446         * gbacktrace.c: No need to include <process.h>.
447
448 2000-07-12  Havoc Pennington  <hp@redhat.com>
449
450         * glib.h: #include <gerror.h>
451
452         * Makefile.am (include_HEADERS): Add gerror.h
453         (libglib_la_SOURCES): Add gbacktrace.c
454
455         * gbacktrace.c: Move g_on_error_query() in here (moved on the 
456         server, so history is preserved)
457
458         * gerror.h: GError interface
459
460         * gerror.c: GError implementation replaces stuff that's now in 
461         gbacktrace.c
462
463 Sun Jul  9 21:20:45 2000  Owen Taylor  <otaylor@redhat.com>
464
465         * gunicode.h: Include stddef.h instead of stdlib.h
466
467 2000-07-08  Tor Lillqvist  <tml@iki.fi>
468
469         * glib.h (GLIB_VAR): Rename the GUTILS_C_VAR macro to GLIB_VAR.
470
471         * gunicode.h: Mark the g_utf8_skip array with GLIB_VAR.
472
473         * glib.def: Add two missing entry points.
474
475 Thu Jul  6 15:35:28 2000  Owen Taylor  <otaylor@redhat.com>
476
477         * Release 1.3.1
478
479         * Makefile.am (EXTRA_DIST): Dist fixes.
480
481         * configure.in: Moderate the warnings just a little bit.
482
483 2000-07-05  Tor Lillqvist  <tml@iki.fi>
484
485         * README.win32: Update.
486
487 Mon Jul  3 17:58:02 2000  Owen Taylor  <otaylor@redhat.com>
488
489         * gutf8.c (g_utf8_get_charset_internal): Fix up
490         to correspond to configure.in checks.
491
492 Mon Jul  3 17:18:19 2000  Owen Taylor  <otaylor@redhat.com>
493
494         * glib.h: Comment g_get_codeset() out of the header file
495         temporarily. (Very similar to g_get_charset(), need
496         to resolve the two.)
497
498 2000-07-01  Tor Lillqvist  <tml@iki.fi>
499
500         * glib.def: Add new entry points.
501
502         * makefile.{mingw,msc}.in: Add the new Unicode object files.
503
504 Thu Jun 29 15:57:28 2000  Owen Taylor  <otaylor@redhat.com>
505
506         * NEWS: updated
507
508         * Makefile.am: added snapcheck target to go along with snapshot
509         
510         * gstring.c glib.h (g_string_hash): Add g_string_hash to 
511         go along with g_string_equal.
512
513 Tue Jun 27 12:40:23 EDT 2000  David A. Wheeler <dwheeler@dwheeler.com>
514
515         * glib.h: Added g_string_equal for comparing GStrings;
516         changed g_str_equal so it returns gboolean (instead of gint).
517
518         * gstring.c: Modified GString implementation to support embedded
519         ASCII NUL ('\0') characters, and implemented g_string_equal.
520
521         * testglib.c tests/string-test.c: Added tests for g_string_equal
522         and tests for proper handling of embedded ASCII NUL characters.
523
524 Wed Jun 28 22:52:00 2000  Owen Taylor  <otaylor@redhat.com>
525
526         * Makefile.am (libglib_la_SOURCES): Fix
527         gunichartable.h => gunichartables.h. (From Eric Limings)
528
529 Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
530
531         * glib.h: define gstring in terms of gchar*. this typedef reflects
532         the type name of the primitive G_TYPE_STRING in the gobject module.
533
534 Wed Jun 21 12:09:03 2000  Owen Taylor  <otaylor@redhat.com>
535
536         * gunicode.h gutf8.c guniprop.c gunidecomp.[ch] gunichartables.h
537         Makefile.am glib.h: Initial pass at adding unicode support
538         functions. A few things still need to be implemented, a bit
539         of cleanup needs to be done, tests need to be added, and 
540         the docs need to be finished, but this should allow replacing
541         most or all use of libunicode.
542
543 2000-06-06  Tor Lillqvist  <tml@iki.fi>
544
545         * giowin32.c (g_io_channel_win32_pipe_readable): If we are
546         watching the same pipe for different conditions (with different
547         callbacks), check them all. Only call the callback for G_IO_IN
548         from here. (This bug popped up when a watch for G_IO_ERR|G_IO_HUP
549         was added to gimplib.)
550
551 2000-05-30  Tor Lillqvist  <tml@iki.fi>
552
553         * gutils.c (g_locale_get_codeset): Implement on Win32.
554
555         * glib.def: Add g_get_codeset.
556
557         * tests/Makefile.am (EXTRA_DIST): makefile.cygwin* has been
558         renamed to makefile.mingw*.
559
560 Tue May 30 16:01:32 2000  Owen Taylor  <otaylor@redhat.com>
561
562         * glib.h gutils.c: Move the g_locale_get_codeset() up in the 
563         header file to correspond to to comments about memory
564         management. Rename to g_get_codeset() to avoid 
565         polluting the g_locale_* namespace, which probably
566         would have g_locale_get_codeset (GLocale *locale).
567         Add a doc comment.
568
569 Mon May 29 14:10:35 2000  Owen Taylor  <otaylor@redhat.com>
570
571         * gutils.c (g_locale_get_codeset): Add function to get the 
572         codeset name for the current locale.
573
574         * configure.in acconfig.h: Add check for nl_langinfo(CODESET);
575
576 Fri May 19 11:39:29 2000  Tim Janik  <timj@gtk.org>
577
578         * gutils.c (g_snprintf):
579         (g_vsnprintf): added argument assertments.
580
581         * gstring.c (g_string_assign): added argument assertments.
582         (g_string_truncate): make len a guint.
583
584 Fri May 19 09:00:44 2000  Tim Janik  <timj@gtk.org>
585
586         * gmem.c (g_free): fixed SIZEOF_LONG==4 assumption with
587         ENABLE_MEM_CHECK, from Art Haas <ahaas@neosoft.com>.
588
589         * gslist.c (g_slist_reverse): shut up compiler.
590
591         * gscanner.c (g_scanner_get_token_ll): removed inline assignment.
592
593         * garray.c: remove index>=0 checks for unsigned indices.
594
595         * gmain.c (g_idle_prepare): timeout assignment fix.
596
597         * gtree.c (g_tree_node_rotate_right): shut up compiler.
598
599 2000-05-13  Tor Lillqvist  <tml@iki.fi>
600
601         * makefile.mingw.in
602         * tests/makefile.mingw.in
603         * build-dll: Rename makefile.cygwin(.in) to
604         makefile.mingw(.in), which better describes what it is. Move the
605         build of gmodule, gthread and gobject DLLs to makefiles in those
606         directories. Move resource file handling and build number bump to
607         build-dll, where it sits much cleaner.
608
609         * README.win32
610         * Makefile.am (EXTRA_DIST): Update accordingly.
611
612         * glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
613         G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
614         implementations.
615
616         * glib.def: Add g_strcanon.
617
618         * gtree.c (g_tree_node_rotate_left): Remove unused variables.
619
620         * gwin32.c (g_win32_opendir): Remove unneeded statement.
621
622 Thu May  4 02:04:46 2000  Tim Janik  <timj@gtk.org>
623
624         * configure.in (STRIP_DUMMY): some Make 3.79 $(strip ) versions are
625         broken and require an empty arg, give it to them.
626
627 Fri Apr 28 23:54:35 2000  Tim Janik  <timj@gtk.org>
628
629         * setup things for a new sub-library libgobject:
630
631         * Makefile.am (SUBDIRS): added gobject
632
633         * glib-config.in: feature -lgobject.
634
635         * configure.in (AC_OUTPUT): generate gobject/Makefile.
636
637         * glib.m4 (AM_PATH_GLIB): feature gobject module.
638
639         * glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*
640
641 Fri Apr 28 21:41:49 2000  Tim Janik  <timj@gtk.org>
642
643         * glib.h: added G_STRLOC macro.
644         G_STRUCT_OFFSET(): signedness corrections.
645         (G_CSET_DIGITS): list 0-9.
646         * gscanner.c (g_scanner_config_template): use G_CSET_DIGITS.
647
648         * glib.h: 
649         * gstrfuncs.c:
650         (g_strdown):
651         (g_strup):
652         (g_strreverse): return the modified string instead of void, so
653         calls to these functions can be nested.
654         (g_strcanon): new function, canonicalizes string according to
655         a given character set.
656
657 Fri Apr 28 19:45:16 2000  Tim Janik  <timj@gtk.org>
658
659         * gasyncqueue.c (g_async_queue_unref): get rid of an unused variable.
660
661 Wed May 10 19:52:44 2000  Owen Taylor  <otaylor@redhat.com>
662
663         * glib.m4: Print found version when test succeeds.
664
665 2000-05-04  Tor Lillqvist  <tml@iki.fi>
666
667         * makefile.cygwin.in
668         * tests/makefile.cygwin.in: Include the common makefile snippet
669         from ../build/win32.
670
671         Maybe CVSROOT/modules should be changed so that the 'build' module
672         is included within the glib module (and gtk+, and gimp, and maybe
673         others later), in the same way as the 'macros' module is included
674         in lots of GNOME CVS modules?
675
676 2000-05-02  Tor Lillqvist  <tml@iki.fi>
677
678         * glib.def: Add new functions.
679
680         * makefile.{cygwin,msc}.in (glib_OBJECTS): Add new object files.
681
682         * tests/makefile.{cygwin,msc}.in: Add threadpool-test.
683
684 2000-04-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
685
686         * gasyncqueue.c: New File implementing an asynchronous queue to be
687         used for asynchronous inter-thread communication.
688         
689         * gthreadpool.c: New File implementing a thread pool to be used
690         for distributing work among several threads. 
691
692         * glib.h: Added the type and function declarations for these two
693         types.
694
695         * tests/threadpool-test.c: New File implementing a test for the
696         thread pool. This also checks the asynchronous queue underlying
697         the thread pool.
698
699         * tests/Makefile.am: Changed accordingly.
700         
701 2000-04-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
702
703         * configure.in: Look for both pthread_create and pthread_join in
704         the thread library. Some systems define one of them, but not both
705         in libc. Arghh. Now we really start a thread and join it later and
706         check, whether the thread to actually ran.
707
708         * glib.h, gcache.c, gtree.c: Changed the 'value' parameter of
709         g_cache_remove from gpointer to gconstpointer. Dito for the 'key'
710         parameter of g_tree_lookup and g_tree_remove and the 'data'
711         parameter of g_tree_search. This function now takes a function of
712         type GCompareFunc instead of GSearchFunc. This fixes Bug
713         #8267. Thanks to Juan Toledo <toledo@users.sourceforge.net> for
714         pointing that out.
715
716         * glib.h: Removed declaration of GSearchFunc.
717
718         * gmem.c: s/GSearchFunc/GCompareFunc/.
719
720 2000-04-19  Tor Lillqvist  <tml@iki.fi>
721
722         * glib.def: Update entry point list.
723
724 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
725
726         * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
727         for compilers with funny G_STMT_(START|END) macros.
728
729         * tests/thread-test.c: Implemented a check for that.
730
731         * gutils.c (g_getenv): Changed the win32 part of this function to
732         be thread safe and to make the returned environment string
733         persistent to match the UN*X behavior. This is again a response to
734         Bug #8983.
735
736         * glib.h (G_LOCK_NAME): Removed parentheses around the lock name,
737         as that seems to cause problems for some compilers and really
738         isn't necessary.
739
740 Wed Apr 19 08:32:32 2000  Tim Janik  <timj@gtk.org>
741
742         * gscanner.c (g_scanner_new): make sure that
743         scanner->config->cset_skip_characters is "" instead of NULL, so we
744         don't segfault further on.
745
746 2000-04-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
747
748         * glib.h, glist.h, gslist.h: Changed the 'data' parameters from
749         gpointer to gconstpointer for the functions
750         g_(list|slist)_(remove|find|find_custom|index), as they do not
751         change this parameter. This fixes bug #4836.
752
753         * glib.h: Changed comment for g_getenv to reflect, that the
754         returned memory must not be freed. Fixes bug #8983.
755
756 2000-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
757
758         * configure.in, acconfig.h: Add configure test for garbage
759         collector friendliness for GLib. If enabled, ENABLE_GC_FRIENDLY
760         will be defined.
761
762         * garray.c, ghash.c, glist.c, gmain.c, gmem.c, gnode.c, gqueue.c,
763         gslist.c, gtree.c: If ENABLE_GC_FRIENDLY is defined, NULLify all
764         memory released by the user, but cached by GLib. This lets a
765         garbage collector have a more correct view of the actually used
766         memory.
767         
768         * garray.c, glib.h: Added g_(array|ptr_array|byte_array)_sized_new
769         functions, that reserve a certain amount of memeory for the array
770         at creation time to avoid reallocation. Fixes bug #6707 from
771         Charles Kerr <ckerr@osserver1.nssl.noaa.gov>.
772
773         * glib.h, gqueue.c, tests/queue-test.c (main): Renamed
774         g_queue_create to g_queue_new in conformance to all other GLib
775         data types.
776
777 2000-04-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
778
779         * grand.c (g_rand_new): Fixed bug. Thanks to Marko Kreen
780         <marko@l-t.ee> for reporting that.
781
782 2000-03-26  Tor Lillqvist  <tml@iki.fi>
783
784         * README.win32: Tell about using the mingw-based gcc, which is
785         much easier than modifying the cygwin gcc to product mingw code
786         for the msvcrt runtime.
787
788         * makefile.cygwin.in (WIN32APIHEADERS): Kludge to make it work
789         with a "pure" mingw gcc, too.
790
791 2000-03-24  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
792
793         * garray.c: Made GArray behave correctly. Now zero_terminated
794         really means, that the element array->data[array->len] exists and
795         is zeroed, and clear means that any unassigned elements obtained
796         through g_array_set_size (the only way to get unassigned elements
797         AFAICT) are zeroed. Added some macros to make the code more
798         obvoius. Also made GPtrArray zero elements after
799         g_ptr_array_set_size. This is done in a portbale way (assignment
800         of NULL instead of just memsetting it to zero), though that might
801         be more portability than we actually want.
802
803         * Makefile.am, gthread/Makefile.am, gmodule/Makefile.am,
804         tests/Makefile.am: Added various win32 related *.in files to
805         EXTRA_DIST to let 'make distcheck' procude all the corresponding
806         files, which it silently fails to do currently.
807
808 2000-03-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
809
810         * configure.in: After finding the right thread library (containing
811         e.g. pthread_create) we now search for the right realtime library
812         (containing e.g. sched_get_priority_max). Makes the output of the
813         thread related libraries correct. 
814
815         * gtimer.c (g_usleep): The current implementation of g_usleep
816         (simply calling select) doesn't work reliable for multi-threaded
817         programs on some platforms (bad omen for the main loop....), so I
818         changed the implementation for thread-using programs to wait for a
819         GCond for the specified amount of time (NB: sleep and usleep are
820         not MT-safe in general, because they often use signals).
821
822 Wed Mar 22 16:49:57 2000  Owen Taylor  <otaylor@redhat.com>
823
824         * gmem.c (g_mem_chunk_area_compare): Fix indentation.
825
826 2000-03-22 Elliot Lee <sopwith@redhat.com>
827
828         * gmem.c (g_mem_chunk_area_compare): Fix 64-bitness bug in
829         comparing two pointers more than 4G apart.
830
831 2000-03-22  Tor Lillqvist  <tml@iki.fi>
832
833         * gutils.c: Move Win32-only includes after inclusion of glib.h, so
834         that G_OS_WIN32 is defined.
835
836         * glibconfig.h.win32.in: Add GSystemThread.
837
838 2000-03-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
839
840         * gutils.c (g_get_current_dir): Ok, Marcus Brinkmann
841         <Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me, that 128 KB
842         path length might not be enough for the HURD. So I changed the
843         loop to at least avoid an integer overflow, which could happen at
844         beyond 2GB size ;-)
845
846         * configure.in: Test for sched_yield as the native yield function
847         first. Corrected typo g_thread_sleep -> g_usleep. Corrected
848         message for the pthread_create test. Negative Priorities are
849         allowed (and used on Solaris), so consider
850         sched_get_priority_min failed only if it returns -1, not <0. Check
851         for sched_get_priority_min also in -lrt, if not found in -lpthread
852         alone and add -lrt to G_THREAD_LIBS then. Remove special case
853         handling of priorities for older solaris versions and posix
854         threads. Thanks to Wan-Teh Chang <wtc@netscape.com> for suggesting
855         some of those changes.
856         
857         * config.guess, config.sub, ltconfig, ltmain.sh:
858         Upgrade to libtool 1.3.4.
859
860 2000-03-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
861
862         * glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
863         even when not needed by GLib. That's actually also the way, the
864         GLib reference manual describes that macro. Therefore I had to
865         remove the lonesome #include <glibconfig.h> in gutils.c, which
866         doesn't seem to be needed there however. This change should make
867         Ben Gertzfield <che@debian.org> happy.
868
869         * gutils.c: Furthermore two warnings in gutils.c were voided,
870         which crept in due to my last change.
871
872         * gutils.c (g_get_current_dir): Allocate only up to 128KB for a
873         pathname. While this is an arbitrary value just like 2048, it
874         seems to be enough (after all, even 4GB is an arbitrary value).
875
876 2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
877
878         * gmain.c (g_main_poll): Warn in case of an error during the call
879         to poll(2). Closes Bug#7564 as reported by David Helder
880         <dhelder@umich.edu>.
881
882         * gutils.c (g_get_current_dir): Make g_get_current_dir work on
883         systems with unlimited pathname length like the HURD (It worked
884         there before, but only for pathes shorter than 2048). Closes
885         Bug#4525 as reported by Marcus Brinkmann
886         <Marcus.Brinkmann@ruhr-uni-bochum.de>.
887
888 2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
889
890         * giounix.c (g_io_unix_write, g_io_unix_read): Interpret EINTR as
891         G_IO_ERROR_AGAIN.
892
893 2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
894
895         * configure.in: Added the missing POSIX_NO_YIELD and
896         POSIX_NO_PRIORITIES warning messages.
897
898         * configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
899         real thread support. On solaris pthread_create can be linked to
900         even in -lc, but it doesn't work then.
901
902         * configure.in: Don't use priorities for threads, when the
903         minimal/maximal priorities couldn't be determined at configure
904         time.
905         
906         * configure.in, gthread.c: Always define GSystemThread in
907         glibconfig.h to represent a system thread.
908
909         * configure.in: Do not use native recursive threads, when
910         possibe. We use some features, that they do not expose (namely the
911         depth counter).
912
913         * glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
914         now implemented in a different way, which should be way
915         faster. Alsothere are now functions g_static_rec_mutex_unlock_full
916         and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
917         completly.
918
919         * gthread.c (g_thread_self): Do not test the system_thread to be
920         non-zero to speed things up.
921         
922         * gthread.c (g_mutex_init): Therefore set the system_thread of the
923         main thread here.
924
925         * tests/thread-test.c: Rerun all tests once again, but this time
926         we fool the system into thinking, that the available thread system
927         is not native, but userprovided.
928         
929 2000-03-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
930
931         * gqueue.c (g_queue_push_tail_link, g_queue_push_head_link): We
932         want the next and prev pointer of the inserted link to be NULL.
933
934 2000-03-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
935
936         * configure.in: Another small change to the pthread_.. search
937         pattern. Should work *now* for AIX.
938
939 2000-03-04  Tor Lillqvist  <tml@iki.fi>
940
941         * gwin32.c (g_win32_error_message): New function that returns the
942         message string for a Win32 error code.
943
944         * glib.h: Declare it.
945
946         * glib.def: Export it, plus g_node_copy.
947
948 2000-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
949
950         * configure.in: Make the search for pthread_attr_... prototypes
951         find names at the start of a line also, like it is on AIX. Thanks
952         to Valdis Kletnieks <Valdis.Kletnieks@vt.edu> for the info.
953
954 Wed Mar  1 10:39:39 2000  Tim Janik  <timj@gtk.org>
955
956         * gslist.c (g_slist_reverse): minor optimization.
957
958         * testglib.c (g_node_test): added a couple of tests for
959         g_node_copy().
960
961         * glib.h:
962         * gnode.c (g_node_copy): new function to copy subtrees,
963         supplied by dbsears@ix.netcom.com.
964         changed iterator to walk the children list backwards, so
965         we get down from O(n^2) to O(n).
966
967         * gnode.c (g_node_first_sibling): applied patch from
968         dbsears@ix.netcom.com to optimize access if node->parent
969         is present.
970
971         * gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
972         assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
973         thus breaks the original code.
974
975         * merged changes from 1.2.7.
976
977 Fri Jan 28 11:37:41 2000  Owen Taylor  <otaylor@redhat.com>
978
979         Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
980
981         * gtimer.c (g_timer_elapsed): Never report negative times -
982         clip times to 0.
983
984         * gmain.c (g_timeout_prepare): Guard against unexpected
985         clock shifts by never setting a timeout of more than
986         data->interval msecs.
987
988 2000-02-27  Tor Lillqvist  <tml@iki.fi>
989
990         * glib.def: Add new functions.
991
992 2000-02-23  Tor Lillqvist  <tml@iki.fi>
993
994         * README.win32: Add a missing step to the setup instructions for
995         gcc-2.95.2. Thanks to Arnaud Charlet.
996
997         * glib.def: Add missing entry point.
998
999 2000-02-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1000
1001         * configure.in: Changed GCC version test to also accept major
1002         versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
1003         pointing this out.
1004
1005 Thu Feb 17 12:53:44 2000  Tim Janik  <timj@gtk.org>
1006
1007         * gstring.c: changed g_str_hash() to a 31 bit version based on
1008         a submission by Karl Nelson and hand optimized ad absurdum by
1009         various people ;)
1010
1011         * gstring.c: applied patch from havoc for new gstring functions,
1012         added some more sanity checks, coding style fixups.
1013
1014 2000-02-13  Havoc Pennington  <hp@pobox.com>
1015
1016         * tests/string-test.c (main): Add tests for the new GString 
1017         features
1018
1019         * testglib.c (main): Add tests for the new GString features
1020
1021         * gstring.c (g_string_insert_len): New function; insert 
1022         a given length of string at a given position. 
1023         (g_string_append): reimplement in terms of g_string_insert_len
1024         (g_string_append_len): new function
1025         (g_string_insert_c): accept -1 for "pos" arg to mean "append"
1026         (g_string_append_c): reimplement in terms of g_string_insert_c
1027         (g_string_prepend): reimplement in terms of g_string_insert_len
1028         (g_string_prepend_len): new function
1029         (g_string_prepend_c): reimplement in terms of g_string_insert_c
1030         (g_string_insert): reimplement in terms of g_string_insert_len
1031
1032         * glib.h: Declare g_string_insert_len, g_string_append_len,
1033         g_string_prepend_len
1034         
1035 Sun Feb 13 08:16:47 2000  Tim Janik  <timj@gtk.org>
1036
1037         * configure.in: wtf??? someone destroyed the configure.in, reverting to
1038         an older version from Feb 4 which apears to still work.
1039
1040 2000-02-07  Tor Lillqvist  <tml@iki.fi>
1041
1042         * gmodule.rc.in gthread.rc.in: Move to corresponding subdirectories.
1043
1044         * Makefile.am
1045         * gmodule/Makefile.am
1046         * gthread/Makefile.am: Change accordingly.
1047         
1048         * makefile.cygwin: Corresponding changes, some cleanup.
1049
1050 2000-02-05  Tor Lillqvist  <tml@iki.fi>
1051
1052         * glib.rc.in gmodule.rc.in gthread.rc.in: New files, for putting
1053         version info in the DLLs on Win32.
1054
1055         * Makefile.am: Generate corresponding *.rc files and distribute
1056         them.
1057
1058         * makefile.cygwin.in: Add rules to automatically bump a "build
1059         number" in the version info in the rc files each time the DLL is
1060         built. But do this only for the person who releases binaries. If
1061         others build the DLLs, the build number is set to zero.
1062
1063 Fri Feb  4 19:36:05 2000  Tim Janik  <timj@gtk.org>
1064
1065         * glib.h: 
1066         * gdataset.c: return stolen data from g_datalist_id_remove_no_notify()
1067         and g_dataset_id_remove_no_notify() to avoid second lookup for common
1068         use.
1069
1070 2000-02-01  Tor Lillqvist  <tml@iki.fi>
1071
1072         * glib.h
1073         * gstrfuncs.c (g_filename_to_utf8, g_filename_from_utf8): New
1074         functions for conversion between UTF-8 and the encoding expected
1075         by C runtime functions like open() and stat(), and returned by
1076         readdir().
1077
1078         Implement them on Win32 where we use the system "ANSI" codepage,
1079         which might be single-byte or double-byte. On Unix, just skip the
1080         issue for now and provide dummy implementations that return a copy
1081         of the argument.
1082
1083         * README.win32
1084         * build-dll
1085         * glib.def: Minor updates.
1086
1087 Wed Jan 26 05:24:38 2000  Tim Janik  <timj@gtk.org>
1088
1089         * glib.h:
1090         * gmain.c: s/current_time/dispatch_time/ for the dispatch() handlers.
1091         refetch the current time after invocation of poll() to cover up for
1092         the time spent in that function call.
1093
1094 Fri Jan 21 10:18:24 2000  Owen Taylor  <otaylor@redhat.com>
1095
1096         * glib.h (G_N_ELEMENTS): Added G_N_ELEMENTS macro to determine
1097         the number of elements in an array.
1098
1099 Sun Jan  9 13:28:36 2000  Tim Janik  <timj@gtk.org>
1100
1101         * gstrfuncs.c (g_strtod): correctly fetch the current locale,
1102         fix from owen.
1103
1104 1999-12-16  Tor Lillqvist  <tml@iki.fi>
1105
1106         * gmodule/gmodule-win32.c: Use FormatMessage to translate system
1107         error codes into textual messages.
1108
1109 1999-11-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1110
1111         * glib.h (G_TRYLOCK): This of course should return TRUE in a
1112         program with a thread-disabled GLib.
1113
1114 1999-11-18  Tor Lillqvist  <tml@iki.fi>
1115
1116         * glib.def: g_strjoin was missing.
1117
1118 1999-11-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1119
1120         * acconfig.h, config.h.win32.in, configure.in: Renamed
1121         GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect
1122         changed meaning.
1123
1124         * configure.in: Cope with systems, that have a pthread_t type,
1125         that is not a pointer. Hint from Karl Nelson
1126         <kenelson@ece.ucdavis.edu>. Define GLIB_SIZEOF_SYSTEM_THREAD to 4
1127         for Solaris. Cope with systems, that have no default mutex
1128         initialize, like obviously most DCE systems.
1129
1130         * glib.h, gthread.c: Changed the prototype of thread_create and
1131         thread_self to return the system thread into provided memory
1132         instead of a return value. This is necessary, as HPUX has a
1133         pthread_t, that is bigger than the biggest integral type there.
1134
1135         * gthread.c: system_thread is no longer a pointer, but an memory
1136         area of size GLIB_SIZEOF_SYSTEM_THREAD. Changed the
1137         zeroinitialization and the tests for zeroness accordingly.
1138
1139 1999-11-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1140
1141         * configure.in: Create docs/glib-config.1 from
1142         docs/glib-config.1.in. Makes 'make distcheck' happy (and me too).
1143
1144         * glib-config.1: Removed from CVS, as it is a generated file.
1145
1146 1999-11-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1147
1148         * configure.in: Make the test for getpwuid_r work on newer AIX
1149         versions, too. Still works on Solaris and Linux. Patch from Craig
1150         Rodrigues <rodrigc@mediaone.net>.
1151
1152 1999-11-08  Tor Lillqvist  <tml@iki.fi>
1153
1154         * gwin32.c (g_win32_getlocale): Look at env vars LC_ALL, LC_CTYPE
1155         and LANG first. Some refinements to the sublanguage logic.
1156
1157 1999-11-04  Tor Lillqvist  <tml@iki.fi>
1158
1159         * makefile.{cygwin,msc}.in: Add gwin32 object. Add rule to make .i
1160         (preprocessed source) files.
1161
1162 1999-11-01  Tor Lillqvist  <tml@iki.fi>
1163
1164         * glib.h
1165         * glib.def: Rename Win32-only functions from gwin_* to g_win32_*
1166         to match the GLib naming conventions.
1167
1168         * gutils.c
1169         * gwin32.c
1170         * testglib.c
1171         * Makefile.am: Move the Win32-only functions to the new
1172         file gwin32.c
1173
1174 1999-10-31  Tor Lillqvist  <tml@iki.fi>
1175
1176         * gutils.c (gwin_getlocale): New Win32-specific function, returns
1177         a Unixish current locale string (en, zh_TW etc).
1178
1179         * glib.h: Declare it.
1180
1181         * glib.def: Export it.
1182
1183         * testglib.c: Test it.
1184
1185         * gmessages.c (Win32: ensure_stdout_valid): Some improvements,
1186         make sure we don't call AllocConsole several times, which I think
1187         has happened.
1188
1189 Sun Oct 31 18:55:01 1999  ape@spacetec.no  (Asbjorn Pettersen)
1190
1191         * gcache.c (g_cache_remove): Test if node is NULL.
1192         If not tested, GIMP's script-fu will crash. 
1193
1194 Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
1195
1196         * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
1197         destroy() notification here as well.
1198
1199 1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1200
1201         * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
1202         is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
1203
1204 Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
1205
1206         * glib.h: removed useless g_string(x) macro that cluttered the namespace
1207         and was just a poor wrapper around the cpp '#' symbol, use #x if you
1208         need to work around this.
1209         added new macro G_STRINGIFY(arg) that will convert arg to a string,
1210         no matter whether it contains macros or not.
1211
1212 1999-10-12  Tor Lillqvist  <tml@iki.fi>
1213
1214         * config.h.win32.in: Define the new GLIB_SIZEOF_* constants here,
1215         too.
1216
1217         * glib.h: Small Win32 comments improvement.
1218
1219 Tue Oct 12 12:16:12 1999  Tim Janik  <timj@gtk.org>
1220
1221         * gmessages.c (g_printf_string_upper_bound): completly new implementation
1222         for printf string upper bounds calculation.
1223         we handle all glibc 2.1 format specifiers now, except for positional
1224         parameters (%nn$...) and wide char strings, plus some obscure upper
1225         case variants of the standard conversions. this fixes a lot of
1226         bugs in the old code, i.e.
1227         - NULL format strings
1228         - floats with exponents >+24
1229         - %G
1230         - precision specifications in general
1231         - negative field widths
1232         - %p for SIZEOF_VOID_P > 4 platforms
1233         we now issue warnigns in places where the old code would have
1234         caused buffer overruns anyways. warnings are suppressed when invoked
1235         from glogv(), to avoid infinite recursions if someone passes a log
1236         message that comes with really obscure format specifications.
1237
1238 Tue Oct 12 11:49:00 1999  Tim Janik  <timj@gtk.org>
1239
1240         * gstrfuncs.c: nuked old g_printf_string_upper_bound() version.
1241
1242 Tue Oct 12 03:34:40 1999  Tim Janik  <timj@gtk.org>
1243
1244         * glib.h: added GFloatIEEE754 and GDoubleIEEE754 unions to access sign,
1245         mantissa and exponent of IEEE floats and doubles (required by the new
1246         version of g_printf_string_upper_bound). the unions are endian specific,
1247         we handle G_LITTLE_ENDIAN and G_BIG_ENDIAN as of currently. ieee floats
1248         and doubles are supported (used for storage) by at least intel, ppc and
1249         sparc, reference:
1250         http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html
1251         
1252 Mon Oct 11 18:01:49 1999  Tim Janik  <timj@gtk.org>
1253
1254         * configure.in: added additional checks to figure sizes of size_t,
1255         ptrdiff_t and intmax_t (required by g_printf_string_upper_bound).
1256
1257 Wed Oct  6 12:44:23 PDT 1999 Manish Singh <yosh@gimp.org>
1258
1259         * configure.in: blah. use G_WITH_CYGWIN instead of G_HAVE_CYGWIN
1260
1261 1999-10-05  Tor Lillqvist  <tml@iki.fi>
1262
1263         * glib.h: (Win32) Drop the mapping of POSIX function names to the
1264         underscored versions, it's unnecessary after all. With MSVC we get
1265         them from oldnames.lib, with gcc-2.95 and mingw32 from
1266         -lmoldname-msvc. Add comment about what headers to include for
1267         prototypes.
1268
1269         * glibconfig.h.win32.in: Don't define WIN32 and NATIVE_WIN32.
1270
1271         * gerror.c (g_on_error_query): (Win32) Slightly increased verbosity.
1272
1273         * build-dll: Don't strip.
1274
1275         * tests/string-test.c tests/dirname-test.c: Use G_OS_WIN32.
1276
1277         * glib.def: Add g_thread_use_default_impl.
1278
1279 Sun Oct  3 19:46:55 PDT 1999 Manish Singh <yosh@gimp.org>
1280
1281         * configure.in: use G_HAVE_CYGWIN instead of G_OS_FEATURE_CYGWIN
1282
1283 Sun Oct  3 19:25:42 PDT 1999 Manish Singh <yosh@gimp.org>
1284
1285         * acconfig.h
1286         * configure.in
1287         * glibconfig.h.win32: G_OS_FOO #defines. I *think* I got the cygwin
1288         and beos stuff right, but I haven't tested it. The respective
1289         porters should fix any screwups
1290
1291         * glib.h
1292         * gerror.c
1293         * gmain.c
1294         * gmessages.c
1295         * gscanner.c
1296         * gthread.c
1297         * gtimer.c
1298         * gutils.c
1299         * testglib.c: use G_OS stuff
1300
1301 Wed Sep 22 01:53:18 1999  Tim Janik  <timj@gtk.org>
1302
1303         * glib.h (NULL): define NULL as (0L) if __cplusplus is defined, to
1304         avoid "ANSI C++ forbids implicit conversion from `void *' in argument
1305         passing" errors upon NULL usage in C++ programs (gcc-2.95 is on crack
1306         for erroring out on this, instead of just issueing a warning).
1307
1308         * glib.h (g_trash_stack_pop): use uncasted NULL again.
1309         
1310 Fri Sep 17 10:24:45 1999  Tim Janik  <timj@gtk.org>
1311
1312         * gmem.c (g_mem_chunk_compute_size) (g_mem_chunk_new): applied patch
1313         from Soeren Sandmann <sandmann@daimi.au.dk>, to force mem chunk's area
1314         sizes to be a multitiple of atom_size, and to eliminate the MAX_MEM_AREA
1315         restriction of 65536 bytes. we also catch cases where users pass an area
1316         size < atom size with a return_if_fail statement now (which is ok,
1317         because previously this lead to memory corruption anyways).
1318
1319 Thu Sep 16 13:19:54 1999  Tim Janik  <timj@gtk.org>
1320
1321         * glib.h (g_trash_stack_pop): add explicit (GTrashStack*) cast for NULL
1322         pointer to cure ANSI C++ error.
1323
1324 Mon Sep 13 23:25:59 1999  Tim Janik  <timj@gtk.org>
1325
1326         * gmessages.c (g_logv): in case we have to abort the program,
1327         debugging is enabled and we are not called recursively, try
1328         to abort with raise (SIGTRAP) first, so developers may ignore
1329         certain failure conditions during debugging stage.
1330
1331 Thu Aug 26 15:09:36 1999  Tim Janik  <timj@gtk.org>
1332
1333         * Makefile.am:
1334         * gmodule/Makefile.am:
1335         * gthread/Makefile.am: added --export-dynamic so we can load dynmic
1336         modules, (required, according to the libtool 1.3.3 docu).
1337
1338 1999-07-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1339
1340         * grand.c (g_rand_new): Use /dev/urandom, as it doesn't block,
1341         which /dev/random might do. Do not XOR the time, when getting the
1342         seed form /dev/urandom, as this is good itself. Prevent the
1343         initial seed from being zero, which causes the PRNG to produce
1344         only zeros. Hints from Colin Plumb <colin@pgp.com>.
1345
1346 1999-08-17  Tor Lillqvist  <tml@iki.fi>
1347
1348         * glib.h (g_trash_stack_push): Add a cast.
1349
1350         * gslist.c
1351         * glist.c: Make the inline functions static inline, and add
1352         separate extern wrappers. Not all compilers produce callable entry
1353         points for inline functions, even if gcc does.
1354
1355 Sun Aug 15 02:47:14 1999  Tim Janik  <timj@gtk.org>
1356
1357         * glib.h (g_trash_stack_pop): eliminate memset() call, since string.h
1358         has not neccessarily been included prior to glib.h.
1359
1360 Mon Aug  2 21:03:10 1999  Tim Janik  <timj@gtk.org>
1361
1362         * configure.in: added --enable-msg-prefix option.
1363
1364         * gmessages.c (g_log_default_handler): feature "prg_name (pid:%u): "
1365         if --enable-msg-prefix was selected (use "(process:%u): " if
1366         g_get_prgname () returns NULL, along the lines of g_on_error_query).
1367
1368 1999-08-03  Tor Lillqvist  <tml@iki.fi>
1369
1370         * glib.h
1371         * gstrfuncs.c
1372         * tests/strfunc-test.c: Rename g_strccpy to g_strcompress and
1373         g_strecpy to g_strescape per Tim Janik's suggestion. Dropped the
1374         destination parameter, always g_malloc a new string.  Fix bug in
1375         g_strcompress, octal digits were gobbled up without limit, should
1376         use max three.
1377
1378         Sources that use g_strescape must have ifdefs to be compilable
1379         both with GLib 1.2 and 1.3.
1380
1381 Sat Jul 31 17:52:03 PDT 1999 Manish Singh <yosh@gimp.org>
1382
1383         * glib.h
1384         * gstrfuncs.c: the #define for g_strescape interfered with the
1385         compilation of the function, so just remove the function and
1386         note that it's deprecated in the header
1387
1388 1999-08-01  Tor Lillqvist  <tml@iki.fi>
1389
1390         * gstrfuncs.c (g_strccpy, g_strecpy): New functions.
1391
1392         * glib.h: Declare and document them. Define the deprecated
1393         g_strescape as a macro that calls g_strecpy.
1394
1395         * tests/strfunc-test.c (main): Test them.
1396
1397         * makefile.{cygwin,msc}.in
1398         * tests/makefile.{cygwin,msc}.in: Remove gstack and its test
1399         program.
1400
1401         * glib.def: Additions and removals.
1402
1403         * README.win32: Improve gcc build instructions.
1404
1405         * build-dll: Also build import library for MSVC.
1406
1407 Sat Jul 24 20:11:35 1999  Tim Janik  <timj@gtk.org>
1408
1409         * merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
1410         * incorporated proposed cleanups from gtk-devel-list.
1411
1412         * bumped version number to GLib-1.3.1
1413
1414         * glib.h:
1415         * gqueue.c:
1416         * gstring.c:
1417         * glist.c:
1418         removed string tokenisation (we got g_strsplit() and g_strjoin()
1419         already) and readline functions.
1420         s/g_list_delete/g_list_delete_link.
1421         implemented g_slist_delete_link.
1422         removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
1423         macro, g_atexit() is provided for public consumption.
1424         added GTrashStack inline utility functions.
1425         reimplement double eneded queues.
1426         removed GStack implementation, people can use a queue or a (singly)
1427         linked list for this task.
1428         deprecated g_strescape(), we need the SunOS variants here.
1429
1430         * gdate.c: added DEBUG_MSG() macro to wrap old messages.
1431         
1432         * *.*: CVS merges.
1433
1434         * upgrade to libtool 1.3.3.
1435
1436 1999-07-21  Tor Lillqvist  <tml@iki.fi>
1437
1438         Win32: With the latest gcc (2.95, pre-release), we can have binary
1439         compatibility with MSVC by using the switch -fnative-struct. No
1440         longer build DLLs with .gcc in the name when using gcc.
1441
1442         * README.win32: Renew gcc build instructions.
1443
1444         * build-dll: Comments change, handle also .a files.
1445
1446         * makefile.cygwin.in
1447         * tests/makefile.cygwin.in: Remove .gcc from DLL name.
1448         
1449 1999-07-13  Tor Lillqvist  <tml@iki.fi>
1450
1451         * README.win32: Correct URL for mingw runtime sources.
1452
1453         * build-dll: Combine commands with &&.
1454
1455         * glib.h: Map also rmdir() and hypot() for MSVCRT library.
1456
1457         * makefile.cygwin.in
1458         * tests/makefile.cygwin.in: New DLL naming style. GCC-compiled DLLs are
1459         now called *.gcc.dll, to avoid binary incompatibilities with
1460         MSVC-compiled versions.
1461
1462         * makefile.msc.in: Cosmetics.
1463
1464 1999-07-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1465
1466         * configure.in: Test for pthread_join rather than for
1467         pthread_create to determine the right thread-lib. Makes it work on
1468         mips-sgi-irix6.5. Hitn from to Jari Vuoksenranta
1469         <javu@piano.ux.phys.jyu.fi>.
1470
1471 1999-07-02  Tor Lillqvist  <tml@iki.fi>
1472
1473         * README.win32: Note about need to fix another bug in the mingw32
1474         headers.
1475
1476         * makefile.msc.in: Debugging turned on via an nmake variable,
1477         no need to edit the makefile.
1478
1479 1999-07-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1480
1481         * configure.in, acconfig.h, gutils.c: Added a g_memmove
1482         replacement for platforms without memmove, where bcopy can't
1483         handle overlapping copies and the corresponding checks, which is
1484         taken form the PERL Configure routine.
1485
1486         * glib.h: Updated the commentary about g_memmove to be right and
1487         more GLib-like.
1488         
1489         * configure.in: Removed test for rand_r, as it isn't used anymore.
1490
1491 1999-06-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1492
1493         * glib.h, grand.c: Finally removed the g_random_normal and
1494         g_rand_normal functions.
1495
1496 1999-06-28  Tor Lillqvist  <tml@iki.fi>
1497
1498         * glib.def: Add missing export of g_strncasecmp.
1499
1500 1999-06-21  Jose Mercado  <jmercado@mit.edu>
1501
1502         * glib.spec.in: Changed version number (1.1->1.3) in files section
1503         to allow rpm to build packages again.
1504
1505 1999-06-21  Tor Lillqvist  <tml@iki.fi>
1506
1507         * README.win32: Update the pthreads snapshot version we want.
1508         Advice how to hand-expand the makefile.*.in files.
1509
1510         * config.h.win32.in: Define values needed by Sebastian Wilhelmi's
1511         new thread stuff.
1512
1513         * glib.def: Add new functions.
1514
1515         * glibconfig.h.win32.in: Update the pthreads snapshot version.
1516         Fix typo.
1517
1518         * gthread.c: Include config.h, guard inclusion of unistd.h.  When
1519         using gcc on Win32, g_thread_functions_for_glib_use must be marked
1520         for export here, too.
1521
1522         * gtimer.c: Implement g_usleep on native Win32 using Sleep (which
1523         only has millisecond granularity, though).
1524         
1525         * makefile.cygwin.in
1526         * makefile.msc.in: Update pthreads snapshot version. File
1527         name changes. Remove testgthread.
1528
1529         * tests/makefile.cygwin.in
1530         * tests/makefile.msc.in: Add thread-test. Link with gthread lib.
1531
1532 1999-06-18  Jeff Garzik  <jgarzik@pobox.com>
1533
1534         * tests/Makefile.am:  Re-order tests in alpha order.
1535
1536 1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1537
1538         * configure.in: Changed test for pthread_attr_setstacksize from
1539         AC_TRY_COMPILE to AC_TRY_LINK.
1540
1541 1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1542
1543         * configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
1544         Completed the thread support in GLib. Thread creation,
1545         prioritizing threads, yielding, joining threads as well as
1546         reader/writer locks and recursive mutexes are now in place. Please
1547         test heavily on your platform. It is so far tested on
1548         Linux/i386/pthreads, Solaris/Sparc/pthreads and
1549         Solaris/Sparc/solaristhreads.
1550
1551         * gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
1552         thread safe sleeping. (sleep() is not MT-safe at all!)
1553
1554         * gutils.c: Avoid compiler warning.
1555
1556         * tests/Makefile.am, tests/thread-test.c: New program to test some
1557         aspects of the thread implementation.
1558
1559         * gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
1560         change of content.
1561
1562         * configure.in: Purged all appearances of nspr. 
1563
1564 Wed Jun  2 11:42:46 PDT 1999 Manish Singh <yosh@gimp.org>
1565
1566         * acinclude.m4
1567         * config.guess
1568         * config.status
1569         * ltconfig
1570         * ltmain.sh: upgrade to libtool 1.3.2 (BeOS changes merged)
1571
1572 1999-05-29  Tor Lillqvist  <tml@iki.fi>
1573
1574         * gstrfuncs.c (g_strescape): Backslashify also '"' characters.
1575
1576         * glib.h: Document g_strescape.
1577
1578 1999-05-12  Tor Lillqvist  <tml@iki.fi>
1579
1580         * glib.h (Win32): Map fileno to _fileno for mingw32. Map fstat to
1581         _fstat.
1582
1583         * README.win32: Advice also to remove -lmoldname in the
1584         patch to the egcs-1.1.2 spec file.
1585
1586 Wed May 12 00:23:55 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
1587
1588         * gmodule/Makefile.am: Another small fix.
1589
1590 1999-05-08  Tor Lillqvist  <tml@iki.fi>
1591
1592         * Makefile.am tests/Makefile.am: Correct rules for making the
1593         win32-related files that are made from corresponding .in files.
1594         Is there a cleaner way than explicitly writing rules that invoke
1595         config.status?
1596
1597 Fri Jul 16 22:18:36 PDT 1999 Manish Singh <yosh@gimp.org>
1598
1599         * ltconfig
1600         * ltmain.sh: upgrade to libtool 1.3.3
1601
1602 1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1603
1604         * gdate.c, gstrfuncs.c, gstring.c: Fixed the use of the
1605         is..... and to..... macros, which take unsigned chars, not chars!
1606         Thanks to Morten Welinder <terra@diku.dk> for pointing this out.
1607
1608 Thu Jun  3 16:30:31 PDT 1999 Manish Singh <yosh@gimp.org>
1609
1610         * gerror.c (g_on_error_query): check isatty() before querying so
1611         we don't loop endlessly
1612
1613 Sat May 29 11:16:29 PDT 1999 Manish Singh <yosh@gimp.org>
1614
1615         * acinclude.m4
1616         * config.guess
1617         * config.status
1618         * ltconfig
1619         * ltmain.sh: upgrade to libtool 1.3.2
1620
1621 1999-05-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1622
1623         * gmain.c: provide a poll prototype for SunOS, as they do not do
1624         it self. Hint from Christian Parg <cparg@fs-design.de>.
1625
1626 Tue May 25 12:23:07 1999  Owen Taylor  <otaylor@redhat.com>
1627
1628         * gstrfuncs.c (g_strchug): Use g_memmove() not memmove().
1629         (Reported by Charles Levert <charles@comm.polymtl.ca>)
1630
1631 Mon May 10 22:03:52 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
1632
1633         * Released GLib 1.2.3
1634
1635 1999-05-08  Tor Lillqvist  <tml@iki.fi>
1636
1637         * Makefile.am tests/Makefile.am: Correct rules for making the
1638         win32-related files that are made from corresponding .in files.
1639         Is there a cleaner way than explicitly writing rules that invoke
1640         config.status?
1641         
1642 Sat May  1 10:18:01 PDT 1999 Manish Singh <yosh@gimp.org>
1643
1644         * acinclude.m4
1645         * config.guess
1646         * config.status
1647         * ltconfig
1648         * ltmain.sh: upgrade to libtool 1.3
1649
1650 1999-04-30  Tor Lillqvist  <tml@iki.fi>
1651
1652         * Makefile.am: Don't distribute glibconfig.h.win32.in, but
1653         glibconfig.h.win32. Generate it when making a dist. Also generate
1654         makefile.msc and config.h.win32 from corresponding .in files when
1655         making dist.
1656
1657         * configure.in: Also substitute @GLIB_INTERFACE_AGE@ and
1658         @GLIB_BINARY_AGE@ (needed in config.h.win32).
1659         
1660         * glibconfig.h.win32.in: Use static mutex structure and initial
1661         value corresponding to the 1999-04-07 snapshot of pthreads-win32.
1662
1663         * tests/Makefile.am: Distribute makefile.msc. Generate it when
1664         making dist.
1665
1666         * tests/makefile.msc.in: New file.
1667
1668         * tests/node-test.c: Include <stdlib.h> for exit().
1669
1670 Thu Apr 29 02:16:36 1999  Tim Janik  <timj@gtk.org>
1671
1672         * gstrfuncs.c: minor code cleanups.
1673
1674 Tue Apr 27 13:11:29 1999  Owen Taylor  <otaylor@redhat.com>
1675
1676         * gmain.c (g_main_poll): Mask out ERR HUP and NVAL from
1677         the events field so we don't give IRIX fits.
1678
1679 Tue Apr 20 08:42:22 1999  Tim Janik  <timj@gtk.org>
1680
1681         * gscanner.c (g_scanner_unexp_token): behave conservative with
1682         G_TOKEN_IDENTIFIER_NULL and always assume scanner->value.v_string
1683         to be "null" in that case.
1684
1685 1999-04-20  Havoc Pennington  <hp@pobox.com>
1686
1687         * gutils.c (g_vsnprintf):  When using the vsnprintf()
1688         implementation, '\0'-terminate the resulting string
1689         and return its length rather than -1.
1690
1691 Mon Apr 19 13:42:21 1999  Owen Taylor  <otaylor@redhat.com>
1692
1693         * gmain.c (g_main_iterate): Added missing
1694         #ifdef G_THREADS_ENABLED. (I never liked G_THREADS_ENABLED in
1695         the first place!)
1696
1697 1999-04-18  Havoc Pennington  <hp@pobox.com>
1698
1699         * gutils.c (g_snprintf): When using the vsnprintf()
1700         implementation, '\0'-terminate the resulting string
1701         and return its length rather than -1.
1702
1703 Fri Apr 16 06:52:07 1999  Tim Janik  <timj@gtk.org>
1704
1705         * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid
1706         expected token as well, so we get "- expected end of file" instead of
1707         "- expected (unknown) token <0>".
1708
1709 Tue Apr 13 16:16:14 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
1710
1711         * Released GLib 1.2.2
1712
1713 1999-04-12  Elliot Lee  <sopwith@mh69.mh.cuc.edu>
1714
1715         * g_strchug(): s/strcpy/memmove/
1716
1717 1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1718
1719         * configure.in: Adjusted the test for an unimplemented
1720         getpwuid_r. Info from Michael Pruett <mikep@ugcs.caltech.edu>.
1721
1722 Sun Apr 11 15:07:34 1999  Tim Janik  <timj@gtk.org>
1723
1724         * configure.in: bumped versin number to GLib 1.2.2, interface 2,
1725         binary 2.
1726         
1727         * NEWS: updates.
1728
1729 Sun Apr 11 14:37:06 1999  Tim Janik  <timj@gtk.org>
1730
1731         * gstrfuncs.c (g_strcasecmp): always check for s1, s2 != NULL.
1732
1733 Sat Apr 10 19:30:50 1999  Tim Janik  <timj@gtk.org>
1734
1735         * glib.h: removed braces around inline strings for the G_GNUC_FUNCTION
1736         and G_GNUC_PRETTY_FUNCTION macros, so the macros can be used for compile
1737         time string concatenation.
1738
1739 Thu Apr  8 19:53:19 1999  Owen Taylor  <otaylor@redhat.com>
1740
1741         * gmain.c (g_main_iterate): Check for two threads
1742         calling g_main_iterate at once.
1743
1744         * gmain.c: If the set of poll file descriptors changes
1745         during a call to poll(), abort that call, and start
1746         a new poll. My test program still segfaults
1747         obscurely on glibc 2.0 (in read()!!!), but now it works on
1748         glibc 2.1, so I'll blame something else for the other segfault.
1749
1750 1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1751
1752         * configure.in: Fixed slight bug, that made configure hang on some
1753         systems. Please do not merge this into 1.3 branch. It's taken care
1754         of differently there. Info from J. Rhett Aultman
1755         <cuplan@alley.gator.net>
1756         
1757 Wed Mar 24 21:23:47 CST 1999 Shawn T. Amundson <amundson@gtk.org>
1758
1759         * Released GLib 1.2.1
1760
1761         * README:
1762           INSTALL: 
1763           NEWS: 
1764           sanity_check: updated
1765
1766         * glibconfig.h.win32.in:
1767           Makefile.am:
1768           docs/glib-config.1.in:
1769           docs/Makefile.am: Added files used to generate new files.
1770
1771         * glibconfig.h.win32:
1772           docs/glib-config.1: Removed, now generated.
1773
1774         * configure.in: Added to output now-generated files.
1775         
1776 Tue Mar 23 13:43:39 PST 1999 Manish Singh <yosh@gimp.org>
1777
1778         * giounix.c: add user_data param to check and prepare functions
1779
1780 Mon Mar 22 03:54:43 1999  Tim Janik  <timj@gtk.org>
1781
1782         * glib.h:
1783         * gmain.c: add user_data to the GSource ->check and ->prepare functions,
1784         so it can be used to e.g. pass a GPollFd.
1785         (g_main_poll): only add poll records with an events mask != 0 to the
1786         fd_array. don't even bother calling poll_func() if fds=timeout=0.
1787         added debugging printouts around poll_func() invokation that can be
1788         enabled with #define G_MAIN_POLL_DEBUG.
1789
1790 Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
1791
1792         * acinclude.m4
1793         * config.guess
1794         * config.sub
1795         * ltconfig
1796         * ltmain.sh: upgrade to libtool 1.2f
1797
1798         * autogen.sh: libtool is not required to autogen glib
1799
1800         * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
1801         needed)
1802
1803 1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1804
1805         * gmem.c: Fixed another stupid fault of mine: Did
1806         s/g_static_/g_private_/g
1807
1808 Wed Mar 17 03:17:42 1999  Tim Janik  <timj@gtk.org>
1809         
1810         * configure.in bumped versin number to GLib 1.2.1, interface 1,
1811         binary 1.
1812         
1813         * NEWS: updates.
1814
1815         * glib.h: added GLIB_CHECK_VERSION() macro similar to
1816         GTK_CHECK_VERSION().
1817
1818 Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
1819
1820         * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
1821         to g_return_if_fail().
1822         (g_mem_profile): 
1823         (g_mem_chunk_print): 
1824         (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
1825         messages.
1826
1827         * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
1828         to g_return_if_fail().
1829         * grel.c (g_*): changed a bunch of g_assert() statements to
1830         g_return_if_fail() and added some extra ones to check relation != NULL.
1831
1832 1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1833
1834         * configure.in: Also accept _Pctime_r instead of ctime_r, while
1835         seraching for the right `_REENTRANT' flag. This is for Digital
1836         UNIX 4.0d. Thanks to Sascha Brawer <sb@adasys.ch>.
1837
1838 Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
1839
1840         * configure.in: check for working realloc (NULL,).
1841         * gmem.c (g_realloc): use malloc() for initial allocation on systems
1842         where realloc(NULL,) will not work (this is the case on SunOS, reported
1843         by Tom Geiger).
1844
1845 Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
1846
1847         * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
1848         flag around the call to g_hook_free() to avoid spurious
1849         warnings (happens during destruction phase).
1850
1851 1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1852
1853         * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
1854         from config.h.win32 to glibconfig.h.win32
1855
1856         * acconfig.h, configure.in, config.h.win32: Added test for DCE
1857         versions of mutex_trylock and cond_timedwait. The win32 versions
1858         are posix, aren't they?
1859
1860 1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1861
1862         * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
1863         Friedrich Dominicus <Friedrich.Dominicus@inka.de>
1864
1865 1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1866
1867         * gutils.c (g_get_any_init): Fixed yet another bloody
1868         implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
1869         <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
1870         test better than that, but have no idea, how to do that easily.
1871
1872 Sun Feb 21 22:11:51 CST 1999  Shawn T. Amundson <amundson@gtk.org>
1873
1874         * Released GLib 1.2.0
1875
1876         * AUTHORS: updated
1877
1878 Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>
1879
1880         * *.[ch]: inserted additional note to look for ChangeLog and
1881           AUTHORS file for a log of modifications.
1882
1883 Sun Feb 21 14:01:00 1999  Dr Mike <drmike@redhat.com>
1884
1885         * Made specfile generated, tweaked slightly
1886         
1887 Sat May  8 06:00:17 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
1888
1889         * configure.in
1890           gmodule/Makefile.am
1891           gthread/Makefile.am: Better testing reveals better
1892           methods.  Fixes for BeOS.
1893
1894 Sat May  8 01:52:29 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
1895
1896         * configure.in
1897           gerror.c
1898           gmain.c
1899           gstrfuncs.c
1900           gutils.c
1901           ltconfig
1902           ltmain.sh
1903           gmodule/Makefile.am
1904           gmodule/gmodule.c
1905           gmodule/gmoduleconf.h.in
1906           gmodule/gmodule-beos.c
1907           gthread/Makefile.am: Port to BeOS by myself and Richard Offer.
1908
1909 1999-05-06  Tor Lillqvist  <tml@iki.fi>
1910
1911         * makefile.msc.in makefile.cygwin.in glibconfig.h.win32.in
1912         config.h.win32.in tests/makefile.msc.in tests/makefile.cygwin.in:
1913         New files, used to generate corresponding non-.in files when
1914         making a dist. This is just so the version numbers will be kept in
1915         synch automatically.
1916
1917         * configure.in: Also substitute @GLIB_MAJOR_VERSION@,
1918         @GLIB_MINOR_VERSION@, and @GLIB_INTERFACE_AGE@.
1919         
1920         * Makefile.am tests/Makefile.am: Also distribute makefile.cygwin.
1921         
1922         * gerror.c (g_on_error_query): On Win32, put up a MessageBox and
1923         then exit.
1924
1925         * glib.def: Add a couple of functions.
1926         
1927 Sat May  1 10:26:20 PDT 1999 Manish Singh <yosh@gimp.org>
1928
1929         * acinclude.m4
1930         * config.guess
1931         * config.status
1932         * ltconfig
1933         * ltmain.sh: upgrade to libtool 1.3
1934
1935 1999-04-25  Tor Lillqvist  <tml@iki.fi>
1936
1937         * README.win32: More editing.
1938         * build-dll: Use gcc, not ld to link.
1939         * glib.h: On native Win32 use _unlink().
1940         * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
1941         not _MSC_VER.
1942         * gstring.c: Include <io.h> on Win32 for _read prototype.
1943         * gutils.c: Remove old IO channel code (was in #if 0).
1944         * makefile.cygwin: Don't need to link with kernel32 and msvcrt
1945         explicitly, they are included anyway.
1946
1947 1999-04-24  Tor Lillqvist  <tml@iki.fi>
1948
1949         Support added for building using a GNU toolchain on Win32,
1950         i.e. gcc -mno-cygwin on cygwin (a.k.a. mingw32, using egcs-1.1.2).
1951
1952         * README.win32: Updated.
1953         * build-dll makefile.cygwin tests/makefile.cygwin: New files.
1954         * glib.h glib.def glibconfig.h.win32: Slight updates. 
1955         * gmain.c: No need to include <fcntl.h> and <io.h> on Win32.
1956         * gmain.c gutils.c testglib.c tests/string-test.c: Test for
1957         NATIVE_WIN32, not _MSC_VER.
1958         * gmutex.c: Must declare g_thread_functions_for_glib_use as
1959         exported (using the GUTILS_C_VAR macro).
1960         * gutils.c gmodule/libgplugin_[ab].c: LibMain not needed.
1961         * gmodule/gmoduleconf.h.win32: Need underscore with gcc.
1962         * gthread/gthread.c: With gcc on Win32, must use memcpy to assign
1963         value of g_thread_functions_for_glib_use (?).
1964         * makefile.msc tests/makefile.msc: Cosmetics.
1965
1966 Fri Apr 23 14:29:25 BST 1999  Tony Gale <gale@gtk.org>
1967
1968         * glib.h: Fix typo in g_string_ncasecmp macro (by me).
1969           Add b_string_strncasecmp macro.
1970
1971 1999-04-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1972
1973         * gutils.c (g_get_any_init): use sysconf (_SC_GETPW_R_SIZE_MAX) as
1974         the new initinal bufsize for getpwuid_r on systems, that support
1975         this. Hint from Holger Duerer <H.Duerer@zait.uni-bremen.de>.
1976
1977 Sat Apr 17 20:55:13 BST 1999  Tony Gale <gale@gtk.org>
1978
1979         * glib.h, gstring.c: Add new g_string functions for reading
1980           from file/socket descriptors, and tokenising strings.
1981
1982           Added various g_string macros.
1983
1984 Tue Apr 13 23:28:32 1999  Tor Lillqvist  <tml@iki.fi>
1985
1986         * README.win32: Mention the tests directory.
1987
1988         * glib.def: Add the functions from grand.c.
1989
1990         * glibconfig.h.win32: Add unsigned max values, and the format
1991         strings.
1992
1993         * makefile.msc: Add grand.
1994
1995         * tests/{date-test,node-test}.c: Include <stdlib.h> for exit().
1996
1997         * tests/makefile.msc: New file.
1998
1999 1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2000
2001         * glib.h: Moved struct declaration up. Style fixes.
2002
2003         * grand.c: Style fixes. Only try to open /dev/random once.
2004
2005         * tests/rand-test.c (main): New tests; Slight bug fix. 
2006
2007 1999-04-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2008
2009         * grand.c, tests/rand-test.c: New files to implement the Mersenne
2010         Twister Pseudo Random Number Generator.
2011
2012         * glib.h, AUTHORS, Makefile.am, tests/Makefile.am: Changed
2013         accordingly.
2014
2015 Thu Apr  8 21:12:30 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
2016
2017         * Released GLib 1.3.0
2018
2019 1999-03-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2020
2021         * configure.in: Added a check for the right format to printf and
2022         scanf long longs. It is %qi instead of %lli on FreeBSD for
2023         whatever reason.
2024
2025 1999-03-28  Raja R Harinath  <harinath@cs.umn.edu>
2026
2027         * Makefile.am (glibconfig.h): Make sure `glibconfig.h' exists
2028         after the rule is fired.
2029         (install-exec-local): Install glibconfig.h only if the contents
2030         are different from the currently installed glibconfig.h.
2031
2032 1999-03-26  Raja R Harinath  <harinath@cs.umn.edu>
2033
2034         * Makefile.am (configexecincludedir): Rename from 
2035         configincludedir so that glibconfig.h will be installed 
2036         as part of `make install-exec'. 
2037
2038 Thu Mar 25 22:45:47 1999  Tor Lillqvist  <tml@iki.fi>
2039
2040         * config.h.win32: Update version numbers.
2041
2042         * glibconfig.h.win32: Update version numbers and pthreads-win32-
2043         related magic values.
2044
2045         * README.win32: Some improvements.
2046
2047         * makefile.msc: Add gqueue and gstack. Correct version number.
2048
2049 Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
2050
2051         * acinclude.m4
2052         * config.guess
2053         * config.sub
2054         * ltconfig
2055         * ltmain.sh: upgrade to libtool 1.2f
2056
2057         * autogen.sh: libtool is not required to autogen glib
2058
2059         * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
2060         needed)
2061
2062 1999-03-18  Jeff Garzik  <jgarzik@pobox.com>
2063
2064         * glib.def: Add new g_list, g_stack, g_queue functions.
2065
2066 1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2067
2068         * configure.in: added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
2069         to hold various defines to get the right thread implementation on
2070         different platforms. Also look in -ldce for pthread_create. Should
2071         make it work on HP-UX 10.x. Information from "D. Emilio Grimaldo
2072         Tunon" <emilio_tunon@nl.compuware.com>.
2073
2074 1999-03-17  Jeff Garzik  <jgarzik@pobox.com>
2075
2076         * gstack.c, gqueue.c:
2077         Add copyright, clean up code a bit.
2078
2079 1999-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2080
2081         * configure.in: Added missing values for G_MAXU(SHORT|INT|LONG) on
2082         platforms with only /usr/include/values.h.
2083
2084         * acconfig.h: Removed unnecessary macros.
2085
2086         * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
2087         from config.h.win32 to glibconfig.h.win32. Taken from glib 1.2
2088         branch.
2089
2090         * configure.in: Also accept _Pctime_r instead of ctime_r, while
2091         seraching for the right `_REENTRANT' flag. This is for Digital
2092         UNIX 4.0d. Taken from glib 1.2 branch.
2093
2094 Wed Mar 17 03:14:56 1999  Tim Janik  <timj@gtk.org>
2095
2096         * glib.h: added GLIB_CHECK_VERSION() macro similar to
2097         GTK_CHECK_VERSION().
2098
2099 Wed Mar 17 01:46:28 1999  Tim Janik  <timj@gtk.org>
2100
2101         * merges from glib-1-2:
2102         
2103 Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
2104
2105         * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
2106         to g_return_if_fail().
2107         (g_mem_profile):
2108         (g_mem_chunk_print):
2109         (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
2110         messages.
2111
2112         * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
2113         to g_return_if_fail().
2114         * grel.c (g_*): changed a bunch of g_assert() statements to
2115         g_return_if_fail() and added some extra ones to check relation != NULL.
2116
2117 Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
2118
2119         * configure.in: check for working realloc (NULL,).
2120         * gmem.c (g_realloc): use malloc() for initial allocation on systems
2121         where realloc(NULL,) will not work (this is the case on SunOS, reported
2122         by Tom Geiger).
2123
2124 Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
2125
2126         * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
2127         flag around the call to g_hook_free() to avoid spurious
2128         warnings (happens during destruction phase).
2129
2130 1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2131
2132         * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
2133         Friedrich Dominicus <Friedrich.Dominicus@inka.de>
2134
2135 1999-03-16  Timur Bakeyev  <mc@bat.ru>
2136
2137         * configure.in: Fix problem with pthread_create in libc, as running
2138         "gcc test.c -l " is not legal.
2139
2140 1999-03-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2141
2142         * tests/type-test.c: Added a test for the
2143         G_(U)?INT(16|32|64)_FORMAT and G_(MIN|MAX|MAXU)(SHORT|INT|LONG)
2144         macros.
2145
2146         * configure.in: Removed G_(U)?INT8_FORMAT again, as it can't be
2147         used for scanf.
2148
2149         * configure.in: Added the macros G_MAXU(SHORT|INT|LONG). I do not
2150         know how to handle these on platforms with /usr/include/values.h,
2151         but without /usr/include/limits.h. Please someone add this.
2152
2153
2154 1999-03-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2155
2156         * configure.in: Added the macros G_(U)?INT(8|16|32|64)_FORMAT to
2157         use for printf and (much more important) scanf format strings for
2158         the corresponding GLib types. 
2159
2160         * glib.h Added G_(U)?(SHORT|INT|LONG)_FORMAT for consistency. It
2161         however makes no sense to also provide G_(FLOAT|DOUBLE)_FORMAT, as
2162         they are different for printf (f for both) and scanf (f for float,
2163         lf for double). Defining G_INT_FORMAT makes sense however, as we
2164         might want to define gint to something different than int someday
2165         in the future. Idea from Sascha Brawer <sb@adasys.ch>.
2166         
2167 1999-03-14  Jeff Garzik  <jgarzik@pobox.com>
2168
2169         * gdate.c:
2170         Commented out debugging output.
2171
2172         * tests/Makefile.am, tests/date-test.c:
2173         Added test of the GDate module, based closely on testgdate.c.
2174
2175         * tests/Makefile.am:
2176         Bugfix - compile tests with @GLIB_DEBUG_FLAGS@.
2177
2178 1999-03-14  Raja R Harinath  <harinath@cs.umn.edu>
2179
2180         * configure.in (glibconfig.h): Remove widechar tests and defines.
2181         (fd_set): Change the grep for `fd_mask' to search for `fd_set'.
2182         * gerror.c (fd_mask): Remove conditional typedef.  It is not used
2183         elsewhere in the file.
2184         * gmain.c (fd_mask): Likewise.
2185
2186 1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2187
2188         * configure.in: Test for posix threads first, then for dce threads.
2189
2190 1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2191
2192         * configure.in: Revamped the thread configure stuff. Now dce
2193         threads (old posix draft) are recogniced. This is necessary,
2194         because dce threads are in fact working quite differently from
2195         posix threads. Also changed the conditions for checking for MT
2196         safe functions a bit, because G_THREADS_IMPL_NONE still have to
2197         compile thread safe. NOTE: Please do not commit my change to
2198         glib-1-2/{acconfig.h,configure.in,config.h.win32} from 1999-03-03,
2199         as the current change will take care of that too.
2200
2201 Tue Mar  9 14:37:32 1999  Jeff Garzik  <jgarzik@pobox.com>
2202
2203         * Makefile.am, glib.h, gstack.c, gqueue.c,
2204           tests/Makefile.am, tests/queue-test.c, tests/stack-test.c:
2205         Added stack, queue ADTs and related tests.
2206
2207         * glib.h, glist.c:
2208         New g_list_delete() function.
2209
2210 Sat Mar  6 11:03:08 1999  Asbjorn Pettersen  <ape@lrdpf.spacetec.no>
2211
2212         * gutils.c (g_get_any_init): add OS/2 changes.
2213         change '\\' in HOME to '/'.
2214
2215 1999-03-03  Josh MacDonald  <jmacd@spin.dsl.pacbell.net>
2216
2217         * glib.def: g_spaced_primes_closest was omitted here, so I
2218         couldn't build Xdelta on Windows.
2219
2220 1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2221
2222         * gutils.c (g_get_any_init): Fixed yet another bloody
2223         implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
2224         <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
2225         test better than that, but have no idea, how to do that easily.
2226
2227 Sat Feb 27 01:18:47 1999  Tim Janik  <timj@gtk.org>
2228
2229         * ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started
2230         new one.
2231
2232         * configure.in: set glib version to 1.3.0.