As an unsigned integer, this variable is always greater than or equal to
zero. Fixes a compiler warning on Android.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
In !863 I assumed that a 4 byte wchar_t would be equal to gunichar on all platforms,
but this is not the case for FreeBSD. It previously was using the non wchar_t based API
because it doesn't define __STDC_ISO_10646__.
Add back the __STDC_ISO_10646__ check again and introduce a more meaningful macro for guarding
the code paths that are mixing gunichar and wchar_t.
Fixes#1798
The code in gunicollate uses __STDC_ISO_10646__ to check that wchar.h is avilable,
that it includes the wide character related functions and that sizeof(wchar_t) == 4.
cygwin defines __STDC_ISO_10646__ and has sizeof(wchar_t) == 2 and the C standard text isn't
that clear on whether wchar_t should always be 4 bytes in this case, so we better not use if for
assuming the size here.
Instead of relying on __STDC_ISO_10646__ add HAVE_WCHAR_H and SIZEOF_WCHAR_T macros.
With HAVE_WCHAR_H defined we assume wchar_t exists and wchar.h exists. With SIZEOF_WCHAR_T we
guard the parts where the size of wchar_t is assumed to be 4 (currently all of them).
Note that this doesn't make the collate tests pass under cygwin, they fail before and after this patch for me.
See !755 for related discussions.
All glib/*.{c,h} files have been processed, as well as gtester-report.
12 of those files are not licensed under LGPL:
gbsearcharray.h
gconstructor.h
glibintl.h
gmirroringtable.h
gscripttable.h
gtranslit-data.h
gunibreak.h
gunichartables.h
gunicomp.h
gunidecomp.h
valgrind.h
win_iconv.c
Some of them are generated files, some are licensed under a BSD-style
license and win_iconv.c is in the public domain.
Sub-directories inside glib/:
deprecated/: processed in a previous commit
glib-mirroring-tab/: already LGPLv2.1+
gnulib/: not modified, the code is copied from gnulib
libcharset/: a copy
pcre/: a copy
tests/: processed in a previous commit
https://bugzilla.gnome.org/show_bug.cgi?id=776504
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, & -> &
and so on.
Apply slightly modified patch from Camillo Lugaresi which fixes
gunicollate for OSX >= 10.6. It was totally hilariously broken
for anyone on 10.6 and later, I dont know if it's now broken
on 10.5, but better fix it for the vast majority of users.
-gcharset.c, genviron.c, gunicollate.c: Some headers were missed in those
files that triggered C4013 warnings/errors (aka. implicit declaration
of ... in GCC). Make up for them here.
-gwin32.h: Only define g_win32_get_package_installation_directory/
g_win32_get_package_installation_subdirectory as macros
(alias of g_win32_get_package_installation_directory_utf8/
g_win32_get_package_installation_subdirectory_utf8) on Win64 (x64) as
g_win32_get_package_installation_directory/
g_win32_get_package_installation_subdirectory have seperate existing
implmentations for Win32-this is a long-standing problem but was covered-
up by G_DISABLE_DEPRECATED, which we are stopping to use as of 2.31.0.
* glib/gunicollate.c (g_utf8_collate_key): Handle strfxrm returning
-1 a little better. Problem pointed out by Takao Fujiwara
svn path=/trunk/; revision=7015
2008-06-02 Yevgen Muntyan <muntyan@tamu.edu>
Bug 531403 - g_utf8_collate broken on Mac.
* glib/gunicollate.c: (g_utf8_collate): use UCCompareTextDefault;
(collate_key_to_string), (carbon_collate_key_with_collator),
(carbon_collate_key), (carbon_collate_key_for_filename): new
functions using Carbon API to get collate key for g_utf8_collate_key()
and g_utf8_collate_key_for_filename();
(g_utf8_collate_key), (g_utf8_collate_key_for_filename): use those.
svn path=/trunk/; revision=6969
2006-06-08 Tor Lillqvist <tml@novell.com>
* glib/gunicollate.c (msc_strxfrm_wrapper): Workaround for bug in
strxfrm() in Microsoft's newer C runtimes. (#343919, Kazuki
Iwamoto)
2005-06-08 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gunicode.h:
* glib/gunicollate.c (g_utf8_collate_key_for_filename):
New function to calculate collation keys which are more
suitable for sorting filenames. (#172690, Ole Laursen)
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.
2004-08-21 Tor Lillqvist <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
return value from strxfrm(). For instance Microsoft's strxfrm()
returns INT_MAX on errors. (#141124)
2004-08-19 Tor Lillqvist <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
source and destination charset parameter order in g_convert()
call. (#150394, possibly also #141124)
Thu Dec 5 15:24:14 2002 Owen Taylor <otaylor@redhat.com>
Start of fixes for cross-compilation. Based on
patches from Dimi Shahbaz, Dan Kegel, Johannes Stenzenbach,
Amy Lin. (#58786)
* configure.in: Don't run the Digital-Unix 4 -std1 check
when cross_compiling.
* configure.in: Use AC_TRY_COMPILE() rather than
AC_TRY_RUN() for inline checks. (Daniel Egger)
* configure.in: use AC_CHECK_SIZEOF rather than
GLIB_SIZEOF for size_t. Remove unused checks for
size of ptrdiff_t/intmax_t.
* acglib.m4: Resync GLIB_SIZEOF of to the current
AC_CHECK_SIZEOF, which handles cross-compilation.
* acglib.m4: Remove no longer needed GLIB_SYSDEFS(),
add GLIB_CHECK_VALUE() as a wrapper around the
amazing _AC_COMPUTE_INT() autoconf 2.5x internal.
* configure.in: Redo the POLL* value checks in a
cross-compilation friendly way.
Thu Dec 5 15:28:37 2002 Owen Taylor <otaylor@redhat.com>
* glib/gtimer.c: Include glibconfig.h early so
that we include <windows.h> when needed.
* glib/gstrfuncs.c: Fix typo.
Tue Dec 3 01:05:00 2002 James M. Cape <jcape@ignore-your.tv>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key):
Check for NULL before doing anything.
Wed Jul 11 11:13:50 2001 Owen Taylor <otaylor@redhat.com>
* glib/Makefile.am (libglib_1_3_la_SOURCES): Add gunicomp.h
(Reported by Sven Neumann).
* glib/guniprop.c (g_utf8_str/updown) glib/gunicollate.c
(g_utf8_collate_key): Fix shadowing problems reported by
many (D. Adler, S. Neumann, M. Murmane, L. Peter)
Sun Jul 1 20:16:25 2001 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
rather than a custom macro.
* glib/gen-unicode-tables.pl: Adapt to changes in table
formats for Unicode 3.1
* glib/gunicode.h glib/guniprop.c glib/gunichartables.h
glib/gen-unicode-tables.pl: Add case conversion functions
g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
* tests/unicode-caseconv.c tests/gen-casefold-txt.pl
tests/gen-casemap-txt.pl tests/casefold.txt
tests/casemap.txt: Test cases for case conversion.
* glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
glib/gen-unicode-tables.pl: Add function to do Unicode
normalization g_utf8_normalize().
* tests/unicode-normalize.c: Test program for case conversion.
* glib/gunicode.h glib/gunicollate.c: Add collation functions
g_utf8_collate, g_utf8_collate_key.
* test/unicode-collate.c: Test program for collation.
* glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
variable.
* glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
Make work with UTF-8 even if the locale isn't UTF-8 based.
Still somewhat of broken, if the format string contains
characters not representable in the current locale, will warn
and not work.
* glib/gdate.c: Use UTF-8 normalization and casefolding.