Commit Graph

4805 Commits

Author SHA1 Message Date
James Turner
690d6b97f8 g_atomic_int_get, g_atomic_pointer_get: accept const arguments
https://bugzilla.gnome.org/show_bug.cgi?id=697386
2013-04-08 14:15:22 +02:00
Antoine Jacoutot
aba02c5248 simpler regex match on the shebang
The previous pattern didn't match on traditional non-GNU sed(1).
https://bugzilla.gnome.org/show_bug.cgi?id=696629
2013-04-07 09:09:59 +02:00
Jesse van den Kieboom
fb1ad873a6 GDateTime to GTimeZone in opaque structure doc 2013-04-05 08:01:17 +02:00
Cosimo Cecchi
3b4c9f5fcc gversionmacros: fix a typo 2013-04-04 13:15:00 -04:00
Colin Walters
d1bbab5689 gmacros: Mark G_UNAVAILABLE() functions as deprecated (gcc <= 4.4)
RHEL6 ships with GCC 4.4 by default, which doesn't understand the
nicer deprecated attribute that takes a message.  However, we can at
least fall back to the old G_DEPRECATED, rather than silently doing
nothing.

This gives me warning messages when building OSTree on RHEL6 when I
accidentally added a usage of g_unix_fd_source_new().

https://bugzilla.gnome.org/show_bug.cgi?id=697160
2013-04-03 00:33:45 -04:00
Colin Walters
e359130e3e ghash: Suppress -Wmaybe-uninitialized from GCC 4.4
It's not clever enough to figure out that these are always initialized
in code paths that use them.

Reviewed-By: Benjamin Otte <otte@gnome.org>
2013-04-02 14:14:42 -04:00
Ryan Lortie
e1fdd59f08 Add GLib 2.38 version macros 2013-04-01 16:53:53 -04:00
Murray Cumming
e4eaa14a8e Corrected a GLIB_AVAILABLE_IN_* 2013-03-21 13:11:03 +01:00
Ryan Lortie
a8939a67de tests: remove a pair of testcases that fail in en_CA
These testcases don't work with the Canadian date format, so remove
them.
2013-03-18 22:57:55 -04:00
Christian Persch
9863cce079 goption: g_option_context_new allows NULL for parameter_string 2013-03-18 14:11:05 +01:00
Matthias Clasen
5825dd864b g_hash_table_get_keys: Improve docs slightly
https://bugzilla.gnome.org/show_bug.cgi?id=630284
2013-03-17 23:30:34 -04:00
David King
0a13464df8 docs: Elaborate replacement for g_strncasecmp
https://bugzilla.gnome.org/show_bug.cgi?id=568405
2013-03-17 22:58:03 -04:00
David Schleef
9a08d81b0d Add warning to g_base64_decode()
https://bugzilla.gnome.org/show_bug.cgi?id=696015
2013-03-17 22:48:53 -04:00
Stephan Bergmann
255c65f83c gmacros: Ensure GUINT32/64_SWAP_LE_BE macros parenthesize arguments
Like all macros, we need to parenthesize arguments to ensure the order
of operations is correct.

See the mail thread starting at
<http://lists.fedoraproject.org/pipermail/devel/2013-March/180302.html>
"GCC produced wrong code in gvfs-1.14.2-3.fc18.x86_64" for how this
caused trouble with GVFS (which in turn caused trouble with
LibreOffice, where running "soffice sftp://.../.../test.odt" to access
an .odt file via GVFS failed to properly type-detect that file as a
Writer document and produced bogus error messages about the file being
broken).

https://bugzilla.gnome.org/show_bug.cgi?id=695925
2013-03-15 12:51:49 -04:00
Ryan Lortie
e359bc09c2 tests: clean up for Unicode corrigendum #9
Unicode corrigendum #9 spells out in no uncertain terms that on
conversion interfaces we should not reject characters like U+FFFE and
U+FFFF which we were doing before.

Commit f91ef4ef15 started accepting these
characters, but we had some testcases that were checking that strings
containing these characters should be rejected.

Update the tests.

https://bugzilla.gnome.org/show_bug.cgi?id=694669
2013-03-12 12:46:18 -04:00
Behdad Esfahbod
f67a9905ff [win32] Remove MemoryBarrier() fallback implementation
I added these because the older mingw32 toolchain didn't have
MemoryBarrier().  The newer mingw-w64 toolchain however has.
As reported by John Emmas this was causing build failure with
MSVC because of inline issues.  But that reminded me that we
may be taking this path even if the system implements
MemoryBarrier as a function, which is a waste.  So, just remove
it.
2013-03-07 20:21:12 -05:00
Christian Persch
f91ef4ef15 unicode: Allow noncharacters
Implement unicode corrigendum #9.

https://bugzilla.gnome.org/show_bug.cgi?id=694669
2013-03-05 17:27:53 +01:00
Ognyan Tonchev
06a59f889a base64: Fix g_base64_decode_step ()
Do not produce invalid data if there was padding character in the
previous sequence.

https://bugzilla.gnome.org/show_bug.cgi?id=694843
2013-03-05 10:55:29 -05:00
Colin Walters
27b19cee1b base64: Add tests for incremental decoding with very small block size
At the moment, sizes 1-3 are commented out since they fail, but
a future patch will fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=694843
2013-03-05 10:55:21 -05:00
Matthias Clasen
14768e97f8 Make GList more robust
g_list_delete_link was silently ignoring a NULL link before
the last change. Make it do so again, since we've found callers
that rely on this.
2013-03-01 19:11:11 -05:00
Chun-wei Fan
c7996825ce Fix gspawn-win32-helper.c with newer Microsoft CRTs
The newer Microsoft CRTs (8.0/2005 and later) impose much stricter
(paranoid) checks on close() being doubly called and the use of
invalid file descriptors.  This makes the calls on the file descriptors
use more caution when using them and only call close() when necessary.

This also adds an (empty) invalid parameter handler* as required by the
newer Microsoft CRTs to prevent the system from aborting the process
when we are checking whether a file descriptor is valid.

[*]: http://msdn.microsoft.com/en-us/library/a9yf33zb.aspx

https://bugzilla.gnome.org/show_bug.cgi?id=693646
2013-03-01 16:12:37 +08:00
Colin Walters
156b14cde5 build: Add --disable-compile-warnings
Some (broken) toolchains for example trip up
-Werror=missing-prototypes in system headers.  This patch allows
people to skip the formerly hardcoded "baseline" warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=694757
2013-02-27 08:34:01 -05:00
Behdad Esfahbod
e3582c617c Minor 2013-02-25 23:08:43 -05:00
Behdad Esfahbod
e1ccae8416 [win32] Add fallback implementations for gatomic.c on mingw32
Bug 682896 - glib doesn't build on mingw32
2013-02-25 22:11:30 -05:00
Matthias Clasen
921593b022 GList: be more robust
We can detect list corruption in some cases. The new test case
demonstrates a case where we can warn instead of silently corrupt
the list. This was pointed out by Steve Grubb.

Also, use the same auxiliary routine in all places where we unlink
a list element.
2013-02-24 22:56:35 +01:00
Dan Winship
6833267a07 gtestutils: fix two GLIB_AVAILABLE flags
g_test_expect_message() and g_test_assert_expected_messages() appeared
in 2.34
2013-02-24 15:02:57 +01:00
Ryan Lortie
ce0ff7c9da threads: don't do rlimit test when running as root
Linux CAP_SYS_RESOURCE overrides RLIMIT_NPROC so we probably shouldn't
test thread creation failure when running the test as root...
2013-02-21 10:19:27 +00:00
Ryan Lortie
cfafad5aef gutils: stop g_get_home_dir() from reading passwd
In the case that the "HOME" environment variable is set (as it is under
normal circumstances), we don't really need to be opening /etc/passwd.

For historical reasons (ie: how we used to ignore $HOME) and due to the
grouping of many unrelated things together (reading username, hostname,
home directory, tmpdir, etc.) into one function we were still opening
/etc/passwd in g_get_home_dir(), even if $HOME was set.

Since earlier commits removed code from it, all that remains in
g_get_any_init_do() is the logic for dealing with $HOME and reading the
password database.

We now split the logic to deal with $HOME into g_get_home_dir().  With
only the password database functionality remaining, g_get_any_init_do()
is renamed to g_get_user_database_entry() and modified not to set global
variables but rather return a struct.  If g_get_home_dir() cannot find
$HOME, it falls back to calling g_get_user_database_entry() and using
the home directory from there.

Use of the 'g_utils_global' lock is further reduced by using
g_once_init_enter() to protect the critical sections in each of
g_get_user_database_entry() and g_get_home_dir().

Finally, the g_get_user_name() and g_get_real_name() functions are
modified to use the new regime.

https://bugzilla.gnome.org/show_bug.cgi?id=693204
2013-02-20 11:09:30 +00:00
Ryan Lortie
167c73faf4 gutils: replace direct references to g_home_dir
Some code was directly calling g_get_any_init() and then expecting to be
able to use the static 'g_home_dir' variable directly.  Change these
over to g_get_home_dir() instead.

https://bugzilla.gnome.org/show_bug.cgi?id=693204
2013-02-20 11:09:29 +00:00
Ryan Lortie
9879c7f5fa gutils: split out g_get_tmp_dir()
Remove the code for getting the tmpdir from g_get_any_init_do() and
outside of the g_utils_global lock.

https://bugzilla.gnome.org/show_bug.cgi?id=693204
2013-02-20 11:09:29 +00:00
Ryan Lortie
3c9691f7f8 gutils: split out g_get_host_name()
Remove the code for getting the hostname from g_get_any_init_do() and
outside of the g_utils_global lock.

https://bugzilla.gnome.org/show_bug.cgi?id=693204
2013-02-20 11:09:29 +00:00
Ryan Lortie
8c42a663f8 win32: Drop old codepage ABI from gutils.c
This is a source-compatible change and only breaks ABI with respect to
truly ancient binaries (and those binaries are already broken for other
reasons).

Back in the day, functions like g_get_user_name() used to return strings
in the system codepage instead of utf8 (as they do today).

It was decided at some point to change these functions to return utf8,
breaking source compatibility but keeping ABI compatibility.  This was
done by exporting new symbols with names like g_get_user_name_utf8() and
using a #define of the old name over to the new name (so that newly
compiled code would link against the _utf8 version, but old binaries
would continue to use the non-utf8 variant).

Meanwhile, glib has undergone several ABI breaks on Windows since, so
those old binaries don't work anymore.

Start to clean up this mess by removing the #define renaming.  New
binaries calling g_get_user_name() will now link against
g_get_user_name() and it will return utf8.

We must keep the functions like g_get_user_name_utf8() for binary
compatibility with recently built programs (ie: ones built with the
renaming).  Nobody should have ever been calling these directly and of
course they can return utf8, so just add them as internal wrappers in the
.c file and declare them _GLIB_EXTERN there.

One day, if we feel like breaking Windows ABI again, we can finish the
cleanup by dropping the wrappers.  There is some talk of introducing
something like 'ABI compatible for two years' and this change would be
compatible with such a regime.

https://bugzilla.gnome.org/show_bug.cgi?id=693204
2013-02-20 11:09:29 +00:00
Matthias Clasen
7788bb3a91 Make G_IO_FLAG_IS_WRITEABLE and enum value
Having it as a define was causing some problems for bindings.
https://bugzilla.gnome.org/show_bug.cgi?id=657045
2013-02-04 22:46:24 -05:00
Víctor Manuel Jáquez Leal
6b3ec82732 Compile private test with -pthread on UNIX
The commit f5f151cb removed this linkage, which is needed,
at least for the toolchain gcc version 4.7.2 (Debian 4.7.2-5)

https://bugzilla.gnome.org/show_bug.cgi?id=693105
2013-02-03 23:59:21 +01:00
Matthias Clasen
f802f467a5 Avoid a portability problem in the checksum test
String literals are not guaranteed to work like this.
https://bugzilla.gnome.org/show_bug.cgi?id=570572
2013-02-03 09:50:48 -05:00
Matthias Clasen
abbb54cdd6 Fix deprecation note for g_static_mutex_free
It should point at g_mutex_clear, not g_mutex_free.
https://bugzilla.gnome.org/show_bug.cgi?id=678223
2013-02-03 01:30:05 -05:00
Matthias Clasen
d632713a77 Make G_DISABLE_DEPRECATED work again for wholly deprecated headers
Patch by Milan Crha,

https://bugzilla.gnome.org/show_bug.cgi?id=688169
2013-02-03 01:11:02 -05:00
Dan Winship
39a528b9fd g_option_context_help: don't modify the input data
If there are options that need their names to be aliased, keep track
of that internally rather than modifying the passed-in GOptionGroup
(and leaking strings in the process).

https://bugzilla.gnome.org/show_bug.cgi?id=682560
2013-02-03 00:46:52 -05:00
Matthias Clasen
ab328469f5 Silence automake
automake doesn't like INCLUDES anymore.
2013-02-02 22:54:15 -05:00
Matthias Clasen
0336eb67a2 Log errors the same way as messages
This will make sense if we keep going past
the assertions that cause the error to be logged.
2013-02-02 18:27:22 -05:00
Matthias Clasen
f5f151cb85 Simplify glib/glib/tests setup
The Makefile.am was setting a ton of unnecessary things
2013-02-02 18:27:22 -05:00
Matthias Clasen
8455702a8d Make the logging test more robust
The default handler test was not unsetting the log handler that
gets installed by GTest, which causes the log messages to be duplicated
on stdout if --verbose or --tap are passed. This in turn can make some
of the non-match checks fail. Since we are already using g_test_trap_fork,
we can just unset the handler in the child.
2013-02-02 18:27:22 -05:00
Will Thompson
a809650a06 Test for g_hash_table_insert() corrupting sets
https://bugzilla.gnome.org/show_bug.cgi?id=692815
2013-02-02 00:34:06 -05:00
Ryan Lortie
bb1df4d01b hashtable: properly handle insert() de-set-ifying
GHashTable remains a set for as long as all of the keys are exactly
equal (in pointer value) to all of the values.  We check this by
comparing keys to values when we do inserts.

Unfortunately, when doing g_hash_table_insert() when a key is already in
the table, the old key pointer value is kept, but the new value pointer
is used.  Now we have a situation where a key pointer is unequal to a
value pointer, but we were not treating this case properly.

Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=692815
2013-02-02 00:34:01 -05:00
Ryan Lortie
477490786b gmain: equivocate a bit on _set_ready_time()
Since this is a new API this cycle it's a good time to add a doc comment
explicitly declaring that a confusing issue that could be resolved
either way has no specific defined behaviour.

This may allow us some additional freedom in future GMainContext work or
we may decide that one behaviour is more desirable than the other.
2013-02-01 04:56:23 +01:00
Cosimo Cecchi
0ea7abaed5 gmacros: add G_GNUC_UNUSED to G_STATIC_ASSERT
Silence some warnings seen with GCC 4.8.
2013-01-30 17:59:09 +01:00
Colin Walters
f398bec5bc Add g_close(), use it
There are two benefits to this:

1) We can centralize any operating system specific knowledge of
   close-vs-EINTR handling.  For example, while on Linux we should never
   retry, if someone cared enough later about HP-UX, they could come by
   and change this one spot.
2) For places that do care about the return value and want to provide
   the caller with a GError, this function makes it convenient to do so.

Note that gspawn.c had an incorrect EINTR loop-retry around close().

https://bugzilla.gnome.org/show_bug.cgi?id=682819
2013-01-29 09:46:04 -05:00
Simon McVittie
cf68300d27 g_atomic_int_get, g_atomic_pointer_get: accept const arguments
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Matthias Clasen <mclasen@redhat.com>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=692583
2013-01-28 11:37:53 +00:00
Rui Matos
67694fb35e gsequence: Fix g_sequence_lookup() return value documentation
Mention that we return NULL if the item we are looking up isn't
found.
2013-01-26 19:12:10 +01:00
Colin Walters
cbd7225e70 gwakeup: Fix uninitialized variable from previous commit
We really don't want to infloop here...
2013-01-25 12:06:04 -05:00
Colin Walters
090f874626 Handle EINTR for a few more write() calls
https://bugzilla.gnome.org/show_bug.cgi?id=682819
2013-01-25 11:23:48 -05:00
Gil Forcada
c67a2ebda3 Incorrect string formatters, fixes #692229 2013-01-25 00:17:18 +01:00
Colin Walters
d8874e58a7 gtester: Use FD_CLOEXEC when creating pipes
We were already unsetting the cloexec flag for the child later,
just not actually starting with it.

