Commit ad7db5e4 authored by Nick Mathewson's avatar Nick Mathewson 🐘
Browse files

Add casei versions of strcmpstart/strcmpend


svn:r3026
parent ee7bef14
Loading
Loading
Loading
Loading
+21 −0
Changes for src/common/util.c: 21 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -289,6 +289,15 @@ int strcmpstart(const char *s1, const char *s2)
  return strncmp(s1, s2, n);
}

/* Compares the first strlen(s2) characters of s1 with s2.  Returns as for
 * strcasecmp.
 */
int strcasecmpstart(const char *s1, const char *s2)
{
  size_t n = strlen(s2);
  return strncasecmp(s1, s2, n);
}

/* Compares the last strlen(s2) characters of s1 with s2.  Returns as for
 * strcmp.
 */
@@ -301,6 +310,18 @@ int strcmpend(const char *s1, const char *s2)
    return strncmp(s1+(n1-n2), s2, n2);
}

/* Compares the last strlen(s2) characters of s1 with s2.  Returns as for
 * strcasecmp.
 */
int strcasecmpend(const char *s1, const char *s2)
{
  size_t n1 = strlen(s1), n2 = strlen(s2);
  if (n2>n1)
    return strcasecmp(s1,s2);
  else
    return strncasecmp(s1+(n1-n2), s2, n2);
}

/** Return a pointer to the first char of s that is not whitespace and
 * not a comment, or to the terminating NUL if no such character exists.
 */
+2 −0
Changes for src/common/util.h: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -56,7 +56,9 @@ char *tor_strndup(const char *s, size_t n);
#define HEX_CHARACTERS "0123456789ABCDEFabcdef"
void tor_strlower(char *s);
int strcmpstart(const char *s1, const char *s2);
int strcasecmpstart(const char *s1, const char *s2);
int strcmpend(const char *s1, const char *s2);
int strcasecmpend(const char *s1, const char *s2);
int tor_strstrip(char *s, const char *strip);
typedef enum {
  ALWAYS_TERMINATE, NEVER_TERMINATE, TERMINATE_IF_EVEN