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