5365 Commits

Author SHA1 Message Date
Ryan Lortie
a8ea3dc03b g_str_tokenize_and_fold: do proper transliteration
g_str_tokenize_and_fold() can now do proper locale-sensitive
transliteration for ascii alternatives.

https://bugzilla.gnome.org/show_bug.cgi?id=710142
2014-02-20 18:27:48 -05:00
Ryan Lortie
d7291760df tests: test transliteration API
Add some tests for the new transliteration API.

https://bugzilla.gnome.org/show_bug.cgi?id=710142
2014-02-20 18:27:24 -05:00
Ryan Lortie
941b8979d0 Add locale-sensitive ASCII transliteration API
Add a new function, g_str_to_ascii() that does locale-dependent ASCII
transliteration of UTF-8 strings.

This function works off of an internal database.  We get the data out of
the localedata shipped with glibc, which seems to be just about the best
source of locale-sensitive transliteration information available
anywhere.

We include a update script with this commit that's not used by anything
at all -- it will just sit in git.  It is intended to be run manually
from time to time.

https://bugzilla.gnome.org/show_bug.cgi?id=710142
2014-02-20 18:27:24 -05:00
Ryan Lortie
436d77f70a tests: add a test for g_cond_wait_until()
https://bugzilla.gnome.org/show_bug.cgi?id=673607
2014-02-20 17:57:57 -05:00
Ryan Lortie
1de36e7755 Fix g_cond_wait_until() vs. monotonic time
We've had a relatively rocky path with g_cond_wait_until() on systems
that either don't support pthread_condattr_setclock() or where
g_get_monotonic_time() is not based on CLOCK_MONOTONIC (ie: Android and
Mac OS).

Fortunately, both of these platforms seem to share
pthread_cond_timedwait_relative_np() which allows us to implement
g_cond_wait_until() without races.

With this patch, we now require that one of pthread_condattr_setclock()
or pthread_cond_timedwait_relative_np() exists.  A quick look around
suggests that this is true for all platforms that we care about.

This patch removes our use of pthread_cond_timedwait_monotonic() and
pthread_cond_timedwait_monotonic_np() which were Android-only APIs.

https://bugzilla.gnome.org/show_bug.cgi?id=673607
2014-02-20 17:55:09 -05:00
Ryan Lortie
d614312546 gmain: rework g_get_monotonic_time() a bit
We now assume the existence of clock_gettime() and CLOCK_MONOTONIC as
specified by POSIX.1-2001.  This means that we always return truly
monotonic time, which will prevent problems in the case that the user
changes the time.

Mac OS doesn't have clock_gettime() but it does have
mach_absolute_time(), so we can use that there.

We keep our Windows case as well (although we should simplify it once XP
hits EOL later this year).

This patch removes the fallback to gettimeofday() in case of missing
clock_gettime().  We no longer have any way to test this codepath and
therefore it must go.

This patch also restructures the #ifdef a bit so that we repeat the
entire function definition inside of #ifdef instead of just the entire
body of one function.

https://bugzilla.gnome.org/show_bug.cgi?id=724687
2014-02-20 17:52:49 -05:00
William Jon McCann
20f4d1820b docs: use "Returns:" consistently
Instead of "Return value:".
2014-02-19 19:41:52 -05:00
Dan Winship
5a4478664b gtestutils: make the new assert messages more detailed
g_assert_true(), g_assert_false(), g_assert_null(), and
g_assert_nonnull() simply printed out the expression they were
checking, without any further explanation of what went wrong. (In
particular, "g_assert_true(x)" and "g_assert_false(x)" would both
print the same thing on failure.) Add a little bit more context.

https://bugzilla.gnome.org/show_bug.cgi?id=724385
2014-02-17 11:33:37 -05:00
Ryan Lortie
7cbff954b9 win32: fixup lib.exe invocation
We have a configure.ac check for lib.exe that attempts to enable
creation of .lib files for our 5 public libraries.  That has been broken
for a long time for two reasons:

 1) the Makefiles hardcode 'lib' instead of 'lib.exe'

 2) we dropped generation of .def files quite some time ago (except for
    in gthread where we have the two-symbol file under version control)

