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