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