2007-05-17 Matthias Clasen <mclasen@redhat.com>
* configure.in: Move the compiler-dependency in the G_GNUC_INTERNAL
definition from configure-time to runtime (of the compiler).
(#438869, Damien Carbery)
* glib/gdebug.h:
* glib/gmessages.h:
* glib/gunicodeprivate.h:
* glib/gthreadprivate.h: Move G_GNUC_INTERNAL before function
declarations to fix compilation with sun studio. (#438873,
Damien Carbery)
svn path=/trunk/; revision=5497
2007-05-13 Tor Lillqvist <tml@novell.com>
* glib/gwin32.h: Drop the pipe() macro. Defining macros outside of
its namespace that look like POSIX functions is not GLib's
business in my opinion. This means pipe()-using code that has
relied on this definition will need changing to call _pipe() on
Windows, and make the decision itself on what size pipe buffer to
use, and whether to use text or binary mode, and whether the pipe
handles should be inheritable or not.
* glib/gspawn-win32.c (make_pipe): Use _pipe() instead of pipe().
svn path=/trunk/; revision=5490
2007-05-11 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c: Allow G_OPTION_ARG_CALLBACK for
G_OPTION_REMAINING. (#437297, Dave Benson)
* tests/option-test.c: Add a test for this.
svn path=/trunk/; revision=5487
2007-05-02 Marco Barisione <marco@barisione.org>
* glib/gregex.c: Made more clear that the string passed to the match
functions cannot be freed before using g_match_info_fetch() and
similar functions, and fixed a typo.
svn path=/trunk/; revision=5474
2007-04-30 Chris Wilson <chris@chris-wilson.co.uk>
* glib/gbookmarkfile.c (g_bookmark_file_get_app_info):
Include the gshell.h header file (to define g_shell_[un]quote)
and correct the order of the arguments to g_propagate_error(), as
spotted by gcc.
svn path=/trunk/; revision=5467
2007-04-29 Emmanuele Bassi <ebassi@gnome.org>
* glib/gbookmarkfile.c:
(g_bookmark_file_set_app_info): Quote the passed command line...
(g_bookmark_file_get_app_info): ... and unquote it when giving it
back. (#432274)
svn path=/trunk/; revision=5466
2007-04-27 Tor Lillqvist <tml@novell.com>
* glib/gstdio.c (g_mkdir): Document that the mode argument is
ignored on Windows
(g_stat): Document that st_mode is mostly useless on Windows.
svn path=/trunk/; revision=5463
2007-04-25 Michael Natterer <mitch@imendio.com>
* gparamspecs.c (param_string_validate): also clear the
NOCOPY_CONTENTS flag when replacing NULL with the empty string.
svn path=/trunk/; revision=5458
2007-04-24 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/goption.h:
* glib/goption.c (g_option_context_get_help): New function to
get the formatted help string. (#336089, Dom Lachowicz)
svn path=/trunk/; revision=5456
2007-04-24 Michael Natterer <mitch@imendio.com>
* gobject/gparamspecs.c (param_string_validate): don't free or
modify static strings, dup them when needed and clear the
G_VALUE_NOCOPY_CONTENTS flag. Fixes bug #432895.
* tests/gobject/paramspec-test.c: test all GParamSpecString
validations with static and allocated strings.
svn path=/trunk/; revision=5454
2007-04-19 William Jon McCann <mccann@jhu.edu>
* glib/gkeyfile.[ch]: (find_file_in_data_dirs),
(g_key_file_load_from_dirs), (g_key_file_load_from_data_dirs):
Add g_key_file_load_from_dirs for looking through a search
path for a key-file. (#355334)
svn path=/trunk/; revision=5453
2007-04-11 Emmanuele Bassi <ebassi@gnome.org>
* glib/ghash.[ch]: Add g_hash_table_get_keys() and
g_hash_table_get_values(), API to retrieve the keys
and values inside an hash table in list form. (#413133)
* glib/glib.symbols: Update symbols.
* tests/hash-test.c: Exercise newly added functions.
svn path=/trunk/; revision=5444
2007-04-11 Matthias Clasen <mclasen@redhat.com>
* configure.in: Use CFLAGS/LDFLAGS in addition to
PCRE_CFLAGS/PCRE_LIBS when checking system PCRE. (#421607,
Paul Jarc)
svn path=/trunk/; revision=5443
2007-03-22 Chris Wilson <chris@chris-wilson.co.uk>
* glib/gkeyfile.c: Track whether the last key=value pair in a group
is a blank line and during to_data() only insert a new blank line
betweens group in its absence. This allows the beautification of the
GKeyFile and prevents newlines being inserted indefinitely. (#420686)
* tests/keyfile-test.c (test_reload_idempotency): Test that after a
single beautification pass, g_key_file_to_data() does not alter its
input data.
svn path=/trunk/; revision=5431
2007-03-17 Marco Barisione <marco@barisione.org>
* glib/update-pcre/table-reduction.patch:
* glib/update-pcre/make_utt.py:
* glib/update-pcre/utt.patch: Add forgotten files
* glib/update-pcre/update.sh: Call python directly instead of relying
on shebang. Also copy the changes from glib/pcre/makefile.msc to this
file
svn path=/trunk/; revision=5425
2007-03-17 Hans Breuer <hans@breuer.org>
* glib/makefile.msc.in glib/pcre/makefile.msc
glib/update-pcre/update.sh : define PCRE_STATIC to reflect the
inclusion of pcre as LIB, not stand-alone DLL. Also set NEWLINE=-1
to match any newline by default, use of ../../build/win32/make.msc
* glib/gregex.h : minimal includes of <glib/*.H> instead of <glib.h>
* glib/gnulib/makefile.msc : make use of ../../build/win32/make.msc
* tests/regex-test.c(verbose): don't pass a string containing '%'
as first parameter to g_print ()
(test_match) : for the unexpected case output pattern and string
escaped
* tests/child-test.c tests/slice-color.c : fix c99ism
* tests/slice-test.c : fix c99ism and gccism
* tests/mapping-test.c tests/base-64-tests.c : don't
#include <unistd.h> unconditionally
* tests/option-test.c : use G_GINT64_CONSTANT() instead of direct LL
* tests/makefile.msc.in : more tests build
svn path=/trunk/; revision=5423
2007-03-16 Matthias Clasen <mclasen@redhat.com>
* glib/gbase64.c (g_base64_decode): Warn if the input
is too short. (#418862, Halton Huo)
svn path=/trunk/; revision=5417
Fri Mar 16 11:24:51 2007 Tim Janik <timj@imendio.com>
* glib/gscanner.[hc]: reverted premature commit which broke
GScanner ABI and API, #415323.
svn path=/trunk/; revision=5415
2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
* glib/gkeyfile.c: Convert to GSlice and check for redundant
clears. (#418637)
svn path=/trunk/; revision=5413
2007-03-15 Matthias Clasen <mclasen@redhat.com>
* glib/gscanner.c (g_scanner_get_token_ll): Fix a typo
in the last commit. (#415323, Richard Hult)
svn path=/trunk/; revision=5412
2007-03-15 Tor Lillqvist <tml@novell.com>
* glib/gnulib/Makefile.am (INCLUDES): Add -I$(top_srcdir)/glib so
that gregex.h finds <glib.h>.
* glib/update-pcre/Makefille.am-1: Add -DGLIB_COMPILATION so that
we don't think g_ascii_table is dllimport.
* glib/pcre/Makefile.am: Corresponding change.
* glib/update-pcre/notdll.patch: New file. Drop
dllimport/dllexport magic for the pcre symbols.
* glib/update-pcre/Makefile.am: Dist it.
* glib/update-pcre/update.sh: Apply notdll.patch.
* glib/pcre/pcre.h: Corresponding change.
2007-03-15 Tor Lillqvist <tml@novell.com>
* glib/gtypes.h: Add comment to avoid misleading people with the
large number of digits in G_PI etc. (#404338)
svn path=/trunk/; revision=5410
2007-03-15 Chris Wilson <chris@chris-wilson.co.uk>
* glib/gmain.c (g_main_dispatch): Replace a
g_slist_prepend/g_slist_remove pair with an on-stack link
and open coding. (#416094)
svn path=/trunk/; revision=5407
2007-03-15 Matthias Clasen <mclasen@redhat.com>
* glib/gscanner.[hc]: Some optimizations, use a lookup
table for character classes, pre-allocate GStrings with
reasonable sizes. (#415323, Charlie Brej)
svn path=/trunk/; revision=5405
2007-03-06 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c (g_key_file_parse_value_as_boolean):
Remove a NULL check that didn't do any good. (#360904,
Paolo Borelli)
svn path=/trunk/; revision=5375
2007-03-06 Matthias Clasen <mclasen@redhat.com>
* glib/gmarkup.c (g_markup_parse_context_parse): Report
more accurate position for invalid UTF-8. (#350802,
Simon Budig)
svn path=/trunk/; revision=5373
2007-03-06 Matthias Clasen <mclasen@redhat.com>
Work with Solaris gettext (#341988, Laszlo Peter)
* m4macros/glib-gettext.m4: Make GLIB_WITH_NLS define
MSGFMT_OPTS if msgfmt supports -c.
* po/Makefile.in.in: Use MSGFMT_OPTS when calling
msgfmt.
svn path=/trunk/; revision=5369
2007-03-06 Matthias Clasen <mclasen@Redhat.com>
* tests/Makefile.am: Apply a patch by Loïc Minier
to fix building with -Wl,-z,defs. (#149144)
svn path=/trunk/; revision=5367
2007-02-17 Tor Lillqvist <tml@novell.com>
* glib/gdate.c (win32_strftime_helper): New Win32-only
function. Use the wide character Win32 API to do the work of
strftime(): GetThreadLocale(), GetLocaleInfoW(), GetDateFormatW()
and GetTimeFormatW().
(g_date_strftime): On Windows use win32_strftime_helper()
instead of strftime() to avoid codepage issues with strftime().
Unfortunately using wcsftime() would not help either. (#404832)
svn path=/trunk/; revision=5339
2007-02-16 Soren Sandmann <sandmann@redhat.com>
* tests/sequence-test.c: For move, test moving between two
sequences. Add test for swap.
* glib/gsequence.c: Replace splay tree with a treap.
(check_node): Add checks for the treap invariants.
svn path=/trunk/; revision=5337
Fri Feb 9 17:46:18 2007 Søren Sandmann <sandmann@redhat.com>
* glib/gsequence.c (g_sequence_get_end_iter): Remove assertion.
* glib/gsequence.c (is_end): Return TRUE if the iter doesn't have
a parent.
* glib/gsequence.c: Fix grammar of comment.
* glib/gsequence.c (node_update_fields): Use a temporary variable
for the n_nodes.
svn path=/trunk/; revision=5331
2007-02-07 Soren Sandmann <sandmann@daimi.au.dk>
* tests/sequence-test.c (compare_items): Force an arbitrary order
on otherwise identical items.
* glib/gsequence.c: Add comment discussing splay trees vs. other trees.
* glib/gsequence.c (is_end): Add fast path for the common case
when the node is not actually the end node.
svn path=/trunk/; revision=5328
2007-02-03 Soren Sandmann <sandmann@daimi.au.dk>
* glib/gsequence.c (struct _GSequence): Add a new 'real_sequence'
field.
(g_sequence_new): Initialize real_sequence to the sequence
(g_sequence_sort_iter): Set real_sequence of the temporary
sequence to the real sequence.
(g_sequence_sort_changed_iter): Same
(g_sequence_insert_sorted_iter): Same
(g_sequence_search_iter): Same
(g_sequence_iter_get_sequence): Return real_sequence
* tests/sequence-test.c (compare_iters): Insert assertions that
the iters point to the sequence being manipulated.
svn path=/trunk/; revision=5323
2007-02-03 Soren Sandmann <sandmann@daimi.au.dk>
* glib/gsequence.[ch]: New files implementing GSequence, a list
implemented using a binary tree.
* glib/glib.h, glib/glib.symbols: Update for GSequence.
* docs/reference: Add documentation for GSequence
* tests: Add sequence-test.c, a thorough test of all of
the GSequence API.
svn path=/trunk/; revision=5322
2007-01-30 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gslice.h:
* glib/gslice.c: Don't make ABI depend on G_ENABLE_DEBUG,
just add an empty g_slice_debug_tree_statistics () implementation
in the !G_ENABLE_DEBUG case.
svn path=/trunk/; revision=5318
2007-01-26 Matthias Clasen <mclasen@redhat.com>
* configure.in: Define G_GNUC_INTERNAL for Sun Studio
as __hidden. (#342981, Brian Cameron)
* glib/gconvert.c:
* glib/gutf8.c: Move G_GNUC_INTERNAL uses to the right
spot.
2
svn path=/trunk/; revision=5317
2007-01-26 Matthias Clasen <mclasen@redhat.com>
* gmem.c:
* gslice.c:
* gmessages.c:
* gutils.c: Make some structs which are used only once
non-static.
svn path=/trunk/; revision=5316
2007-01-23 Matthias Clasen <mclasen@redhat.com>
* glib/gutf8.c (g_utf8_get_char_validated): Clarify
the behaviour is max_len is zero. (#400044,
Benjamin Dauvergne)
svn path=/trunk/; revision=5311
2007-01-23 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c (print_help): Use bitwise &
when operating on flags. (#399971, Jon Oberheide)
svn path=/trunk/; revision=5308
2007-01-17 Tor Lillqvist <tml@novell.com>
* config.h.win32.in
* glib/galloca.h
* glib/gbacktrace.h
* glib/gwin32.c
* glibconfig.h.win32.in
* README.win32: More minor tweaks for Digital Mars
compiler. (#346808, Serhat Sevki Dincer)
svn path=/trunk/; revision=5294
2007-01-17 Tor Lillqvist <tml@novell.com>
* glib-zip.in: DLLs are always installed in "bin" with current
libtool, drop unnecessary logic to check where they are. Include
also the COPYING file.
svn path=/trunk/; revision=5287
2007-01-17 Tor Lillqvist <tml@novell.com>
* glib/galloca.h: Use <malloc.h> also with Digital Mars compiler
on Win32. (#346808, Serhat Sevki Dincer)
svn path=/trunk/; revision=5285
2007-01-16 Matthias Clasen <mclasen@redhat.com>
* glib/gthread.h:
* glib/gthread.c:
* glib/glib.symbols: Revert an accidental ABI break by
moving gettime out of the GThreadFunctions struct and making
it a separate variable. (#397139, Joe Marcus Clarke)
* gthread/*.c: Adapt.
svn path=/trunk/; revision=5279
2007-01-16 Tor Lillqvist <tml@novell.com>
* glib/gthread.c (gettime)
* gthread-win32.c (g_gettime_win32_impl):
GetSystemTimeAsFileTime() returns 100s of nanoseconds since 1601,
so offset to Unix epoch (1970) and multiply by 100 to get
nanoseconds which is what we want.
svn path=/trunk/; revision=5277
2007-01-16 Tor Lillqvist <tml@novell.com>
* glib/gthread.c (gettime)
* gthread-win32.c (g_gettime_win32_impl):
GetSystemTimeAsFileTime() returns 100s of nanoseconds, so multiply
by 100 to get nanoseconds which is what we want.
svn path=/trunk/; revision=5276
2005-01-15 Matthias Clasen <mclasen@redhat.com>
* glib/gthread.c:
* gthread/gthread-posix.c: Correct the gettime calculations
once more. (#395203, Chris Wilson)
svn path=/trunk/; revision=5262
2007-01-15 Tor Lillqvist <tml@novell.com>
* glib/gmain.h (struct _GPollFD): Prepare for potential Win64
build: Use gint64 for the fd field on Win64, as we want to be able
to store a HANDLE in it. (#395422) (Other changes will surely also
be necessary when building on Win64, at least in gwin32.c.)
svn path=/trunk/; revision=5260
2007-01-15 Tor Lillqvist <tml@novell.com>
* glib/gwin32.c (g_win32_getlocale): Simplify greatly. Instead of
hardcoding a large switch statement, just ask Windows for the
ISO639 and ISO3166 codes. Tack on @Latn or @Cyrl for those
languages which can alternatively be written in Latin or Cyrillic.
svn path=/trunk/; revision=5257
2007-01-12 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Rework the handling of invalid
keys/groups again. We are back to being liberal about
what we accept, and only reject things that would lead
to non-rereadable keyfiles.
* tests/keyfile-test.c: Adapt tests.
svn path=/trunk/; revision=5254
2007-01-12 Matthias Clasen <mclasen@redhat.com>
* configure.in: Make G_GNUC_INTERNAL a no-op for
gcc 2.95. (#329031, David Schleef, Marc Brockschmidt)
svn path=/trunk/; revision=5245
2007-01-12 Matthias Clasen <mclasen@redhat.com>
* gthread/gthread-posix.c:
* glib/gtimer.c:
* glib/gthread.c: Fix errors in the recently moved
time calculations. (#395203, Chris Wilson)
svn path=/trunk/; revision=5244
2007-01-09 Behdad Esfahbod <behdad@gnome.org>
* glib/gutils.h: Use a more optimized g_bit_storage() when gcc is
available. (#371670, Daniel Elstner)
svn path=/trunk/; revision=5234
2007-01-07 Matthias Clasen <mclasen@redhat.com>
Don't link glib against libpthread. (#393812)
* configure.in: Link gthread against librt, not glib itself.
* glib/gthread.h:
* glib/gthread.c: Add a new thread function, gettime.
* glib/gtimer.c: Use gettime instead of directly working with
the various system interfaces.
* gthread/gthread-impl.c:
* gthread/gthread-posix.c:
* gthread/gthread-win32.c: Implement gettime.
svn path=/trunk/; revision=5227
2007-01-07 Tor Lillqvist <tml@novell.com>
* glib/giowin32.c: Handle GIOChannels for file descriptors
connected to the console separately. This would typically be the
fd 0, 1, or 2 (if not redirected) in a console application. For
such fds we don't need a separate thread, as console HANDLEs are
waitable objects. (#359202, Michiel de Hoon)
svn path=/trunk/; revision=5222
2007-01-03 Behdad Esfahbod <behdad@gnome.org>
* glib/goption.c (_g_unichar_get_width), (_g_utf8_strwidth),
(calculate_max_length), (print_entry), (print_help): Take zerowidth
and double-width chars into consideration when computing width of a
string. Also fix another bug in width computation.
* glib/guniprop.c (g_unichar_iszerowidth): Fix typo. It was not
working correctly.
svn path=/trunk/; revision=5204
2007-01-03 Behdad Esfahbod <behdad@gnome.org>
* glib/gutils.h: Fix bug in g_bit_nth_lsf (#371631) and use
__builtin_clzl for g_bit_storage if available (#371670).
* tests/Makefile.am:
* tests/bit-test.c: New test, to test g_bit_* operations against
naive and builtin implementations.
svn path=/trunk/; revision=5200
2007-01-02 Emmanuele Bassi <ebassi@gnome.org>
* glib/gbookmarkfile.c (expand_exec_line): Add support for
expanding the desktop entry spec variables %U (list of URIs)
and %F (list of filenames), so that using the command line
from the Exec and TryExec key of a desktop entry file works
as intended.
svn path=/trunk/; revision=5196
2007-01-02 Matthias Clasen <mclasen@redhat.com>
* glib/gbookmarkfile.c (g_bookmark_file_get_app_info):
Return an error if the uri is bad. (#391370, Maciej Piechotka)
svn path=/trunk/; revision=5192
2007-01-02 Michael Natterer <mitch@imendio.com>
* configure.in
* Makefile.am: remove references to build/ until a proper decision
has been made what to do with it.
svn path=/trunk/; revision=5189
Fri Dec 29 13:28:07 2006 Tim Janik <timj@imendio.com>
* glib/gslice.c: turned detection of too late g_thread_init() calls
into a warning. this is a temporary work-around for some head-room
to fix affected programs, memory corruption still occours regardless.
Thu Dec 28 21:14:45 2006 Tim Janik <timj@imendio.com>
* glib/gslice.c: removed pthread-dependant debugging bits, the code
was already converted to GMutex. this obsoletes Tor's recent fixups.
2006-12-28 Tor Lillqvist <tml@novell.com>
* glib/gmessages.c (g_logv): On Win32, if we get a fatal error
message while being debugged we break into the debugger with
G_BREAKPOINT(). Don't call abort() if the user is foolhardy enough
to continue after the breakpoint. The user presumably knows what
he is doing and deserves what he gets. (#376645, Andreas Köhler)
Thu Dec 28 12:50:31 2006 Tim Janik <timj@imendio.com>
* glib/gslice.h, glib/gslice.c: implemented static debugging
hash-tree to validate slice adresses and sizes with G_SLICE=debug-blocks.
use abort() to exit in mem_error() to allow catching of these in gdb.
abort programs with a descriptive error message if g_thread_init() is
called after GSlice was in use. previously this just silently corrupted
the magazines.
* glib/ghash.c (struct _GHashNode): reordered fields to keep 8-byte
pointer alignment on 64bit systems and request smaller slice sizes
on 32bit systems.
* tests/slice-test.c: support '~' option flag to introduce slice
allocation/release corruption with a significant probability. this
allowes testing of G_SLICE=debug-blocks.
2006-12-27 Ryan Lortie <desrt@desrt.ca>
* glib/ghash.c: cache the value of the hash function
in the GHashNode. this speeds up resizing the hash
table and it also allows a slight optimisation on
lookups. (#388332)
2006-12-24 Matthias Clasen <mclasen@redhat.com>
* tests/run-collate-tests.sh:
* tests/unicode-collate.c: Silently skip tests if
we can't set LC_COLLATE to en_US. (#336438)
2006-12-19 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c (g_key_file_is_key_name): Accept
'/', '+' and '.' in key names, since gnome-vfs uses
mime types as keys in some cache.
2
* glib/gmain.c (child_watch_helper_thread): Readd a
return which was removed as dead code a while ago.
icc may consider it dead, but gcc doesn't like non-void
functions without a return... (#354707)
2006-12-18 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Tighten up the check for allowed
key and group names. (#343191, Tommi Komulainen)
* tests/keyfile-test.c: Test handling of key and group names.