https://bugzilla.gnome.org/show_bug.cgi?id=692404
2013-01-23 12:23:51 -05:00
Matthias Clasen
287849a1ee Fix a typo 2013-01-20 03:16:47 -05:00
Matthias Clasen
89aa9dbd98 Fix g_test_add_vtable
This function was creating a test suite for each added
testcase, when it should have grouped tests according to
their paths.
2013-01-20 03:14:24 -05:00
Matthias Clasen
1cd0cf3797 Fix annotation for g_test_fail
The doc comment has a "Since: 2.30" annotation, so make
the header match that.
2013-01-20 03:12:09 -05:00
Matthias Clasen
9e9d028b96 Fix build with -Werror=format
There were a few places in gmarkup.c where we were giving
pointer differences when integers are expected. Fix that
by explicitly casting to int.

https://bugzilla.gnome.org/show_bug.cgi?id=692079
2013-01-19 14:30:05 -05:00
Cosimo Cecchi
13966e0fad timezone: plug a memleak 2013-01-18 17:22:52 -05:00
Cosimo Cecchi
f24594122c timezone: avoid a double GBytes unref
This will cause random memory corruption; functions should not unref
passed-in parameters.
2013-01-18 17:09:31 -05:00
Ryan Lortie
998c6e65cf GVariant: fix normal-form checking for tuples
GVariant has the concept of fixed-sized types (ie: types for which all
values of the type will have the same size).  Examples are booleans,
integers, doubles, etc.  Tuples containing only these types are also
fixed size.

When GVariant is trying to deal with a fixed-sized value for which it
doesn't have a sufficient backing store (eg: the case where a
fixed-sized value was created with g_variant_new_data() with an
incorrect number of bytes) it denotes this by setting the size of the
value to the correct fixed size but using a NULL data pointer.

This is well-documented in several code comments and also in the public
API documentation for g_variant_get_data() which describes the situation
number which NULL could be returned.

The decision to deal with this case in this way was changed at the last
minute around the time that GVariant was merged -- originally we had an
elaborate setup involving allocating an internal buffer of sufficient
size to be shared between all invalid values.

Unfortunately, when making this change a small detail was missed.
gvs_tuple_get_child() (the function responsible for deserialising
tuples) was updated to properly check for this case (and it contains a
comment about why it must).  gvs_tuple_is_normal() (the function
responsible for verifying if a tuple is in normal form) was not.

We add the check now.

Note that this problem does not exist with any other container type
because tuples are the only container capable of being fixed-sized.  All
other container types (arrays, maybes, variants) can contain a variable
number of items or items of variable types (note: we consider dictionary
entries to be two-tuples).  The code for validating non-container values
also contains a check for the case of NULL data.

The problem also does not occur in the only other function dealing with
serialised tuples: gvs_tuple_n_children().  Whereas other container
types would have to inspect the serialised data to determine the number
of children, for tuples it can be determined directly from the type.
2013-01-18 16:27:13 -05:00
Ryan Lortie
52a81a7d86 Remove a few more G_GNUC_INTERNAL users 2013-01-18 13:28:43 -05:00
Ryan Lortie
346aa683de Fix visibility for glib/ and gio/ submodules
We have various sub directories in glib/ and gio/ (eg: inotify, gnulib,
pcre, xdgmime, etc.) that build convenience libraries that are then
included into libglib and libgio.  The files in these directories need
to be built with the same visibility policy as the files in the first
level directories, so add CFLAGS for them all.

This wasn't a problem when the visibility flags were set directly in
CFLAGS but then we had to deal with some modules that we built that we
explicitly wanted to export symbols from.

For now, we can keep things the way they are because it's less hacky and
although it's a theoretical hazard to forget these CFLAGS, we rarely add
new subdirectories to the build.
2013-01-18 13:23:40 -05:00
Colin Walters
6f8f1f7097 Remove most use of G_GNUC_INTERNAL
Now that we use an explicit list of symbols to export, the
G_GNUC_INTERNAL is redundant.

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-18 13:03:28 -05:00
Ryan Lortie
dbf447292d Remove ABI checking scripts
Before this commit, the only difference between the expected and actual
ABI were the addition of _init and _fini symbols in each module (now
that regexp-based export control is not catching those).
2013-01-17 10:50:18 -05:00
Ryan Lortie
304950a7ac Remove regexp-based export control 2013-01-17 10:49:37 -05:00
Ryan Lortie
e1517ca82d mainloop test: fix a silly memory error 2013-01-15 15:40:14 -05:00
Ryan Lortie
46b15bb581 mainloop test: use atomic for cross-thread access 2013-01-15 15:40:09 -05:00
Ryan Lortie
42c2c4f67d mainloop test: fix a small typo
This g_assert() could never possibly fail, as it was.
2013-01-15 15:22:35 -05:00
Ryan Lortie
83e5d169d6 tests for the new MainContext/GSource API 2013-01-15 14:08:02 -05:00
Ryan Lortie
6d1a663609 Add a UNIX fd source
https://bugzilla.gnome.org/show_bug.cgi?id=658020
2013-01-15 14:08:02 -05:00
Ryan Lortie
cbf68cb22d gsource: Add support for file descriptors on UNIX
Adding file descriptors to a GSource provides similar functionality to
the old g_source_add_poll() API with two main differences.

First: the list of handles is managed internally and therefore users are
prevented from randomly modifying the ->events field.  This prepares us
for an epoll future where changing the event mask is a syscall.

Second: keeping the list internally allows us to check the ->revents for
events for ourselves, allowing the source to skip implementing
check/prepare.  This also prepares us for the future by allowing an
implementation that doesn't need to iterate over all of the sources
every time.

https://bugzilla.gnome.org/show_bug.cgi?id=686853
2013-01-15 14:08:02 -05:00
Ryan Lortie
db7d5306cc GTimeoutSource: simplify
Take advantage of the new default handling of the 'prepare' and 'check'
functions.

https://bugzilla.gnome.org/show_bug.cgi?id=657729
2013-01-15 14:08:02 -05:00
Ryan Lortie
768574635d GSource: new API g_source_set_ready_time()
Add an API to mark a GSource to automatically become ready at the
specified monotonic time.

https://bugzilla.gnome.org/show_bug.cgi?id=657729
2013-01-15 14:08:02 -05:00
Ryan Lortie
6d25e34998 gsource: allow NULL check and prepare functions
Allow for NULL GSourceFuncs.check() and .prepare().

For prepare() the source will be taken not to be ready and having an
infinite timeout.  For check() the source will be taken not to be ready.

https://bugzilla.gnome.org/show_bug.cgi?id=686853
2013-01-15 14:08:02 -05:00
Ryan Lortie
8f7f7f6c42 move GIOCondition to gmain.h from giochannel.h
GIOCondition has uses outside of GIOChannel, so move it to gmain.h.

https://bugzilla.gnome.org/show_bug.cgi?id=686853
2013-01-15 14:08:02 -05:00
Ryan Lortie
ed8ec635eb gsource: Make GSource->source_funcs const
This is the vtable pointer for the source which is usually held in
static storage.  For our internal sources it points at a vtable which
the user should really never be modifying.

Mark it const.

https://bugzilla.gnome.org/show_bug.cgi?id=686853
2013-01-15 14:08:01 -05:00
Yuri Sedunov
e1bee17e94 gtester: Add #include config.h
Missed #include "config.h" so, in particular, large file support
(_FILE_OFFSET_BITS) ignored.

https://bugzilla.gnome.org/show_bug.cgi?id=691624
2013-01-15 11:05:43 -05:00
Ryan Lortie
5d42fdd068 visibility: Use a separate CFLAGS variable
We only want to control the default visibility for our five main
installable libraries: libglib, libgthread, libgmodule, libgobject,
libgio.  We should therefore only set -fvisibility=hidden when building
those.

Use a separate substitution variable for this purpose.

Using CFLAGS directly leads to some modules built in testcases not
exporting their symbols (and then the tests fail).  It also affects the
fam file monitoring module.

Colin had originally done it this way in his visibility patch series but
I failed to understand why so I didn't copy it.  Now I do.

Also: revert changes made to two testcases in an attempt to work around
this issue.

https://bugzilla.gnome.org/show_bug.cgi?id=691756
2013-01-14 23:31:59 -05:00
Ryan Lortie
963243e6b5 win32: hide _glib_get_dll_directory again
This is not part of our public ABI and it's not used from the other
libraries in GLib, so we should not be exporting it.

Caught by Dieter Verfaillie.
2013-01-14 11:11:00 -05:00
Ryan Lortie
068a119f74 win32: build: stop using .def files
With visibility now under the control of __declspec(dllexport) we no
longer need to build .def files or use them for building our various
.dll files.

.def files used to be installed (even though it is only really useful
when creating the .dll or .lib file).  Don't do that anymore either.

The Makefiles still contain rules to create a .lib file for use with
Visual Studio and these rules require .def files.  There are special
requirements to using these rules (like having installed and setup
Microsoft tools for use during the build) and therefore the problem of
creating a .def file for use with them is left open to anyone willing to
make the effort.  Many options are available depending on which
toolchain is in use (dlltool, pexport, gendef, dumpbin.exe, just to name
a few).

If we can find a free tool for creating .lib files in the future, we
should probably revisit this issue and add proper support back to our
build system.
2013-01-13 22:59:40 -05:00
Ryan Lortie
f13d3c075f win32: visibility fixups
Add/remove visibility macros according to if symbols were previously
part of our public win32 API.
2013-01-13 22:59:40 -05:00
Ryan Lortie
4625c138e9 gbacktrace.c: special treatment for a weird symbol
We have a public symbol 'glib_on_error_halt' that is exported from
gbacktrace.c without appearing in a header, presumably with the
intention that people will be able to hit it from their debugger.

Mark it as GLIB_AVAILABLE_IN_ALL from inside the .c file...

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-13 13:13:43 -05:00
Ryan Lortie
b91c476827 Add a new _GLIB_EXTERN macro for "extern"
This macro simply evaluates the "extern" unless it has been explicitly
defined to something else.

All of the version macros (including the unversioned deprecation markers
and GLIB_AVAILABLE_IN_ALL) now include _GLIB_EXTERN as part of their
definition.

G_INLINE has also been modified to use _GLIB_EXTERN where appropriate.

This macro should never be used outside of the gmacros.h/gversonmacros.h
headers.

The effect of this patch is that "extern" has now been added to all
functions declared in installed headers.  Strictly speaking, this is
something we should have had all along...

GLIB_VAR and GOBJECT_VAR have also been modified to use _GLIB_EXTERN on
non-Windows, instead of "extern" which they were using before.  The
eventual goal is to use the normal version/deprecation macros on
exported variables and drop GLIB_VAR but we need to see how this will
work on Windows before we go ahead with that.

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-13 13:13:36 -05:00
Ryan Lortie
0156092a42 various: add GLIB_AVAILABLE_IN_ALL everywhere else
Add the GLIB_AVAILABLE_IN_ALL annotation to all old functions (that
haven't already been annotated with the GLIB_AVAILABLE_IN_* macros or a
deprecation macro).

If we discover in the future that we cannot use only one macro on
Windows, it will be an easy sed patch to fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-13 13:11:57 -05:00
Ryan Lortie
0a2b586259 gversionmacros.h: add GLIB_AVAILABLE_IN_ALL
Add a macro to declare that a particular symbol is available in all
versions of GLib.

All newly-added symbols should have proper version macros (like
GLIB_AVAILABLE_IN_2_36) and this macro is less likely to get used 'by
accident' for those than one with a name like GLIB_EXTERN or
GLIB_PUBLIC.

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-13 13:05:09 -05:00
Henrique Dante de Almeida
c219181cb2 Add G_GNUC_PRINTF on all functions with format strings
This allows compilation with clang without errors, even when
-Wformat-nonliteral is active (as long as there are no real cases of
non literal formatting).

https://bugzilla.gnome.org/show_bug.cgi?id=691608
2013-01-13 12:32:40 -05:00
Benjamin Otte
120834db5b API: Constify g_get_prgname()
Found by Mike Gorse while via pygobject freeing the value.

Should have been const according to original commit message.
2013-01-13 18:14:11 +01:00
Dan Winship
b3ce0deb6d tests/gdatetime: add a missing ; on windows 2013-01-06 18:56:39 -05:00
Matthias Clasen
e478b65ea5 Improve g_cond_wait docs
Document that the mutex is locked upon return.
https://bugzilla.gnome.org/show_bug.cgi?id=691110
2013-01-04 08:28:13 -05:00
Jasper St. Pierre
5e62827efd gmarkup: Make GMarkupParseContext a boxed type
At the same time, add a refcount and public ref/unref methods.
This makes it usable from introspectable.

https://bugzilla.gnome.org/show_bug.cgi?id=690084
2013-01-01 11:03:19 -05:00
Michael Henning
0d3da350c6 gutils: move G_END_DECLS to the end of gutils.h
Previously, some declarations near the bottom came after the
G_END_DECLS, causing linker errors for C++ users that called those
functions.

