Apply the same optimization that was done for g_unichar_get_script
long ago: Use a quick check for the low end, and then remember the
midpoint of the last bsearch, since we're likely to be called for
characters that are close to each other.
This change made g_unichar_iswide disappear from profiles of the
gtk3-demo listbox example.
Move width table generation into the gen-unicode-tables.pl script. This makes
updating the tables automatic without the previously required manual editing
required to insert the tables in the right place of the source code.
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
Raised by Matthias in bgo#665685 but which I didn't spot until after pushing
commit 3ac7c35656.
Renames G_UNICHAR_MAX_DECOMPOSITION_LEN to G_UNICHAR_MAX_DECOMPOSITION_LENGTH
and fixes a few documentation issues.
See: bgo#665685
2008-05-20 Behdad Esfahbod <behdad@gnome.org>
Bug 459905 – Bug in wcwidth data
Bug 534085 – g_unichar_iswide_cjk() has a totally wrong table
* glib/guniprop.c (g_unichar_iswide), (g_unichar_iswide_cjk):
Regenrate wide and wide_cjk tables from Unicode 5.1.0 data directly.
Not using Markus Kuhn's tables anymore.
svn path=/trunk/; revision=6920
2007-08-20 Behdad Esfahbod <behdad@gnome.org>
* glib/tmpl/unicode.sgml: Document that GUnicodeScript is
interchangeable with PangoScript.
2007-08-20 Behdad Esfahbod <behdad@gnome.org>
* glib/guniprop.c: Document that g_unichar_get_script() is
equivalent to pango_script_for_unichar().
svn path=/trunk/; revision=5713
2007-01-03 Behdad Esfahbod <behdad@gnome.org>
* glib/goption.c (_g_unichar_get_width), (_g_utf8_strwidth),
(calculate_max_length), (print_entry), (print_help): Take zerowidth
and double-width chars into consideration when computing width of a
string. Also fix another bug in width computation.
* glib/guniprop.c (g_unichar_iszerowidth): Fix typo. It was not
working correctly.
svn path=/trunk/; revision=5204
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.
2006-07-31 Behdad Esfahbod <behdad@gnome.org>
* glib/guniprop.c (g_unichar_isxdigit): Make it only accept those
characters that we accept i g_unichar_xdigit_value(), i.e. don't
accept non-decimal digits. (#347842, Nikolai Weibull)
2005-11-09 Behdad Esfahbod <behdad@gnome.org>
* glib/guniprop.c: Use bit hacks instead when checking a general
category value against multiple values.
* glib/gutf8.c: Change ISO10646 to Unicode in docs.
2005-11-04 Matthias Clasen <mclasen@redhat.com>
* glib/Makefile.am: Apply a patch from Behdad Esfahbod to
use a faster lookup table for g_unichar_get_mirror_char().
* glib/gmirroringtable.h: The new table.
* glib/gunichartables.h: Remove bidi_mirroring_table.
* glib/gen-unicode-tables.pl: Don't generate the mirroring
table.
* glib/glib-mirroring-tab/*: Sources for the program
which generated gmirroringtable.h.
* glib/glist.c: Avoid some code duplication.
2005-03-13 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in galias.h:
* glib/glib.symbols: Group symbols by header and source file.
* glib/makegalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegalias.pl -def
* glib/Makefile.am (galiasdef.c): Add a rule to generate this
file.
* glib/*.c: Include galias.h after the other GLib headers,
include galiasdef.c at the bottom.
2005-01-04 Tor Lillqvist <tml@iki.fi>
* glib/guniprop.c (get_locale_type): Use g_win32_getlocale()
instead of setlocale() on Windows. setlocale() returns strings
like "Turkish_Turkey".