X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fgstrfuncs.c;h=f33f84b6886d997e25bac615d7ed860f907ace65;hb=35eaf037bdfca985abf5d349e7355f1d2ed9c77b;hp=f251539ca5479b3c53390f3fdbfba53fd38381b6;hpb=42cf80780b4fbbe9063ed3d962bb13f341757b3f;p=platform%2Fupstream%2Fglib.git
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
index f251539..f33f84b 100644
--- a/glib/gstrfuncs.c
+++ b/glib/gstrfuncs.c
@@ -65,27 +65,25 @@
*
* Note that the functions g_printf(), g_fprintf(), g_sprintf(),
* g_snprintf(), g_vprintf(), g_vfprintf(), g_vsprintf() and g_vsnprintf()
- * are declared in the header gprintf.h which is
- * not included in glib.h
- * (otherwise using glib.h would drag in
- * stdio.h), so you'll have to explicitly include
- * <glib/gprintf.h> in order to use the GLib
+ * are declared in the header `gprintf.h` which is not included in `glib.h`
+ * (otherwise using `glib.h` would drag in `stdio.h`), so you'll have to
+ * explicitly include `` in order to use the GLib
* printf() functions.
*
- * While you may use the printf() functions
- * to format UTF-8 strings, notice that the precision of a
- * %Ns parameter is interpreted as the
- * number of bytes, not characters to print. On top of that, the GNU
- * libc implementation of the printf() functions has the "feature" that
- * it checks that the string given for the %Ns
+ * ## String precision pitfalls # {#string-precision}
+ *
+ * While you may use the printf() functions to format UTF-8 strings,
+ * notice that the precision of a \%Ns parameter is interpreted
+ * as the number of bytes, not characters to print. On top of that,
+ * the GNU libc implementation of the printf() functions has the
+ * "feature" that it checks that the string given for the \%Ns
* parameter consists of a whole number of characters in the current
* encoding. So, unless you are sure you are always going to be in an
* UTF-8 locale or your know your text is restricted to ASCII, avoid
- * using %Ns. If your intention is to format
- * strings for a certain number of columns, then
- * %Ns is not a correct solution anyway, since it
- * fails to take wide characters (see g_unichar_iswide()) into account.
- *
+ * using \%Ns. If your intention is to format strings for a
+ * certain number of columns, then \%Ns is not a correct solution
+ * anyway, since it fails to take wide characters (see g_unichar_iswide())
+ * into account.
*/
/**
@@ -266,7 +264,7 @@
* on systems with 64bit IEEE-compatible doubles.
*
* The typical usage would be something like:
- * |[
+ * |[
* char buf[G_ASCII_DTOSTR_BUF_SIZE];
*
* fprintf (out, "value=%s\n", g_ascii_dtostr (buf, sizeof (buf), value));
@@ -403,8 +401,8 @@ g_memdup (gconstpointer mem,
* %NULL it returns %NULL. The returned value should be freed when no longer
* needed.
*
- * To copy a number of characters from a UTF-8 encoded string, use
- * g_utf8_strncpy() instead.
+ * To copy a number of characters from a UTF-8 encoded string,
+ * use g_utf8_strncpy() instead.
*
* Returns: a newly-allocated buffer containing the first @n bytes
* of @str, nul-terminated
@@ -460,7 +458,7 @@ g_strnfill (gsize length,
* This is useful for concatenating multiple strings together
* without having to repeatedly scan for the end.
*
- * Return value: a pointer to trailing nul byte.
+ * Returns: a pointer to trailing nul byte.
**/
gchar *
g_stpcpy (gchar *dest,
@@ -471,8 +469,8 @@ g_stpcpy (gchar *dest,
g_return_val_if_fail (src != NULL, NULL);
return stpcpy (dest, src);
#else
- register gchar *d = dest;
- register const gchar *s = src;
+ gchar *d = dest;
+ const gchar *s = src;
g_return_val_if_fail (dest != NULL, NULL);
g_return_val_if_fail (src != NULL, NULL);
@@ -487,7 +485,7 @@ g_stpcpy (gchar *dest,
/**
* g_strdup_vprintf:
* @format: a standard printf() format string, but notice
- * string precision pitfalls
+ * [string precision pitfalls][string-precision]
* @args: the list of parameters to insert into the format string
*
* Similar to the standard C vsprintf() function but safer, since it
@@ -514,7 +512,7 @@ g_strdup_vprintf (const gchar *format,
/**
* g_strdup_printf:
* @format: a standard printf() format string, but notice
- * string precision pitfalls
+ * [string precision pitfalls][string-precision]
* @...: the parameters to insert into the format string
*
* Similar to the standard C sprintf() function but safer, since it
@@ -611,7 +609,7 @@ g_strconcat (const gchar *string1, ...)
* separated lists of values, since the commas may be interpreted as a decimal
* point in some locales, causing unexpected results.
*
- * Return value: the #gdouble value.
+ * Returns: the #gdouble value.
**/
gdouble
g_strtod (const gchar *nptr,
@@ -668,15 +666,15 @@ g_strtod (const gchar *nptr,
* To convert from a #gdouble to a string in a locale-insensitive
* way, use g_ascii_dtostr().
*
- * If the correct value would cause overflow, plus or minus HUGE_VAL
- * is returned (according to the sign of the value), and ERANGE is
- * stored in errno. If the correct value would cause underflow,
- * zero is returned and ERANGE is stored in errno.
+ * If the correct value would cause overflow, plus or minus %HUGE_VAL
+ * is returned (according to the sign of the value), and %ERANGE is
+ * stored in %errno. If the correct value would cause underflow,
+ * zero is returned and %ERANGE is stored in %errno.
*
- * This function resets errno before calling strtod() so that
+ * This function resets %errno before calling strtod() so that
* you can reliably detect overflow and underflow.
*
- * Return value: the #gdouble value.
+ * Returns: the #gdouble value.
*/
gdouble
g_ascii_strtod (const gchar *nptr,
@@ -862,7 +860,7 @@ g_ascii_strtod (const gchar *nptr,
* guaranteed that the size of the resulting string will never
* be larger than @G_ASCII_DTOSTR_BUF_SIZE bytes.
*
- * Return value: The pointer to the buffer with the converted string.
+ * Returns: The pointer to the buffer with the converted string.
**/
gchar *
g_ascii_dtostr (gchar *buffer,
@@ -891,7 +889,7 @@ g_ascii_dtostr (gchar *buffer,
* If you just want to want to serialize the value into a
* string, use g_ascii_dtostr().
*
- * Return value: The pointer to the buffer with the converted string.
+ * Returns: The pointer to the buffer with the converted string.
*/
gchar *
g_ascii_formatd (gchar *buffer,
@@ -1138,13 +1136,13 @@ g_parse_long_long (const gchar *nptr,
* locale-sensitive system strtoull() function.
*
* If the correct value would cause overflow, %G_MAXUINT64
- * is returned, and ERANGE is stored in errno.
+ * is returned, and `ERANGE` is stored in `errno`.
* If the base is outside the valid range, zero is returned, and
- * EINVAL is stored in errno.
+ * `EINVAL` is stored in `errno`.
* If the string conversion fails, zero is returned, and @endptr returns
* @nptr (if @endptr is non-%NULL).
*
- * Return value: the #guint64 value or zero on error.
+ * Returns: the #guint64 value or zero on error.
*
* Since: 2.2
*/
@@ -1185,13 +1183,13 @@ g_ascii_strtoull (const gchar *nptr,
* locale-sensitive system strtoll() function.
*
* If the correct value would cause overflow, %G_MAXINT64 or %G_MININT64
- * is returned, and ERANGE is stored in errno.
+ * is returned, and `ERANGE` is stored in `errno`.
* If the base is outside the valid range, zero is returned, and
- * EINVAL is stored in errno. If the
+ * `EINVAL` is stored in `errno`. If the
* string conversion fails, zero is returned, and @endptr returns @nptr
* (if @endptr is non-%NULL).
*
- * Return value: the #gint64 value or zero on error.
+ * Returns: the #gint64 value or zero on error.
*
* Since: 2.12
*/
@@ -1236,7 +1234,7 @@ g_ascii_strtoll (const gchar *nptr,
* not all platforms support the strerror() function.
*
* Returns: a UTF-8 string describing the error code. If the error code
- * is unknown, it returns "unknown error (<code>)".
+ * is unknown, it returns "unknown error ()".
*/
const gchar *
g_strerror (gint errnum)
@@ -1258,8 +1256,7 @@ g_strerror (gint errnum)
/**
* g_strsignal:
- * @signum: the signal number. See the signal
- * documentation
+ * @signum: the signal number. See the `signal` documentation
*
* Returns a string describing the given signal, e.g. "Segmentation fault".
* You should use this function in preference to strsignal(), because it
@@ -1267,7 +1264,7 @@ g_strerror (gint errnum)
* the strsignal() function.
*
* Returns: a UTF-8 string describing the signal. If the signal is unknown,
- * it returns "unknown signal (<signum>)".
+ * it returns "unknown signal ()".
*/
const gchar *
g_strsignal (gint signum)
@@ -1351,9 +1348,9 @@ g_strlcpy (gchar *dest,
const gchar *src,
gsize dest_size)
{
- register gchar *d = dest;
- register const gchar *s = src;
- register gsize n = dest_size;
+ gchar *d = dest;
+ const gchar *s = src;
+ gsize n = dest_size;
g_return_val_if_fail (dest != NULL, 0);
g_return_val_if_fail (src != NULL, 0);
@@ -1362,7 +1359,7 @@ g_strlcpy (gchar *dest,
if (n != 0 && --n != 0)
do
{
- register gchar c = *s++;
+ gchar c = *s++;
*d++ = c;
if (c == 0)
@@ -1412,9 +1409,9 @@ g_strlcat (gchar *dest,
const gchar *src,
gsize dest_size)
{
- register gchar *d = dest;
- register const gchar *s = src;
- register gsize bytes_left = dest_size;
+ gchar *d = dest;
+ const gchar *s = src;
+ gsize bytes_left = dest_size;
gsize dlength; /* Logically, MIN (strlen (d), dest_size) */
g_return_val_if_fail (dest != NULL, 0);
@@ -1451,7 +1448,7 @@ g_strlcat (gchar *dest,
*
* Converts all upper case ASCII letters to lower case ASCII letters.
*
- * Return value: a newly-allocated string, with all the upper case
+ * Returns: a newly-allocated string, with all the upper case
* characters in @str converted to lower case, with semantics that
* exactly match g_ascii_tolower(). (Note that this is unlike the
* old g_strdown(), which modified the string in place.)
@@ -1481,7 +1478,7 @@ g_ascii_strdown (const gchar *str,
*
* Converts all lower case ASCII letters to upper case ASCII letters.
*
- * Return value: a newly allocated string, with all the lower case
+ * Returns: a newly allocated string, with all the lower case
* characters in @str converted to upper case, with semantics that
* exactly match g_ascii_toupper(). (Note that this is unlike the
* old g_strup(), which modified the string in place.)
@@ -1506,22 +1503,22 @@ g_ascii_strup (const gchar *str,
/**
* g_str_is_ascii:
- * @string: a string
+ * @str: a string
*
- * Determines if a string is pure ASCII. A string is pure ASCII if it
+ * Determines if a string is pure ASCII. A string is pure ASCII if it
* contains no bytes with the high bit set.
*
- * Returns: %TRUE if @string is ascii
+ * Returns: %TRUE if @str is ASCII
*
* Since: 2.40
*/
gboolean
-g_str_is_ascii (const gchar *string)
+g_str_is_ascii (const gchar *str)
{
gint i;
- for (i = 0; string[i]; i++)
- if (string[i] & 0x80)
+ for (i = 0; str[i]; i++)
+ if (str[i] & 0x80)
return FALSE;
return TRUE;
@@ -1533,7 +1530,7 @@ g_str_is_ascii (const gchar *string)
*
* Converts a string to lower case.
*
- * Return value: the string
+ * Returns: the string
*
* Deprecated:2.2: This function is totally broken for the reasons discussed
* in the g_strncasecmp() docs - use g_ascii_strdown() or g_utf8_strdown()
@@ -1542,7 +1539,7 @@ g_str_is_ascii (const gchar *string)
gchar*
g_strdown (gchar *string)
{
- register guchar *s;
+ guchar *s;
g_return_val_if_fail (string != NULL, NULL);
@@ -1564,7 +1561,7 @@ g_strdown (gchar *string)
*
* Converts a string to upper case.
*
- * Return value: the string
+ * Returns: the string
*
* Deprecated:2.2: This function is totally broken for the reasons
* discussed in the g_strncasecmp() docs - use g_ascii_strup()
@@ -1573,7 +1570,7 @@ g_strdown (gchar *string)
gchar*
g_strup (gchar *string)
{
- register guchar *s;
+ guchar *s;
g_return_val_if_fail (string != NULL, NULL);
@@ -1594,8 +1591,7 @@ g_strup (gchar *string)
* @string: the string to reverse
*
* Reverses all of the bytes in a string. For example,
- * g_strreverse ("abcdef") will result
- * in "fedcba".
+ * `g_strreverse ("abcdef")` will result in "fedcba".
*
* Note that g_strreverse() doesn't work on UTF-8 strings
* containing multibyte characters. For that purpose, use
@@ -1610,14 +1606,14 @@ g_strreverse (gchar *string)
if (*string)
{
- register gchar *h, *t;
+ gchar *h, *t;
h = string;
t = string + strlen (string) - 1;
while (h < t)
{
- register gchar c;
+ gchar c;
c = *h;
*h = *t;
@@ -1644,7 +1640,7 @@ g_strreverse (gchar *string)
* don't call it on %EOF but no need to worry about casting to #guchar
* before passing a possibly non-ASCII character in.
*
- * Return value: the result of converting @c to lower case. If @c is
+ * Returns: the result of converting @c to lower case. If @c is
* not an ASCII upper case letter, @c is returned unchanged.
*/
gchar
@@ -1667,7 +1663,7 @@ g_ascii_tolower (gchar c)
* don't call it on %EOF but no need to worry about casting to #guchar
* before passing a possibly non-ASCII character in.
*
- * Return value: the result of converting @c to upper case. If @c is not
+ * Returns: the result of converting @c to upper case. If @c is not
* an ASCII lower case letter, @c is returned unchanged.
*/
gchar
@@ -1684,7 +1680,7 @@ g_ascii_toupper (gchar c)
* Differs from g_unichar_digit_value() because it takes a char, so
* there's no worry about sign extension if characters are signed.
*
- * Return value: If @c is a decimal digit (according to g_ascii_isdigit()),
+ * Returns: If @c is a decimal digit (according to g_ascii_isdigit()),
* its numeric value. Otherwise, -1.
*/
int
@@ -1704,7 +1700,7 @@ g_ascii_digit_value (gchar c)
* a char, so there's no worry about sign extension if characters
* are signed.
*
- * Return value: If @c is a hex digit (according to g_ascii_isxdigit()),
+ * Returns: If @c is a hex digit (according to g_ascii_isxdigit()),
* its numeric value. Otherwise, -1.
*/
int
@@ -1738,8 +1734,8 @@ g_ascii_xdigit_value (gchar c)
*
* Both @s1 and @s2 must be non-%NULL.
*
- * Return value: 0 if the strings match, a negative value if @s1 < @s2,
- * or a positive value if @s1 > @s2.
+ * Returns: 0 if the strings match, a negative value if @s1 < @s2,
+ * or a positive value if @s1 > @s2.
*/
gint
g_ascii_strcasecmp (const gchar *s1,
@@ -1779,8 +1775,8 @@ g_ascii_strcasecmp (const gchar *s1,
* function only on strings known to be in encodings where bytes
* corresponding to ASCII letters always represent themselves.
*
- * Return value: 0 if the strings match, a negative value if @s1 < @s2,
- * or a positive value if @s1 > @s2.
+ * Returns: 0 if the strings match, a negative value if @s1 < @s2,
+ * or a positive value if @s1 > @s2.
*/
gint
g_ascii_strncasecmp (const gchar *s1,
@@ -1816,8 +1812,8 @@ g_ascii_strncasecmp (const gchar *s1,
* A case-insensitive string comparison, corresponding to the standard
* strcasecmp() function on platforms which support it.
*
- * Return value: 0 if the strings match, a negative value if @s1 < @s2,
- * or a positive value if @s1 > @s2.
+ * Returns: 0 if the strings match, a negative value if @s1 < @s2,
+ * or a positive value if @s1 > @s2.
*
* Deprecated:2.2: See g_strncasecmp() for a discussion of why this
* function is deprecated and how to replace it.
@@ -1864,8 +1860,8 @@ g_strcasecmp (const gchar *s1,
* to g_strcasecmp() except it only compares the first @n characters of
* the strings.
*
- * Return value: 0 if the strings match, a negative value if @s1 < @s2,
- * or a positive value if @s1 > @s2.
+ * Returns: 0 if the strings match, a negative value if @s1 < @s2,
+ * or a positive value if @s1 > @s2.
*
* Deprecated:2.2: The problem with g_strncasecmp() is that it does
* the comparison by calling toupper()/tolower(). These functions
@@ -1927,7 +1923,7 @@ g_strncasecmp (const gchar *s1,
* changed to the @new_delimiter character. Modifies @string in place,
* and returns @string itself, not a copy. The return value is to
* allow nesting such as
- * |[
+ * |[
* g_ascii_strup (g_strdelimit (str, "abc", '?'))
* ]|
*
@@ -1938,7 +1934,7 @@ g_strdelimit (gchar *string,
const gchar *delimiters,
gchar new_delim)
{
- register gchar *c;
+ gchar *c;
g_return_val_if_fail (string != NULL, NULL);
@@ -1964,7 +1960,7 @@ g_strdelimit (gchar *string,
* replaces the character with @substitutor. Modifies @string in place,
* and return @string itself, not a copy. The return value is to allow
* nesting such as
- * |[
+ * |[
* g_ascii_strup (g_strcanon (str, "abc", '?'))
* ]|
*
@@ -1975,7 +1971,7 @@ g_strcanon (gchar *string,
const gchar *valid_chars,
gchar substitutor)
{
- register gchar *c;
+ gchar *c;
g_return_val_if_fail (string != NULL, NULL);
g_return_val_if_fail (valid_chars != NULL, NULL);
@@ -2250,6 +2246,10 @@ g_strchomp (gchar *string)
* @delimiter. If @max_tokens is reached, the remainder of @string is
* appended to the last token.
*
+ * As an example, the result of g_strsplit (":a:bc::d:", ":", -1) is a
+ * %NULL-terminated vector containing the six strings "", "a", "bc", "", "d"
+ * and "".
+ *
* As a special case, the result of splitting the empty string "" is an empty
* vector, not a vector containing a single string. The reason for this
* special case is that being able to represent a empty vector is typically
@@ -2257,7 +2257,7 @@ g_strchomp (gchar *string)
* to represent empty elements, you'll need to check for the empty string
* before calling g_strsplit().
*
- * Return value: a newly-allocated %NULL-terminated array of strings. Use
+ * Returns: a newly-allocated %NULL-terminated array of strings. Use
* g_strfreev() to free it.
*/
gchar**
@@ -2329,7 +2329,7 @@ g_strsplit (const gchar *string,
* %NULL-terminated vector containing the three strings "abc", "def",
* and "ghi".
*
- * The result if g_strsplit_set (":def/ghi:", ":/", -1) is a %NULL-terminated
+ * The result of g_strsplit_set (":def/ghi:", ":/", -1) is a %NULL-terminated
* vector containing the four strings "", "def", "ghi", and "".
*
* As a special case, the result of splitting the empty string "" is an empty
@@ -2342,7 +2342,7 @@ g_strsplit (const gchar *string,
* Note that this function works on bytes not characters, so it can't be used
* to delimit UTF-8 strings for anything but ASCII characters.
*
- * Return value: a newly-allocated %NULL-terminated array of strings. Use
+ * Returns: a newly-allocated %NULL-terminated array of strings. Use
* g_strfreev() to free it.
*
* Since: 2.4
@@ -2440,7 +2440,7 @@ g_strfreev (gchar **str_array)
* the array itself. g_strfreev() does this for you. If called
* on a %NULL value, g_strdupv() simply returns %NULL.
*
- * Return value: a new %NULL-terminated array of strings.
+ * Returns: a new %NULL-terminated array of strings.
*/
gchar**
g_strdupv (gchar **str_array)
@@ -2605,7 +2605,7 @@ g_strjoin (const gchar *separator,
* of the string @needle, limiting the length of the search
* to @haystack_len.
*
- * Return value: a pointer to the found occurrence, or
+ * Returns: a pointer to the found occurrence, or
* %NULL if not found.
*/
gchar *
@@ -2657,7 +2657,7 @@ g_strstr_len (const gchar *haystack,
* Searches the string @haystack for the last occurrence
* of the string @needle.
*
- * Return value: a pointer to the found occurrence, or
+ * Returns: a pointer to the found occurrence, or
* %NULL if not found.
*/
gchar *
@@ -2708,7 +2708,7 @@ g_strrstr (const gchar *haystack,
* of the string @needle, limiting the length of the search
* to @haystack_len.
*
- * Return value: a pointer to the found occurrence, or
+ * Returns: a pointer to the found occurrence, or
* %NULL if not found.
*/
gchar *
@@ -2760,7 +2760,7 @@ g_strrstr_len (const gchar *haystack,
*
* Looks whether the string @str ends with @suffix.
*
- * Return value: %TRUE if @str end with @suffix, %FALSE otherwise.
+ * Returns: %TRUE if @str end with @suffix, %FALSE otherwise.
*
* Since: 2.2
*/
@@ -2790,7 +2790,7 @@ g_str_has_suffix (const gchar *str,
*
* Looks whether the string @str begins with @prefix.
*
- * Return value: %TRUE if @str begins with @prefix, %FALSE otherwise.
+ * Returns: %TRUE if @str begins with @prefix, %FALSE otherwise.
*
* Since: 2.2
*/
@@ -2798,19 +2798,10 @@ gboolean
g_str_has_prefix (const gchar *str,
const gchar *prefix)
{
- int str_len;
- int prefix_len;
-
g_return_val_if_fail (str != NULL, FALSE);
g_return_val_if_fail (prefix != NULL, FALSE);
- str_len = strlen (str);
- prefix_len = strlen (prefix);
-
- if (str_len < prefix_len)
- return FALSE;
-
- return strncmp (str, prefix, prefix_len) == 0;
+ return strncmp (str, prefix, strlen (prefix)) == 0;
}
/**
@@ -2820,7 +2811,7 @@ g_str_has_prefix (const gchar *str,
* Returns the length of the given %NULL-terminated
* string array @str_array.
*
- * Return value: length of @str_array.
+ * Returns: length of @str_array.
*
* Since: 2.6
*/
@@ -2957,6 +2948,8 @@ g_str_tokenize_and_fold (const gchar *string,
{
gchar **result;
+ g_return_val_if_fail (string != NULL, NULL);
+
if (ascii_alternates && g_str_is_ascii (string))
{
*ascii_alternates = g_new0 (gchar *, 0 + 1);
@@ -2965,7 +2958,6 @@ g_str_tokenize_and_fold (const gchar *string,
result = split_words (string);
- /* TODO: proper iconv transliteration (locale-dependent) */
if (ascii_alternates)
{
gint i, j, n;
@@ -2978,21 +2970,26 @@ g_str_tokenize_and_fold (const gchar *string,
{
if (!g_str_is_ascii (result[i]))
{
- gchar *decomposed;
+ gchar *composed;
gchar *ascii;
- gint k = 0;
- gint l = 0;
+ gint k;
- decomposed = g_utf8_normalize (result[i], -1, G_NORMALIZE_ALL);
- ascii = g_malloc (strlen (decomposed) + 1);
+ composed = g_utf8_normalize (result[i], -1, G_NORMALIZE_ALL_COMPOSE);
- for (k = 0; decomposed[k]; k++)
- if (~decomposed[k] & 0x80)
- ascii[l++] = decomposed[k];
- ascii[l] = '\0';
+ ascii = g_str_to_ascii (composed, translit_locale);
- (*ascii_alternates)[j++] = ascii;
- g_free (decomposed);
+ /* Only accept strings that are now entirely alnums */
+ for (k = 0; ascii[k]; k++)
+ if (!g_ascii_isalnum (ascii[k]))
+ break;
+
+ if (ascii[k] == '\0')
+ /* Made it to the end... */
+ (*ascii_alternates)[j++] = ascii;
+ else
+ g_free (ascii);
+
+ g_free (composed);
}
}
@@ -3046,6 +3043,9 @@ g_str_match_string (const gchar *search_term,
gboolean matched;
gint i, j;
+ g_return_val_if_fail (search_term != NULL, FALSE);
+ g_return_val_if_fail (potential_hit != NULL, FALSE);
+
term_tokens = g_str_tokenize_and_fold (search_term, NULL, NULL);
hit_tokens = g_str_tokenize_and_fold (potential_hit, NULL, accept_alternates ? &alternates : NULL);