https://bugzilla.gnome.org/show_bug.cgi?id=690902
2012-12-31 16:13:29 -05:00
Matthias Clasen
e1b99b2ddc Move single-include guards inside include guards
gcc has optimizations for include guards that only work
if they are outermost in the the header.
https://bugzilla.gnome.org/show_bug.cgi?id=689810
2012-12-27 23:43:14 -05:00
Matthias Clasen
08dce819cc Revert "gtestutils: add g_test_trap_subprocess(), deprecate g_test_trap_fork()"
This reverts commit e3a29184d5.
2012-12-19 15:20:45 -05:00
Matthias Clasen
0178402c6d Revert "tests: port from g_test_trap_subprocess() to g_test_trap_fork()"
This reverts commit ea06ec8063.
2012-12-19 15:20:37 -05:00
Matthias Clasen
6f15db8c3d Revert "gtestutils: fix "-p" logic"
This reverts commit 723a8f5588.
2012-12-19 15:20:31 -05:00
Matthias Clasen
50850fe08c Revert "tests/option-context: fix under --verbose"
This reverts commit 80253cd710.
2012-12-19 15:20:20 -05:00
Matthias Clasen
f64d6640d4 Revert "tests/protocol: redo a bit"
This reverts commit 8d9969fe15.
2012-12-19 15:20:13 -05:00
Matthias Clasen
53a436221f Revert "tests/spawn-*.c: fix on Windows"
This reverts commit 602714a8da.
2012-12-19 15:20:05 -05:00
Dan Winship
602714a8da tests/spawn-*.c: fix on Windows
Need to append ".exe" to the spawned binary name on Windows

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:13 -05:00
Dan Winship
8d9969fe15 tests/protocol: redo a bit
Rather than overloading --verbose, just skip the tests that aren't
supposed to be run in the parent process (so that if you do run the
toplevel test with --verbose, it doesn't immediately error out).

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:12 -05:00
Dan Winship
80253cd710 tests/option-context: fix under --verbose
We need to always pass G_TEST_TRAP_SILENCE_STDERR/STDOUT, or else
we can't check that they contained the right text later.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:12 -05:00
Dan Winship
723a8f5588 gtestutils: fix "-p" logic
If you had two tests "/foo/bar" and "/foo/bar/baz", and ran the test
program with "-p /foo/bar/baz", it would run "/foo/bar" too. Fix that.
And add a test to tests/testing for it.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:11 -05:00
Dan Winship
ea06ec8063 tests: port from g_test_trap_subprocess() to g_test_trap_fork()
(or, in a few cases, to g_test_expect_message())

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:10 -05:00
Dan Winship
e3a29184d5 gtestutils: add g_test_trap_subprocess(), deprecate g_test_trap_fork()
g_test_trap_fork() doesn't work on Windows and is potentially flaky on
unix anyway given the fork-but-don't-exec. Replace it with
g_test_trap_subprocess(), which re-spawns the same program with
arguments telling it to run a specific (otherwise-ignored) test case.

Make the existing g_test_trap_fork() unit tests be unix-only (they
never passed on Windows anyway), and add a parallel set of
g_test_trap_subprocess() tests.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:08 -05:00
Daniel Macks
1fec9ac47d Fix constant type to match assigned variable type
Some compilers assume a literal value is a certain byte-length without
checking the type to which it is being assigned, giving a compile-time
warning: a default of 'long' is a mismatch when assigning to a guint64
when the latter is a 'long long'. Use one of glib's standard macros to
specify the type of the constant to match the variable type.

https://bugzilla.gnome.org/show_bug.cgi?id=688829
2012-12-19 14:29:08 -05:00
Emmanuele Bassi
5f1f9cb7d8 timezone: Fix byte arithmetic
Use guint8* instead of gpointer, to avoid warnings and side effects.

https://bugzilla.gnome.org/show_bug.cgi?id=686128
2012-12-19 13:48:31 +00:00
John Ralls
e6d45972fc Bug 633117: glib fails tests if /etc/localtime is not properly set 2012-12-19 00:40:08 +00:00
John Ralls
c9939b0fc7 GTimeZone interval_info: Fix interval 0 per IANA tzfile instructions
IANA tzfiles don't always put standard time in the 0th t_info. Follow
their instructions to use the first standard time t_info for interval 0.
2012-12-18 15:43:41 -08:00
John Ralls
0f0404af21 test_posix_parse: PST8PDT passes on Unix because it names an IANA zone. 2012-12-18 15:43:41 -08:00
John Ralls
bdab372379 MSWindows TimeZone Support: Refactor and rewrite TZ variable parsing 2012-12-18 15:43:41 -08:00
John Ralls
1af37768a5 Test the TZ-variable parsing functions 2012-12-18 15:43:40 -08:00
John Ralls
7d1ae24e19 Implement and test time zone name/abbrev setting for Windows. 2012-12-18 15:43:40 -08:00
John Ralls
d12bb7ef72 Win32 TimeZone Support: General refactoring
For code clarity and to pass tests
2012-12-18 15:43:40 -08:00
John Ralls
1ef6933cbe Add MSWindows timezone names to test new windows support. 2012-12-18 15:43:40 -08:00
Arnel A. Borja
1ccd4d60fc GTimeZone: Fix time zones in Windows
Get time zone information from registry. Use GetTimeZoneInformation()
instead to get the local time zone if Dynamic DST is not available.

https://bugzilla.gnome.org/show_bug.cgi?id=683998
2012-12-18 15:43:40 -08:00
Arnel A. Borja
206ba07bd9 GTimeZone: Parse Windows format for TZ
Parse the "tzn[+|-]hh[:mm[:ss]][dzn]" format used in Windows for
environment variable TZ.

https://bugzilla.gnome.org/show_bug.cgi?id=683998
2012-12-18 15:43:40 -08:00
Arnel A. Borja
87436e6b3d GTimeZone: Parse POSIX format for TZ
Parse the "std offset [dst [offset],start[/time],end[/time]]" (POSIX)
format used in Unix for environment variable TZ.

https://bugzilla.gnome.org/show_bug.cgi?id=686128
2012-12-18 15:43:40 -08:00
Arnel A. Borja
9a4a53c03d GTimeZone: Add initialization functions for rules
Add functions to initialize a GTimeZone from rules.
2012-12-18 15:43:40 -08:00
Arnel A. Borja
9fae921c3e GTimeZone: Parse more offset formats
Allow more formats for offset. Parse seconds in offsets too. Make offset
signs optional.

https://bugzilla.gnome.org/show_bug.cgi?id=686128
2012-12-18 15:43:40 -08:00
John Ralls
59f2da1749 Replace zoneinfo pointers with structs
The approach of sucking a zoneinfo file into a GBytes and working with
pointers into it might be fast, but it's obtuse and not compatible with
Microsoft Windows.
2012-12-18 15:43:40 -08:00
John Ralls
489e031f22 Extract function init_zone_from_iana_info 2012-12-18 15:43:40 -08:00
John Ralls
47de8646e2 Extract function zone_info_unix 2012-12-18 15:43:40 -08:00
Colin Walters
2149b29468 Add g_get_num_processors()
Based on a patch from John Cupitt <jcupitt@gmail.com>

Useful for thread pools which should scale to number of processors.

See https://bugzilla.gnome.org/show_bug.cgi?id=687223

https://bugzilla.gnome.org/show_bug.cgi?id=614930
2012-12-18 13:13:15 -05:00
Colin Walters
c700721805 g_unix_open_pipe: Add missing F_SETFD
Spotted by Ray Strode <rstrode@redhat.com>

While we're here, microoptimize by skipping the fcntl() calls if flags
is 0.

https://bugzilla.gnome.org/show_bug.cgi?id=690069
2012-12-11 17:12:19 -05:00
Colin Walters
bf1e63c2aa Make GChecksum more fully introspectable
In 2.34, g_compute_checksum_for_bytes() was added, but this patch
allows binding users to use the incremental update API; this is
significantly more efficient than reading entire files into memory.

https://bugzilla.gnome.org/show_bug.cgi?id=689982
2012-12-10 20:08:09 -05:00
Ryan Lortie
6869454103 add two missing version macros 2012-12-06 13:58:42 -05:00
Ryan Lortie
7c98844760 various: add missing cases of #include "config.h" 2012-12-06 13:30:31 -05:00
Ryan Lortie
7523c04b54 g_get_home_dir(): honour $HOME
If the $HOME environment variable is set, prefer that to the entry in
/etc/passwd.

This brings us in line with almost every other utility and library on
UNIX-like systems while avoiding some of the more complicated
possibilities that have been suggested.

This incompatible change has been petitioned for quite some time by
many, and in particular from the Debian world, which carries a patch
that adds a new G_HOME environment variable with the same meaning as
this patch now assigns to HOME.

The primary motivation for the change was to increase the testability of
GLib-based programs from 'make check' types of frameworks: it is now
possible to set HOME to a temp directory to avoid the testsuite
modifying the user's real home directory.

The change also brings us increased compliance with the XDG Base
Directory Specification.  The specification specifically states that the
default values should be computed based on the HOME environment
variable, whereas we were basing them on the value from /etc/passwd.

The change was agreed to by all in attendence at the November 29 Gtk+
developer meeting.

https://bugzilla.gnome.org/show_bug.cgi?id=142568
2012-12-06 11:41:46 -05:00
Dan Winship
e97a2f4195 win32: suppress fatal error dialog box when running tests
When running a test program (ie, if g_test_init() has been called),
don't pop up a dialog box when a fatal error occurs. Just print the
message to stderr and exit.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-05 11:15:19 -05:00
Sebastian Dröge
c9affa778e Revert "Fix compilation on Android with the bionic C library"
This reverts commit cb0ed84d40.

It wasn't meant to be pushed yet.
2012-11-28 16:55:12 +01:00
Andoni Morales Alastruey
97385dbbe8 Fix duplicated case value for mingw runtimes defining EOVERLFOW as EFBIG 2012-11-28 16:34:18 +01:00
Sebastian Dröge
cb0ed84d40 Fix compilation on Android with the bionic C library 2012-11-28 16:32:48 +01:00
Sebastian Dröge
058fa6393e Protect against strcmp() on NULL strings 2012-11-28 16:25:43 +01:00
Martin Pitt
fca30c3e16 g_unix_signal_add_full(): Annotate to shadow g_unix_signal_add()
Just like g_timeout_add() and friends, we want to hide the unintrospectable
g_unix_signal_add() from GI bindings and present g_unix_signal_add_full() as
GLib.unix_signal_add() to them.
2012-11-28 12:10:52 +01:00
Dan Winship
b55e1820a9 g_test_expect_message: fix pattern syntax in example code 2012-11-26 10:47:34 -05:00
John Ralls
1f005d9385 Bug 681685: Transcoding fails on OSX
Add aliases for codesets supported by iconv and included in locales.
Ifdef-out tests in glib/tests/gdatetime.c which fail because on OSX only
ASCII numbers or symbols are returned for the format.

Even though nl_langinfo does weird things on Darwin in some cases, it
still acts correctly when LANG/LC_ALL is set to a supported
locale.codeset.
2012-11-25 16:44:06 +09:00
Ryan Lortie
be008ea6e2 gdatetime: Fix some docs sed damage 2012-11-24 11:23:22 -05:00
Sébastien Wilmet
2b7c2107a5 Improve i18n documentation
Clearly explain which gettext functions must be called. It depends
whether the program is an application or a library.

https://bugzilla.gnome.org/show_bug.cgi?id=688886
2012-11-22 23:08:54 +01:00
Will Thompson
5ff99924d8 gthread: add AVAILABLE_IN_2_32 annotations
https://bugzilla.gnome.org/show_bug.cgi?id=688319
2012-11-22 09:37:22 +00:00
Eduardo Lima Mitev
6e2046207a gchecksum: Adds SHA512 support
https://bugzilla.gnome.org/show_bug.cgi?id=602715
2012-11-21 21:50:26 +01:00
Michael Natterer
ef8510be09 Bug 673047 - gunicollate is broken on OS X
Apply slightly modified patch from Camillo Lugaresi which fixes
gunicollate for OSX >= 10.6. It was totally hilariously broken
for anyone on 10.6 and later, I dont know if it's now broken
on 10.5, but better fix it for the vast majority of users.
2012-11-16 18:51:41 +01:00
Dan Winship
03ef7ba5ab win32: re-fix the _utf8 compat function situation
The previous fix didn't work, because every place within glib that
used any of the functions also needed to be including win32compat.h.

So, move the prototypes back to their original headers (but at least
all in one place at the bottom).

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-16 08:22:06 -05:00
Dan Winship
2628dc2c09 gtestutils: don't try to print long doubles
A few gtestutils function use long double as a type that can (in
theory) hold any int or any double. But win32 doesn't support long
doubles in printf, so convert them to ints or doubles first before
trying to print them.

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:06 -05:00
Dan Winship
fc3acd88ba win32: avoid printf format warnings on nonstandard formats
glib/tests/test-printf tests some non-standard printf formats on
Windows, which gcc doesn't recognize, and so complains about. Disable
those warnings for that test.

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:06 -05:00
Dan Winship
75d2c1823c gvariant-internal.h: fix the include hack
gvariant-internal.h was defining GLIB_COMPILATION so that it could
include individual headers, but this broke tests/gvariant on windows
because setting GLIB_COMPILATION changes the definition of GLIB_VAR,
causing external variables to not be found. Fix this by having it
define __GLIB_H_INSIDE__ instead.

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:06 -05:00
Dan Winship
f80d8f1e4d win32: various fixes to test programs
Fix a few win32-specific bugs in various tests, and #ifdef out code
that is UNIX- or Linux-specific that wouldn't be expected to pass on
Windows.

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:06 -05:00
Dan Winship
b8c13a01b6 win32: misc warning fixes
https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:06 -05:00
Dan Winship
3ac6cfaeaa win32: prototype _glib_get_dll_directory() and _glib_get_locale_dir()
Rather than using "extern" declarations of these win32 functions
everywhere they're needed, just prototype them in glib-private.h.
(Which also fixes the fact that they weren't prototyped in the files
where they're defined.)

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:05 -05:00
Dan Winship
08f4f92fed win32: add gwin32compat.h, for utf8-renaming compatibility defines
To avoid -Wmissing-prototype warnings, we need to prototype both the
original and the _utf8 versions of all of the functions that have had
_utf8-renaming on Windows. But duplicating all the prototypes is ugly,
so rather than doing them "in-place", move them all to a new header
file just for that.

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:05 -05:00
Michael Natterer
49db979922 Revert "gmain: Add private API to create Unix child watch that uses waitid()"
This reverts commit 93bf37ce15.
2012-11-15 15:33:38 +01:00
Michael Natterer
75de24ca66 Revert "gspawn: support creating pipes with O_CLOEXEC"
This reverts commit 2054ccad95.
2012-11-15 15:33:38 +01:00
Ryan Lortie
2054ccad95 gspawn: support creating pipes with O_CLOEXEC
Add a new flag, G_SPAWN_CLOEXEC_PIPES, for creating the stdin/out/err
pipes with O_CLOEXEC (for the usual reasons).

https://bugzilla.gnome.org/show_bug.cgi?id=672102
2012-11-14 14:12:15 -05:00
Colin Walters
93bf37ce15 gmain: Add private API to create Unix child watch that uses waitid()
This avoids collecting the zombie child, which means that the PID
can't be reused.  This prevents possible race conditions that might
occur were one to send e.g. SIGTERM to a child.

This race condition has always existed due to the way we called
waitpid() for the app, but the window was widened when we moved the
waitpid() calls into a separate thread.

If waitid() isn't available, we return NULL, and consumers of this
private API (namely, GSubprocess) will need to handle that.

https://bugzilla.gnome.org/show_bug.cgi?id=672102
2012-11-14 14:11:57 -05:00
Simon McVittie
e744a4aa7a Remove trailing spaces from expected GMarkup error messages
Commit 138f4c1 broke the relevant part of 'make check' by changing the
error messages away from the ones we previously expected. This commit
updates the expected output to catch up.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=688255
Reviewed-by: Matthias Clasen <mclasen@redhat.com>
2012-11-14 13:26:57 +00:00
Colin Walters
b98a1c8df3 gmain: Handle case where source id overflows
0 is not a valid source id, but for long-lived programs that rapidly
create/destroy sources, it's possible for the source id to overflow.
We should handle this, because the documentation implies we will.

https://bugzilla.gnome.org/show_bug.cgi?id=687098
2012-11-13 11:32:57 -05:00
Matthias Clasen
138f4c1e2f Remove trailing space from some translated strings
https://bugzilla.gnome.org/show_bug.cgi?id=687700
2012-11-09 22:12:57 -05:00
Matthias Clasen
7fd15ee4ae Add plural forms for some translations
https://bugzilla.gnome.org/show_bug.cgi?id=687698
2012-11-09 22:10:10 -05:00
Martin Pitt
a07a5f82aa GByteArray: Add missing transfer annotations
Make g_byte_array_new() and g_byte_array_new_take() introspectable by adding
missing transfer annotations to return value.

Covered by tests in PyGObject.
2012-11-09 09:32:03 +01:00
Martin Pitt
e06268d72e GBytes: Add missing annotations
Annotate g_bytes_new*()'s data argument to be a guint8 array, as
introspection clients cannot deal with raw gconstpointers. This makes
GBytes' behaviour similar to GByteArray whose API already uses guint8.

Add missing transfer annotation to g_bytes_get_data() to make it
introspectable.

This is covered by test cases in PyGObject.
2012-11-09 09:09:39 +01:00
John Ralls
8dd70a261d Bug 686185: GDateTime Transcoding fails on OSX
Better fix than d5df0a10f. Thanks to Christian Persch for pointing this
out.
2012-11-08 08:37:54 -08:00
Emmanuel Pacaud
a9eb1907a6 Check for PR_GET_NAME
PR_GET_NAME may not be defined when using an old kernel. Deal with it.
2012-11-08 08:19:43 +01:00
John Ralls
d5df0a10f1 Skip test_non_utf8_printf() if EUC-JP is aliased to UTF-8
See https://bugzilla.gnome.org/show_bug.cgi?id=686185
This skips the test on those systems, like Darwin, which provide the
ja_JP.eucjp locale but which glib doesn't know how to transcode and
aliases JIS to UTF-8.
2012-11-06 16:50:09 -08:00
Ryan Lortie
b26fb3ae5c Don't call varargs open() through non-varargs type
open() is probably defined varargs.  Casting a varargs function to an
equivalent non-varargs type and then calling it is undefined, but
gfileutils.c was doing exactly that.

Add some non-varargs wrappers to avoid the problem.

Problem reported by John Spencer.

https://bugzilla.gnome.org/show_bug.cgi?id=687600
2012-11-06 14:40:36 -05:00
Ryan Lortie
81b27ffc1c Add a translator comment about 'KB'
The GLib units policy used to be that 'KB' means 1024 bytes, 'MB' means
1024 KB, 'GB' means 1024 MB, etc.

Those days are over, but we have a deprecated function that still works
that way.  It contains the string "KB", marked for translation, which
has been a source of confusion for translators on multiple occasions.

https://bugzilla.gnome.org/show_bug.cgi?id=687516
2012-11-05 08:24:30 -05:00
Martin Pitt
13ae0f1f92 Annotate g_filename_to_utf8()
bytes_read and bytes_written are (out) arguments, and the return value must be
a byte array instead of utf8, as otherwise the function would only support
UTF-8 locales/file names.
2012-11-03 14:00:45 +01:00
Colin Walters
ce0022933c Merge waitpid() from g_spawn_sync into gmain()
This is preparatory work for a future commit which will add a
"catchall" waitpid API.  If we don't synchronize here with the worker
thread, race conditions are possible.

This also ensures we have an error message if someone adds a child
watch for a nonexistent pid, etc.  Previously, we'd simply keep
calling waitpid() getting ECHILD, and ignoring it until the source was
removed. Now, we g_warning() and fire the source.

Thirdly, this ensures that the waitpid() call in gmain handles EINTR,
like the g_spawn_sync() one did.

https://bugzilla.gnome.org/show_bug.cgi?id=687061
2012-11-02 09:19:13 -04:00
Tim-Philipp Müller
0bdf7fecaf tests: fix compiler warning in gvariant test
gvariant.c:3555:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
2012-11-02 13:14:58 +00:00
Colin Walters
3686aa0e18 gettext: Add missing include
Fixes the build with -Werror=missing-prototypes.

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-02 09:03:52 -04:00
Colin Walters
4c2a659588 gcharset: Add header file for private API
This fixes the build with -Werror=missing-prototypes.

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-02 09:03:52 -04:00
Colin Walters
488cdb13f6 gslice: Prototype G_ENABLE_DEBUG function that's part of ABI
Sadly, g_slice_debug_tree_statistics is conditionally part of the
public ABI.  We might as well make it conditionally part of the API as
well, even though this will require people actually using it to

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-02 09:03:51 -04:00
Colin Walters
bd8387f25a g_check_setuid: Include glib-private.h
Otherwise we fail to build with -Werror=missing-prototypes.

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-02 09:03:35 -04:00
Colin Walters
139892734e tests/1bitmutex: Hack to build with -Werror=missing-prototypes
Admittedly, this could probably be better, but it builds.

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-01 20:12:02 -04:00
Colin Walters
67466b41af build: Don't use C99 declarations
Since GLib needs to compile with MSVC, we can't use them.  This fixes
compilation when using -Werror=declaration-after-statement.

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-01 20:12:01 -04:00
Robert Ancell
59a24ab5a3 Use "Returns:" instead of the invalid "@returns" for annotating return values.
https://bugzilla.gnome.org/show_bug.cgi?id=673229
2012-11-01 14:47:25 +13:00
Vincent Untz
529bf6bd89 Add annotations for g_filename_from_uri()
https://bugzilla.gnome.org/show_bug.cgi?id=672924
2012-10-30 09:27:20 -04:00
Aleksander Morgado
0d22609fe9 gmessages: fix minor typo in documentation 2012-10-30 13:15:23 +01:00
Ryan Lortie
311e18abdd gthread-posix: always use atomic pointer ops
On platforms where dependent loads can be reordered (alpha) and we have
exotic implementation of pthread_mutex_lock() it could be possible that
our implementation of g_mutex_lock() is unsafe.

Always use atomic operations to avoid this possibility.

https://bugzilla.gnome.org/show_bug.cgi?id=686191
2012-10-29 16:18:10 +01:00
Paul Eggert
00f4c12bf9 gmain: Document constraints on waitpid
Applications that use glib should not invoke waitpid with a first
argument that is nonpositive, because when such a waitpid is run in
one thread and glib waits for a subprocess in another, there is a race
condition, and the former waitpid can reap a process that was intended
for the latter.  Mention this in the documentation for
g_child_watch_source_new, and in the diagnostic generated by
g_spawn_sync when its waitpid fails with errno equal to ECHILD.

Signed-off-by: Colin Walters <walters@verbum.org>

http://bugzilla.gnome.org/show_bug.cgi?id=687075
2012-10-29 10:19:20 -04:00
Colin Walters
36bf25371c g_unix_signal_source_new: Allow SIGUSR1 and SIGUSR2
These are user defined, it makes sense to allow watching them.  This
is needed to port gnome-session and gdm over.

https://bugzilla.gnome.org/show_bug.cgi?id=686898
2012-10-26 09:28:01 -04:00
Martin Pitt
1775c46e7a GIOChannel: Add missing annotations
The various read and write methods have several out arguments which were not
previously marked as such. Also, as GIOChannel supports binary data with a NULL
encoding, the buffers need to be uint8 arrays instead of utf8 strings.
2012-10-25 14:55:30 +02:00
Martin Pitt
c3f52eae0e GIOChannel: Add missing (allow-none) annotations
g_io_channel_set_line_term() and g_io_channel_set_encoding() can get NULL
arguments, mark them as such.
2012-10-25 07:52:43 +02:00
Colin Walters
4fb2d737ac gvariant: Make g_variant_new_from_bytes() public
Now that GBytes has been made public, we should make
g_variant_new_from_bytes() public too.

Add g_variant_get_data_as_bytes() to match.

https://bugzilla.gnome.org/show_bug.cgi?id=677062
2012-10-23 16:25:49 +02:00
Matthias Clasen
d906f84a44 GBytes: deal with a corner-case
When calling g_bytes_unref_to_data on a GBytes with NULL data
we could end up with double-free or use-after-free issues.
https://bugzilla.gnome.org/show_bug.cgi?id=686091
2012-10-16 21:21:25 -04:00
Matthias Clasen
a0a3643823 Add a test for the previous fix
Running tests/bytes with G_SLICE=always-malloc MALLOC_CHECK_=2
was aborting before.
2012-10-16 21:21:25 -04:00
Arnel A. Borja
a1e6ecdfeb gtimezone: Indentation adn comment fixes 2012-10-12 09:58:55 -07:00
John Ralls
86a8ec047e Bug 631382 - GTimeZone support for zoneinfo version 1 2012-10-12 09:43:57 -07:00
Dan Winship
132c4cee4f ghash.c: fix docs
A previous commit left an unclosed XML tag. Fix that.
2012-10-10 10:03:15 -04:00
Jasper St. Pierre
d9730f0e31 ghash: Add documentation 2012-10-07 20:12:03 -03:00
Jasper St. Pierre
f15b2b3166 glib.py: Remove old debugging code
This was accidentally copy/pasted from gobject.py
2012-10-07 20:12:02 -03:00
Dan Winship
eb2f5c1e0f Add GLIB_VERSION_2_36 and related 2012-10-03 16:36:38 -04:00
Christian Persch
242dfd617b unicode: Add new tests for unicode 6.2 2012-10-03 13:58:20 +02:00
Christian Persch
9524c620bb unicode: Update to unicode 6.2.0 beta 2012-10-03 13:58:19 +02:00
Christian Persch
95acb7c0d1 unicode: Add new line breaking class from unicode 6.2
Regional Indicator (RI) is new in unicode 6.2.

https://bugzilla.gnome.org/show_bug.cgi?id=684912
2012-10-03 13:58:19 +02:00
Christian Persch
b0ef1c1fbb unicode: Use g_assert_cmp{int,uint,hex} in tests
This gives more info when the test goes wrong.
2012-10-03 13:58:19 +02:00
Matthias Clasen
7c045e3423 Correct to docs for g_strcmp0
Don't promise to return -1 or 1 - we fall back to strcmp which
does not guarantee this.
https://bugzilla.gnome.org/show_bug.cgi?id=685037
2012-09-30 13:40:48 -04:00
Benjamin Otte
685259dfea Fix gdb script for new quark variable names
... and don't spam stderr with exceptions if someone renames things
again.

Last but not least, keep the old names as a fallback, so that LD_PRELOAD
with an older libglib still works.
2012-09-27 15:31:46 +02:00
Chun-wei Fan
3d45854a58 Update config.h.win32(.in) and glibconfig.h.win32(.in)
-Make config.h.win32(.in) have entries that more resembles the generated
 config.h.in
-Move the ALIGNOF_* #define's from glibconfig.h.win32(.in) to
 config.h.win32(.in), where they were supposed to be.
2012-09-26 17:47:52 +08:00
Matthias Clasen
6270b3f384 Fix g_ptr_array_ref_docs
https://bugzilla.gnome.org/show_bug.cgi?id=676034
2012-09-23 11:16:26 -04:00
Matthias Clasen
a12c277acb Fix GRegex docs 2012-09-23 02:00:03 -04:00
Matthias Clasen
6283f801b0 Fix up g_tree_foreach docs 2012-09-23 02:00:03 -04:00
Matthias Clasen
d9f8381aa8 Fix up docs for GDuplicateFunc 2012-09-23 01:59:57 -04:00
Colin Walters
d6cbb29f59 CVE-2012-3524: Hardening for being run in a setuid environment
Some programs attempt to use libglib (or even libgio) when setuid.
For a long time, GTK+ simply aborted if launched in this
configuration, but we never had a real policy for GLib.

I'm not sure whether we should advertise such support.  However, given
that there are real-world programs that do this currently, we can make
them safer with not too much effort.

Better to fix a problem caused by an interaction between two
components in *both* places if possible.

This patch adds a private function g_check_setuid() which is used to
first ensure we don't run an external dbus-launch binary if
DBUS_SESSION_BUS_ADDRESS isn't set.

Second, we also ensure the local VFS is used in this case.  The
gdaemonvfs extension point will end up talking to the session bus
which is typically undesirable in a setuid context.

Implementing g_check_setuid() is interesting - whether or not we're
running in a privilege-escalated path is operating system specific.
Note that GTK+'s code to check euid versus uid worked historically on
Unix, more modern systems have filesystem capabilities and SELinux
domain transitions, neither of which are captured by the uid
comparison.

On Linux/glibc, the way this works is that the kernel sets an
AT_SECURE flag in the ELF auxiliary vector, and glibc looks for it on
startup.  If found, then glibc sets a public-but-undocumented
__libc_enable_secure variable which we can use.  Unfortunately, while
it *previously* worked to check this variable, a combination of newer
binutils and RPM break it:
http://www.openwall.com/lists/owl-dev/2012/08/14/1

So for now on Linux/glibc, we fall back to the historical Unix version
until we get glibc fixed.

On some BSD variants, there is a issetugid() function.  On other Unix
variants, we fall back to what GTK+ has been doing.

Reported-By: Sebastian Krahmer <krahmer@suse.de>
Signed-off-by: Colin Walters <walters@verbum.org>
2012-09-13 18:34:29 -04:00
Alexander Larsson
c99acf51d0 Fix regression in g_shell_parse_argv()
The commit in 6e4acf44b3 broke
the fallthrough case for '\\' when it changed the '#' case.

This caused issues like this:
  https://bugzilla.gnome.org/show_bug.cgi?id=683821

https://bugzilla.gnome.org/show_bug.cgi?id=562907
2012-09-13 10:20:27 +02:00
Ryan Lortie
73a100d2ef G_DEFINE_QUARK: fix up some implementation issues
https://bugzilla.gnome.org/show_bug.cgi?id=683360
2012-09-08 14:08:01 -04:00
Colin Walters
e6df67abe6 tests/gvariant: Fix test on big endian architectures
We need to ensure we get the exact same byte-level GVariant, so
byteswap on big endian architectures.

https://bugzilla.gnome.org/show_bug.cgi?id=683384
2012-09-06 09:23:06 -04:00
Matthias Clasen
a30f6a6eb8 Add new api to symbol lists and docs
https://bugzilla.gnome.org/show_bug.cgi?id=682849
2012-09-02 15:10:20 -04:00
Matthias Clasen
06e3a1d71a Add compare-and exchange for data lists
Also, make it possible to get a 'new ref' on a datalist member
in a race-free way.
This is useful when using object data in thread-safe libraries.

https://bugzilla.gnome.org/show_bug.cgi?id=682849
2012-09-02 15:09:12 -04:00
Matthias Clasen
c270b833a6 Fix shell tests 2012-09-01 11:08:27 -04:00
6e4acf44b3 gshell: Fix parsing of comments in command lines.
Fixes bug 562907
2012-08-29 20:42:25 -04:00
Colin Walters
6e64ba58b9 Switch all open() calls to use g_open()
Because it now handles EINTR.  And we should do so.  While most people
use Linux, which tries very hard to avoid propagating EINTR back up
into userspace, it can still happen.

https://bugzilla.gnome.org/show_bug.cgi?id=682833
2012-08-28 13:56:59 -04:00
Cosimo Cecchi
4b602940e2 glib: don't quote quark names for G_DEFINE_QUARK 2012-08-28 13:16:24 -04:00
Cosimo Cecchi
daae12710a gquark: clarify G_DEFINE_QUARK docs about the use of quotes
Use the term "name" instead of "string" in the documentation, and add a
note explaining double quotes shouldn't be used for the quark name.
2012-08-28 13:16:23 -04:00
Matthias Clasen
369c7689c2 Add missing includes 2012-08-28 05:57:17 -04:00
Matthias Clasen
b7d1518ce9 Fix a typo in a doc comment 2012-08-28 00:08:07 -04:00
Matthias Clasen
4f12f7c029 Use G_DEFINE_QUARK for GLib's own quarks
This commit just deals with glib/.
gobject/ and gio/ will be handled in separate commits.
2012-08-28 00:08:07 -04:00
Matthias Clasen
702b448865 Add a G_DEFINE_QUARK macro
https://bugzilla.gnome.org/show_bug.cgi?id=627240
2012-08-28 00:08:07 -04:00
Matthias Clasen
a1ff18582d Put quarks in their own source file
Just because I'm too lazy to grep every single time for the other
source file in which the quark code is hiding.
2012-08-28 00:08:06 -04:00
Colin Walters
ce976bcac7 gstdio: Harden g_open() against EINTR
Noticed by code inspection, when auditing some of my code for EINTR
handling.

https://bugzilla.gnome.org/show_bug.cgi?id=682819
2012-08-27 18:10:12 -04:00
Colin Walters
d54e10632a gvariant: Add tests for exact SHA256 checksums
I'd like to use GVariant as a data format in my userspace filesystem,
and having the actual bits be stable means I can reliably compute
cryptographic checksums.

This updated patch removes vardict checks, because Ryan wants the
flexibility to change them in the future.

https://bugzilla.gnome.org/show_bug.cgi?id=673012
2012-08-27 17:02:00 -04:00
Ryan Lortie
7936af6934 GVariantType: gut g_variant_type_check()
This function is causing an insane amount of wasted time on some
real-world profiles and it's pretty useless since we already have
GVariantType (as a type different from a string) for the purpose of
static type safety.

Disable it for now.  We can possibly turn this back on again if we solve
bug #544026.

https://bugzilla.gnome.org/show_bug.cgi?id=679835
2012-08-27 16:12:30 -04:00
Dan Winship
1a2c5e155d glib/tests: fix leaks
https://bugzilla.gnome.org/show_bug.cgi?id=682560
2012-08-27 07:38:27 -04:00
Dan Winship
0c0cdfd9c4 gtestutils: add g_test_add_data_func_full()
Like g_test_add_data_func(), but includes a GDestroyNotify for the
test data.

https://bugzilla.gnome.org/show_bug.cgi?id=682560
2012-08-27 07:31:13 -04:00
Dan Winship
2427378223 gmain: remove unix signal watch if its GSourceFunc returns FALSE
g_unix_signal_watch_dispatch() was ignore the callback's return value.
Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=682560
2012-08-27 07:24:15 -04:00
Dan Winship
99c7c951d9 gmain: don't leak child sources that are destroyed before their parents
A parent source holds refs on its children, so if the child source is
destroyed, we need to drop that ref. Fix, and reorganize to make this
all more obvious.

https://bugzilla.gnome.org/show_bug.cgi?id=682560
2012-08-27 07:24:07 -04:00
Dan Winship
48a9887eae gmain: free source_lists when freeing GMainContext
If a context was freed with sources still attached, those sources
correctly got destroyed, but the corresponding GSourceList structs
were being leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=682560
2012-08-27 07:23:59 -04:00
William Jon McCann
dbad8304ff Don't crash if set_app_info is called before adding metadata
set_mime_type, set_is_private, add_group, set_groups, set_icon, etc
all added metadata before using it. If set_app_info was called before
any of those it would crash when trying to access the metadata.
2012-08-24 13:36:26 -04:00
Colin Walters
0b6fdff05c Fix regression when TMPDIR/TMP are unset
We should just be returning /tmp as a default, not calling g_getenv
("/tmp") which makes no sense.

https://bugzilla.gnome.org/show_bug.cgi?id=672329
2012-08-22 14:48:41 -04:00
Ryan Lortie
59394b3e1e Revert the GMarkup attribute collect changes
We need to have some more discussion on this topic.

This reverts commits 86329ba44f and
8d40389d15.

https://bugzilla.gnome.org/show_bug.cgi?id=665634
2012-08-20 18:34:13 -04:00
Ryan Lortie
850680d751 gmarkup test: fix use of message expect API 2012-08-20 17:57:13 -04:00
Dan Winship
56210220a2 tests/protocol: update the messages to reflect G_LOG_DOMAIN being set now 2012-08-20 17:26:45 -04:00
Ryan Lortie
d06c7a911e g_test_expect_message: add some g_return_if_fail
NULL domain is not supported and some might expect this to work, so make
sure they don't get the wrong idea...
2012-08-20 16:26:25 -04:00
Ryan Lortie
34653169e5 GVariant: add g_variant_check_format_string()
For some time now people have been asking for a way to check for type
compatibility between GVariant instances and format strings.  There are
several APIs inside of GLib itself that would benefit from this.

This patch introduces a way to do that.
2012-08-20 16:26:25 -04:00
Dan Winship
cc24dac3c8 glib/tests: use g_test_expect_message()
Replace some tests that used to use g_test_trap_fork() with
g_test_expect_message() instead.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:54:52 -04:00
Dan Winship
25ac137c0a gtestutils: add g_text_expect_message()
Add g_test_expect_message() and g_test_assert_expected_messages(), to
allow tests of warnings, error messages, return-if-fails, etc.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:54:52 -04:00
Dan Winship
78a8aecbb3 g_logv: only expand the message once
Hoist the g_strdup_printf()'ing out of the loop, since the message is
the same for every handler that gets called.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:49:06 -04:00
Dan Winship
f78931c4ab glib/tests/testing, logging: don't use g_test_undefined()
We are verifying the behavior of the test/logging functions here; this
is not undefined behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:49:06 -04:00
Thomas Hindoe Paaboel Andersen
96a0c589ee gmem.c: array is only paritally filled by memcpy
The size of the local_data arrray is too large. It should not be
multiplied by the sizeof guint.

The memcpy of profile_data to local_data later will only fill a part of the
array.

Spotted with the PVS-Studio static analyzer

https://bugzilla.gnome.org/show_bug.cgi?id=681501
2012-08-20 16:41:42 +02:00
Matthias Clasen
e27367f341 Exterminate 'the the' 2012-08-18 23:15:58 -04:00
Matthias Clasen
96ed9e41f4 Improve utils test coverage 2012-08-18 14:42:10 -04:00
Matthias Clasen
cb8f88ca9f Improve uri test coverage 2012-08-18 14:41:48 -04:00
Matthias Clasen
2c338e21d6 Improve strfuncs tests coverage 2012-08-18 14:41:35 -04:00
Matthias Clasen
58c7747c50 Improve GRegex test coverage 2012-08-18 14:41:23 -04:00
Matthias Clasen
a7e10fa0b6 Improve GPrivate test coverage 2012-08-18 14:41:07 -04:00
Matthias Clasen
aad40b89fe Improve file utils test coverage 2012-08-18 14:40:33 -04:00
Matthias Clasen
6e1d205ad3 Improve GError test coverage 2012-08-18 14:40:15 -04:00
Matthias Clasen
e181234fe5 Improve atomic ops test coverage 2012-08-18 14:39:52 -04:00
Matthias Clasen
06d837b6a3 Improve array test coverage 2012-08-18 14:39:28 -04:00
Owen W. Taylor
2360d04e50 Fix problems with CLEANFILES and automake-1.11.1
Running with automake-1.11.1, a couple fixes are needed
for CLEANFILES when gtk-doc is not installed.

(Found with Amazon Linux AMI release 2012.03)

https://bugzilla.gnome.org/show_bug.cgi?id=682067
2012-08-17 13:41:34 -04:00
Chun-wei Fan
2954f70d39 Fix build on Visual C++
-glib/gmarkup.c: Use G_VA_COPY() instead of va_copy() as va_copy() may not
 be universally available.
-gio/gtestdbus.c: Include io.h on Windows for close()
2012-08-17 19:22:43 +08:00
David King
86a4fd6fa9 docs: Describe GCompletion item memory management
https://bugzilla.gnome.org/show_bug.cgi?id=600751
2012-08-17 07:16:50 +01:00
Colin Walters
056d39c9f7 GMappedFile: Add g_mapped_file_get_bytes()
This is yet another API that has a data/length/refcount combination
that one might often want to turn into a GBytes.

https://bugzilla.gnome.org/show_bug.cgi?id=677065
2012-08-17 00:48:40 -04:00
Matthias Clasen
b0d8498ee3 GDateTime: pack the struct better
Makes a difference in 32bit.
2012-08-17 00:27:10 -04:00
Matthias Clasen
8d40389d15 gmarkup: Add g_markup_collect_known_attributes()
Add a variant of g_markup_collect_attributes() which will
ignore unknown attributes (such as those from different XML
namespaces) when parsing markup, rather than returning
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE as g_markup_collect_attributes()
does.

Patch by Philip Withnall,
https://bugzilla.gnome.org/show_bug.cgi?id=665634
2012-08-16 23:40:08 -04:00
Matthias Clasen
6bee6dbce5 Miscellaneous string fixes
Typo and punctuation fixes, and some rewording, based
on a patch by Philip Withnall, bug
https://bugzilla.gnome.org/review?bug=628193
2012-08-16 23:02:41 -04:00
Matthias Clasen
bf3262dd93 GTest: Improve --help output
https://bugzilla.gnome.org/show_bug.cgi?id=550433
2012-08-16 21:33:04 -04:00
David King
55ca95c220 docs: Improve G_GNUC_* documentation
Mention where the GCC attributes should be placed for functions and
arguments. Add an example for G_GNUC_UNUSED.

https://bugzilla.gnome.org/show_bug.cgi?id=326931
2012-08-16 19:17:41 -04:00
Javier Jardón
f8a5fc2e2e Revert "Use upstream gettext instead the glib one"
Commited by mistake
This reverts commit e930e3b3aa.
2012-08-15 02:46:16 +09:00
Javier Jardón
e930e3b3aa Use upstream gettext instead the glib one 2012-08-15 01:41:11 +09:00
Matthias Clasen
a74749d354 Deprecated GSlice config API
This was marked as 'internal debugging' in the headers, and
should have never been made public. As a first step to repair
this, deprecate it.

https://bugzilla.gnome.org/show_bug.cgi?id=680831
2012-08-06 08:52:58 -04:00
Stef Walter
278fe0c67f gchecksum: Add g_compute_checksum_for_bytes()
* Add a GBytes based version of g_compute_checksum_for_data()
 * Add appropriate tests

https://bugzilla.gnome.org/show_bug.cgi?id=680912
2012-08-06 10:38:39 +02:00
Stef Walter
dd2ecf7488 checksum: Use functions instead of macros when building tests
* No need for hard to debug and maintain macros here.

https://bugzilla.gnome.org/show_bug.cgi?id=681151
2012-08-06 10:32:49 +02:00
Dan Winship
b3f9637337 gthreadpool: set default max_unused_threads and max_idle_time values
GThreadPool defaulted to 0 for max_unused_threads (meaning thread-pool
threads would exit immediately if there was not already another task
waiting for them), and 0 for max_idle_time (meaning unused threads
would linger forever, though this is only relevant if you changed
max_unused_threads).

However, GIOScheduler changed the global defaults to 2 and 15*1000,
respectively, arguing that these were more useful defaults. And they
are, so let's use them.

https://bugzilla.gnome.org/show_bug.cgi?id=661767
2012-07-31 14:37:56 -04:00
Dan Winship
26056558be gmain: allow g_source_get_context() on destroyed sources
g_source_get_context() was checking that the source wasn't destroyed
(since a source doesn't hold a ref on its context, and so
source->context might point to garbage in that case). However, it's
useful to be allowed to call g_source_get_context() on a source that
is destroyed-but-currently-running.

So instead, let g_source_get_context() return the context whenever
it's non-NULL, and clear the source->context of any sources that are
still in a context's sources list when the context is freed. Since
sources are only removed from the list when the source is freed (not
when it is destroyed), this means that now whenever a source has a
non-NULL context pointer, then that pointer is valid.

This also means that g_source_get_time() will now return-if-fail
rather than crashing if it is called on a source whose context has
been destroyed.

Add tests to glib/tests/mainloop to verify that g_source_get_context()
and g_source_get_time() work on destroyed sources.

https://bugzilla.gnome.org/show_bug.cgi?id=661767
2012-07-30 12:48:10 -04:00
Dan Winship
6881e743ee glib/tests/mainloop: test g_source_get_time()
Verify that

  - g_source_get_time() does not change within a single callback
    (even if the real time does)

  - g_source_get_time() does not change between different callbacks in
    the same mainloop iteration

  - g_source_get_time() does change between iterations if the real
    time did.

https://bugzilla.gnome.org/show_bug.cgi?id=661767
2012-07-30 12:48:10 -04:00
Lionel Landwerlin
ad4f780cb4 glib: fix locale detection on android
g_utf8_strup() tries to call setlocale() before starting to compute
the length of its first argument. Calling setlocale() can return NULL
(as specified in the man page), and obviously that happens on android.

https://bugzilla.gnome.org/show_bug.cgi?id=680704
2012-07-27 19:41:05 +02:00
Colin Walters
003e7a70e8 Revert unintential IAPI break for g_key_file_load_from_data()
The old (length) annotation actually wasn't being read.  Changing
it to an array was telling g-i that it was an array of utf8, which
is clearly not true.

We *could* add (element-type guint8), but that would change it to a
byte array, as opposed to the original utf8 version.

Just removing the annotation should bring us back to where we
were, which was fine.

https://bugzilla.gnome.org/show_bug.cgi?id=680310
2012-07-20 14:07:39 -04:00
Matthias Clasen
23a2136fb5 Check for PR_SET_NAME
Bug 680148 claims that PR_SET_NAME may not be defined when
using an old kernel. Deal with it.
2012-07-19 06:37:59 -04:00
Matthias Clasen
4c255d4602 Be more careful when using xlocale
Bug 680074 shows that we may end up in situations where only
some of the xlocale functions we need are available. Rather than
trying to find the minimal set of required functions for each
use, define a global USE_XLOCALE and only use any xlocale functions
if we have a full set.
2012-07-19 06:32:29 -04:00
Matthias Clasen
dd098405ad Cosmetic: Fix up line endings
Somehow a few ^M sneaked in here.
2012-07-19 06:20:41 -04:00
Dan Winship
2357f67b1b gmain: handle child sources being destroyed before parent
Fix a crash when a child source is destroyed before its parent. Also,
add a test case for this and the previous fix.
2012-07-18 15:08:44 -04:00
Dan Winship
ee6e66cb44 g_source_add_child_source: sync blocked state
Child sources are supposed to be blocked when their parents are, so
when adding a source to a blocked source, block the child too. Fixes a
warning when unblocking the parent.
2012-07-18 14:19:36 -04:00
Krzesimir Nowak
cd8ec3359b GVariantType: Add (constructor) annotation for some constructors.
This are mistaken by g-ir-scanner as GVariantType's methods, because
they take a GVariantType* as a first parameter.

https://bugzilla.gnome.org/show_bug.cgi?id=679968
2012-07-16 17:58:22 +02:00
Marc-André Lureau
bfbfbec91e win32: g_getenv() should return "" if variable exists and empty
On Windows, GetEnvironmentVariable() returns 0 for empty variables.
Checking GetLastError() == ERROR_ENVVAR_NOT_FOUND helps make a
difference between a variable that does not exist or an empty one
which should return "".

https://bugzilla.gnome.org/show_bug.cgi?id=679617
2012-07-16 12:49:25 +02:00
Marc-André Lureau
6007a4b0b1 win32: fix g_get_environ()
The current code create the strv array incorrectly, it is too big and
leaves invalid holes. This may result in crashes when freeing the
returned value.

https://bugzilla.gnome.org/show_bug.cgi?id=679617
2012-07-16 12:49:24 +02:00
Matthias Clasen
34b2125edf Fix doc build 2012-07-13 17:37:12 -04:00
Marc-André Lureau
d9af4259f7 win32: fix build g_spawn_check_exit_status() with mingw
With mingw, only gspawn-win32.c is compiled, but it is missing some
new symbols.

https://bugzilla.gnome.org/show_bug.cgi?id=679691
2012-07-12 23:19:52 -04:00
Krzesimir Nowak
ce1b50bf2a GRegex, GConvert: Add some missing annotations.
Also, removed pointless (allow-none) return annotation.

https://bugzilla.gnome.org/show_bug.cgi?id=679762
2012-07-12 16:09:57 +02:00
Colin Walters
f7abd3ce13 Add g_spawn_check_exit_status()
Many (if not "almost all") programs that spawn other programs via
g_spawn_sync() or the like simply want to check whether or not the
child exited successfully, but doing so requires use of
platform-specific functionality and there's actually a fair amount of
boilerplate involved.

This new API will help drain a *lot* of mostly duplicated code in
GNOME, from gnome-session to gdm.  And we can see that some bits even
inside GLib were doing it wrong; for example checking the exit status
on Unix, but ignoring it on Windows.

https://bugzilla.gnome.org/show_bug.cgi?id=679691
2012-07-10 18:03:56 -04:00
Antoine Jacoutot
4749878f91 goptions: use G_N_ELEMENTS instead of nitems 2012-07-10 15:14:52 +02:00
Ryan Lortie
5a85fe0e37 GVariant: fix string validation
String validation was done by checking if the string was valid utf8 and
ensuring that the first non-utf8 character was the last character (ie:
the nul terminator).

No check was actually done to make sure that this byte actually
contained a nul, however, so it was possible that you could have a
string like "hello\xff" with length 6 that would correctly validate.

Fix that, and test it.
2012-07-09 12:47:31 -04:00
Antoine Jacoutot
f9a6a97470 OpenBSD: explicitely define nitems
nitems is never guaranteed to be defined in sys/params.h as it is meant
to be defined within a protected ifdef __KERNEL condition.
2012-07-08 19:23:18 +02:00
Christian Persch
53b3175cfa regex: Add new GRegexError code from PCRE 8.31 2012-07-07 22:08:08 +02:00
Christian Persch
2188a5e59c regex: Enable fixed test
This problem was fixed in PCRE 8.31, so uncomment the test.
2012-07-07 22:08:08 +02:00
Christian Persch
9457833010 regex: Import PCRE 8.31
https://bugzilla.gnome.org/show_bug.cgi?id=679193
2012-07-07 22:08:02 +02:00
Ryan Lortie
f66052fc87 GVariant: support comparing booleans
g_variant_compare() is documented as working on booleans but somehow
this case was missed.  Add it and test it.

Problem discovered by Charles Kerr.
2012-07-06 17:29:30 -04:00
Dan Winship
ee9aae5dcf Clarify the GLIB_VERSION_MIN_REQUIRED/MAX_ALLOWED docs
https://bugzilla.gnome.org/show_bug.cgi?id=674898
2012-07-06 12:10:42 -04:00
Dan Winship
40f0f66151 Deal with GLIB_VERSION_MIN_REQUIRED/MAX_ALLOWED being a "future" value
If GLIB_VERSION_MIN_REQUIRED or GLIB_VERSION_MAX_ALLOWED was defined
to a future value, we were essentially treating it as
GLIB_VERSION_0_0. Fix to treat it as being in the future instead.

https://bugzilla.gnome.org/show_bug.cgi?id=674898
2012-07-06 12:10:42 -04:00
Colin Walters
4ac0d78d5d GString: Tweak documentation, add g_string_free_to_bytes()
The docs for GString should really mention GByteArray, and what makes
it different.  Drop the comparison to Java which is dated and actually
inaccurate (because StringBuffer operates on Unicode).

While we're here, add g_string_free_to_bytes(), which further
complements the spread of GBytes-based API.  For example, one can
create a buffer using GString, then send it off via
g_output_stream_write_bytes().

https://bugzilla.gnome.org/show_bug.cgi?id=677064
2012-07-06 10:19:12 -04:00
Matthias Clasen
ab4cc22ba5 Improve the g_dir_read_name documentation
This function can return NULL in error cases as well. Document
this, and explain how to discriminate the cases.
https://bugzilla.gnome.org/show_bug.cgi?id=639771
2012-07-05 22:25:49 -04:00
Rico Tzschichholz
72660997bc glib/deprecated: Fix some version typos 2012-07-03 21:22:16 +02:00
Neil Roberts
489b947c3b Fix the 'Since' tag for G_SOURCE_{REMOVE,CONTINUE}
The Since tag for these was saying 2.28 but it was actually added in
2.31. It looks like all of the Since tags list stable version numbers
so this patch bumps that up to 2.32.

https://bugzilla.gnome.org/show_bug.cgi?id=679258
2012-07-02 18:44:49 +01:00
Daniel Mustieles
1519d6b894 Fixed a a «big bug» in a string ;-) 2012-07-02 17:24:45 +02:00
Christian Persch
7483315f83 regex: Fix unicode othercasing
Reorder the toupper/tolower calls when othercaseing, so this
function is bug-for-bug compatible with the pcre internal tables.

https://bugzilla.gnome.org/show_bug.cgi?id=678273
2012-07-02 15:59:39 +02:00
Christian Persch
a2f54a3408 regex: Add FIRSTLINE compile flag
This option exists since PCRE 6.0.
2012-07-02 15:59:39 +02:00
Christian Persch
e99e34f65f regex: Add NOTEMPTY_ATSTART match option
Since PCRE 8.00 it supports a variant of PCRE_NOTEMPTY that works
similarly except that it only applies to the start of the matched string
but permits empty matches further in.
2012-07-02 15:59:39 +02:00
Christian Persch
1171215014 regex: Add PARTIAL_HARD match option
Since PCRE 8.00 it supports a new partial matching method PCRE_PARTIAL_HARD.
2012-07-02 15:59:39 +02:00
Christian Persch
0a2967030a regex: Add JavaScript compat mode
Since PCRE 7.7, there's a flag that changes the behaviour to be more
JavaScript compatible. Since it's no effort to expose it, just do so.
2012-07-02 15:59:39 +02:00
Christian Persch
e5550a24db regex: Don't leak internal PCRE options
g_regex_get_compile_get_compile_flags() and g_regex_get_match_flags()
were leaking PCRE flags that don't exist in the corresponding
public GRegexCompileFlags and GRegexMatchFlags; this change masks
these internal flags.
2012-07-02 15:59:39 +02:00
Christian Persch
26d91ddc08 regex: Add BSR_ANYCRLF and BSR_ANY match options
These flags override the compile option at match time. They use PCRE_BSR_ANYCRLF
and PCRE_BSR_UNICODE, resp., which make \R match only CR, LF and CRLF, or any
Unicode newline character or character sequences, resp.
2012-07-02 15:59:39 +02:00
Christian Persch
88ac3839f5 regex: Add BSR_ANYCRLF compile option
When this flag is set, \R only matches CR, LF and CRLF.
2012-07-02 15:59:39 +02:00
Christian Persch
86a04a05e6 regex: Fix newline definition for system PCRE
While we PCRE_BSR_UNICODE is the default in the internal PCRE, that may
not be true for the system one. Force the PCRE_BSR_UNICODE flag on it.
2012-07-02 15:59:39 +02:00
Christian Persch
91ba8ae156 regex: Don't return from inside a g_once_init_enter/leave block
When using the system PCRE, and it was compiled with incompatible options,
the code was returning from inside a g_once_init_enter/leave block without
calling g_once_init_leave().
2012-07-02 15:59:38 +02:00
Christian Persch
69a12e3275 regex: Add accessor for PCRE_INFO_HASCRORLF
This flag is new in PCRE 7.3, and checks whether there is an explicit
CR or LF reference in the pattern.
2012-07-02 15:59:34 +02:00
Christian Persch
7ada976516 regex: Remove message for unused error code
Since PCRE 7.3 the PCRE_ERROR_NULLWSLIMIT error is not returned anymore.
2012-07-02 14:17:34 +02:00
Christian Persch
592531019e regex: Add NEWLINE_ANYCRLF match option
This PCRE option is new in PCRE 7.1.
2012-07-02 14:17:34 +02:00
Christian Persch
c8c049b177 regex: Add NEWLINE_ANYCRLF compile option
The PCRE_NEWLINE_ANYCRLF option is new in PCRE 7.1. With it set, the only
only newline sequences recognised are CR, LF and CRLF.
2012-07-02 14:17:34 +02:00
Christian Persch
7e8b5ea442 regex: Assert that our flags values are the same as PCRE's
We rely on those flags having the same values as PCRE's (so we can pass
them right through), so assert this at compile time.
2012-07-02 14:17:34 +02:00
Christian Persch
6d5484b296 regex: Handle PCRE_ERROR_RECURSIONLOOP
Was missing from the error conversion routine.
2012-07-01 14:00:11 +02:00
Christian Persch
7e5615138a regex: Update GRegexError with newer PCRE error codes
Update the GRegexError enum with new PCRE errors up to PCRE 8.30.

