Implement watches for GIOChannels for write file descriptors on Win32
[platform/upstream/glib.git] / ChangeLog.pre-2-12
1 2006-03-02  Marcus Brinkmann  <mb@g10code.de>
2
3         Implement watches for GIOChannels for write file descriptors on
4         Win32 (#333098).
5         
6         * glib/giowin32.c (GIOWin32Channel): Add a new direction field.
7         (read_thread): Initialize direction.
8         (write_thread): New function.
9         (buffer_write): New function.
10         (g_io_win32_prepare): Handle the G_IO_WIN32_FILE_DESC case for the
11         write direction.
12         (g_io_win32_fd_write): Call buffer_write() if there is a writer
13         thread.
14         (g_io_win32_fd_close): Set space_avail_event for writer threads.
15         (g_io_win32_fd_create_watch): Create the writer thread if
16         condition is G_IO_OUT.
17         (g_io_channel_win32_make_pollfd): Likewise here.
18
19 2006-03-09  Matthias Clasen  <mclasen@redhat.com>
20
21         * Makefile.am: Add ChangeLog.pre-2.8 to EXTRA_DIST.
22
23 2006-03-08  Tor Lillqvist  <tml@novell.com>
24
25         * glibconfig.h.win32.in: Add G_GUINT64_CONSTANT.
26
27 2006-03-07  Matthias Clasen  <mclasen@redhat.com>
28
29         * configure.in: Bump version
30
31         * ===  Released 2.10.1 ===
32
33         * NEWS: Updates.
34
35         * glib/gutf8.c (_g_charset_get_aliases): Match the prototype
36         in gconvert.c to fix build problems in NetBSD.  (#333651,
37         Julio M. Merino Vidal)
38
39 2006-03-06  Anders Carlsson  <andersca@imendio.com>
40
41         * configure.in:
42         Make .dylib the shared library suffix on darwin.
43         (#322476, Vladimir Panov)
44         
45 2006-03-06  Anders Carlsson  <andersca@imendio.com>
46
47         * configure.in:
48         Skip checking thread flags on Darwin. Fix suggested by Manish Singh.
49         (#314794, Gregor Riepl)
50         
51 2006-03-01  Tor Lillqvist  <tml@novell.com>
52
53         * glib/gutils.c (g_listenv): Separate implementation on Win32: Use
54         the wide character API on NT-based Windows. Return UTF-8 strings.
55
56         * glib/glib.symbols: Don't mark g_listenv as PRIVATE, as that
57         meant it wasn't present in the import library. PRIVATE is used
58         only for the backwards-compatibility DLL ABI stability hacks.
59
60 2006-02-24  Matthias Clasen  <mclasen@redhat.com>
61
62         * configure.in: Bump version
63
64         * === Released 2.10.0 ===
65
66         * README.in: Mention the slice allocator and GInitiallyUnowned.
67
68         * NEWS: Updates
69
70         * configure.in: Bump version to 2.10.0
71
72         * tests/utf8-pointer.c: Add tests for g_utf8_strlen().
73
74         * glib/gutf8.c: Fix boundary cases in g_utf8_strlen().
75         (#332435)
76
77 2006-02-23  Kjartan Maraas  <kmaraas@gnome.org>
78
79         * tests/completion-test.c: (main): Plug leaks reported by
80         valgrind.
81         * tests/convert-test.c: (test_iconv_state), (test_one_half):
82         Same.
83         * tests/patterntest.c: (test_compilation): Same
84         * tests/shell-test.c: (do_argv_test): Same.
85         * tests/unicode-caseconv.c: (main): Same.
86         * tests/uri-test.c: (run_to_uri_tests): Same.
87         Closes bug #332093.
88
89 2006-02-19  Martyn Russell  <martyn@imendio.com>
90         
91         * tests/asyncqueue-test.c: 
92         * tests/list-test.c: 
93         * tests/slist-test.c: Updated to test _sort, _sort_with_data,
94         _insert_sorted and _insert_sorted_with_data API. 
95
96 2006-02-18  Matthias Clasen  <mclasen@redhat.com>
97
98         * tests/gobject/Makefile.am: Add paramspec-test
99
100         * tests/gobject/paramspec-test.c: Some GParamSpec tests. 
101
102         * tests/gobject/gvalue-test.c: Add more tests.
103
104 2006-02-17  Kang Jeong-Hee  <keizie@gmail.com>
105
106         * glib/gutf8.c (g_utf8_find_prev_char): Correct documentation typo.
107
108 2006-02-15  Sebastian Wilhelmi  <seppi@seppi.de>
109
110         * glib/gthreadpool.c: Fix deadlock when signalling the thread
111         which freed a thread pool (#331110, Chris Wilson).
112
113 Tue Feb 14 17:00:43 2006  Tim Janik  <timj@imendio.com>
114
115         * glib/gslice.c: only define _XOPEN_SOURCE to 600 to get at 
116         posix_memalign() in case we actually are going to use it, because
117         we detected a compliant implementation (#328997).
118
119         * configure.in (enable_included_printf): don't include malloc.h when
120         testing for posix_memalign() funcitonality, since this may break the 
121         test on some systems (#328997).
122
123 2006-02-14  Matthias Clasen  <mclasen@redhat.com>
124
125         * glib/gstrfuncs.c: Improve docs.
126
127 2006-02-11  Matthias Clasen  <mclasen@redhat.com>
128
129         * configure.in: Bump version
130
131 2006-02-10  Matthias Clasen  <mclasen@redhat.com>
132
133         * === Released 2.9.6 ===
134
135         * NEWS: Updates
136
137 2006-01-31  Behdad Esfahbod  <behdad@gnome.org>
138
139         * docs/reference/glib/tmpl/relations.sgml (g_relation_insert): Specify
140         the type of varargs arguments. (bug #317679)
141
142 2006-01-31  Matthias Clasen  <mclasen@redhat.com>
143
144         * autogen.sh: Touch README and INSTALL here to pacify 
145         automake.  (#329124, Kjartan Maraas, Tim Janik)
146         
147 Tue Jan 31 16:45:03 2006  Tim Janik  <timj@imendio.com>
148
149         * glib/gdataset.c: carry out all dtalist pointer accesses atomically,
150         some missing cases where pointed out by Sebastian Wilhelmi.
151
152 Tue Jan 31 12:33:48 2006  Tim Janik  <timj@imendio.com>
153
154         * configure.in: generate build/win32/vs8/Makefile, to fix build breakage.
155
156 2006-01-30  David Schleef  <ds@schleef.org>
157
158         * glib/grand.c: Update URL
159
160 2006-01-29  Sven Herzberg  <herzi@gnome-de.org>
161
162         * docs/reference/gobject/tmpl/param_value_types.sgml: tell how to
163         create container classes which are as flexible as a GValue is
164
165 2006-01-27  Matthias Clasen  <mclasen@redhat.com>
166
167         * configure.in: Bump version
168
169         * === Released 2.9.5 ===
170
171         * glib/glib.symbols: Add g_mem_gc_friendly as an exported
172         variable.
173
174         * NEWS: Updates
175
176 2006-01-26  Matthias Clasen  <mclasen@redhat.com>
177
178         * glib/gmem.c (g_mem_init_nomessage): Fix C99isms.  (#328705, 
179         Kazuki Iwamoto)
180
181 Wed Jan 25 19:16:57 2006  Tim Janik  <timj@imendio.com>
182
183         * fixed buglets reported by Jens Granseuer in #328254.
184
185         * configure.in: free the memory allocated in posix_memalign() tests.
186
187         * glib/gslice.c: spelling fixes.
188
189 Wed Jan 25 16:39:18 2006  Tim Janik  <timj@imendio.com>
190
191         * glib/gslice.c: honour g_mem_gc_friendly settings when freeing
192         slices, make sure g_mem_gc_friendly is properly initialized.
193
194         * gmem.[hc]: ensure g_mem_gc_friendly is initialized from G_DEBUG upon
195         the first allocation. applied some branching optimizations.
196
197         * docs/macros.txt: reflected --enable-gc-friendly change and
198         described ENABLE_GC_FRIENDLY_DEFAULT as well as G_DEBUG=gc-friendly.
199
200         * configure.in: changed --enable-gc-friendly=yes to define
201         ENABLE_GC_FRIENDLY_DEFAULT.
202
203         * glib/garray.c: changed ENABLE_GC_FRIENDLY macro #ifdef-s to
204         if (G_UNLIKELY (g_mem_gc_friendly)).
205
206         * glib/gtree.c:
207         * glib/ghash.c: removed ENABLE_GC_FRIENDLY code which is now taken
208         care of by g_slice_free1().
209
210         * tests/slice-test.c: fixed leaks, reported by Kjartan Maraas.
211
212 Tue Jan 24 17:49:36 2006  Tim Janik  <timj@imendio.com>
213
214         * glib/gslice.c: only use posix_memalign() if it's known to work,
215         revert to memalign() otherwise.
216
217         * configure.in: check for broken posix_memalign() implementations
218         to fix #328254.
219
220 2006-01-24  Matthias Clasen  <mclasen@redhat.com>
221
222         * tests/unicode-encoding.c: Use UTF-16LE as target encoding
223         on all little-endian systems.  (#143380, Marc Moorcroft)
224
225 2006-01-23  Matthias Clasen  <mclasen@redhat.com>
226
227         * configure.in: Change the shared libary extension for hpux-ia64
228         to so.  (#328253, The Written Word)
229
230 Mon Jan 23 17:30:33 2006  Tim Janik  <timj@imendio.com>
231
232         * glib/gutils.c (_g_getenv_nomalloc): wiped out all the wonderfull
233         G_OS_WIN32 code i wrote ;-[) after tml told me windows has getenv()
234         as well.
235
236 Mon Jan 23 16:46:20 2006  Tim Janik  <timj@imendio.com>
237
238         * glib/gslice.c (slice_config_init): initialize GSlice config from
239         G_SLICE environment variable. we support G_SLICE=always-malloc
240         currently, which forces all g_slice_*() allocations to use the system
241         malloc instead.
242
243         * glib/gutils.c: 
244         g_parse_debug_string(): added a note about not using g_malloc() here.
245         _g_getenv_nomalloc(): getenv() variant that doesn't use g_malloc or 
246         g_slice. contains only guesswork in the WIN32 branch.
247
248 2006-01-18  Matthias Clasen  <mclasen@redhat.com>
249
250         * Bump version
251         
252         * === Released 2.9.4 ===
253
254         * NEWS: Updates
255
256 2006-01-17  Matthias Clasen  <mclasen@redhat.com>
257
258         * glib/gkeyfile.c (g_key_file_get_groups): Correct a g_new0()
259         call.  (#327421, Morten Welinder)
260
261 2006-01-17  Sebastian Wilhelmi  <seppi@seppi.de>
262
263         * glib/gthreadpool.c: To avoid deadlocks get rid of the settings
264         G_LOCK. Use the unused_thread_queue lock instead. Change
265         g_thread_pool_thread_proxy such that threads only wait on
266         non-exlusive pools for at most a 1/2 second. Do not reorder tasks
267         due to superfluous tasks. Global tasks wait at most for
268         max-idle-time milliseconds. Make sure, that no task is woken up
269         twice for the same event via a wakeup_serial. This fixes #324228.
270
271         * tests/threadpool-test.c: Adapt test accordingly. Do not pass
272         invalid NULL into the thread pools. This as well fixes #327290.
273
274 2006-01-16  Matthias Clasen  <mclasen@redhat.com>
275
276         * configure.in: Bump version
277
278         * === Released 2.9.3 ===
279
280         * NEWS: Updates
281
282         * glib/gthread.h (g_static_mutex_get_mutex_impl_shortcut): 
283         Rework the strict aliasing fix to not break C++, pointed
284         out by Murray Cumming.
285         
286         * glib/gasyncqueue.c (g_async_queue_push_sorted_unlocked):
287         Signal waiting threads, problem noticed by Christian Kellner.
288
289 2006-01-16  Matthias Clasen  <mclasen@redhat.com>
290
291         Fix bug 326747, Alberto Ruiz:
292         
293         * glib/gconvert.c (make_valid_utf8): Change this function to
294         replace unknown characters by the Unicode replacement character
295         instead of '?', and don't append "(invalid encoding)".
296         (g_filename_display_name, g_filename_display_basename): Document
297         how to determine if the filename was in an invalid encoding.
298
299 2006-01-14  Matthias Clasen  <mclasen@redhat.com>
300
301         * glib/gtree.c: Replace the simple recursive implementation
302         by a nonrecursive, threaded implementation by Maurizio 
303         Monge.  (#169285)
304
305 2006-01-12  Matthias Clasen  <mclasen@redhat.com>
306
307         * tests/asyncqueue-test.c (main): Fix the
308         assert to not always trigger.  (#326558, 
309         Daichi Kawahata)
310
311 2006-01-11  Matthias Clasen  <mclasen@redhat.com>
312
313         * tests/convert-test.c: Don't test items_read and
314         items_written in error cases where it is not set.
315
316         * tests/asyncqueue-test.c: Set error to NULL.
317
318 2006-01-08  Matthias Clasen  <mclasen@redhat.com>
319
320         * glib/gtree.c: Break some long lines.
321
322         * tests/tree-test.c: Add more tests.
323
324         * glib/gslice.c: Include config.h first, pointed out
325         by Bogdan Nicula.
326
327 2005-12-20  Sven Herzberg  <herzi@gnome-de.org>
328
329         * docs/reference/gobject/tmpl/gtype.sgml: explain that
330         G_TYPE_INSTANCE_GET_CLASS() does behave different during
331         initialization
332
333 2006-01-06  Matthias Clasen  <mclasen@redhat.com>
334
335         * glib/gslice.c: Only define _XOPEN_SOURCE if we know
336         that we have posix_memalign().  (#323937, Bogdan Nicula)
337
338 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
339
340         * configure.in: Bump version
341
342         * === Released 2.9.2 ===
343
344 2006-01-05  Hans Breuer  <hans@breuer.org>
345
346         * glib/makefile.msc.in : added gslice.obj
347
348 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
349
350         * NEWS: Updates
351
352         * glib/gmain.c: Clarify the documentation of source ids
353         a bit.  (#325874, Dan Williams)
354
355         * configure.in: Fix another strict aliasing problem.
356
357         * glib/gthreadpool.c: Avoid use of varargs macro.  (#325864,
358         Kazuki IWAMOTO)
359
360 2006-01-04  Manish Singh  <yosh@gimp.org>
361
362         * glib/glib.symbols
363         * glib/gstdio.h: don't macroized g_access, g_chdir, and g_unlink
364         either, since they have the same issue as g_rmdir. (Related to
365         bug #325249)
366
367 Wed Jan  4 13:33:25 2006  Tim Janik  <timj@gtk.org>
368
369         * glib/gslice.c (magazine_cache_pop_magazine): don't reverse chunk 
370         order when creating magazines, so we hand out chunks with ascending
371         adresses.
372
373 2006-01-04  Abel Cheung  <maddog@linuxhall.org>
374
375         * configure.in: Added "ml" "zh_HK" to ALL_LINGUAS.
376
377 2006-01-03  Martyn Russell  <martyn@imendio.com>
378
379         * docs/reference/glib/glib-sections.txt:
380         * glib/glib.symbols:
381         * glib/gthreadpool.[ch]:
382         - Added new API g_thread_pool_get_idle_time() and
383         g_thread_pool_set_idle_time(). (#324228).
384         
385         * tests/threadpool-test.c: 
386         - Updated test case to do thread pool sorting, thread pool with
387         no sorting and a thread pool with idle thread timeouts.
388         
389 2006-01-03  Matthias Clasen  <mclasen@redhat.com>
390         
391         * glib/gmain.h: Add new functions here, too.
392
393         * glib/glib.symbols: Add new functions.
394
395 2005-12-20  Michael Meeks  <michael.meeks@novell.com>
396
397         * glib/gmain.c (g_main_context_is_owner): new method
398         to determine if the current thread is the owner of the
399         context.
400
401 2006-01-02  Matthias Clasen  <mclasen@redhat.com>
402
403         * glib/glib.symbols: 
404         * glib/gstdio.h: 
405         * glib/gstdio.c (g_rmdir): Don't provide g_rmdir() as a macro
406         expanding to rmdir, since rmdir is not declared in a portable
407         system header we can include in gstdio.h.  (#325249, Jani Monoses)
408
409 2006-01-01  Tor Lillqvist  <tml@novell.com>
410
411         * glib/gspawn-win32.c (g_spawn_sync_utf8): Set the GIOChannels for
412         stdout and stderr to unbuffered. Otherwise the giochannel layer
413         will try to read from them regardless whether the
414         g_io_channel_win32_poll() call here has indicated
415         readability or not. (#325310)
416
417 2005-12-29  Matthias Clasen  <mclasen@redhat.com>
418
419         * glib/gutils.c (glib_check_version): Fix a copy-and-paste error
420         in the docs.  (#325273, Declan Naughton)
421
422 2005-12-27  Manish Singh  <yosh@gimp.org>
423
424         * tests/run-collate-tests.sh: use LC_ALL instead of LC_COLLATE, to
425         make sure we really override things.
426
427 2005-12-27  Matthias Clasen  <mclasen@redhat.com>
428         
429         Fix #316221, Michal Benes, Stanislav Brabec;
430
431         * configure.in: Fix a strict aliasing problem in 
432         g_static_mutex_get_mutex(). 
433         * glib/gthread.h: ...and in 
434         g_static_mutex_get_mutex_impl_shortcut().
435
436         * glib/gdatasetprivate.h: Add a cast to silence compiler
437         warnings.  (#321978, Andrew Paprocki)
438
439         Partial fix for bug #323937, Bogdan Nicula.
440
441         * configure.in: Check for malloc.h
442         * glib/gslice.c: Don't include malloc.h unconditionally.
443
444 2005-12-27  Manish Singh  <yosh@gimp.org>
445
446         * tests/run-collate-tests.sh: export LC_COLLATE so it takes.
447         (#324950, Dan Yefimov)
448
449 2005-12-26  Matthias Clasen  <mclasen@redhat.com>
450
451         * glib/gslice.c: On Win32, include process.h  (#325015, Kazuki
452         Iwamoto)
453
454 2005-12-25  Matthias Clasen  <mclasen@redhat.com>
455
456         * AUTHORS: Update my email
457
458         * tests/slice-test.c: Fix C99isms.  (#324950, Dan Yefimov)
459
460 2005-12-21  Matthias Clasen  <mclasen@redhat.com>
461         
462         * README.in: Add some notes on when 'make check' may fail.
463
464 2005-12-20  Matthias Clasen  <mclasen@redhat.com>
465
466         * glib/glib.symbols: 
467         * glib/gthreadpool.h: 
468         * glib/gthreadpool.c (g_thread_pool_set_sort_function): New function
469         to sort tasks pushed into a threadpool.  (#324479, Martyn Russell)
470
471         * tests/threadpool-test.c: Test this.
472
473 Tue Dec 20 18:14:14 2005  Tim Janik  <timj@imendio.com>
474
475         * glib/gslice.[hc]: added mem_error() and mem_assert() to test and 
476         handle  errors without depending on gmessage.c which might not be
477         setup when the error occours.
478         removed G_SLICE_CONFIG_ALWAYS_FREE config option, fixed the code so
479         always freeing can be achieved by adjusting the working set time to
480         0 with G_SLICE_CONFIG_WORKING_SET_MSECS.
481         added G_SLICE_CONFIG_COLOR_INCREMENT to test different color increments
482         (mainly 0 and 1). reduced the minimum block size to 128 bytes, to
483         minimize wastage if small amounts of differently sized structrues are
484         allocated, this does come at a performance cost of roughly 5% though.
485         fixed up block alignment calculation, so it works for varying
486         block sizes. only use strerror() not g_strerror() since the latter
487         depends on working GQuark and GSlice.
488         mem_error(): implemented in terms of fprintf and vfprintf.
489
490         * tests/slice-color.c: new program to test cache colorization effects.
491
492         * tests/slice-test.c: trade G_SLICE_CONFIG_ALWAYS_FREE for 0 duration
493         G_SLICE_CONFIG_WORKING_SET_MSECS.
494
495 2005-12-17  Matthias Clasen  <mclasen@redhat.com>
496
497         * glib/goption.c (parse_short_option): Set an error in all
498         failure cases.  (#324332, Tim-Philipp Müller) 
499
500 2005-12-17  Sebastian Wilhelmi  <seppi@seppi.de>
501
502         * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get
503         and g_atomic_pointer_get. Add g_atomic_int_set and
504         g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES &&
505         G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them
506         as functions (additionally to the macros in the header) for the 
507         !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case.
508
509 2005-12-16  Matthias Clasen  <mclasen@redhat.com>
510
511         *  glib/gmem.c (g_allocator_new): Don't return a pointer to
512         a const struct, since apps expect to be able to modify it. 
513         (#324179, J. Ali Harlow)
514
515 Tue Dec 13 10:13:32 2005  Tim Janik  <timj@imendio.com>
516
517         * glib/gatomic.h: added g_atomic_pointer_set() and g_atomic_int_set()
518         for systems where the initialization of atomic variables requires a
519         write memory barrier.
520
521 2005-12-09  Matthias Clasen  <mclasen@redhat.com>
522
523         * configure.in: Bump version
524
525         * === Released 2.9.1 ===
526
527 2005-12-09  Alexander Larsson  <alexl@redhat.com>
528
529         * glib/glist.h: 
530         * glib/gslist.h:
531         Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
532         the whole list.
533
534 2005-12-08  Matthias Clasen  <mclasen@redhat.com>
535
536         * NEWS: Updates
537
538 2005-12-07  Martyn Russell  <martyn@imendio.com>
539
540         * glib/gasyncqueue.c:
541         - Call g_queue_insert_sorted() instead of duplicating the code.
542         - Call g_queue_sort() instead of duplicating the code.
543         - Invert sort function results to make sure the same sort function
544         gives the same results across glist, gslist, gqueue and
545         gasyncqueue.
546
547         * tests/asyncqueue-test.c:
548         - Updated the sort function to reflect the example in the
549         documentation for gasyncqueue.c.
550
551 2005-12-07  Martyn Russell  <martyn@imendio.com>
552
553         * docs/reference/glib/glib-sections.txt:
554         * docs/reference/glib/tmpl/linked_lists_double.sgml:
555         * docs/reference/glib/tmpl/linked_lists_single.sgml:
556         * glib/glist.[ch]: 
557         * glib/gslist.[ch]: 
558         - Added g_list_insert_sorted_with_data () and
559         g_slist_insert_sorted_with_data ().
560         - Removed the extra check in g_list_sort() and g_slist_sort() for
561         GCompareDataFunc vs. GCompareFunc.
562         
563 2005-12-07  Tor Lillqvist  <tml@novell.com>
564
565         * glib-gettextize.in: Look up prefix at run-time on Win32,
566         assuming the standard directory structure with glib-gettextize in
567         $prefix/bin.
568
569 2005-12-06  Matthias Clasen  <mclasen@redhat.com>
570
571         * glib/gmem.h: Exempt GTK+ from the mem chunk deprecation, since
572         we need GTK+ 2.8 to compile against GLib 2.10.
573
574 2005-12-05  Manish Singh  <yosh@gimp.org>
575
576         * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure
577         to override any user settings.
578
579 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
580
581         * configure.in: Revert an accidential commit
582
583 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
584
585         * glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)
586
587         * tests/Makefile.am (TESTS_ENVIRONMENT): 
588         * tests/gobject/Makefile.am (TESTS_ENVIRONMENT): Set
589         MALLOC_CHECK_ and MALLOC_PERTURB_
590
591         * tests/run-collate-tests.sh: Run the collation tests explicitly 
592         in en_US locale. (#320463)
593
594         * glib/gmem.h: Really deprecate GMemChunk.
595
596         * glib/gdate.c: 
597         * glib/gutils.c: 
598         * glib/gtree.c: 
599         * glib/gstring.c: 
600         * glib/giochannel.c: 
601         * glib/gstrfuncs.c: Add versioned deprecation docs. 
602
603 2005-12-05  Martyn Russell  <martyn@imendio.com>
604
605         * docs/reference/glib/glib-sections.txt:
606         * glib/gasyncqueue.[ch]:
607         - Added support for sorting async queues by with _push_sorted(),
608         _push_sorted_unlocked(), _sort() and _sort_unlocked() (#323047).
609         
610         * tests/Makefile.am:
611         * tests/asyncqueue-test.c:
612         - Added test case for gasyncqueue.c
613
614 Mon Dec  5 15:53:20 2005  Tim Janik  <timj@imendio.com>
615
616         * glib/gslice.c: implement chain walking for arbitrary ->next pointer
617         offsets in g_slice_free_chain_with_offset() based on a patch by behdad
618         in bug 323178. moved time consuming logic from g_slice_free() out of
619         the inner loop, so g_slice_free_chain_with_offset() provides a real
620         performance benefit over g_slice_free1() now.
621         
622         * glib/gslice.h: renamed g_slice_free_chain() to
623         g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
624         a type-safe macro as suggested in bug 323178.
625         simplified the macro implementation of g_slice_free() and implemented
626         it in a type safe manner for all compliers as suggested by Morten
627         Welinder <mortenw@gnome.org>.
628
629         * glib/gmain.c:
630         * glib/glist.c:
631         * glib/gslist.c:
632         * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/
633
634 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
635
636         * glib/gasyncqueue.c: Add some docs.
637
638         * tests/libmoduletestplugin_a.c: Fix compiler warnings.
639
640         * glib/gatomic.c: In the ia64 implementation, use
641         __sync builtin without _si or _di suffix.  (#321229,
642         Stanislav Brabec, patch by Andreas Schwab)
643
644 2005-12-04  Behdad Esfahbod  <behdad@gnome.org>
645
646         * glib/gslice.h: Remove comma at the end of enum.
647
648 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
649
650         Handle multiple user names with the same UID better.
651         (#319535, Laszlo Peter)
652         
653         * glib/gutils.c (g_get_any_init_do): When determining user
654         data, first look up $LOGNAME. If the UID doesn't match
655         getuid(), fall back to the current behaviour of looking
656         up the user data based on getuid().
657
658 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
659
660         * glib/gmacros.h (G_GNUC_WARN_UNUSED_RESULT): Add a macro
661         to make gcc warn if a function result is ignored.  (#145466,
662         Arjan van de Ven, Alex Larsson)
663
664         * glib/gmem.h: Add the new attribute to g_realloc and 
665         g_try_realloc.
666
667 2005-12-03  Matthias Clasen  <mclasen@redhat.com>
668
669         * glib/glib.symbols: 
670         * glib/gcache.h: Deprecate g_cache_value_foreach. (#322956,
671         Nicolas Caniart)
672
673         * glib/gmappedfile.c: Make mapping of empty files
674         work.  (#321530)
675         
676         * glib/gfileutils.c: Don't fork a new process just to 
677         fix the permissions of the created temp file.  (#321318,
678         Alexis S. L. Carvalho)
679
680 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
681
682         * README.in: Add a note about Solaris threads.
683
684         * glib/gspawn.c:
685         * configure.in: Remove support for Solaris threads. 
686         (#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)
687
688 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
689
690         * configure.in: Define G_GUINT64_CONSTANT in analogy to
691         G_GINT64_CONSTANT.  (#322568, Andrew Paprocki)
692
693 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
694
695         * glib/gslice.c: Win32 portability fixes and C99ism removal,
696         pointed out by Kazuki Iwamoto.  (#323052)
697         
698 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
699
700         * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for
701         the IA64 implementation.
702
703 Fri Dec  2 16:18:09 2005  Tim Janik  <timj@imendio.com>
704
705         * glib/gslice.c: some naming and type size fixups.
706
707 Fri Dec  2 13:08:58 2005  Tim Janik  <timj@gtk.org>
708
709         * glib/gslice.h (g_slice_free): reworked GCC-specific type-safe macro
710         variant into something less verbose, but digestible for gcc-3.4.
711
712 Fri Dec  2 10:55:07 2005  Tim Janik  <timj@imendio.com>
713
714         * tests/slice-test.c: extended to perform the benchmarking on the old
715         memchunk code if 'O' is selected.
716
717         * tests/memchunks.c: new file which contains the old GLib mem chunks
718         implementation with prefix old_mem_chunk_.
719
720         * tests/Makefile.am: added memchunks.c
721
722 Fri Dec  2 00:16:59 2005  Tim Janik  <timj@imendio.com>
723
724         * glib/gslice.c: improved gettimeofday() timer resolution by maintaining
725         acceptable load distribution of the syscall.
726         (allocator_get_magazine_threshold): reduce minimum/single-thread magazine
727         sizes to approximately page_size/2.5 to avoid excessive startup allocations.
728
729 2005-12-01  Matthias Clasen  <mclasen@redhat.com>
730
731         * tests/gobject/ifacecheck.c (test_iface_base_init): Don't
732         double-free base interface members.
733
734         * tests/Makefile.am: Remove duplicate variable.
735
736 Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>
737
738         * glib/gslice.[hc]: new slice allocator implementation.
739
740         * tests/slice-test.c: added random slice allocation test.
741
742         * glib/gthread.[hc]: removed newly added private thread mem API.
743
744         * glib/gthreadinit.h:
745         * glib/gmessages.c:
746         * glib/gthread.c:
747         * glib/gmem.c: divided glib threading initialisation into three phases,
748         initialisation where private keys and messaging are not available (only
749         needed by gmem.c), initialisation without messaging but private keys
750         available (gslice.c, gmessage.c), and full fledged initialisers that
751         server the rest of glib. initialisation functions got renamed to reflect
752         the limitations of their corresponding phases.
753
754         * glib/gmem.c: removed memchunk code, defer allocations to 
755         g_slice_* instead.
756
757         * glib/gmem.[hc]: removed g_slice_* skeletons.
758
759         * glib/glib.symbols: added g_slice_* symbols.
760
761         * configure.in: check for availability of posix_memalign(3), memalign(3)
762         and valloc(3). 
763
764         * glib/Makefile.am: added gslice.[hc].
765
766 2005-12-01  Tor Lillqvist  <tml@novell.com>
767
768         * glib/gstdio.c (g_stat): In the Win32 implementation, strip
769         trailing slash(es) for non-root folders. stat() fails if non-root
770         folders are specified with trailing slashes. It's too much hassle
771         to demand that callers strip such slashes themselves, especially
772         as it is easy to get it wrong and strip the slash of a root
773         folder.
774         (g_rename): On NT-based Windows, use MoveFileEx() with
775         MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.
776
777 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
778
779         Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
780         Andrew Paprocki)
781         
782         * configure.in: Check whether do { } while (0) works.
783
784         * glib/gmacros.h: Use do { } while (0) for G_STMT_START / 
785         G_STMT_END if it works.
786         
787 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
788
789         * glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal): 
790         * glib/gnode.c (g_node_depth_traverse_level): 
791         * glib/gmem.c (g_allocator_new): 
792         * glib/ghash.c (g_hash_table_unref, g_hash_table_destroy) 
793         (g_hash_table_foreach_remove_or_steal): Silence compiler
794         warnings.
795
796 2005-11-27  Matthias Clasen  <mclasen@redhat.com>
797
798         * glib/gunicollate.c (g_utf8_collate_key_for_filename): 
799         Don't read beyond len.  (#322520, Christian Persch)
800
801 Wed Nov 23 17:34:01 2005  Tim Janik  <timj@imendio.com>
802
803         * glib/gdataset.c: access datalist flags via atomic pointer access
804         functions, instead of acquiring the dataset lock. this is faster and
805         also matches the atomic pointer readouts in gdatalistprivate.h and
806         direct pointer modifications required by gobject.c.
807
808 Wed Nov 23 13:35:31 2005  Tim Janik  <timj@gtk.org>
809
810         * glib/gdataset.c: streamlined initialization code somewhat,
811         removed GData node cache.
812
813 2005-11-22  Matthias Clasen  <mclasen@redhat.com>
814
815         * glib/ghash.c (g_hash_table_ref): 
816         (g_hash_table_unref): Mark these as new API.
817
818         Avoid double locking in g_intern_string (#322133,
819         Benedikt Meurer)
820
821         * glib/gdataset.c (g_quark_from_string_internal): New 
822         internal function which factors out common parts of 
823         g_quark_from[_static]_string.
824         (g_quark_from_string, g_quark_from_static_string):
825         Use g_quark_from_string_internal.
826         (g_intern_string, g_intern_static_string): Use
827         g_quark_from_string_internal, and only take the
828         lock once.
829         (g_quark_new): Don't store the strings shifted by -1
830         in the g_quarks array.
831         (g_quark_to_string): Adapt to the previous change.
832
833 Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>
834
835         * glib/ghash.h: 
836         * glib/ghash.c: 
837         g_hash_table_new_full(): create hash tables with a ref count of 1.
838         g_hash_table_ref(): atomically ref_count+=1
839         g_hash_table_unref(): atomically ref_count-=1, destroys hash table
840         when refcount reaches 0.
841         g_hash_table_destroy(): just destroy keys and values, unref by 1.
842         g_hash_table_insert(): 
843         g_hash_table_replace(): assert ref_count>0.
844
845         * glib/gatomic.h: 
846         * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
847         integer pointers.
848
849 2005-11-20  Behdad Esfahbod  <behdad@gnome.org>
850
851         * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
852         variables. (#321984, Andrew Paprocki)
853
854 2005-11-18  Matthias Clasen  <mclasen@redhat.com>
855
856         * configure.in: Bump version
857
858 2005-11-17  Matthias Clasen  <mclasen@redhat.com>
859
860         * === Released 2.9.0 ===
861
862         * glib/glib.symbols: Updates
863
864         * glib/gutf8.c (g_utf8_offset_to_pointer): Add some performance
865         hints to the docs. (Paolo Borelli)
866         
867         * NEWS: Updates
868
869         * glib/gthread.c (g_thread_foreach): Mark as new api.
870
871         * README.in: Updates.
872
873         * glib/glib.symbols: 
874         * glib/gdate.h: 
875         * glib/gdate.c (g_date_set_time_t): 
876         (g_date_set_time_val): Add functions to set a date from
877         a time_t and from a GTimeVal.
878         (g_date_set_time): Deprecate.  (#314067, Roger Leigh)
879         
880         * tests/Makefile.am:
881         * tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
882         and g_utf8_offset_to_pointer.
883
884         * glib/gutf8.c (g_utf8_pointer_to_offset) 
885         (g_utf8_offset_to_pointer): Handle negative offsets, and use
886         "stutter stepping" for going backwards. (#320638, Larry
887         Ewing)
888
889         * glib/gbacktrace.c:
890         * glib/gdate.c:
891         * glib/gthread.c: const correctness fixes, found
892         by Arjan van de Ven and gcc.
893         
894 2005-11-16  Behdad Esfahbod  <behdad@gnome.org>
895
896         * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
897         @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
898
899 2005-11-09  Behdad Esfahbod  <behdad@gnome.org>
900
901         * glib/guniprop.c: Use bit hacks instead when checking a general
902         category value against multiple values.
903
904         * glib/gutf8.c: Change ISO10646 to Unicode in docs.
905
906 2005-11-10  Simos Xenitellis  <simos@gnome.org>
907
908         * configure.in: Added tt (Tatar) to ALL_LINGUAS.
909
910 2005-11-05  Tor Lillqvist  <tml@novell.com>
911
912         * glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
913         (#320688) Instead set error and return failure.
914
915 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
916
917         * glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
918         while holding the context lock.  (#320886, Andy Wingo)
919
920 2005-11-07  Billy Biggs <vektor@dumbterm.net>
921
922         * tests/refcount/Makefile.am: Add a missing reference to libglib
923         in the LDADD for this test.
924
925 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
926
927         * glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
928         nonzero value, otherwise GTK+ 2.8 breaks when compiled against
929         GLib 2.9.  (#320755, Luca Ferretti)
930
931 2005-11-04  Matthias Clasen  <mclasen@redhat.com>
932
933         * glib/Makefile.am: Apply a patch from Behdad Esfahbod to 
934         use a faster lookup table for g_unichar_get_mirror_char().
935         * glib/gmirroringtable.h: The new table.
936         * glib/gunichartables.h: Remove bidi_mirroring_table.
937         * glib/gen-unicode-tables.pl: Don't generate the mirroring
938         table.
939         * glib/glib-mirroring-tab/*: Sources for the program
940         which generated gmirroringtable.h.
941
942         * glib/glist.c: Avoid some code duplication.
943
944         * glib/gscanner.h: Include gdataset.h.  (#320322)
945
946         * glib/gdebug.h: add new GDebugFlag for fatal_criticals
947         * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
948         to help find critical warnings in applications.  (#320017,
949         Vincent Untz)
950
951 2005-11-02  Tor Lillqvist  <tml@novell.com>
952
953         * glib/glib.symbols: Remove large amount of trailing whitespace
954         from one line. Remove #ifdef G_UNDEFINED from around
955         g_hash_table_new and g_hash_table_new_full symbols, what was the
956         purpose of that? Add the g_slice functions.
957
958 Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>
959
960         * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
961         added g_slice_*() API to allocate and cache small bits of memory.
962         an actuall allocator implementation for g_slice_*() is still pending.
963
964         * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
965         changed GRealThread list to use in-structure *next; fields instead
966         of GSList, in order for thread iteration to not depenend on g_slice_*()
967         indirectly.
968         _g_thread_mem_private_get():
969         _g_thread_mem_private_set(): added accessors for private memory,
970         needed because the ordinary GPrivate implementation relies on GArray
971         and GSList and therefore indirectly on working g_slice_*() allocations.
972
973         * glib/gthread.[hc]:
974         g_thread_foreach(): new public API function to loop over all existing threads.
975
976         * glib/gdataset.c:
977         * glib/gstring.c:
978         * glib/gcache.c:
979         * glib/garray.c: 
980         * glib/gqueue.c:
981         * glib/gslist.c:
982         * glib/glist.c:
983         * glib/ghash.c:
984         * glib/gtree.c:
985         * glib/ghook.c:
986         * glib/gmain.c:
987         * glib/gnode.c:
988         removed GAllocator and free list usages and accompanying locks.
989         use g_slice_*() API to allocate and cache small bits of memory.
990
991         * glib/ghook.h: removed GMemChunk field from public API.
992
993         * glib/gslist.h:
994         * glib/glist.h: deprecate allocator API, provide _free1() for consistency.
995
996         * glib/gnode.h: deprecate allocator API.
997
998         * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
999         be used for poll rec lists.
1000
1001         * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
1002         g_relation_destroy(): free all tuples from the all_tuples hash table,
1003         this effectively maintains the life time track keeping of tuples.
1004         g_relation_delete_tuple(): free tuples which are removed from the
1005         all_tuples hash table. this fixes a temporary leak that was present
1006         in the memchunk code until the destruction of the relation.
1007
1008 2005-10-29  Matthias Clasen  <mclasen@redhat.com>
1009
1010         * tests/convert-test.c: Add some tests for conversions between
1011         UTF-8, UCS-4 and UTF-16.
1012
1013         * glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
1014         of len == -1, noticed by Morten Welinder.
1015
1016 2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
1017
1018         * configure.in: Added ku (Kurdish) to ALL_LINGUAS
1019
1020 2005-10-26  Matthias Clasen  <mclasen@redhat.com>
1021
1022         * glib/gutf8.c (g_ucs4_to_utf8): Don't set items_read twice
1023         in the error case, and add some documentation.  (#319806, Morten
1024         Welinder)
1025
1026 2005-10-19  Manish Singh  <yosh@gimp.org>
1027
1028         * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
1029         config.h symbol automatically. Fixes bug #313731.
1030
1031 2005-10-19  Tor Lillqvist  <tml@novell.com>
1032
1033         * glib/gwin32.c (g_win32_get_package_installation_directory):
1034         Return a g_strdup()ed copy of the value stored in the hash table,
1035         so that it can be g_free()d without leaving a dangling pointer in
1036         the hash table. (#319232)
1037
1038 2005-10-06  Matthias Clasen  <mclasen@redhat.com>
1039
1040         * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
1041         all-zero sequences correctly.  (#317930, Sebastien Bacher)
1042
1043 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
1044
1045         * glib/gmarkup.c (g_markup_escape_text): Doc addition
1046
1047         * Makefile.am: Add Collation tests.
1048
1049         * tests/collate/*: Inputs and expected outputs for collation tests.
1050
1051         * tests/run-collate-tests.sh: Script to run collation tests.
1052
1053         * tests/unicode-collate.c (main): Rework slightly to make
1054         it usable in unit tests. Also test g_utf8_collate_key_for_filename().
1055
1056 2005-10-01  Behdad Esfahbod  <behdad@gnome.org>
1057
1058         * docs/reference/glib/tmpl/unicode.sgml:
1059         * glib/gen-unicode-tables.pl:
1060         * glib/gunibreak.h:
1061         * glib/gunichartables.h:
1062         * glib/gunicode.h:
1063         * tests/casefold.txt:
1064         * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
1065         GUnicodeBreakType types.  That may break some applications, like
1066         Pango <= 1.10.
1067
1068 2005-09-26  Matthias Clasen  <mclasen@redhat.com>
1069
1070         * glib/gstrfuncs.c (g_ascii_strtoull): Add details to the 
1071         docs.  (#314393, Matthew F. Barnes)
1072
1073         * glib/glib.symbols:
1074         * glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
1075         they are already declared in glib.h. This doesn't break documented
1076         use of gprintf.h, but should probably be pointed out in the 
1077         release notes for 2.10. (#314232, Behdad Esfahbod)
1078
1079 Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>
1080
1081         * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
1082         complexity optimization, based on a patch from Matthias Clasen.
1083
1084         * tests/patterntest.c: more tests, mostly from matthias.
1085
1086 2005-09-20  Matthias Clasen  <mclasen@redhat.com>
1087
1088         * glib/gqueue.c (g_queue_insert_sorted): Correct the docs.
1089         (#316703, Mark Drago)
1090
1091 Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>
1092
1093         * glib/gpattern.c: applied a patch from matthias which checks on the
1094         upper bound of GPatternSpec length to optimize matches.
1095         cosmetic fixups.
1096
1097         * tests/patterntest.c: added more match cases.
1098
1099 2005-09-16  Tor Lillqvist  <tml@novell.com>
1100
1101         * glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
1102         warning to doc comment that these functions should not be used on
1103         encodings like CP932.
1104
1105 2005-09-14  Matthias Clasen  <mclasen@redhat.com>
1106
1107         * tests/keyfile-test.c: Add a test for grup names of length 1.
1108
1109         * glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
1110         of length 1.  (#316309)
1111         
1112 2005-09-12  Matthias Clasen  <mclasen@redhat.com>
1113
1114         * glib/gmarkup.c (g_markup_escape_text): Clarify docs.
1115
1116 2005-09-11  Sebastian Wilhelmi  <seppi@seppi.de>
1117
1118         * tests/refcount/Makefile.am (INCLUDES): Link the the refcount
1119         tests to the system thread library $(G_THREAD_LIBS). Fixes #313744
1120         and #314217.
1121
1122 2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>
1123
1124         * glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
1125         (child_watch_helper_thread): Remove some dead code. Closes
1126         bug #315278.
1127
1128 2005-09-07  Tor Lillqvist  <tml@novell.com>
1129
1130         * glib/Makefile.am: Create also a console version of the
1131         gspawn-win32-helper program, gspawn-win32-helper-console.exe.
1132         It's otherwise identical to gspawn-win32-helper.exe, except marked
1133         as a console application (linked without the -mwindows option).
1134         
1135         * glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
1136         Drop the dont_wait parameter. Its truth value correlated 100% with
1137         the NULLness of the exit_status parameter anyway, so it's enough
1138         to check whether exit_status is NULL. Invert the sense of the
1139         dont_return_handle parameter and rename it to do_return_handle, to
1140         make the code easier to read by avoiding double negations.
1141
1142         (g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
1143         to do_spawn_with_pipes() accordingly.
1144
1145         (do_spawn_with_pipes): If we have a console, use the console
1146         version of the helper program, otherwise use the GUI one. This
1147         avoids extra console windows opening up in some situations. (In
1148         case a console application uses the GUI gspawn-win32-helper.exe to
1149         spawn another console application we would get a separate console
1150         for the spawned console application).
1151
1152         * glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
1153
1154 2005-09-05  Matthias Clasen  <mclasen@redhat.com>
1155
1156         * glib/gmappedfile.c (g_mapped_file_new): Report an error
1157         if the file is too large.  (#315275, Kjartan Maraas)
1158
1159         * glib/gkeyfile.c (g_key_file_load_from_fd): The return value
1160         of read() is signed.  (#315273, Kjartan Maraas)
1161         
1162 2005-08-31  Tor Lillqvist  <tml@novell.com>
1163
1164         * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
1165         the EXE and each DLL have their own atexit function chains.
1166
1167         #define g_atexit as atexit instead. This means it has a
1168         better chance of doing what the caller wants. For instance,
1169         gtkhtml calls g_atexit() registering a function in gtkhtml
1170         itself. This caused a crash when g_atexit() was implemented as a
1171         function in the GLib DLL. The gtkhtml DLL was already unloaded by
1172         the time the GLib DLL got unloaded.
1173
1174         * glib/gutils.c: #undef the #define mentioned above, to also get a
1175         real g_atexit() into the DLL for backward compatibility. Document
1176         the Windows behaviour of g_atexit(), and document the varying ways
1177         atexit() can behave in the context of dynamically loaded modules
1178         on Unix.
1179
1180 2005-08-31  Matthias Clasen  <mclasen@redhat.com>
1181
1182         * glib/glib.symbols: 
1183         * glib/gquark.h: 
1184         * glib/gdataset.c: Add string interning functions.
1185
1186 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
1187
1188         * glib/giochannel.c: Unify some near-duplicate strings. (#314654,
1189         Clytie Siddall)
1190         
1191 2005-08-26  Matthias Clasen  <mclasen@redhat.com>
1192
1193         * configure.in: Bump version to 2.9.0
1194
1195 2005-08-25  Tor Lillqvist  <tml@novell.com>
1196
1197         Make also the g_spawn*() functions take parameters in the GLib
1198         file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
1199         API or ABI. Like the other GLib API that was earlier changed to
1200         use UTF-8 on Windows, the names of the functions that take UTF-8
1201         have _utf8 suffixes added by using preprocessor macros in the
1202         header file. The old names are kept for functions with the old
1203         behaviour, taking parameters in the system codepage, for DLL ABI
1204         stability.
1205         
1206         * glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
1207         g_spawn*() functions.
1208         
1209         * glib/gspawn-win32.c: Use wide-char API on NT-based
1210         Windows. Convert parameters from UTF-8 to wide chars (NT) or
1211         system codepage (Win9x) and call the C library _wspawn*() or
1212         spawn*() functions respectvely. Add DLL ABI stability versions
1213         that take parameters in the system codepage.
1214
1215         * glib/gspawn-win32-helper.c: On NT-based Windows use the
1216         wide-char versions of argv and envp, and use wide-char API to
1217         change directory and spawn the program to run. Remove the verbose
1218         debugging output, it was too complex to modify for the wide-char
1219         features. (Just add temporary debugging printouts if needed, no
1220         need to have them permanently in the source.)
1221
1222         * glib/gspawn.c: Corresponding documentation updates.
1223
1224         * glib/glib.symbols: Corresponding changes: Mark the ABI stability
1225         symbols as PRIVATE, add the new _utf8-suffixed ones.
1226
1227 2005-08-24  Stepan Kasal  <kasal@ucw.cz>
1228
1229         * glib/gtypes.h (G_MININT64): Cast the constant to gint64; it is
1230         guint64 otherwise and that can produce warnings about comparison
1231         between signed and unsigned.
1232
1233 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
1234
1235         * glib/gutils.c: Fix the crt_externs.h include.
1236
1237 2005-08-23  Stepan Kasal  <kasal@ucw.cz>
1238
1239         * NEWS: Fix spelling of my first name.
1240
1241 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
1242
1243         * Bump version
1244
1245         * === Released 2.8.1 ===
1246
1247         * NEWS: Updates
1248
1249 2005-08-20  Hans Breuer  <hans@breuer.org>
1250
1251         * glib/makefile.msc.in : link with ws2_32.lib
1252
1253 2005-08-18  Tor Lillqvist  <tml@novell.com>
1254
1255         * configure.in: Check for <sys/wait.h>
1256
1257         * glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
1258
1259 2005-08-18  Ross Burton  <ross@burtonini.com>
1260
1261         * glib/gstring.c:
1262         Optimise single-character insertions.
1263         
1264         * glib/gutf8.c:
1265         Note copied code.
1266         
1267         * tests/string-test.c:
1268         Add tests for new optimisation, and fix a leak.
1269
1270 2005-08-17  Matthias Clasen  <mclasen@redhat.com>
1271
1272         * configure.in: Check for crt_externs.h and _NSGetEnviron.
1273
1274         * glib/gutils.c: On Darwin, include crt-externs.h and
1275         define environ using _NSGetEnviron().  (#313731)
1276
1277 2005-08-16  Stepan Kasal  <kasal@ucw.cz>
1278
1279         * glib/gutils.c (g_get_any_init): Move the body of the big if...
1280         (g_get_any_init_do): ... to this new function.
1281         (g_get_any_init): Declare as inline.
1282         (g_get_any_init_locked): New inline function, does the locking.
1283         Make use of these two throughout the code.
1284
1285 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
1286
1287         * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
1288         the child process and then simply return. This makes 
1289         The "S" option work as documented in g_on_error_query().
1290         (#313125, Matthew F. Barnes)
1291
1292         * glib/gunicode.h: Update the link to Unicode category
1293         values.  (#313369, Behnam Esfahbod)
1294
1295         * glib/gqueue.c (g_queue_find_custom): Clarify docs
1296         a little.  (#311727, Tristan van Berkom)
1297
1298         * glib/abicheck.sh, gobject/abicheck.sh: Make the 
1299         check work on ia64 too, where some symbols ended up 
1300         in yet another section.
1301