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