https://bugzilla.gnome.org/show_bug.cgi?id=677579
2012-07-01 14:00:11 +02:00
Christian Persch
3be1d864d8 regex: Simplify regex compile tests
Use a macro instead of repeating the same code over and over again.
2012-07-01 14:00:11 +02:00
Christian Persch
20ab7e2aea regex: Deprecate an obsolete error code
G_REGEX_ERROR_DEFINE_REPETION is dead and never raised by PCRE.
2012-07-01 14:00:11 +02:00
Christian Persch
d9e8d3e0f0 regex: Fix PCRE error code conversion
Use the shifted error codes for comparisions.

https://bugzilla.gnome.org/show_bug.cgi?id=677578
2012-07-01 14:00:11 +02:00
Matthias Clasen
64bfbc2cf0 GOptionContext: Don't show headings without options
If the only entry in the main group is for the rest args,
don't bother printing "Application Options".
2012-06-29 14:16:55 -04:00
Martin Pitt
95f29687e1 /mainloop/timeouts test: Reduce race condition
Due to load, particular traits of the architecture, or other circumstances, the
/mainloop/timeouts sometimes manages to call the "every
100 ms" timer loop only 9 times in 1050 ms.

This is an inherent race-condition in the test; allow it some slack and accept
9 times as well.

