5365 Commits

Author SHA1 Message Date
Chun-wei Fan
2cb9b8f994 glib/gtimezone.c: Check the size of tzi.DaylightName
We need to re-get the size of tzi.DaylightName before we call
RegQueryValue() because the buffer might not have enough room to hold the
value for tzi.DaylightName that would be acquired by RegQueryValueExA(),
even though the size of tzi.DaylightName and tzi.StandardName is the same.

This is a pitfall of RegQueryValue()[1] as not doing this can result in an
ERROR_MORE_DATA (234) failure, causing the acquisition of tzi.DaylightName
to fail.

This will fix the gdatetime/equal test, amongst some other tests in
gdatetime, at least on certain non-English version of Windows.

[1]: http://social.msdn.microsoft.com/Forums/vstudio/en-US/84f90854-e90c-4b63-8fc1-655a0b4645fd/regqueryvalueex-returns-errormoredata

https://bugzilla.gnome.org/show_bug.cgi?id=719344
2014-01-20 10:22:47 -05:00
Matthias Clasen
2330f7e65e Use __asm__ instead of asm
This is a little more robust as various compiler flags make
gcc forget about asm.

https://bugzilla.gnome.org/show_bug.cgi?id=693299
2014-01-20 08:43:02 -05:00
Matthias Clasen
93cda800f1 Try again to fix the freebsd build
https://bugzilla.gnome.org/show_bug.cgi?id=722526
2014-01-20 07:33:27 -05:00
Matthias Clasen
2efc2ef775 Clarify g_strchomp and g_strchug docs
https://bugzilla.gnome.org/show_bug.cgi?id=583036
2014-01-20 00:34:29 -05:00
Matthias Clasen
647412603a More GTree and GNode formatting and documentation fixes
Among other things, add images for tree traversal types,
taken from Wikimedia Commons.
2014-01-19 23:49:12 -05:00
Matthias Clasen
44db9f2a0f GQueue: documentation and formatting fixes 2014-01-19 22:03:40 -05:00
Matthias Clasen
a918519328 GList: Some further documentation and formatting tweaks 2014-01-19 21:37:28 -05:00
Olivier Sessink
86de6f0ebc tag: documentation enhancement for novice application developers
Adds some code examples how functions can be used. Adds a hint
to look at GQueue if access to the start and the end of the list
is required.

applying comments from Emmanuele Bassi and adds some more
improvements to clarify how functions should be used.

https://bugzilla.gnome.org/show_bug.cgi?id=683388
2014-01-19 20:43:51 -05:00
Simon McVittie
84f3147f43 glib-init: make static assertions about platform assumptions
GLib has a pervasive assumption that function and data pointers are
basically interchangeable, which is true in all modern ABIs,
but not actually guaranteed by ISO C. If someone tries to use GLib on a
platform where function and data pointers are different sizes, fail early.

https://bugzilla.gnome.org/show_bug.cgi?id=688406
2014-01-19 20:23:43 -05:00
Simon McVittie
a4480d5f71 GHashTable: statically assert that GHashTableIter works as intended
https://bugzilla.gnome.org/show_bug.cgi?id=688406
2014-01-19 20:23:43 -05:00
Simon McVittie
476aa9ae46 glib-private.h: add _glib_alignof 2014-01-19 20:23:30 -05:00
Ryan Lortie
8f6be404cb GMainContext: unref pending sources on destroy
It is possible (but unlikely) that there will be a non-empty list of
pending dispatches when we remove the last ref from a GMainContext.
Make sure we drop the refs on the sources appropriately.

Add a (now-working) testcase that demonstrates how to trigger the issue.

https://bugzilla.gnome.org/show_bug.cgi?id=139699
2014-01-19 17:41:18 -05:00
Matthias Clasen
2a3ee7ceaf Work around broken FreeBSD headers
It seems that including just pthread.h does not define
clockid_t on these systems.

https://bugzilla.gnome.org/show_bug.cgi?id=722526
2014-01-19 17:13:51 -05:00
Matthias Clasen
b4474c0b6b Avoid a deprecation warning
https://bugzilla.gnome.org/show_bug.cgi?id=711547
2014-01-19 08:21:50 -05:00
Christophe Fergeau
7463bc1727 Adjust doc to Makefile.decl renaming
g_test_build_filename() API documentation still mentions Makefile.decl, but
it has been renamed to glib.mk in f9eb9eed

