mirror of
https://github.com/moparisthebest/curl
synced 2024-11-10 11:35:07 -05:00
a579d67064
(http://curl.haxx.se/bug/view.cgi?id=2154627) which pointed out that libcurl uses strcasecmp() in multiple places where it causes failures when the Turkish locale is used. This is because 'i' and 'I' isn't the same letter so strcasecmp() on those letters are different in Turkish than in English (or just about all other languages). I thus introduced a totally new internal function in libcurl (called Curl_ascii_equal) for doing case insentive comparisons for english-(ascii?) style strings that thus will make "file" and "FILE" match even if the Turkish locale is selected.
48 lines
1.7 KiB
C
48 lines
1.7 KiB
C
#ifndef __STREQUAL_H
|
|
#define __STREQUAL_H
|
|
/***************************************************************************
|
|
* _ _ ____ _
|
|
* Project ___| | | | _ \| |
|
|
* / __| | | | |_) | |
|
|
* | (__| |_| | _ <| |___
|
|
* \___|\___/|_| \_\_____|
|
|
*
|
|
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
*
|
|
* This software is licensed as described in the file COPYING, which
|
|
* you should have received as part of this distribution. The terms
|
|
* are also available at http://curl.haxx.se/docs/copyright.html.
|
|
*
|
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
* copies of the Software, and permit persons to whom the Software is
|
|
* furnished to do so, under the terms of the COPYING file.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
* $Id$
|
|
***************************************************************************/
|
|
|
|
#include <curl/curl.h>
|
|
|
|
#define strequal(a,b) curl_strequal(a,b)
|
|
#define strnequal(a,b,c) curl_strnequal(a,b,c)
|
|
|
|
/* checkprefix() is a shorter version of the above, used when the first
|
|
argument is zero-byte terminated */
|
|
#define checkprefix(a,b) strnequal(a,b,strlen(a))
|
|
|
|
/*
|
|
* Curl_ascii_equal() is for doing "ascii" case insensitive strings. This is
|
|
* meant to be locale independent and only compare strings we know are safe
|
|
* for this.
|
|
*/
|
|
int Curl_ascii_equal(const char *first, const char *second);
|
|
|
|
#ifndef HAVE_STRLCAT
|
|
#define strlcat(x,y,z) Curl_strlcat(x,y,z)
|
|
#endif
|
|
size_t strlcat(char *dst, const char *src, size_t siz);
|
|
|
|
#endif
|