diff options
Diffstat (limited to 'plugins/FTPFileYM/curl/lib/strequal.c')
| -rw-r--r-- | plugins/FTPFileYM/curl/lib/strequal.c | 124 | 
1 files changed, 124 insertions, 0 deletions
diff --git a/plugins/FTPFileYM/curl/lib/strequal.c b/plugins/FTPFileYM/curl/lib/strequal.c new file mode 100644 index 0000000000..f69c5bf9e7 --- /dev/null +++ b/plugins/FTPFileYM/curl/lib/strequal.c @@ -0,0 +1,124 @@ +/*************************************************************************** + *                                  _   _ ____  _ + *  Project                     ___| | | |  _ \| | + *                             / __| | | | |_) | | + *                            | (__| |_| |  _ <| |___ + *                             \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2011, 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. + * + ***************************************************************************/ + +#include "curl_setup.h" + +#ifdef HAVE_STRINGS_H +#include <strings.h> +#endif + +#include "strequal.h" + +/* + * @unittest: 1301 + */ +int curl_strequal(const char *first, const char *second) +{ +#if defined(HAVE_STRCASECMP) +  return !(strcasecmp)(first, second); +#elif defined(HAVE_STRCMPI) +  return !(strcmpi)(first, second); +#elif defined(HAVE_STRICMP) +  return !(stricmp)(first, second); +#else +  while(*first && *second) { +    if(toupper(*first) != toupper(*second)) { +      break; +    } +    first++; +    second++; +  } +  return toupper(*first) == toupper(*second); +#endif +} + +/* + * @unittest: 1301 + */ +int curl_strnequal(const char *first, const char *second, size_t max) +{ +#if defined(HAVE_STRNCASECMP) +  return !strncasecmp(first, second, max); +#elif defined(HAVE_STRNCMPI) +  return !strncmpi(first, second, max); +#elif defined(HAVE_STRNICMP) +  return !strnicmp(first, second, max); +#else +  while(*first && *second && max) { +    if(toupper(*first) != toupper(*second)) { +      break; +    } +    max--; +    first++; +    second++; +  } +  if(0 == max) +    return 1; /* they are equal this far */ + +  return toupper(*first) == toupper(*second); +#endif +} + +#ifndef HAVE_STRLCAT +/* + * The strlcat() function appends the NUL-terminated string src to the end + * of dst. It will append at most size - strlen(dst) - 1 bytes, NUL-termi- + * nating the result. + * + * The strlcpy() and strlcat() functions return the total length of the + * string they tried to create.  For strlcpy() that means the length of src. + * For strlcat() that means the initial length of dst plus the length of + * src. While this may seem somewhat confusing it was done to make trunca- + * tion detection simple. + * + * + */ +size_t Curl_strlcat(char *dst, const char *src, size_t siz) +{ +  char *d = dst; +  const char *s = src; +  size_t n = siz; +  union { +    ssize_t sig; +     size_t uns; +  } dlen; + +  /* Find the end of dst and adjust bytes left but don't go past end */ +  while(n-- != 0 && *d != '\0') +    d++; +  dlen.sig = d - dst; +  n = siz - dlen.uns; + +  if(n == 0) +    return(dlen.uns + strlen(s)); +  while(*s != '\0') { +    if(n != 1) { +      *d++ = *s; +      n--; +    } +    s++; +  } +  *d = '\0'; + +  return(dlen.uns + (s - src));     /* count does not include NUL */ +} +#endif  | 
