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