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