Commit Graph

42 Commits

Author SHA1 Message Date
Philip Withnall
3c4ff30c0f gunicollate: Remove tautological comparison
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>
2019-10-08 13:50:13 +01:00
Christoph Reiter
b49e767e2e gunicollate: work around FreeBSD wchar_t not matching our gunichar type
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
2019-06-04 18:20:18 +02:00
Christoph Reiter
0030408299 gunicollate/cygwin: Don't use __STDC_ISO_10646__ for wchar_t related checks
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.
2019-05-22 19:44:13 +02:00
Sébastien Wilmet
f9faac7661 glib/: LGPLv2+ -> LGPLv2.1+
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
2017-05-24 11:58:19 +02:00
Daniel Macks
929e1b1fde Do not build utf8_encode on CARBON platform
utf8_encode is not used by g_utf8_collate_key on this platform.

https://bugzilla.gnome.org/show_bug.cgi?id=780306
2017-03-21 08:43:43 +00:00
Carlos Sánchez de La Lama
525b33c05f Correct collation key generation on OS X
This ixes bug #673047.
2017-03-08 22:37:29 -05:00
Sébastien Wilmet
f60590534d License headers: "the Gnome Library" -> "this library"
Harmonize a little the license headers. In most of the license headers
in GLib, it is "this library".

It is also what is explained at:
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html#SEC4
"How to Apply These Terms to Your New Libraries"

