mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-23 09:28:54 +02:00
If a character can't be converted, don't replace it with a NUL byte, but
2006-08-05 Matthias Clasen <mclasen@redhat.com> * glib/guniprop.c (g_unichar_toupper, g_unichar_tolower) (real_toupper, real_tolower): If a character can't be converted, don't replace it with a NUL byte, but leave it unchanged. (#348491, Nikolai Weibull) * tests/unicode-caseconv.c: Adapt to this change. * tests/unicode-caseconv.c (main): Add a comment to point out a quirk in the test data that we are working around here.
This commit is contained in:
committed by
Matthias Clasen
parent
ce2d5c4b0c
commit
994d642cde
@@ -509,7 +509,12 @@ g_unichar_toupper (gunichar c)
|
||||
return g_utf8_get_char (p);
|
||||
}
|
||||
else
|
||||
return val ? val : c;
|
||||
{
|
||||
/* Some lowercase letters, e.g., U+000AA, FEMININE ORDINAL INDICATOR,
|
||||
* do not have an uppercase equivalent, in which case val will be
|
||||
* zero. */
|
||||
return val ? val : c;
|
||||
}
|
||||
}
|
||||
else if (t == G_UNICODE_TITLECASE_LETTER)
|
||||
{
|
||||
@@ -546,7 +551,11 @@ g_unichar_tolower (gunichar c)
|
||||
return g_utf8_get_char (p);
|
||||
}
|
||||
else
|
||||
return val ? val : c;
|
||||
{
|
||||
/* Not all uppercase letters are guaranteed to have a lowercase
|
||||
* equivalent. If this is the case, val will be zero. */
|
||||
return val ? val : c;
|
||||
}
|
||||
}
|
||||
else if (t == G_UNICODE_TITLECASE_LETTER)
|
||||
{
|
||||
@@ -825,7 +834,10 @@ real_toupper (const gchar *str,
|
||||
}
|
||||
}
|
||||
|
||||
len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL);
|
||||
/* Some lowercase letters, e.g., U+000AA, FEMININE ORDINAL INDICATOR,
|
||||
* do not have an uppercase equivalent, in which case val will be
|
||||
* zero. */
|
||||
len += g_unichar_to_utf8 (val ? val : c, out_buffer ? out_buffer + len : NULL);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1012,7 +1024,9 @@ real_tolower (const gchar *str,
|
||||
}
|
||||
}
|
||||
|
||||
len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL);
|
||||
/* Not all uppercase letters are guaranteed to have a lowercase
|
||||
* equivalent. If this is the case, val will be zero. */
|
||||
len += g_unichar_to_utf8 (val ? val : c, out_buffer ? out_buffer + len : NULL);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
Reference in New Issue
Block a user