https://bugzilla.gnome.org/show_bug.cgi?id=678959
2012-06-27 15:32:38 +02:00
Dan Winship
55bac5da0a GMainContext: reorganize source list to avoid O(n) behavior
Rather than having a single priority-ordered list of GSources, store a
list of queues of each priority level. This means that adding a source
is now O(n) in the number of unique priority levels currently being
used, rather than O(n) in the total number of sources.

https://bugzilla.gnome.org/show_bug.cgi?id=619329
2012-06-26 08:40:32 -04:00
Dan Winship
aaaaab91de gmain: add GSourceIter
add an explicit iterator for GMainContext sources

https://bugzilla.gnome.org/show_bug.cgi?id=619329
2012-06-26 08:40:31 -04:00
Dan Winship
8e65c30431 gmain: rename some variables for clarity
https://bugzilla.gnome.org/show_bug.cgi?id=619329
2012-06-26 08:40:31 -04:00
Dan Winship
532f463eaf gmain: child sources must always have same priority as parent
A child source does not have a priority of its own; it must have the
same priority as its parent. Enforce this in
g_source_set_priority_unlocked().

https://bugzilla.gnome.org/show_bug.cgi?id=619329
2012-06-26 08:40:31 -04:00
Ryan Lortie
d981d79a42 GSource: initialise ->priv on construct
For efficiency, we waited until setting up child sources to allocate
->priv.  Simplify things a bit by allocating it from the start.

