Clarify the documentation of source ids a bit. (#325874, Dan Williams)
[platform/upstream/glib.git] / ChangeLog
1 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
2
3         * glib/gmain.c: Clarify the documentation of source ids
4         a bit.  (#325874, Dan Williams)
5
6         * configure.in: Fix another strict aliasing problem.
7
8         * glib/gthreadpool.c: Avoid use of varargs macro.  (#325864,
9         Kazuki IWAMOTO)
10
11 2006-01-04  Manish Singh  <yosh@gimp.org>
12
13         * glib/glib.symbols
14         * glib/gstdio.h: don't macroized g_access, g_chdir, and g_unlink
15         either, since they have the same issue as g_rmdir. (Related to
16         bug #325249)
17
18 Wed Jan  4 13:33:25 2006  Tim Janik  <timj@gtk.org>
19
20         * glib/gslice.c (magazine_cache_pop_magazine): don't reverse chunk 
21         order when creating magazines, so we hand out chunks with ascending
22         adresses.
23
24 2006-01-04  Abel Cheung  <maddog@linuxhall.org>
25
26         * configure.in: Added "ml" "zh_HK" to ALL_LINGUAS.
27
28 2006-01-03  Martyn Russell  <martyn@imendio.com>
29
30         * docs/reference/glib/glib-sections.txt:
31         * glib/glib.symbols:
32         * glib/gthreadpool.[ch]:
33         - Added new API g_thread_pool_get_idle_time() and
34         g_thread_pool_set_idle_time(). (#324228).
35         
36         * tests/threadpool-test.c: 
37         - Updated test case to do thread pool sorting, thread pool with
38         no sorting and a thread pool with idle thread timeouts.
39         
40 2006-01-03  Matthias Clasen  <mclasen@redhat.com>
41         
42         * glib/gmain.h: Add new functions here, too.
43
44         * glib/glib.symbols: Add new functions.
45
46 2005-12-20  Michael Meeks  <michael.meeks@novell.com>
47
48         * glib/gmain.c (g_main_context_is_owner): new method
49         to determine if the current thread is the owner of the
50         context.
51
52 2006-01-02  Matthias Clasen  <mclasen@redhat.com>
53
54         * glib/glib.symbols: 
55         * glib/gstdio.h: 
56         * glib/gstdio.c (g_rmdir): Don't provide g_rmdir() as a macro
57         expanding to rmdir, since rmdir is not declared in a portable
58         system header we can include in gstdio.h.  (#325249, Jani Monoses)
59
60 2006-01-01  Tor Lillqvist  <tml@novell.com>
61
62         * glib/gspawn-win32.c (g_spawn_sync_utf8): Set the GIOChannels for
63         stdout and stderr to unbuffered. Otherwise the giochannel layer
64         will try to read from them regardless whether the
65         g_io_channel_win32_poll() call here has indicated
66         readability or not. (#325310)
67
68 2005-12-29  Matthias Clasen  <mclasen@redhat.com>
69
70         * glib/gutils.c (glib_check_version): Fix a copy-and-paste error
71         in the docs.  (#325273, Declan Naughton)
72
73 2005-12-27  Manish Singh  <yosh@gimp.org>
74
75         * tests/run-collate-tests.sh: use LC_ALL instead of LC_COLLATE, to
76         make sure we really override things.
77
78 2005-12-27  Matthias Clasen  <mclasen@redhat.com>
79         
80         Fix #316221, Michal Benes, Stanislav Brabec;
81
82         * configure.in: Fix a strict aliasing problem in 
83         g_static_mutex_get_mutex(). 
84         * glib/gthread.h: ...and in 
85         g_static_mutex_get_mutex_impl_shortcut().
86
87         * glib/gdatasetprivate.h: Add a cast to silence compiler
88         warnings.  (#321978, Andrew Paprocki)
89
90         Partial fix for bug #32937, Bogdan Nicula.
91
92         * configure.in: Check for malloc.h
93         * glib/gslice.c: Don't include malloc.h unconditionally.
94
95 2005-12-27  Manish Singh  <yosh@gimp.org>
96
97         * tests/run-collate-tests.sh: export LC_COLLATE so it takes.
98         (#324950, Dan Yefimov)
99
100 2005-12-26  Matthias Clasen  <mclasen@redhat.com>
101
102         * glib/gslice.c: On Win32, include process.h  (#325015, Kazuki
103         Iwamoto)
104
105 2005-12-25  Matthias Clasen  <mclasen@redhat.com>
106
107         * AUTHORS: Update my email
108
109         * tests/slice-test.c: Fix C99isms.  (#324950, Dan Yefimov)
110
111 2005-12-21  Matthias Clasen  <mclasen@redhat.com>
112         
113         * README.in: Add some notes on when 'make check' may fail.
114
115 2005-12-20  Matthias Clasen  <mclasen@redhat.com>
116
117         * glib/glib.symbols: 
118         * glib/gthreadpool.h: 
119         * glib/gthreadpool.c (g_thread_pool_set_sort_function): New function
120         to sort tasks pushed into a threadpool.  (#324479, Martyn Russell)
121
122         * tests/threadpool-test.c: Test this.
123
124 Tue Dec 20 18:14:14 2005  Tim Janik  <timj@imendio.com>
125
126         * glib/gslice.[hc]: added mem_error() and mem_assert() to test and 
127         handle  errors without depending on gmessage.c which might not be
128         setup when the error occours.
129         removed G_SLICE_CONFIG_ALWAYS_FREE config option, fixed the code so
130         always freeing can be achieved by adjusting the working set time to
131         0 with G_SLICE_CONFIG_WORKING_SET_MSECS.
132         added G_SLICE_CONFIG_COLOR_INCREMENT to test different color increments
133         (mainly 0 and 1). reduced the minimum block size to 128 bytes, to
134         minimize wastage if small amounts of differently sized structrues are
135         allocated, this does come at a performance cost of roughly 5% though.
136         fixed up block alignment calculation, so it works for varying
137         block sizes. only use strerror() not g_strerror() since the latter
138         depends on working GQuark and GSlice.
139         mem_error(): implemented in terms of fprintf and vfprintf.
140
141         * tests/slice-color.c: new program to test cache colorization effects.
142
143         * tests/slice-test.c: trade G_SLICE_CONFIG_ALWAYS_FREE for 0 duration
144         G_SLICE_CONFIG_WORKING_SET_MSECS.
145
146 2005-12-17  Matthias Clasen  <mclasen@redhat.com>
147
148         * glib/goption.c (parse_short_option): Set an error in all
149         failure cases.  (#324332, Tim-Philipp Müller) 
150
151 2005-12-17  Sebastian Wilhelmi  <seppi@seppi.de>
152
153         * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get
154         and g_atomic_pointer_get. Add g_atomic_int_set and
155         g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES &&
156         G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them
157         as functions (additionally to the macros in the header) for the 
158         !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case.
159
160 2005-12-16  Matthias Clasen  <mclasen@redhat.com>
161
162         *  glib/gmem.c (g_allocator_new): Don't return a pointer to
163         a const struct, since apps expect to be able to modify it. 
164         (#324179, J. Ali Harlow)
165
166 Tue Dec 13 10:13:32 2005  Tim Janik  <timj@imendio.com>
167
168         * glib/gatomic.h: added g_atomic_pointer_set() and g_atomic_int_set()
169         for systems where the initialization of atomic variables requires a
170         write memory barrier.
171
172 2005-12-09  Matthias Clasen  <mclasen@redhat.com>
173
174         * configure.in: Bump version
175
176         * === Released 2.9.1 ===
177
178 2005-12-09  Alexander Larsson  <alexl@redhat.com>
179
180         * glib/glist.h: 
181         * glib/gslist.h:
182         Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
183         the whole list.
184
185 2005-12-08  Matthias Clasen  <mclasen@redhat.com>
186
187         * NEWS: Updates
188
189 2005-12-07  Martyn Russell  <martyn@imendio.com>
190
191         * glib/gasyncqueue.c:
192         - Call g_queue_insert_sorted() instead of duplicating the code.
193         - Call g_queue_sort() instead of duplicating the code.
194         - Invert sort function results to make sure the same sort function
195         gives the same results across glist, gslist, gqueue and
196         gasyncqueue.
197
198         * tests/asyncqueue-test.c:
199         - Updated the sort function to reflect the example in the
200         documentation for gasyncqueue.c.
201
202 2005-12-07  Martyn Russell  <martyn@imendio.com>
203
204         * docs/reference/glib/glib-sections.txt:
205         * docs/reference/glib/tmpl/linked_lists_double.sgml:
206         * docs/reference/glib/tmpl/linked_lists_single.sgml:
207         * glib/glist.[ch]: 
208         * glib/gslist.[ch]: 
209         - Added g_list_insert_sorted_with_data () and
210         g_slist_insert_sorted_with_data ().
211         - Removed the extra check in g_list_sort() and g_slist_sort() for
212         GCompareDataFunc vs. GCompareFunc.
213         
214 2005-12-07  Tor Lillqvist  <tml@novell.com>
215
216         * glib-gettextize.in: Look up prefix at run-time on Win32,
217         assuming the standard directory structure with glib-gettextize in
218         $prefix/bin.
219
220 2005-12-06  Matthias Clasen  <mclasen@redhat.com>
221
222         * glib/gmem.h: Exempt GTK+ from the mem chunk deprecation, since
223         we need GTK+ 2.8 to compile against GLib 2.10.
224
225 2005-12-05  Manish Singh  <yosh@gimp.org>
226
227         * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure
228         to override any user settings.
229
230 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
231
232         * configure.in: Revert an accidential commit
233
234 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
235
236         * glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)
237
238         * tests/Makefile.am (TESTS_ENVIRONMENT): 
239         * tests/gobject/Makefile.am (TESTS_ENVIRONMENT): Set
240         MALLOC_CHECK_ and MALLOC_PERTURB_
241
242         * tests/run-collate-tests.sh: Run the collation tests explicitly 
243         in en_US locale. (#320463)
244
245         * glib/gmem.h: Really deprecate GMemChunk.
246
247         * glib/gdate.c: 
248         * glib/gutils.c: 
249         * glib/gtree.c: 
250         * glib/gstring.c: 
251         * glib/giochannel.c: 
252         * glib/gstrfuncs.c: Add versioned deprecation docs. 
253
254 2005-12-05  Martyn Russell  <martyn@imendio.com>
255
256         * docs/reference/glib/glib-sections.txt:
257         * glib/gasyncqueue.[ch]:
258         - Added support for sorting async queues by with _push_sorted(),
259         _push_sorted_unlocked(), _sort() and _sort_unlocked() (#323047).
260         
261         * tests/Makefile.am:
262         * tests/asyncqueue-test.c:
263         - Added test case for gasyncqueue.c
264
265 Mon Dec  5 15:53:20 2005  Tim Janik  <timj@imendio.com>
266
267         * glib/gslice.c: implement chain walking for arbitrary ->next pointer
268         offsets in g_slice_free_chain_with_offset() based on a patch by behdad
269         in bug 323178. moved time consuming logic from g_slice_free() out of
270         the inner loop, so g_slice_free_chain_with_offset() provides a real
271         performance benefit over g_slice_free1() now.
272         
273         * glib/gslice.h: renamed g_slice_free_chain() to
274         g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
275         a type-safe macro as suggested in bug 323178.
276         simplified the macro implementation of g_slice_free() and implemented
277         it in a type safe manner for all compliers as suggested by Morten
278         Welinder <mortenw@gnome.org>.
279
280         * glib/gmain.c:
281         * glib/glist.c:
282         * glib/gslist.c:
283         * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/
284
285 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
286
287         * glib/gasyncqueue.c: Add some docs.
288
289         * tests/libmoduletestplugin_a.c: Fix compiler warnings.
290
291         * glib/gatomic.c: In the ia64 implementation, use
292         __sync builtin without _si or _di suffix.  (#321229,
293         Stanislav Brabec, patch by Andreas Schwab)
294
295 2005-12-04  Behdad Esfahbod  <behdad@gnome.org>
296
297         * glib/gslice.h: Remove comma at the end of enum.
298
299 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
300
301         Handle multiple user names with the same UID better.
302         (#319535, Laszlo Peter)
303         
304         * glib/gutils.c (g_get_any_init_do): When determining user
305         data, first look up $LOGNAME. If the UID doesn't match
306         getuid(), fall back to the current behaviour of looking
307         up the user data based on getuid().
308
309 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
310
311         * glib/gmacros.h (G_GNUC_WARN_UNUSED_RESULT): Add a macro
312         to make gcc warn if a function result is ignored.  (#145466,
313         Arjan van de Ven, Alex Larsson)
314
315         * glib/gmem.h: Add the new attribute to g_realloc and 
316         g_try_realloc.
317
318 2005-12-03  Matthias Clasen  <mclasen@redhat.com>
319
320         * glib/glib.symbols: 
321         * glib/gcache.h: Deprecate g_cache_value_foreach. (#322956,
322         Nicolas Caniart)
323
324         * glib/gmappedfile.c: Make mapping of empty files
325         work.  (#321530)
326         
327         * glib/gfileutils.c: Don't fork a new process just to 
328         fix the permissions of the created temp file.  (#321318,
329         Alexis S. L. Carvalho)
330
331 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
332
333         * README.in: Add a note about Solaris threads.
334
335         * glib/gspawn.c:
336         * configure.in: Remove support for Solaris threads. 
337         (#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)
338
339 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
340
341         * configure.in: Define G_GUINT64_CONSTANT in analogy to
342         G_GINT64_CONSTANT.  (#322568, Andrew Paprocki)
343
344 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
345
346         * glib/gslice.c: Win32 portability fixes and C99ism removal,
347         pointed out by Kazuki Iwamoto.  (#323052)
348         
349 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
350
351         * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for
352         the IA64 implementation.
353
354 Fri Dec  2 16:18:09 2005  Tim Janik  <timj@imendio.com>
355
356         * glib/gslice.c: some naming and type size fixups.
357
358 Fri Dec  2 13:08:58 2005  Tim Janik  <timj@gtk.org>
359
360         * glib/gslice.h (g_slice_free): reworked GCC-specific type-safe macro
361         variant into something less verbose, but digestible for gcc-3.4.
362
363 Fri Dec  2 10:55:07 2005  Tim Janik  <timj@imendio.com>
364
365         * tests/slice-test.c: extended to perform the benchmarking on the old
366         memchunk code if 'O' is selected.
367
368         * tests/memchunks.c: new file which contains the old GLib mem chunks
369         implementation with prefix old_mem_chunk_.
370
371         * tests/Makefile.am: added memchunks.c
372
373 Fri Dec  2 00:16:59 2005  Tim Janik  <timj@imendio.com>
374
375         * glib/gslice.c: improved gettimeofday() timer resolution by maintaining
376         acceptable load distribution of the syscall.
377         (allocator_get_magazine_threshold): reduce minimum/single-thread magazine
378         sizes to approximately page_size/2.5 to avoid excessive startup allocations.
379
380 2005-12-01  Matthias Clasen  <mclasen@redhat.com>
381
382         * tests/gobject/ifacecheck.c (test_iface_base_init): Don't
383         double-free base interface members.
384
385         * tests/Makefile.am: Remove duplicate variable.
386
387 Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>
388
389         * glib/gslice.[hc]: new slice allocator implementation.
390
391         * tests/slice-test.c: added random slice allocation test.
392
393         * glib/gthread.[hc]: removed newly added private thread mem API.
394
395         * glib/gthreadinit.h:
396         * glib/gmessages.c:
397         * glib/gthread.c:
398         * glib/gmem.c: divided glib threading initialisation into three phases,
399         initialisation where private keys and messaging are not available (only
400         needed by gmem.c), initialisation without messaging but private keys
401         available (gslice.c, gmessage.c), and full fledged initialisers that
402         server the rest of glib. initialisation functions got renamed to reflect
403         the limitations of their corresponding phases.
404
405         * glib/gmem.c: removed memchunk code, defer allocations to 
406         g_slice_* instead.
407
408         * glib/gmem.[hc]: removed g_slice_* skeletons.
409
410         * glib/glib.symbols: added g_slice_* symbols.
411
412         * configure.in: check for availability of posix_memalign(3), memalign(3)
413         and valloc(3). 
414
415         * glib/Makefile.am: added gslice.[hc].
416
417 2005-12-01  Tor Lillqvist  <tml@novell.com>
418
419         * glib/gstdio.c (g_stat): In the Win32 implementation, strip
420         trailing slash(es) for non-root folders. stat() fails if non-root
421         folders are specified with trailing slashes. It's too much hassle
422         to demand that callers strip such slashes themselves, especially
423         as it is easy to get it wrong and strip the slash of a root
424         folder.
425         (g_rename): On NT-based Windows, use MoveFileEx() with
426         MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.
427
428 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
429
430         Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
431         Andrew Paprocki)
432         
433         * configure.in: Check whether do { } while (0) works.
434
435         * glib/gmacros.h: Use do { } while (0) for G_STMT_START / 
436         G_STMT_END if it works.
437         
438 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
439
440         * glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal): 
441         * glib/gnode.c (g_node_depth_traverse_level): 
442         * glib/gmem.c (g_allocator_new): 
443         * glib/ghash.c (g_hash_table_unref, g_hash_table_destroy) 
444         (g_hash_table_foreach_remove_or_steal): Silence compiler
445         warnings.
446
447 2005-11-27  Matthias Clasen  <mclasen@redhat.com>
448
449         * glib/gunicollate.c (g_utf8_collate_key_for_filename): 
450         Don't read beyond len.  (#322520, Christian Persch)
451
452 Wed Nov 23 17:34:01 2005  Tim Janik  <timj@imendio.com>
453
454         * glib/gdataset.c: access datalist flags via atomic pointer access
455         functions, instead of acquiring the dataset lock. this is faster and
456         also matches the atomic pointer readouts in gdatalistprivate.h and
457         direct pointer modifications required by gobject.c.
458
459 Wed Nov 23 13:35:31 2005  Tim Janik  <timj@gtk.org>
460
461         * glib/gdataset.c: streamlined initialization code somewhat,
462         removed GData node cache.
463
464 2005-11-22  Matthias Clasen  <mclasen@redhat.com>
465
466         * glib/ghash.c (g_hash_table_ref): 
467         (g_hash_table_unref): Mark these as new API.
468
469         Avoid double locking in g_intern_string (#322133,
470         Benedikt Meurer)
471
472         * glib/gdataset.c (g_quark_from_string_internal): New 
473         internal function which factors out common parts of 
474         g_quark_from[_static]_string.
475         (g_quark_from_string, g_quark_from_static_string):
476         Use g_quark_from_string_internal.
477         (g_intern_string, g_intern_static_string): Use
478         g_quark_from_string_internal, and only take the
479         lock once.
480         (g_quark_new): Don't store the strings shifted by -1
481         in the g_quarks array.
482         (g_quark_to_string): Adapt to the previous change.
483
484 Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>
485
486         * glib/ghash.h: 
487         * glib/ghash.c: 
488         g_hash_table_new_full(): create hash tables with a ref count of 1.
489         g_hash_table_ref(): atomically ref_count+=1
490         g_hash_table_unref(): atomically ref_count-=1, destroys hash table
491         when refcount reaches 0.
492         g_hash_table_destroy(): just destroy keys and values, unref by 1.
493         g_hash_table_insert(): 
494         g_hash_table_replace(): assert ref_count>0.
495
496         * glib/gatomic.h: 
497         * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
498         integer pointers.
499
500 2005-11-20  Behdad Esfahbod  <behdad@gnome.org>
501
502         * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
503         variables. (#321984, Andrew Paprocki)
504
505 2005-11-18  Matthias Clasen  <mclasen@redhat.com>
506
507         * configure.in: Bump version
508
509 2005-11-17  Matthias Clasen  <mclasen@redhat.com>
510
511         * === Released 2.9.0 ===
512
513         * glib/glib.symbols: Updates
514
515         * glib/gutf8.c (g_utf8_offset_to_pointer): Add some performance
516         hints to the docs. (Paolo Borelli)
517         
518         * NEWS: Updates
519
520         * glib/gthread.c (g_thread_foreach): Mark as new api.
521
522         * README.in: Updates.
523
524         * glib/glib.symbols: 
525         * glib/gdate.h: 
526         * glib/gdate.c (g_date_set_time_t): 
527         (g_date_set_time_val): Add functions to set a date from
528         a time_t and from a GTimeVal.
529         (g_date_set_time): Deprecate.  (#314067, Roger Leigh)
530         
531         * tests/Makefile.am:
532         * tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
533         and g_utf8_offset_to_pointer.
534
535         * glib/gutf8.c (g_utf8_pointer_to_offset) 
536         (g_utf8_offset_to_pointer): Handle negative offsets, and use
537         "stutter stepping" for going backwards. (#320638, Larry
538         Ewing)
539
540         * glib/gbacktrace.c:
541         * glib/gdate.c:
542         * glib/gthread.c: const correctness fixes, found
543         by Arjan van de Ven and gcc.
544         
545 2005-11-16  Behdad Esfahbod  <behdad@gnome.org>
546
547         * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
548         @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
549
550 2005-11-09  Behdad Esfahbod  <behdad@gnome.org>
551
552         * glib/guniprop.c: Use bit hacks instead when checking a general
553         category value against multiple values.
554
555         * glib/gutf8.c: Change ISO10646 to Unicode in docs.
556
557 2005-11-10  Simos Xenitellis  <simos@gnome.org>
558
559         * configure.in: Added tt (Tatar) to ALL_LINGUAS.
560
561 2005-11-05  Tor Lillqvist  <tml@novell.com>
562
563         * glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
564         (#320688) Instead set error and return failure.
565
566 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
567
568         * glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
569         while holding the context lock.  (#320886, Andy Wingo)
570
571 2005-11-07  Billy Biggs <vektor@dumbterm.net>
572
573         * tests/refcount/Makefile.am: Add a missing reference to libglib
574         in the LDADD for this test.
575
576 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
577
578         * glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
579         nonzero value, otherwise GTK+ 2.8 breaks when compiled against
580         GLib 2.9.  (#320755, Luca Ferretti)
581
582 2005-11-04  Matthias Clasen  <mclasen@redhat.com>
583
584         * glib/Makefile.am: Apply a patch from Behdad Esfahbod to 
585         use a faster lookup table for g_unichar_get_mirror_char().
586         * glib/gmirroringtable.h: The new table.
587         * glib/gunichartables.h: Remove bidi_mirroring_table.
588         * glib/gen-unicode-tables.pl: Don't generate the mirroring
589         table.
590         * glib/glib-mirroring-tab/*: Sources for the program
591         which generated gmirroringtable.h.
592
593         * glib/glist.c: Avoid some code duplication.
594
595         * glib/gscanner.h: Include gdataset.h.  (#320322)
596
597         * glib/gdebug.h: add new GDebugFlag for fatal_criticals
598         * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
599         to help find critical warnings in applications.  (#320017,
600         Vincent Untz)
601
602 2005-11-02  Tor Lillqvist  <tml@novell.com>
603
604         * glib/glib.symbols: Remove large amount of trailing whitespace
605         from one line. Remove #ifdef G_UNDEFINED from around
606         g_hash_table_new and g_hash_table_new_full symbols, what was the
607         purpose of that? Add the g_slice functions.
608
609 Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>
610
611         * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
612         added g_slice_*() API to allocate and cache small bits of memory.
613         an actuall allocator implementation for g_slice_*() is still pending.
614
615         * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
616         changed GRealThread list to use in-structure *next; fields instead
617         of GSList, in order for thread iteration to not depenend on g_slice_*()
618         indirectly.
619         _g_thread_mem_private_get():
620         _g_thread_mem_private_set(): added accessors for private memory,
621         needed because the ordinary GPrivate implementation relies on GArray
622         and GSList and therefore indirectly on working g_slice_*() allocations.
623
624         * glib/gthread.[hc]:
625         g_thread_foreach(): new public API function to loop over all existing threads.
626
627         * glib/gdataset.c:
628         * glib/gstring.c:
629         * glib/gcache.c:
630         * glib/garray.c: 
631         * glib/gqueue.c:
632         * glib/gslist.c:
633         * glib/glist.c:
634         * glib/ghash.c:
635         * glib/gtree.c:
636         * glib/ghook.c:
637         * glib/gmain.c:
638         * glib/gnode.c:
639         removed GAllocator and free list usages and accompanying locks.
640         use g_slice_*() API to allocate and cache small bits of memory.
641
642         * glib/ghook.h: removed GMemChunk field from public API.
643
644         * glib/gslist.h:
645         * glib/glist.h: deprecate allocator API, provide _free1() for consistency.
646
647         * glib/gnode.h: deprecate allocator API.
648
649         * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
650         be used for poll rec lists.
651
652         * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
653         g_relation_destroy(): free all tuples from the all_tuples hash table,
654         this effectively maintains the life time track keeping of tuples.
655         g_relation_delete_tuple(): free tuples which are removed from the
656         all_tuples hash table. this fixes a temporary leak that was present
657         in the memchunk code until the destruction of the relation.
658
659 2005-10-29  Matthias Clasen  <mclasen@redhat.com>
660
661         * tests/convert-test.c: Add some tests for conversions between
662         UTF-8, UCS-4 and UTF-16.
663
664         * glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
665         of len == -1, noticed by Morten Welinder.
666
667 2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
668
669         * configure.in: Added ku (Kurdish) to ALL_LINGUAS
670
671 2005-10-26  Matthias Clasen  <mclasen@redhat.com>
672
673         * glib/gutf8.c (g_ucs4_to_utf8): Don't set items_read twice
674         in the error case, and add some documentation.  (#319806, Morten
675         Welinder)
676
677 2005-10-19  Manish Singh  <yosh@gimp.org>
678
679         * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
680         config.h symbol automatically. Fixes bug #313731.
681
682 2005-10-19  Tor Lillqvist  <tml@novell.com>
683
684         * glib/gwin32.c (g_win32_get_package_installation_directory):
685         Return a g_strdup()ed copy of the value stored in the hash table,
686         so that it can be g_free()d without leaving a dangling pointer in
687         the hash table. (#319232)
688
689 2005-10-06  Matthias Clasen  <mclasen@redhat.com>
690
691         * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
692         all-zero sequences correctly.  (#317930, Sebastien Bacher)
693
694 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
695
696         * glib/gmarkup.c (g_markup_escape_text): Doc addition
697
698         * Makefile.am: Add Collation tests.
699
700         * tests/collate/*: Inputs and expected outputs for collation tests.
701
702         * tests/run-collate-tests.sh: Script to run collation tests.
703
704         * tests/unicode-collate.c (main): Rework slightly to make
705         it usable in unit tests. Also test g_utf8_collate_key_for_filename().
706
707 2005-10-01  Behdad Esfahbod  <behdad@gnome.org>
708
709         * docs/reference/glib/tmpl/unicode.sgml:
710         * glib/gen-unicode-tables.pl:
711         * glib/gunibreak.h:
712         * glib/gunichartables.h:
713         * glib/gunicode.h:
714         * tests/casefold.txt:
715         * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
716         GUnicodeBreakType types.  That may break some applications, like
717         Pango <= 1.10.
718
719 2005-09-26  Matthias Clasen  <mclasen@redhat.com>
720
721         * glib/gstrfuncs.c (g_ascii_strtoull): Add details to the 
722         docs.  (#314393, Matthew F. Barnes)
723
724         * glib/glib.symbols:
725         * glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
726         they are already declared in glib.h. This doesn't break documented
727         use of gprintf.h, but should probably be pointed out in the 
728         release notes for 2.10. (#314232, Behdad Esfahbod)
729
730 Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>
731
732         * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
733         complexity optimization, based on a patch from Matthias Clasen.
734
735         * tests/patterntest.c: more tests, mostly from matthias.
736
737 2005-09-20  Matthias Clasen  <mclasen@redhat.com>
738
739         * glib/gqueue.c (g_queue_insert_sorted): Correct the docs.
740         (#316703, Mark Drago)
741
742 Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>
743
744         * glib/gpattern.c: applied a patch from matthias which checks on the
745         upper bound of GPatternSpec length to optimize matches.
746         cosmetic fixups.
747
748         * tests/patterntest.c: added more match cases.
749
750 2005-09-16  Tor Lillqvist  <tml@novell.com>
751
752         * glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
753         warning to doc comment that these functions should not be used on
754         encodings like CP932.
755
756 2005-09-14  Matthias Clasen  <mclasen@redhat.com>
757
758         * tests/keyfile-test.c: Add a test for grup names of length 1.
759
760         * glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
761         of length 1.  (#316309)
762         
763 2005-09-12  Matthias Clasen  <mclasen@redhat.com>
764
765         * glib/gmarkup.c (g_markup_escape_text): Clarify docs.
766
767 2005-09-11  Sebastian Wilhelmi  <seppi@seppi.de>
768
769         * tests/refcount/Makefile.am (INCLUDES): Link the the refcount
770         tests to the system thread library $(G_THREAD_LIBS). Fixes #313744
771         and #314217.
772
773 2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>
774
775         * glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
776         (child_watch_helper_thread): Remove some dead code. Closes
777         bug #315278.
778
779 2005-09-07  Tor Lillqvist  <tml@novell.com>
780
781         * glib/Makefile.am: Create also a console version of the
782         gspawn-win32-helper program, gspawn-win32-helper-console.exe.
783         It's otherwise identical to gspawn-win32-helper.exe, except marked
784         as a console application (linked without the -mwindows option).
785         
786         * glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
787         Drop the dont_wait parameter. Its truth value correlated 100% with
788         the NULLness of the exit_status parameter anyway, so it's enough
789         to check whether exit_status is NULL. Invert the sense of the
790         dont_return_handle parameter and rename it to do_return_handle, to
791         make the code easier to read by avoiding double negations.
792
793         (g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
794         to do_spawn_with_pipes() accordingly.
795
796         (do_spawn_with_pipes): If we have a console, use the console
797         version of the helper program, otherwise use the GUI one. This
798         avoids extra console windows opening up in some situations. (In
799         case a console application uses the GUI gspawn-win32-helper.exe to
800         spawn another console application we would get a separate console
801         for the spawned console application).
802
803         * glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
804
805 2005-09-05  Matthias Clasen  <mclasen@redhat.com>
806
807         * glib/gmappedfile.c (g_mapped_file_new): Report an error
808         if the file is too large.  (#315275, Kjartan Maraas)
809
810         * glib/gkeyfile.c (g_key_file_load_from_fd): The return value
811         of read() is signed.  (#315273, Kjartan Maraas)
812         
813 2005-08-31  Tor Lillqvist  <tml@novell.com>
814
815         * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
816         the EXE and each DLL have their own atexit function chains.
817
818         #define g_atexit as atexit instead. This means it has a
819         better chance of doing what the caller wants. For instance,
820         gtkhtml calls g_atexit() registering a function in gtkhtml
821         itself. This caused a crash when g_atexit() was implemented as a
822         function in the GLib DLL. The gtkhtml DLL was already unloaded by
823         the time the GLib DLL got unloaded.
824
825         * glib/gutils.c: #undef the #define mentioned above, to also get a
826         real g_atexit() into the DLL for backward compatibility. Document
827         the Windows behaviour of g_atexit(), and document the varying ways
828         atexit() can behave in the context of dynamically loaded modules
829         on Unix.
830
831 2005-08-31  Matthias Clasen  <mclasen@redhat.com>
832
833         * glib/glib.symbols: 
834         * glib/gquark.h: 
835         * glib/gdataset.c: Add string interning functions.
836
837 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
838
839         * glib/giochannel.c: Unify some near-duplicate strings. (#314654,
840         Clytie Siddall)
841         
842 2005-08-26  Matthias Clasen  <mclasen@redhat.com>
843
844         * configure.in: Bump version to 2.9.0
845
846 2005-08-25  Tor Lillqvist  <tml@novell.com>
847
848         Make also the g_spawn*() functions take parameters in the GLib
849         file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
850         API or ABI. Like the other GLib API that was earlier changed to
851         use UTF-8 on Windows, the names of the functions that take UTF-8
852         have _utf8 suffixes added by using preprocessor macros in the
853         header file. The old names are kept for functions with the old
854         behaviour, taking parameters in the system codepage, for DLL ABI
855         stability.
856         
857         * glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
858         g_spawn*() functions.
859         
860         * glib/gspawn-win32.c: Use wide-char API on NT-based
861         Windows. Convert parameters from UTF-8 to wide chars (NT) or
862         system codepage (Win9x) and call the C library _wspawn*() or
863         spawn*() functions respectvely. Add DLL ABI stability versions
864         that take parameters in the system codepage.
865
866         * glib/gspawn-win32-helper.c: On NT-based Windows use the
867         wide-char versions of argv and envp, and use wide-char API to
868         change directory and spawn the program to run. Remove the verbose
869         debugging output, it was too complex to modify for the wide-char
870         features. (Just add temporary debugging printouts if needed, no
871         need to have them permanently in the source.)
872
873         * glib/gspawn.c: Corresponding documentation updates.
874
875         * glib/glib.symbols: Corresponding changes: Mark the ABI stability
876         symbols as PRIVATE, add the new _utf8-suffixed ones.
877
878 2005-08-24  Stepan Kasal  <kasal@ucw.cz>
879
880         * glib/gtypes.h (G_MININT64): Cast the constant to gint64; it is
881         guint64 otherwise and that can produce warnings about comparison
882         between signed and unsigned.
883
884 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
885
886         * glib/gutils.c: Fix the crt_externs.h include.
887
888 2005-08-23  Stepan Kasal  <kasal@ucw.cz>
889
890         * NEWS: Fix spelling of my first name.
891
892 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
893
894         * Bump version
895
896         * === Released 2.8.1 ===
897
898         * NEWS: Updates
899
900 2005-08-20  Hans Breuer  <hans@breuer.org>
901
902         * glib/makefile.msc.in : link with ws2_32.lib
903
904 2005-08-18  Tor Lillqvist  <tml@novell.com>
905
906         * configure.in: Check for <sys/wait.h>
907
908         * glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
909
910 2005-08-18  Ross Burton  <ross@burtonini.com>
911
912         * glib/gstring.c:
913         Optimise single-character insertions.
914         
915         * glib/gutf8.c:
916         Note copied code.
917         
918         * tests/string-test.c:
919         Add tests for new optimisation, and fix a leak.
920
921 2005-08-17  Matthias Clasen  <mclasen@redhat.com>
922
923         * configure.in: Check for crt_externs.h and _NSGetEnviron.
924
925         * glib/gutils.c: On Darwin, include crt-externs.h and
926         define environ using _NSGetEnviron().  (#313731)
927
928 2005-08-16  Stepan Kasal  <kasal@ucw.cz>
929
930         * glib/gutils.c (g_get_any_init): Move the body of the big if...
931         (g_get_any_init_do): ... to this new function.
932         (g_get_any_init): Declare as inline.
933         (g_get_any_init_locked): New inline function, does the locking.
934         Make use of these two throughout the code.
935
936 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
937
938         * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
939         the child process and then simply return. This makes 
940         The "S" option work as documented in g_on_error_query().
941         (#313125, Matthew F. Barnes)
942
943         * glib/gunicode.h: Update the link to Unicode category
944         values.  (#313369, Behnam Esfahbod)
945
946         * glib/gqueue.c (g_queue_find_custom): Clarify docs
947         a little.  (#311727, Tristan van Berkom)
948
949         * glib/abicheck.sh, gobject/abicheck.sh: Make the 
950         check work on ia64 too, where some symbols ended up 
951         in yet another section.
952