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