https://bugzilla.gnome.org/show_bug.cgi?id=776586
2017-01-04 19:12:56 +01:00
William Jon McCann
20f4d1820b docs: use "Returns:" consistently
Instead of "Return value:".
2014-02-19 19:41:52 -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
e7fd3de86d Eradicate links and xrefs
These are all replaced by markdown ref links.
2014-02-08 12:26:56 -05:00
Daniel Mustieles
078dbda148 Updated FSF's address 2014-01-31 14:31:55 +01:00
Matthias Clasen
95f13ded92 Trivial formatting fixes 2014-01-01 17:59:21 -05:00
Michael Natterer
ef8510be09 Bug 673047 - gunicollate is broken on OS X
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.
2012-11-16 18:51:41 +01:00
Chun-wei Fan
b25177fc4f GLib: Add forgotten includes and build fixes
-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.
2011-10-17 23:54:05 +08:00
Tor Lillqvist
8a8cdd1d32 Add some more individual own header includes where required 2010-09-12 14:05:49 +03:00
Matthias Clasen
04077ff5c5 More include cleanups 2010-09-03 23:03:14 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Matthias Clasen
de09a5803a Handle strfxrm returning -1 a little better. Problem pointed out by Takao
* 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-11 19:38:35 +00:00
Yevgen Muntyan
c5df5e88d9 Bug 531403 - g_utf8_collate broken on Mac.
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
2008-06-02 19:35:15 +00:00
Matthias Clasen
98d552e0cd Consistently use gsize rather than size_t. (#333310, Morten Welinder)
2006-12-27  Matthias Clasen  <mclasen@redhat.com>

        * glib/gconvert.[hc]:
        * glib/gfileutils.c:
        * glib/giochannel.c:
        * glib/goption.c:
        * glib/gspawn.c:
        * glib/gunicollate.c:
        * glib/gutils.c:
        * tests/timeloop-basic.c:
        Consistently use gsize rather than size_t.  (#333310,
        Morten Welinder)
2006-12-28 04:48:06 +00:00
Matthias Clasen
d1be55cccb Don't modify the current locale. (#389300)
2006-12-27  Matthias Clasen  <mclasen@redhat.com>

        * glib/gunicollate.c (g_utf8_collate_key): Don't modify
        the current locale.  (#389300)
2006-12-27 05:12:47 +00:00
Matthias Clasen
33acbf5b76 Forgotten file 2006-12-27 05:10:54 +00:00
Tor Lillqvist
c795837524 Workaround for bug in strxfrm() in Microsoft's newer C runtimes. (#343919,
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)
2006-06-08 15:24:10 +00:00
Matthias Clasen
bb5ce4b2d3 Don't read beyond len. (#322520, Christian Persch)
2005-11-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gunicollate.c (g_utf8_collate_key_for_filename):
	Don't read beyond len.  (#322520, Christian Persch)
2005-11-27 20:15:41 +00:00
Matthias Clasen
df2746311f Fix sorting of 0 sequences in filenames 2005-10-07 03:04:03 +00:00
Matthias Clasen
e6cc98c9cd New function to calculate collation keys which are more suitable for
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-06-08 05:22:05 +00:00
Matthias Clasen
608a31b98e Make PLT-reduction work with gcc4, and don't include everything in
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-03-14 04:26:57 +00:00
Matthias Clasen
ad90d2de03 Fix last commit. 2004-12-20 16:10:30 +00:00
Matthias Clasen
02d45673bc Make docs more accurate. (#161683, Marcin Krzyzanowski)
2004-12-20  Matthias Clasen  <mclasen@redhat.com>

	* glib/gunicollate.c (g_utf8_collate): Make docs
	more accurate.  (#161683, Marcin Krzyzanowski)
2004-12-20 16:10:04 +00:00
Matthias Clasen
dafdffd751 Implement the same PLT reduction technique used in GTK+:
Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
2004-09-16 06:05:53 +00:00
Tor Lillqvist
e65caea220 Guard against bogus return value from strxfrm(). For instance Microsoft's
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-21 13:43:51 +00:00
Tor Lillqvist
c61e425b91 Correct source and destination charset parameter order in g_convert()
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)
2004-08-19 23:38:38 +00:00
Noah Levitt
8d91ba8c58 Unicode 4.0 special casing. (#114681)
2003-09-10  Noah Levitt  <nlevitt@columbia.edu>

	* glib/gunicodeprivate.h:
	* glib/gunicollate.c:
	* glib/gunidecomp.c:
	* glib/guniprop.c:
	* tests/casemap.txt:
	* tests/gen-casemap-txt.pl: Unicode 4.0 special casing. (#114681)

	* glib/gunicodeprivate.h: Use a private header instead of extern
	function declarations (_g_utf8_normalize_wc,
	_g_unichar_combining_class).
2003-09-10 16:55:36 +00:00
Matthias Clasen
a412fb1654 Remove some explicit Docbook markup which is no longer necessary
since gtk-doc does the right thing.
2003-07-25 21:32:47 +00:00
Owen Taylor
901377bcef Start of fixes for cross-compilation. Based on patches from Dimi Shahbaz,
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.
2002-12-05 20:33:26 +00:00
Owen Taylor
bbbd329ff5 Patch from Sven Neumann to make the include order consistent. (#71704)
Tue Dec  3 20:22:27 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/*.c: Patch from Sven Neumann to make the
        include order consistent. (#71704)
2002-12-04 01:27:44 +00:00
Frédéric Crozat
1e1b381daa Fix typo from previous commit
* glib/gunicollate.c: (g_utf8_collate_key):
Fix typo from previous commit
2002-12-03 13:14:34 +00:00
James M. Cape
96aa6ab873 Check for NULL before doing anything.
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.
2002-12-03 07:07:38 +00:00
Matthias Clasen
50d0ad9803 glib/gutf8.c, glib/gunibreak.c, glib/gunicollate.c,
glib/gunidecomp.c, glib/guniprop.c: Inline doc consistency fixes.
2001-09-24 21:28:57 +00:00
Owen Taylor
be44b99002 Add gunicomp.h (Reported by Sven Neumann).
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)
2001-07-11 15:28:35 +00:00
Owen Taylor
f1f680b68c Add length arguments to g_utf8_{strup,strdown,casefold,collate_key}.
Fri Jul  6 22:34:32 2001  Owen Taylor  <otaylor@redhat.com>

	* glib/gunicode.h glib/gunidecomp.c glib/guniprop.c
	  glib/gunicollate.c: Add length arguments to
	g_utf8_{strup,strdown,casefold,collate_key}.

	* glib/gdate.c: Fix for above.
2001-07-07 02:42:49 +00:00
Owen Taylor
4f96a13cba Use G_N_ELEMENTS rather than a custom macro.
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.
2001-07-02 00:49:21 +00:00