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