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