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