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