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