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