https://bugzilla.gnome.org/show_bug.cgi?id=722436
2014-01-19 08:13:03 -05:00
Ryan Lortie
258ac3b253 GOptionContext: add some notes about encodings
Add a note to the overview documentation for GOptionContext about why
you need to be careful about argv encoding on UNIX and about why you
should avoid argv entirely on Windows.  Mention some possible
alternative approaches, including a code example.

https://bugzilla.gnome.org/show_bug.cgi?id=722025
2014-01-17 20:13:46 -05:00
Ryan Lortie
673ee54cdd win32: add g_win32_get_command_line()
This returns the command line in GLib filename encoding format (ie:
UTF-8) for use with g_option_context_parse_strv().

This will allow parsing of Unicode commandline arguments on Windows,
even if the characters in those arguments fall outside of the range of
the system codepage.

https://bugzilla.gnome.org/show_bug.cgi?id=722025
2014-01-17 20:04:44 -05:00
Ryan Lortie
3352293ab5 g_option_context_parse_strv: use UTF-8 on Windows
Add another difference to the freshly-added g_option_context_parse_strv:
now, on Windows, its arguments on to be in UTF-8 instead of the argv[]
encoding (from the system codepage).

The documentation teases g_win32_get_command_line() which is a new
GLib-filename-encoding-based function that will be added in a following
commit.

https://bugzilla.gnome.org/show_bug.cgi?id=722025
2014-01-17 19:33:09 -05:00
Ryan Lortie
9592d40613 GOption: don't use "rand" in code example
rand() is a function defined in the libc, so our code example gives
warnings if you try to compile it.  Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=722025
2014-01-16 22:42:01 -05:00
Christian Schramm
fabdf80c7d gstringchunk: Use g_slist_free_full() where possible
We have that function, let's use it - instead of manually
freeing the elements of the slist in a loop (and reduce
the line count a bit).

https://bugzilla.gnome.org/show_bug.cgi?id=722326
2014-01-16 20:18:46 -05:00
Christian Schramm
5c5982709f gbookmarkfile: removed unused include 'gslist.h'
https://bugzilla.gnome.org/show_bug.cgi?id=722323
2014-01-16 20:15:31 -05:00
Jasper St. Pierre
c4934c9358 Update .gitignore 2014-01-15 10:37:59 -05:00
Ryan Lortie
bcd276c2b4 more distcheck fixes 2014-01-13 17:23:22 -05:00
Ryan Lortie
d751e65aff tests: fix leaks in option-context test
Use the new g_option_context_parse_strv() to patch up some leaks in some
insufficiently-argv-emulating testcases in option-context.c.

This gives some test coverage of the new function while also making
option-context now leak-free.

https://bugzilla.gnome.org/show_bug.cgi?id=721947
2014-01-10 12:32:35 -05:00
Ryan Lortie
f062fae4d6 GOptionContext: add memory-friendly parse mode
Add g_option_context_parse_strv() that obeys the normal memory conventions for
dealing with a strv instead of assuming that we're dealing with the 'argv'
parameter to main().

This will help for using GOptionContext with GApplication.

https://bugzilla.gnome.org/show_bug.cgi?id=721947
2014-01-10 12:32:35 -05:00
Dan Winship
86497649bb Document g_test_run() order better, and how it changed
But also note that the ordering is strictly an aesthetic/convenience
thing, and that tests should not be written to depend on it.

https://bugzilla.gnome.org/show_bug.cgi?id=721624
2014-01-07 12:32:35 -05:00
Claudio Saavedra
0e109fceab glib/tests: fix build 2014-01-07 11:33:14 +02:00
Chun-wei Fan
6bd30a4cb9 glib/tests/keyfile.c: Use g_close()
Use g_close() instead, as close() is really found in io.h on Windows, not
unistd.h as on Unix, and hence unistd.h is not universally available.