https://bugzilla.gnome.org/show_bug.cgi?id=619329
2012-06-26 08:40:31 -04:00
Ryan Lortie
4780ee5d4a glib/: gtk-doc cleanup 2012-06-25 23:23:58 -04:00
Matthias Clasen
bea9941993 Mark utf8 performance tests as such 2012-06-23 21:01:33 -04:00
Matthias Clasen
1c6070a679 Add a test for G_USER_DIRECTOR_DESKTOP
Based on a patch by Marc-Antoine Perennou,
https://bugzilla.gnome.org/show_bug.cgi?id=676594
2012-06-23 17:51:11 -04:00
Christian Persch
53b48dfd3b regex: Fix unicode othercasing
The old _pcre_ucp_othercase() function was wrong in returning
NOTACHAR (0xffffffff) for characters that aren't changed by upper-
and lower-casing. This led to PCRE internally using incorrect (or
at least inefficient) character classes when using G_REGEX_CASELESS.

E.g. [Z-\x{100}] turned into:

[Z\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{39c}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{178}z-\x{101}]

instead of the expected and efficient

[Z\x{39c}\x{178}z-\x{101}]

https://bugzilla.gnome.org/show_bug.cgi?id=678273
2012-06-23 17:32:15 -04:00
Matthias Clasen
22e9f72a8e Add a note of caution to the g_slist_delete_link() docs 2012-06-23 17:30:10 -04:00
Colin Walters
a8ddd52a45 GRand: Check return value of fopen directly
This doesn't fix anything, it should just silence some static analysis
tools.
2012-06-22 10:34:46 -04:00
Colin Walters
01d8d43d0b gspawn: Abort if we can't open /dev/null
This really "shouldn't happen", but if we have an assertion here, it
will help static analysis tools know we're not hitting undefined
state.
2012-06-22 10:34:03 -04:00
Colin Walters
7d622157f0 tests/unix: Ensure buffer is NUL terminated 2012-06-22 10:32:26 -04:00
Colin Walters
eef6f0add8 gfileutils: Remove extra fclose()
This is a regression introduced by:
commit 6ac8e6108c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 10:12:46 2011 -0400

    Don't leak resources in error cases
2012-06-22 10:32:25 -04:00
Jonh Wendell
2fd6eb7e1c Adds g_list_copy_deep and g_slist_copy_deep
They make a full (deep) copy of a list.

In contrast with g_[s]list_copy(), these functions take a function as a argument
to make a copy of each list element, in addition to copying the list container itself.

The functions g_[s]list_copy() were reimplemented to just call the new functions
with NULL as the function argument, which will behave like current implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=675024
2012-06-21 17:21:30 -03:00
Martin Pitt
b81d788652 Fix g_utf8_validate() out argument transfer mode
The "end" argument is unusual in g_utf8_validate(): it's not a classic out
argument which gets allocated by the called function, but merely points into
one of its input arguments. Thus it is "transfer none".

https://bugzilla.gnome.org/show_bug.cgi?id=672889
2012-06-18 07:39:23 +02:00
Matthias Clasen
defa25f3d0 GKeyFile: Deal better with blank lines
There is no need to store a has_trailing_blank_line boolean for
each group, we can just check this at the time we assemble the data.

This fixes a problem without roundtrips where we would sometimes
add an extra blank line between groups.

The testcase here is inspired by
https://bugzilla.gnome.org/show_bug.cgi?id=677817
2012-06-15 18:53:09 -04:00
Matthias Clasen
d0c8895a07 GWakeup: Avoid extraneous wakeups
We were checking the wrong number here, and waking up unnecessarily.
https://bugzilla.gnome.org/show_bug.cgi?id=678052
2012-06-15 15:16:13 -04:00
Paolo Borelli
6a5b3729ab Improve g_find_program_in_path documentation
Document that g_find_program_in_path returns a newly-allocated string
2012-06-15 14:47:04 +02:00
Matthias Clasen
e5d4af10a3 Improve GTimeZone test coverage 2012-06-13 14:44:20 -04:00
Murray Cumming
b9ec5699cd Remove trailing commas from enums 2012-06-12 10:35:52 +02:00
Matthias Clasen
6f1c4f7f05 Correct the docs for g_time_zone_adjust_time
March 13, 2010 is very ordinary.
March 14, 2010 is the special day.
2012-06-11 10:25:24 -04:00
Matthias Clasen
f47de7ec2c Improve GTimeZone test coverage 2012-06-11 10:25:24 -04:00
Matthias Clasen
6ee10762b5 Improve GOptionContext test coverage 2012-06-11 10:25:19 -04:00
Matthias Clasen
c5dabac47a Fix a typo
It is 'entries', not 'entires'.
2012-06-11 07:18:29 -04:00
Colin Walters
7ccfa9ce4b tests/spawn-multithreaded: Decrease parallelism to avoid crashing on OS X
https://bugzilla.gnome.org/show_bug.cgi?id=677527
2012-06-06 07:15:48 -04:00
Marc-Antoine Perennou
ce5bd68e26 glib: fix g_reload_user_special_dirs_cache
We handle a special case for G_USER_DIRECTORY_DESKTOP
when we init the values but drop it when we reload them.
Fix this by preferring old values to NULL

https://bugzilla.gnome.org/show_bug.cgi?id=676594

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2012-06-01 10:46:00 +02:00
Guillaume Desmottes
ae421c9f6c Link to gvariant-format-strings-pointers in getter API
https://bugzilla.gnome.org/show_bug.cgi?id=674777
2012-05-28 10:54:59 +02:00
Colin Walters
a963712646 Annotate API introduced for 2.30 with GLIB_AVAILABLE_IN_2_30
I didn't do this comprehensively, since there's a lot of it, mainly
due to the GDBus object manager stuff, but anyone trying to use
that would fail fast due to lack of the gdbus code generator.

My main goal was to get API additions to existing classes like
g_data_input_stream_read_line_utf8(), as well as the lower level new
API like glib-unix.h.

https://bugzilla.gnome.org/show_bug.cgi?id=676816
2012-05-26 10:13:30 -04:00
Marc-Antoine Perennou
9217309a5c glib: fix build
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2012-05-22 20:38:52 +02:00
Christian Persch
481191f118 gspawn: Add GSpawnFlag to use the PATH from envp
Add a G_SPAWN_SEARCH_PATH_FROM_ENVP flag to GSpawnFlags so that
g_spawn_async() etc use the PATH variable from the passed-in child
environment to search for the executable.
If both this flag and the G_SPAWN_SEARCH_PATH flag are set, the
child environment is searched first and only falls back to the
PATH from the process environment if it is unset.

Bug #676398.
2012-05-22 19:47:28 +02:00
Christian Persch
6969b63827 environ: Allow NULL envp
https://bugzilla.gnome.org/show_bug.cgi?id=676397
2012-05-22 19:47:22 +02:00
Dan Winship
7cadf4f15f g_utf8_validate: @str shouldn't end up annotated as utf8
In order for this function to have any point, it has to be possible to
pass non-UTF-8 data to it, so annotate @str as being array-of-guint8
instead of utf8.

https://bugzilla.gnome.org/show_bug.cgi?id=672548
2012-05-18 12:36:12 -04:00
Dan Winship
0ecbb0a404 g_clear_pointer: work around gcc helpfulness
gcc gets upset when we do "((GDestroyNotify) destroy) (_p)" because
it's non-portable. But we don't care; we already know glib wouldn't
work on any platform where different pointer types have different
calling conventions. So tweak the code to avoid the warning.

https://bugzilla.gnome.org/show_bug.cgi?id=674634
2012-05-17 10:47:05 -04:00
Ravi Sankar Guntur
aded15c9d1 glib: fix memory leaks in gutils, protocol, and strfuncs tests
https://bugzilla.gnome.org/show_bug.cgi?id=672329

Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>
2012-05-17 00:38:43 -04:00
Matthias Clasen
d5d3c7b3a4 Cover some malloc corner cases in tests 2012-05-14 17:57:42 -04:00
Matthias Clasen
215844b3a6 Add a test for g_clear_pointer 2012-05-14 17:57:42 -04:00
Matthias Clasen
e3eb137bbb Use non-deprecated api in tests
https://bugzilla.gnome.org/show_bug.cgi?id=660851
2012-05-13 01:14:17 -04:00
Jasper St. Pierre
77695437b3 gkeyfile: Fix annotations for g_key_file_load_from_data
https://bugzilla.gnome.org/show_bug.cgi?id=675309
2012-05-11 19:31:52 -03:00
Xavier Claessens
1b29ea3663 Set GLIB_VERSION_MAX_ALLOWED to GLIB_VERSION_CUR_STABLE by default 2012-05-08 16:49:53 +02:00
Emmanuele Bassi
744f36bb06 version macros: Make MIN_REQUIRED the current stable version
So that deprecation warnings will come into effect starting from the
stable release, instead of the next.
2012-05-08 15:12:42 +01:00
Xavier Claessens
cbf06d8fa9 g_clear_pointer: use the same static checks than g_clear_object in glib-2-32 2012-04-30 17:03:31 +02:00
Dan Winship
c37273dccb fix warnings 2012-04-30 09:28:42 -04:00
Xavier Claessens
00285b7517 Add g_clear_pointer()
Also reimplement g_clear_object() using g_clear_pointer()

https://bugzilla.gnome.org/show_bug.cgi?id=674634
2012-04-27 09:42:29 +02:00
Colin Walters
063ec9a75d build: Fix 'make dist' regression
Commit f084b60377 incorrectly set
DIST_SUBDIRS for the toplevel Makefile.am.  In general actually we
don't need to set it, because modern automake automatically sets
it by looking at conditionals for SUBDIRS.

Tested-by: Rico Tzschichholz <ricotz@t-online.de>

https://bugzilla.gnome.org/show_bug.cgi?id=667806
2012-04-25 15:41:48 -04:00
Matthias Clasen
8783224202 Add some directory getter tests 2012-04-23 08:20:21 -04:00
Matthias Clasen
1089a0a9f6 Improve GOptionContext test coverage 2012-04-23 08:20:21 -04:00
Matthias Clasen
a151c97106 Make the child source test work
On my machine, this test was failing, because the timeout source
for quitting the inner mainloop was triggering repeatedly. Avoid
that by explicitly returning G_SOURCE_REMOVE from the callback.
2012-04-23 00:35:37 -04:00
Javier Jardón
14a7781873 docs: Fix "Since" markup 2012-04-23 02:23:31 +01:00
Matthias Clasen
6d51527ba0 Revert "tests: fix test on windows"
This reverts commit 79361eede2.

Just commenting out a test without an explanation does not
look right to me. This needs at the minimum a link to a
bug report or an explanation for why the behaviour is platform
dependent. If the test was just wrong, it needs to be removed,
not commented out. If there is a bug in the win32 implementation,
it needs to be fixed.
2012-04-19 13:25:26 -04:00
Andoni Morales Alastruey
79361eede2 tests: fix test on windows 2012-04-19 15:20:43 +02:00
Andoni Morales Alastruey
af7dc168f6 test: only check for defined errors 2012-04-19 15:20:31 +02:00
Alexander Larsson
2414d7d6a1 Fix build on win32
Some errnos don't exist on win32
2012-04-19 10:24:08 +02:00
Hannes Mueller
2ef1a8ef05 avoid warning in gutils.h when using gcc with -Wconversion
Old solution to avoid warning with gcc flag -Wconversion does not
work with gcc >=4.3 since the behaviour for that flag has been
changed, ref. http://gcc.gnu.org/wiki/NewWconversion. Now cast for
__builtin_clzl is required, which itself is declared to return int.

