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