https://bugzilla.gnome.org/show_bug.cgi?id=719344
2014-01-07 13:36:31 +08:00
Chun-wei Fan
8bb81e7024 glib/tests/date.c: Fix the tests on non-English Windows
The names of the month (and abbreviations) are specific to the Windows
system locale, so we need to use SetThreadLocale() to set the locale of
the running program to en-US so that it will parse "March" and "Sept" etc.
correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=719344
2014-01-07 13:35:16 +08:00
Rico Tzschichholz
b3253fe025 glib/tests: Fix non-debug build of slice test
In addition to e013cf9cad56e919af2f057eb52d58371483a6f8
2014-01-04 18:46:52 -05:00
Jasper St. Pierre
33f81cc509 tests/keyfile: Fix build 2014-01-04 01:40:27 -05:00
Chun-wei Fan
3fd6edab66 Fix the Keyfile Test on Windows
Windows will not allow one to write to a temp file opened by g_mkstemp()
by opening another fd associated with it before one closes the fd that
is returned by g_mkstemp(), which will cause the test_save test to fail.

Fix this by using a variable to store the fd from g_mkstemp() and checking
it, and call close() on that variable before attempting to call
g_key_file_save_to_file() on the temp file as that will attempt to open
another fd (which would not work) associated with that temp file.

https://bugzilla.gnome.org/show_bug.cgi?id=719344
2014-01-04 10:42:28 +08:00
Ryan Lortie
1867fc210f unix signals: stop using atomics
They are not required here.  See the discussion in the bug report.

https://bugzilla.gnome.org/show_bug.cgi?id=711090
2014-01-02 20:38:40 -05:00
Matthias Clasen
d25b655bf5 Make symlink test work installed
We can't assume that the location used for G_TEST_DIST paths
is writable, so just create the symlink in the current directory
instead.
2014-01-01 23:28:23 -05:00
Matthias Clasen
d91023fb4c Drop locale-dependent timeval tests 2014-01-01 22:39:32 -05:00
Matthias Clasen
6106e38c8e Make timeval tests independent of the environment
Some of the tested formats are locale-dependent, so unset
the TZ environment variable before testing them.
2014-01-01 21:41:16 -05:00
Ryan Lortie
76584e7ae3 Fix races in unix signal dispatch
Fix some races introduced in be2c7b83c4a9c9d3aa76b1499c27ab19e0f4e470
while keeping the property that multiple handlers for the same unix
signal all get dispatched.

Also fix the behaviour of the source checking for pending signals when
it's created.  No matter what we do here (clear the pending flag or not)
there is something that can go wrong.

If we clear the flag, we may prevent other sources from being
dispatched.  If we don't clear it, we may end up dispatching the same
source twice (if we manage to dispatch it from its own thread before the
GLib worker has a chance to run).

Instead, run the full dispatch procedure when a new source is added.  It
actually doesn't matter what thread this runs in since the lock is held.

https://bugzilla.gnome.org/show_bug.cgi?id=711090
2014-01-01 19:19:59 -05:00
Matthias Clasen
f9f7ad2557 Improve gutils.c test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
3de604d438 Improve GDate test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
5e6d86877d Improve GIOChannel test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
5ec36cd02a Improve hostutils test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
baceea9582 Improve GVariant test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
ec0d6d7812 Test stdio wrappers 2014-01-01 17:59:22 -05:00
Matthias Clasen
93dad4808e Trivial typo fix 2014-01-01 17:59:22 -05:00
Matthias Clasen
90aa4ed0a0 Improve charset test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
4f0a13effc Add tests for g_malloc 2014-01-01 17:59:22 -05:00
Matthias Clasen
58cdf0b474 Drop memory-related trap variables
These are just more lo-tech conditional breakpoint wannabes.
Debuggers can be trusted to support conditional breakpoints
nowadays.
2014-01-01 17:59:22 -05:00
Matthias Clasen
6d3b83a8c1 Improve GAsyncQueue test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
9a2c8d89c7 Improve test coverage of g_utf8_collate_key_for_filename
The existing tests were accidentally using the same test data
twice. Fix that, and add another set of tests that exercise
the filename collation special cases.
2014-01-01 17:59:22 -05:00
Matthias Clasen
32e0499c56 Add tests for g_spaced_primes_closest 2014-01-01 17:59:22 -05:00