Add new rules for creating .def files from dumpbin.exe (which you should
have if you have lib.exe) and fix the .lib rules to use lib.exe.

Add a bit of $(AM_V_GEN) all around, as well.

https://bugzilla.gnome.org/show_bug.cgi?id=722033
2014-02-15 16:55:25 -05:00
Ryan Lortie
08533cae05 only '#pragma GCC' outside of functions
Don't use #pragma GCC inside of function scope.

https://bugzilla.gnome.org/show_bug.cgi?id=724417
2014-02-15 10:31:52 -05:00
Matthias Clasen
d690b3dcd0 docs: Remove a few trailing <literal>s 2014-02-14 21:49:42 -05:00
Matthias Clasen
bcab7ba002 docs: Remove some unneeded decorations
@var is not expanded inside literal `` blocks.
Just remove those @ characters.
2014-02-14 21:39:11 -05:00
Matthias Clasen
bc6ee788b4 docs: let go of &ast;
Since we are no longer using sgml mode, using /&ast; &ast;/ to
escape block comments inside examples does not work anymore.
Switch to using line comments with //
2014-02-14 21:33:36 -05:00
Simon McVittie
0f5577de57 g_test_run: return 0 if all tests are skipped in TAP mode
Exit status 77 is special to Automake's default test driver, but is
treated as an error by TAP.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=724124
Reviewed-by: Dan Winship <danw>
2014-02-13 14:31:27 +00:00
Simon McVittie
ffa5fab09a glib/tests/collate.c: run to completion when skipping all tests
Otherwise, we don't produce valid TAP output, and fail with:

    ERROR: collate - missing test plan

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=724124
Reviewed-by: Dan Winship <danw>
2014-02-13 14:31:09 +00:00
Simon McVittie
125913e9fe g_child_watch_source_new: POSIX pid must be positive
If we used a non-positive pid, we'd call waitpid(that_pid, ...)
which is exactly the situation this function can't deal with.

On Windows, GPid is a HANDLE (pointer), so I don't think the same thing
applies.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=723743
Reviewed-by: Ryan Lortie
2014-02-11 15:02:16 +00:00
Simon McVittie
a3cb5ce33b Be more clear that g_return_if_fail is undefined behaviour
In particular, it is not incorrect to g_return_if_fail (..., FALSE)
in a function returning a "success" gboolean and a GError: "failure to
meet the preconditions is an error" takes precedence over the
GError documentation's guarantee that the error will be set on failure.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660809
Reviewed-by: Emmanuele Bassi
2014-02-11 15:01:58 +00:00
Matthias Clasen
c158a9cdcb Fix a misformatting in GVariant docs
The + at the beginning of the line was misinterpreted
as markdown for a list.
2014-02-09 02:12:53 -05:00
Matthias Clasen
35066ed6c6 Docs: Drop entities, switch away from sgml mode
Since all element markup is now gone from the doc comments,
we can turn off the gtk-doc sgml mode, which means that from
now on, docbook markup is no longer allowed in doc comments.

