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