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