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