Back to index

tetex-bin  3.0
Defines | Functions
strcasecmp.c File Reference
#include <ctype.h>

Go to the source code of this file.

Defines

#define const

Functions

int strcasecmp (char *s1, const char *s2) const
int strncasecmp (char *s1, const char *s2, unsigned n) const

Define Documentation

#define const

Definition at line 28 of file strcasecmp.c.


Function Documentation

int strcasecmp ( char *  s1,
const char *  s2 
) const

Definition at line 38 of file strcasecmp.c.

{
  register const unsigned char *p1 = (const unsigned char *) s1;
  register const unsigned char *p2 = (const unsigned char *) s2;
  unsigned char c1, c2;

  if (p1 == p2)
    return 0;

  do
    {
      c1 = tolower (*p1++);
      c2 = tolower (*p2++);
      if (c1 == '\0')
       break;
    }
  while (c1 == c2);

  return c1 - c2;
}
int strncasecmp ( char *  s1,
const char *  s2,
unsigned  n 
) const

Definition at line 62 of file strcasecmp.c.

{
  register const unsigned char *p1 = (const unsigned char *) s1;
  register const unsigned char *p2 = (const unsigned char *) s2;
  unsigned char c1, c2;

  if (p1 == p2 || n == 0)
    return 0;

  do
    {
      c1 = tolower (*p1++);
      c2 = tolower (*p2++);
      if (c1 == '\0' || c1 != c2)
       return c1 - c2;
    } while (--n > 0);

  return c1 - c2;
}