source: trunk/libs/newlib/src/newlib/libc/string/strncasecmp.c @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.2 KB
Line 
1/*
2FUNCTION
3        <<strncasecmp>>---case-insensitive character string compare
4       
5INDEX
6        strncasecmp
7
8SYNOPSIS
9        #include <strings.h>
10        int strncasecmp(const char *<[a]>, const char * <[b]>, size_t <[length]>);
11
12DESCRIPTION
13        <<strncasecmp>> compares up to <[length]> characters
14        from the string at <[a]> to the string at <[b]> in a
15        case-insensitive manner.
16
17RETURNS
18
19        If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after
20        both are converted to lowercase), <<strncasecmp>> returns a
21        number greater than zero.  If the two strings are equivalent,
22        <<strncasecmp>> returns zero.  If <<*<[a]>>> sorts
23        lexicographically before <<*<[b]>>>, <<strncasecmp>> returns a
24        number less than zero.
25
26PORTABILITY
27<<strncasecmp>> is in the Berkeley Software Distribution.
28
29<<strncasecmp>> requires no supporting OS subroutines. It uses
30tolower() from elsewhere in this library.
31
32QUICKREF
33        strncasecmp
34*/
35
36#include <strings.h>
37#include <ctype.h>
38
39int 
40strncasecmp (const char *s1,
41        const char *s2,
42        size_t n)
43{
44  int d = 0;
45  for ( ; n != 0; n--)
46    {
47      const int c1 = tolower(*s1++);
48      const int c2 = tolower(*s2++);
49      if (((d = c1 - c2) != 0) || (c2 == '\0'))
50        break;
51    }
52  return d;
53}
Note: See TracBrowser for help on using the repository browser.