ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina Stephen Gallagher <sgallagh@redhat.com>
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina Copyright (C) 2011 Red Hat
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina This program is free software; you can redistribute it and/or modify
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina it under the terms of the GNU General Public License as published by
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina the Free Software Foundation; either version 3 of the License, or
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina (at your option) any later version.
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina This program is distributed in the hope that it will be useful,
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina but WITHOUT ANY WARRANTY; without even the implied warranty of
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina GNU General Public License for more details.
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina You should have received a copy of the GNU General Public License
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina along with this program. If not, see <http://www.gnu.org/licenses/>.
365fe7479c753f198430812337a7ba8cdb0baf7dLukas Slebodnikuint8_t *sss_utf8_tolower(const uint8_t *s, size_t len, size_t *_nlen)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina lower = u8_tolower(s, len, NULL, NULL, NULL, &llen);
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březinauint8_t *sss_utf8_tolower(const uint8_t *s, size_t len, size_t *_nlen)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina glower = g_utf8_strdown((const gchar *) s, len);
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina /* strlen() is safe here because g_utf8_strdown() always null-terminates */
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březinabool sss_utf8_check(const uint8_t *s, size_t n)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina return false;
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březinabool sss_utf8_check(const uint8_t *s, size_t n)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina return g_utf8_validate((const gchar *)s, n, NULL);
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina/* Returns EOK on match, ENOTUNIQ if comparison succeeds but
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina * does not match.
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina * May return other errno error codes on failure
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březinaerrno_t sss_utf8_case_eq(const uint8_t *s1, const uint8_t *s2)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina /* Do a case-insensitive comparison.
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina * The input must be encoded in UTF8.
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina * We have no way of knowing the language,
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina * so we'll pass NULL for the language and
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina * hope for the best.
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina /* An error occurred */
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březinaerrno_t sss_utf8_case_eq(const uint8_t *s1, const uint8_t *s2)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březinabool sss_string_equal(bool cs, const char *s1, const char *s2)
ae7247551b78a05a5397d3c790afad7ef51b0d9dPavel Březina return sss_utf8_case_eq((const uint8_t *)s1, (const uint8_t *)s2) == EOK;