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