To make this possible, we have to replace all remaining
entities in doc comments by their replacement text, &amp; -> &
and so on.
2014-02-09 02:07:26 -05:00
Matthias Clasen
5acd7b01de Remove some informalexamples 2014-02-08 15:50:17 -05:00
Matthias Clasen
a59e3d69b4 Another stray <programlisting> 2014-02-08 15:34:04 -05:00
Matthias Clasen
c4991d24ee Strip out a remaining programlisting 2014-02-08 15:19:24 -05:00
Matthias Clasen
ebc4347b2c Docs: Remove an example tag that has snuck back in 2014-02-08 13:55:27 -05:00
Matthias Clasen
03b21a19ec Docs: convert another table to a list 2014-02-08 13:47:02 -05:00
Matthias Clasen
38b1d63b24 Convert GVariantType table to a list 2014-02-08 13:43:16 -05:00
Matthias Clasen
e7fd3de86d Eradicate links and xrefs
These are all replaced by markdown ref links.
2014-02-08 12:26:56 -05:00
Matthias Clasen
df990914cf Stop using replaceable tags 2014-02-06 16:49:29 -05:00
Matthias Clasen
5baa0f2af5 Stop using <para> for ids
Instead, use the id support in markdown headings.
2014-02-06 16:48:49 -05:00
Matthias Clasen
3232425785 Docs: replace <literal> by ` 2014-02-06 08:07:16 -05:00
Matthias Clasen
a35d8a4c77 Docs: use quotes instead of firstterm 2014-02-06 08:07:16 -05:00
Matthias Clasen
b766db0878 Docs: don't use option tags 2014-02-06 08:07:15 -05:00
Matthias Clasen
73c23d9143 Use markdown for images 2014-02-06 08:07:15 -05:00
Matthias Clasen
49c2223ee6 Use a code block instead of <screen> 2014-02-06 08:07:15 -05:00
Ryan Lortie
7f36233042 GOption: fix bug in strv mode
We are a bit too aggressive about freeing memory in strv mode.  Only
free it in the case that we actually set the pointer to NULL.

Uncovered by the GApplication tests.
2014-02-06 12:02:53 +00:00
Matthias Clasen
cb588d4532 Convert external links to markdown syntax 2014-02-05 21:23:28 -05:00
Matthias Clasen
0cc20b7e0b Don't use <filename> in docs
Switch to simpler markdown, `foo`.
2014-02-05 20:17:46 -05:00
Matthias Clasen
111803030d Don't use <envar> in docs
Switch to simpler markdown, `foo`.
2014-02-05 19:32:41 -05:00
Philip Withnall
2b8edf234c gvariant: Document the need to cast varargs when constructing GVariants
Slightly expand on the documentation about casting varargs when
constructing GVariants, and link to it from all the functions where it’s
a necessary consideration.

Add an example of passing flags to a ‘t’ type variable (guint64).
Assuming the flags enum does not have many members, the flag variable
will be 32 bits wide, and needs an explicit cast to be passed into
g_variant_new() as a 64-bit value.

https://bugzilla.gnome.org/show_bug.cgi?id=712837
2014-02-05 09:40:49 +00:00
Ryan Lortie
3f3d2976d1 return_if_fail vs. return_val_if_fail fix 2014-02-04 14:23:14 +00:00
Ryan Lortie
14e62d1fa2 add GVariantDict
...the long-requested mutable dictionary helper for GVariant.

https://bugzilla.gnome.org/show_bug.cgi?id=625408
2014-02-04 11:56:06 +00:00
Matthias Clasen
c8476e9f8f Fix a typo 2014-02-03 17:10:45 -05:00
Philip Withnall
5d71376763 gmain: Note that g_source_destroy() can be called multiple times
https://bugzilla.gnome.org/show_bug.cgi?id=723360
2014-02-03 07:55:44 +00:00
Emmanuele Bassi
ecadb5a92d tests: Remove a compiler warning 2014-02-02 09:35:17 +00:00
Emmanuele Bassi
a2c42b4a79 array: Remove a compiler warning
The GRealPtrArray variable is not necessary: we're accessing only public
fields of GPtrArray.
2014-02-02 09:30:30 +00:00
Emmanuele Bassi
017349823c array: Fix compilation 2014-02-02 09:28:31 +00:00
Matthias Clasen
d8bbc77cb3 GVariant: Convert docs to markdown
Specifically, convert the sections to markdown syntax.
2014-02-01 21:48:35 -05:00
Matthias Clasen
9b6cc973a0 Don't use the varname tag
This is just an environment variable, after all.
2014-02-01 21:41:57 -05:00
Matthias Clasen
d282bd3929 gmain: Convert docs to markdown
Specifically, convert sections to markdown syntax and
drop all the para tags.
2014-02-01 21:40:10 -05:00
Matthias Clasen
ce87d6420c Don't use the quote tag
It was only used in two places, and we can easily do without.
2014-02-01 21:19:00 -05:00
Matthias Clasen
2f26bad026 Remove an unnecessary paragraph 2014-02-01 20:54:18 -05:00