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