https://bugzilla.gnome.org/show_bug.cgi?id=619026
2012-04-17 18:24:41 +02:00
Colin Walters
3ac2930e1a tests: Fix race conditions in mainloop/invoke test
1) The test was using GCond incorrectly (it always needs a
   state variable)
2) The state assertion was racing with the thread; just delete it.
   All we're really trying to test here is that the invoke runs by the
   time the thread is gone, and the function has an assertion that
   it runs in the correct thread.

https://bugzilla.gnome.org/show_bug.cgi?id=674213
2012-04-16 14:14:29 -04:00
Colin Walters
3054ecf109 tests/mainloop: Add a test for recursive child sources
https://bugzilla.gnome.org/show_bug.cgi?id=669260
2012-04-16 13:47:27 -04:00
Dan Winship
bdbb531340 tests/mainloop: add a test for child sources
https://bugzilla.gnome.org/show_bug.cgi?id=669260
2012-04-16 13:47:27 -04:00
Dan Winship
a49568cecc gmain: block child sources when blocking the parent
When blocking a source that has child sources, we need to consider the
children blocked as well. Otherwise they will still trigger repeatedly
in an inner loop started from the parent source's callback.

https://bugzilla.gnome.org/show_bug.cgi?id=669260
2012-04-16 13:47:27 -04:00
Kalev Lember
aacd3469a5 tests/fileutils: Fix Windows build 2012-04-16 18:46:12 +03:00
Cosimo Cecchi
0f57e5c70c tests/date: force English locale running the GDateTime tests
The parsing test needs to make some assumption about the locale
representation of the string to be parsed, so we need to explicitly
override the locale here.
2012-04-16 10:53:43 -04:00
Colin Walters
f084b60377 build: Add --disable-modular-tests build option
This patch solves two problems:

First, it allows builders to optionally cut the circular dependency
between dbus and glib by disabling the modular tests (just like how
the tests can be disabled in dbus).

Second, the tests are entirely pointless to build if cross-compiling.

It also moves us slightly closer to the long term future we want where
the tests are a separate ./configure invocation and run against the
INSTALLED glib, not the one in the source tree. This would allow us to
run the tests constantly, not just when glib is built.

https://bugzilla.gnome.org/show_bug.cgi?id=667806
2012-04-15 11:15:54 -04:00
Giovanni Campagna
79013634ab Add version macros for 2.34
This marks the start of the new development cycle, and opens the
window for API additions.

https://bugzilla.gnome.org/show_bug.cgi?id=673659
2012-04-14 02:22:36 +02:00
Matthias Clasen
c1a83a4ac8 Fix distcheck
I forgot to dist a test script, and forgot to look for it
in srcdir instead of builddir.
2012-04-13 19:53:07 -04:00
Dan Winship
baf0ebf7b2 tests/mainloop: fix a race condition
Rather than depending on the machine's speed/load, just interlock
between the two threads properly.
2012-04-13 12:15:15 -04:00
Dan Winship
e0aa0ae8a2 tests/mainloop: use g_assert_cmpint(), for better error messages 2012-04-13 12:15:11 -04:00
Matthias Clasen
50aed1cc8f Make the markup-parse test independent of the locale
I added a setlocale call, because we need it for Unicode to
come out right; but I forgot to fix the locale, so we now
fail when comparing error messages to the expected (English)
result. Correct this by setting LANG explicitly to en_US.utf-8.

https://bugzilla.gnome.org/show_bug.cgi?id=669285
2012-04-13 09:39:48 -04:00
Cosimo Cecchi
c39d6954d3 tests: always use four digit years for date parsing tests
Or some system with different locale settings might get confused whether
a two digit year is to be parsed with regard to the current century or
as an absolute year.
2012-04-09 15:47:29 -04:00
Matthias Clasen
fb0951e67a spawn: Improve test coverage
Add a test that excercises the script execution code.
Unfortunately, much of this code only runs in the forked
child, and therefore its execution does not get caught
by gcov.
2012-04-08 10:24:52 -04:00
Matthias Clasen
b87e7ca729 mainloop: Improve test coverage 2012-04-08 10:24:51 -04:00
Matthias Clasen
2a1ea40920 utils: Improve test coverage
Add a test for some of our gettext variants.
2012-04-08 10:24:51 -04:00
Matthias Clasen
5951295937 fileutils: Improve test coverage
Add tests for corner cases of g_path_get_basename, and
for the errno-to-file-error conversion.
2012-04-08 10:24:51 -04:00
Matthias Clasen
550b69b963 sort: Improve test coverage
Test the code paths that sort 'large' items.
2012-04-08 10:24:51 -04:00
Matthias Clasen
06015064b8 date: Improve test coverage
Add tests that exercise g_date_order, g_date_compare, g_date_clamp,
and more of the date parsing functions.
2012-04-08 10:24:50 -04:00
Matthias Clasen
cbeecdc4ae convert: Improve test coverage
Add a test that excercises the 'no conversion' code path.
This uncovered that we don't treat errno properly in this path,
and as a consequence, the returned error code is unreliable.
2012-04-08 10:24:50 -04:00
Matthias Clasen
7d489acecc collate: Improve test coverage
Add some strings that exercise the non-ASCII parts of our
collation support.
2012-04-08 10:24:50 -04:00
Matthias Clasen
8db4b949b8 Always use '/' in test paths
It does not make much sense to use a platform-dependent
directory separator in these strings, since they are not
filesystem paths.

https://bugzilla.gnome.org/show_bug.cgi?id=673216
2012-04-06 20:52:15 -04:00
Dan Winship
a81a062202 gchecksum: fix strict-aliasing warnings in the MD5 code
https://bugzilla.gnome.org/show_bug.cgi?id=673191
2012-04-05 12:57:56 -04:00
Dieter Verfaillie
2655262889 Fix malformed GTK-Doc comment blocks: remove repeated comment blocks.
gio/gproxyresolver.h: GProxyResolver already documented in gio/giotypes.h
gio/gtlsbackend.h: GTlsBackend already documented in gio/gtlsbackend.c
gio/gtlsclientconnection.h: GTlsClientConnection already documented in gio/gtlsclientconnection.c
gio/gtlsconnection.h: GTlsConnection already documented in gio/gtlsconnection.c
gio/gunixconnection.h: GTcpConnection already documented in gio/giotypes.h
glib/gversion.h: GLIB_CHECK_VERSION already documented in glib/gversion.c

Found these thanks to the improved gobject-introspection
GTK-Doc comment block/annotation parser.
See https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:46 -03:00
Dieter Verfaillie
ce7f1a0789 Fix malformed GTK-Doc comment blocks: don't confuse GTK-Doc parsers.
Found these thanks to the improved gobject-introspection
GTK-Doc comment block/annotation parser.
See https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:45 -03:00
Dieter Verfaillie
0183c1f8a1 Fix malformed GTK-Doc comment blocks: invalid parameters and tags.
Found these thanks to the improved gobject-introspection
GTK-Doc comment block/annotation parser.
See https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:42 -03:00
Dieter Verfaillie
a058c1c13e Fix malformed GTK-Doc comment blocks: mutliline annotations are invalid.
Found these thanks to improved gobject-introspection GTK-Doc
comment block/annotation parser from:
https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:41 -03:00
Dieter Verfaillie
8e740f726f Fix malformed GTK-Doc comment blocks: add missing colons.
Found these thanks to improved gobject-introspection GTK-Doc
comment block/annotation parser from:
https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:39 -03:00
Matthias Clasen
588c2bacf7 Improve keyfile test coverage 2012-04-04 15:01:48 -04:00
Matthias Clasen
3eec7eeeaa Remove a bit of unused code
_g_utf8_strwidth is always called with max == -1, so remove the
parameter and update all callers.
2012-04-04 15:01:48 -04:00
Matthias Clasen
84a1b8aac8 Improve test coverage
Add tests for all the suffixes in g_format_size.
2012-04-04 15:01:48 -04:00
Dan Winship
51609ec943 tests/gdatetime: fix new_from_unix test
When creating a struct tm for "1990-01-01T00:00:00" to pass to
mktime(), we have to set tm_isdst to -1; leaving it set to 0 will
result in the wrong time being generated when run in a timezone where
January 1 would normally be tm_isdst==1 (ie, in southern hemisphere
DST-observing countries, like Australia).

