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