https://bugzilla.gnome.org/show_bug.cgi?id=670254
2012-04-04 14:49:15 -04:00
Matthias Clasen
e51c3b4cfe Use new hashset api in the hash set tests 2012-04-02 09:09:11 -04:00
Matthias Clasen
e7c0f10ee0 Drop some unused PCRE sources
There is no point in compiling these, since we are not calling
any of the functions in them.
2012-04-01 23:08:42 -04:00
Antoine Jacoutot
829db4cec3 gthread-posix: fix typo in error message 2012-03-31 22:48:42 +02:00
Robert Ancell
4143842eb4 Add missing allow-none annotations for function parameters.
Found using:
find . -name '*.c' | xargs grep 'or %NULL' | grep ' \* @' | grep -v '@error' | grep -v allow-none
2012-03-31 20:34:28 +11:00
Bastien Nocera
9b0734a09c all: s/availible/available/ 2012-03-27 11:01:00 +02:00
Matthias Clasen
e927df7b7a Add a forgotten include guard
gbytes.h was missing the single-include guard.
2012-03-24 23:00:15 -04:00
Raphael Kubo da Costa
d2b7ee62f9 Make the `include' glib test case build on FreeBSD.
Defining _POSIX_C_SOURCE to 0 will make time.h not create the clockid_t
typedef used by some functions in pthread.h.

The right approach here is to set it to 199309L, which creates the
typedef on FreeBSD and doesn't set __USE_UNIX98 or __USE_XOPEN2K on
glibc, which is what the test is actually testing.

https://bugzilla.gnome.org/show_bug.cgi?id=672406
2012-03-22 11:02:07 -04:00
Chun-wei Fan
b08b301223 glib/gqsort.c: Fix C99ism/GCCism
-There were a number of variables that were declared in the middle of
 the block, so move these declarations to the start of the block
-There was a use of mempcpy, but it is a GCC extension, so use memcpy since
 we didn't care about the return value of the call to mempcpy.

https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-20 22:29:50 -04:00
Alexander Larsson
f23e7c3ef9 Fix the tests on win32
There was some unix-specific pathname handling in the test utils
which broke the css tests on win32.
2012-03-20 10:20:18 +01:00
Alexander Larsson
d0635dac52 Use g_unsetenv, not unsetenv
This fixed the win32 build
2012-03-20 10:19:42 +01:00
Matthias Clasen
2826ece6fc Fix distcheck
automake decided to complain about some more leftovers.
2012-03-19 16:58:48 -04:00
Matthias Clasen
6dfb50adf7 Don't return from a void function 2012-03-19 13:28:14 -04:00
Matthias Clasen
cb45176110 Fix a C99ism 2012-03-19 13:26:19 -04:00
Matthias Clasen
bd3063c742 Silence a compiler warning 2012-03-19 13:22:04 -04:00
Chun-wei Fan
bac0294c73 Update glibconfig.h.win32(.in)
Added the definitions below, as these #defines are needed for gqsort.c

#define ALIGNOF_GUINT32 4
#define ALIGNOF_GUINT64 8
#define ALIGNOF_UNSIGNED_LONG 4
2012-03-19 15:55:20 +08:00
Matthias Clasen
8c2434f01a Make inf testcase more forgiving
printf may produce "infinity" instead of "inf".

https://bugzilla.gnome.org/show_bug.cgi?id=668973
2012-03-17 23:43:52 -04:00
Sebastian Dröge
57878d6042 Use __builtin_bswap* for GUINT*_SWAP_LE_BE if building with GCC
https://bugzilla.gnome.org/show_bug.cgi?id=531901
2012-03-17 23:28:48 -04:00
Dieter Verfaillie
e2b47ae9e0 Fix out of tree build for MinGW/MSYS
When building with MinGW/MSYS with srcdir != builddir the build fails:
- to locate the generated .def files
- creating libglib-gdb.py
- creating libgobject-gdb.py

Solved this by explicitly instructing these files to be generated
in $(builddir)/...

https://bugzilla.gnome.org/show_bug.cgi?id=653167
2012-03-17 23:10:01 -04:00
Colin Walters
6833385c5a gmain: Use sig_atomic_t for list of pending Unix signals
Pointed out by: Simon McVittie <simon.mcvittie@collabora.co.uk>

https://bugzilla.gnome.org/show_bug.cgi?id=671997
2012-03-16 16:15:16 -04:00
David Benjamin
b0739f2223 Continue searching in PATH on ENODEV and ETIMEDOUT
Synchronize the error-handling logic from glibc. Users with networked
filesystems in their PATH may hit ETIMEDOUT.

https://bugzilla.gnome.org/show_bug.cgi?id=672201
2012-03-16 11:49:30 -04:00
Alexander Larsson
a43dd7435a Make g_array_sort* methods use a stable sort
Also, remove previous comments about sort stability in g_array_sort docs,
as the method that was explained does not work. Adds a new comment
about this.

https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-16 16:04:36 +01:00
Alexander Larsson
839957f275 Make g_qsort_with_data stable, based on glibc msort
We need a stable sort, and we might as well always use it rather
than have multiple sort versions. This picks up the glibc
merge sort implementation which it uses by default for qsort,
except we don't fall back to non-stable quicksort in some cases
like glibc

https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-16 16:04:36 +01:00
Ryan Lortie
fbbdf98668 g_log: mask log level before checking prefix flags
We check if the log level is in the "prefixed" list by checking it
against the g_log_msg_prefix bitfield.

Unfortunately we were failing to mask by G_LOG_LEVEL_MASK first, so if
the FATAL bit was set (for example) then it would never match.  This was
the case for g_error().

https://bugzilla.gnome.org/show_bug.cgi?id=672026
2012-03-13 20:15:21 -04:00
Ryan Lortie
545736c0fb glib-init: restore default for G_MESSAGES_PREFIXED
In the glib-init shuffle this ended up being set to no messages prefixed
by default.  Fix that so that we have prefixes back.

https://bugzilla.gnome.org/show_bug.cgi?id=672026
2012-03-13 20:15:21 -04:00
Ryan Lortie
063f03fa76 glib-init: fix obvious buffer size mismatch 2012-03-13 20:15:21 -04:00
Ryan Lortie
8084047ee3 logging test: unset G_MESSAGES_DEBUG
Having G_MESSAGES_DEBUG=all in the environment will fail this testcase.
2012-03-09 10:29:32 -05:00
Mark Janossy
265f265c67 deprecated threads: fix race in GStaticRecMutex
The very last access to the 'depth' field of GStaticRecMutex in
g_static_rec_mutex_unlock_full() was being performed after dropping the
implementation mutex for the last time.

This allowed the lock to be dropped an additional time if it was
acquired in another thread right at that instant (which is somewhat
likely, since another thread could have just been woken up by the lock
being released).

https://bugzilla.gnome.org/show_bug.cgi?id=670846
2012-03-09 09:54:23 -05:00
Alexander Larsson
3cf1ad1881 Use G_DEFINE_CONSTRUCTOR for the glib_init constructor
No need to hand-roll this when we have a macro version.
2012-03-05 15:06:22 +01:00
Matthias Clasen
c0c2cbe0ae Fix distcheck 2012-03-04 22:28:28 -05:00
Shota Akiyama
5f280eb6a8 glib/gmacros.h: Fix up attribute to avoid namespace collisions
https://bugzilla.gnome.org/show_bug.cgi?id=670751
2012-03-03 13:29:29 -05:00
Dan Winship
deea0e39ba gspawn: rename G_SPAWN_ERROR_2BIG to be more bindings-friendly
Rename G_SPAWN_ERROR_2BIG to G_SPAWN_ERROR_TOO_BIG (while keeping the
old name for compatibility), to fix problems with language bindings
where the old name translates into something that would be
syntactically invalid due to starting with a digit.

https://bugzilla.gnome.org/show_bug.cgi?id=671025
2012-03-03 13:26:43 -05:00
Jörn Magens
00f1e1f5c2 GSequence: add note about lookup requiring sorting
g_sequence_lookup() only works on sorted sequences, but it's quite easy
to create unsorted sequences.  Add a note to the documentation that the
sequence must be sorted in order for g_sequence_lookup() to work.

https://bugzilla.gnome.org/show_bug.cgi?id=670969
2012-03-02 09:08:30 -05:00
Colin Walters
80611295ab g_uri_unescape_segment: Mention (allow-none)/%NULL in documentation 2012-02-29 13:09:41 -05:00
Christian Persch
51f1297a6e Fixup docs comment 2012-02-27 16:25:50 +01:00
Christian Persch
d2c37669f2 regex: unicode: Update to Unicode 6.1.0
Update some more PCRE tables to Unicode 6.1.0. Should be completely
updated now.
2012-02-27 13:27:13 +01:00
Matthias Clasen
96c98ce62e Improve the wording of the message for G_UNAVAILABLE
The version number we have here is the one the function appeared
in, not the max-allowed version. Therefore 'unavailable before
VERSION' makes more sense than 'unavailable for VERSION'.
2012-02-27 06:54:16 -05:00
Matthias Clasen
4995ef4dd7 Add a 'these are private' note for the version macros 2012-02-27 00:32:13 -05:00
Matthias Clasen
76175ab9ed Improve documentation around deprecations 2012-02-27 00:18:47 -05:00
Emmanuele Bassi
550fcaddf7 Add versioned deprecation annotation
We start from GLib 2.26.

https://bugzilla.gnome.org/show_bug.cgi?id=670542
2012-02-27 00:00:06 -05:00
Emmanuele Bassi
34aeeb7d64 Add flexible API version boundaries
There are cases when it should be possible to define at compile time
what range of functions and types should be used, in order to get,
or restrict, the compiler warnings for deprecated or newly added
types or functions.

For instance, if GLib introduces a deprecation warning on a type in
version 2.32, application code can decide to specify the minimum and
maximum boundary of the used API to be 2.30; when compiling against
a new version of GLib, this would produce the following results:

  - all deprecations introduced prior to 2.32 would emit compiler
    warnings when used by the application code;
  - all deprecations introduced in 2.32 would not emit compiler
    warnings when used by the application code;
  - all new symbols introduced in 2.32 would emit a compiler warning.

Using this scheme it should be possible to have fairly complex
situations, like the following one:

  assuming that an application is compiled with:
    GLIB_VERSION_MIN_REQUIRED = GLIB_VERSION_2_30
    GLIB_VERSION_MAX_ALLOWED  = GLIB_VERSION_2_32

  and a GLib header containing:

    void function_A (void) GLIB_DEPRECATED_IN_2_26;
    void function_B (void) GLIB_DEPRECATED_IN_2_28;
    void function_C (void) GLIB_DEPRECATED_IN_2_30;
    void function_D (void) GLIB_AVAILABLE_IN_2_32;
    void function_E (void) GLIB_AVAILABLE_IN_2_34;

  any application code using the above functions will get the following
  compiler warnings:

    function_A: deprecated symbol warning
    function_B: deprecated symbol warning
    function_C: no warning
    function_D: no warning
    function_E: undefined symbol warning

This means that it should be possible to gradually port code towards
non-deprecated API gradually, on a per-release basis.

https://bugzilla.gnome.org/show_bug.cgi?id=670542
2012-02-26 23:58:41 -05:00
Christian Persch
d70634526d regex: Remove --disable-regex option
https://bugzilla.gnome.org/show_bug.cgi?id=622149
2012-02-26 22:22:56 -05:00
Christian Persch
989c466296 regex: Remove pcre_ucd.c 2012-02-26 22:09:05 -05:00
Christian Persch
706b72db21 regex: Use glib for unicode data
Use g_unichar_type() and g_unichar_get_script() instead of pcre tables.
2012-02-26 22:09:05 -05:00
Christian Persch
75dffb99b3 regex: Remove obsolete patch 2012-02-26 22:09:05 -05:00
Christian Persch
8e8ab99bad regex: unicode: Update to Unicode 6.1.0 2012-02-26 22:09:05 -05:00
Christian Persch
735e4a6a6a regex: Remove obsolete makefile fragments
The update.sh script doesn't work with current PCRE, so these are obsolete.
2012-02-26 22:09:04 -05:00
Christian Persch
afa3375210 regex: Use glib memory allocator 2012-02-26 22:09:04 -05:00
Christian Persch
38309dc482 regex: Remove obsolete patch 2012-02-26 22:09:04 -05:00
Christian Persch
d02f6393df regex: Use g_ascii_is[x]digit 2012-02-26 22:09:04 -05:00
Christian Persch
8aadf6b3c9 regex: Remove obsolete patch
PCRE doesn't even contain the patched file anymore.
2012-02-26 22:09:04 -05:00
Christian Persch
3225b24cb5 regex: Remove obsolete patches
Upstream PCRE has removed the relocations that these patches were fixing;
the patches are obsolete.
2012-02-26 22:09:03 -05:00
Christian Persch
a40523b7f2 regex: Update included PCRE to 8.30 2012-02-26 22:09:03 -05:00
Christian Persch
8280a8ee36 unicode: tests: More script to/from ISO-15924 tests 2012-02-26 21:24:08 -05:00
Christian Persch
58b4cdd38b unicode: tests: Add tests for new scripts 2012-02-26 21:24:08 -05:00
Christian Persch
d133d22932 unicode: tests: Add tests for new line break classes 2012-02-26 21:24:08 -05:00
Christian Persch
2a2f3c4176 unicode: Regenerate tables from Unicode 6.1.0 2012-02-26 21:24:07 -05:00
Christian Persch
d1da9ff080 unicode: Regenerate gscripttable.h for Unicode 6.1.0 2012-02-26 21:24:07 -05:00
Christian Persch
3554026b39 unicode: tests: Remove U+27CD from is-undefined test
It's assigned in Unicode 6.1.0.
2012-02-26 21:24:07 -05:00
Christian Persch
48e01af6f1 unicode: Add new line break classes from Unicode 6.1.0 2012-02-26 21:24:07 -05:00
Christian Persch
fb574834c1 unicode: Add new scripts from Unicode 6.1.0 2012-02-26 21:24:07 -05:00
Stefan Sauer
2161bf254f goption: try to be helpful in goption args/flag checks
When complaining about ill defined GOptionEntries include the name of the option
group and entry in the warning.
2012-02-26 21:22:10 +01:00
John Ralls
47475dbe6a [Bug 529806] Cannot build in 64-bit Mac OS X due to libiconv 2012-02-24 17:04:52 -08:00
Filippo Della Betta
462f7f5a4d Added better support of G_STRFUNC for Visual Studio platform
https://bugzilla.gnome.org/show_bug.cgi?id=670128
2012-02-24 16:21:45 -05:00
Richard Hughes
eece6cb9c3 Fix up 'Since:' for g_mapped_file_new_from_fd()
It was introduced in 2.31.0, not 2.30.x
2012-02-23 10:34:46 +00:00
Dan Winship
98a70df486 gthread-posix: fix order of arguments in g_thread_abort() message 2012-02-22 11:38:43 -05:00
Dan Winship
88182d375e gasyncqueue: fix a 32bit overflow in g_async_queue_timed_pop
also, add a test for g_async_queue_timed_pop() and
g_async_queue_timeout_pop() to tests/asyncqueue.c

https://bugzilla.gnome.org/show_bug.cgi?id=669670
2012-02-22 11:36:08 -05:00
David King
2ca6c475ea docs: Fix g_async_queue_timeout_pop_unlocked typo 2012-02-21 01:10:55 +01:00
David King
912ac79041 docs: Add some missing G_TOKEN_* descriptions 2012-02-21 01:10:54 +01:00
David King
708d4178ce docs: Fix g_key_file_load_from_file error parameter 2012-02-21 01:10:54 +01:00
Matthias Clasen
dbc01d3090 Don't rely on /bin/sh
Another Fedora UsrMove victim !
2012-02-21 00:26:19 +01:00
Christian Persch
eafb108caf gbytes: Add G_BEGIN/END_DECL guards
Bug #670138.
2012-02-15 17:46:31 +01:00
Christian Persch
26f238e85d Plug a mem leak in g_environ_unsetenv
And clarify the memory allocation requirement of the string arrays passed to
g_environ_{,un}setenv().

==9458== 10 bytes in 1 blocks are definitely lost in loss record 16 of 39
==9458==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
==9458==    by 0x4221A1F: vasprintf (vasprintf.c:78)
==9458==    by 0x40C6065: g_vasprintf (gprintf.c:314)
==9458==    by 0x409D894: g_strdup_vprintf (gstrfuncs.c:509)
==9458==    by 0x409D8C9: g_strdup_printf (gstrfuncs.c:535)
==9458==    by 0x40672E9: g_environ_setenv (genviron.c:156)
==9458==    by 0x80490E7: test_environ_array (environment.c:78)
==9458==    by 0x40A3DB5: test_case_run (gtestutils.c:1662)
==9458==    by 0x40A40B2: g_test_run_suite_internal (gtestutils.c:1715)
==9458==    by 0x40A417C: g_test_run_suite_internal (gtestutils.c:1726)
==9458==    by 0x40A42F9: g_test_run_suite (gtestutils.c:1771)
==9458==    by 0x40A3441: g_test_run (gtestutils.c:1319)
==9458==    by 0x80493F1: main (environment.c:108)

Bug #669412.
2012-02-15 17:45:44 +01:00
Dan Winship
ca05902a58 Add G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS
Add new macros to disable -Wdeprecated-declarations around a piece of
code, using the C99 (and GNU89) _Pragma() operator. Replace the
existing use of #pragma for this in gio, and suppress the warnings in
gvaluearray.c as well.

https://bugzilla.gnome.org/show_bug.cgi?id=669671
2012-02-15 09:54:38 -05:00
Giovanni Campagna
d240b88315 GKeyFile: fix annotation of g_key_file_load_from_data
(array) without (element-type) means "array of the same type as
the C type", so gchar* with (array) is interpreted as an array of
strings. Since GKeyFiles must be UTF-8 encoded anyway, just
annotate it as a string.

https://bugzilla.gnome.org/show_bug.cgi?id=658484
2012-02-14 19:05:08 +01:00
Dan Winship
dd553a2ba3 gasyncqueue: deprecate GTimeVal-based methods, add relative-delay ones
https://bugzilla.gnome.org/show_bug.cgi?id=669670
2012-02-13 09:09:08 -05:00
Matthias Clasen
8cb48f644d Fix a parameter name mismatch
gtk-doc gets unhappy if parameters aren't named the same in
headers, sources and doc comments.
2012-02-10 21:09:39 -05:00
Christophe Fergeau
6d3b31a533 Fix g_hash_table_foreach crash with NULL hash table
When G_DISABLE_ASSERT is not defined, g_hash_table_foreach and
g_hash_table_find dereferences the hash table argument before
checking if it's NULL. This causes a crash when one of this function
is mistakenly called with a NULL argument instead of returning
with a warning through g_return_if_fail.
2012-02-10 10:03:38 +01:00
Dan Winship
daf78764e5 gthread-win32: update for g_get_monotonic_time() changes
g_cond_wait_until() was calling GetSystemTimeAsFileTime() to get the
current time, which is no longer what g_get_monotonic_time() returns.

https://bugzilla.gnome.org/show_bug.cgi?id=669329
2012-02-09 06:48:12 -05:00
Ravi Sankar Guntur
90dbaca924 glib/tests: mainloop - fix a mem leak.
https://bugzilla.gnome.org/show_bug.cgi?id=669372

Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>
2012-02-08 09:36:12 -05:00
Ravi Sankar Guntur
bd79c00537 glib/tests: fix memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=669372

Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>
2012-02-08 09:23:54 -05:00
Dan Winship
a8f516f61e glib/tests/option-context: remove unused tests
These tests were written, but then never used since it was decided to
add g_warnings() to goption.c in the cases they were supposed to be
testing. So anyway, just remove them.
2012-02-08 08:46:03 -05:00
Giovanni Campagna
1faed130dc gtimezone: consider a leading : in TZ environment variable
When set to represent a zoneinfo file, TZ may start with :, therefore
glib needs to check it and ignore the first char when building the
resulting filename, or it won't be found.
Also, the path could be absolute, in which case it is wrong to
append /usr/share/timezone

https://bugzilla.gnome.org/show_bug.cgi?id=664237
2012-02-06 17:26:30 +01:00
Christian Persch
7e9aed94de Revert "Plug a mem leak in g_environ_unsetenv"
This reverts commit 2f4b46e378, which was
pushed accidentally.
2012-02-05 20:00:16 +01:00
Christian Persch
2f4b46e378 Plug a mem leak in g_environ_unsetenv
==9458== 10 bytes in 1 blocks are definitely lost in loss record 16 of 39
==9458==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
==9458==    by 0x4221A1F: vasprintf (vasprintf.c:78)
==9458==    by 0x40C6065: g_vasprintf (gprintf.c:314)
==9458==    by 0x409D894: g_strdup_vprintf (gstrfuncs.c:509)
==9458==    by 0x409D8C9: g_strdup_printf (gstrfuncs.c:535)
==9458==    by 0x40672E9: g_environ_setenv (genviron.c:156)
==9458==    by 0x80490E7: test_environ_array (environment.c:78)
==9458==    by 0x40A3DB5: test_case_run (gtestutils.c:1662)
==9458==    by 0x40A40B2: g_test_run_suite_internal (gtestutils.c:1715)
==9458==    by 0x40A417C: g_test_run_suite_internal (gtestutils.c:1726)
==9458==    by 0x40A42F9: g_test_run_suite (gtestutils.c:1771)
==9458==    by 0x40A3441: g_test_run (gtestutils.c:1319)
==9458==    by 0x80493F1: main (environment.c:108)

Bug #669412.
2012-02-05 19:57:09 +01:00
Ravi Sankar Guntur
59a0134de8 fix memory leak in g_bookmark_file_parse()
https://bugzilla.gnome.org/show_bug.cgi?id=669334

Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>
2012-02-04 10:01:19 -05:00
Matthias Clasen
3758b41e08 Add a test to show that GMarkup properly handles > in content 2012-01-31 22:02:22 -05:00
Matthias Clasen
a6bafde5f2 Dist gconstructor.h 2012-01-30 17:54:33 -05:00
Alexander Larsson
968f4e8d79 Move constructor macros to an internal header and into generated code
With this we're not longer exporting the constructor headers, which means
we're not tying ourselves to a macro that might need special tweaking on
a compiler-by-compiler basis.
2012-01-30 16:59:27 +01:00
Antoine Jacoutot
e43a98c000 goption: implement platform_get_argv0() for OpenBSD
https://bugzilla.gnome.org/show_bug.cgi?id=669024
2012-01-30 16:17:06 +01:00
Ravi Sankar Guntur
7486cd946a comments/docs: Fix couple of typos
https://bugzilla.gnome.org/show_bug.cgi?id=668857
2012-01-28 07:52:56 +01:00
Ryan Lortie
9bfde4a53f GKeyFile: allow loading from empty strings
GKeyFile supports empty files and also supports loading from the string
"", but will fail with a critical if you try:

  - explicit length == 0
  - data == NULL

length == 0 should always be valid, and data == NULL should be valid in
the case that length == 0, so add some testcases for those and fix the
code up to allow them.

https://bugzilla.gnome.org/show_bug.cgi?id=668756
2012-01-26 14:40:34 -05:00
Dan Winship
1542e898f9 gmain: fix a bunch of comment typos in g_get_monotonic_time()
And remove a comment about Windows in the fallback implementation that
no longer applies, since there's now a separate Windows-specific
implementation.
2012-01-26 09:54:50 -05:00
Andoni Morales Alastruey
59881a65b2 keyfile tests: Fix windows build using portable g_setenv 2012-01-26 14:44:50 +01:00
Matthias Clasen
ef159af00f Use G_SOURCE_CONTINUE/REMOVE internally
Now that we have these macros, we should use them.
This commit covers everything in glib/.
2012-01-25 16:15:18 -05:00
Ryan Lortie
12060df9f1 GHash: add note about randomness in hashing
To clarify our statements about being robust against outside attackers
degrading the performance of your hashtable.
2012-01-25 10:09:09 -05:00
Matthias Clasen
e94a5f4f83 GKeyFile: make list separators effective again
We must preserve the list_separator across clear;init
sequences.
2012-01-25 07:32:39 -05:00
Matthias Clasen
aea9951ef0 Fix the new test 2012-01-25 07:32:20 -05:00
Matthias Clasen
e50d7e065c Add a test for g_key_file_set_list_separator
A recent 'harmless' fix broke it...
2012-01-25 07:26:58 -05:00
Guillaume Desmottes
ca949756de GArray: initialize the clear_func pointer
https://bugzilla.gnome.org/show_bug.cgi?id=668650
2012-01-25 12:04:12 +01:00
Ravi Sankar Guntur
e9725d1656 Macro to insert a new GNode "after" the given sibling.
https://bugzilla.gnome.org/show_bug.cgi?id=626258

Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>
2012-01-24 23:41:23 -05:00