~linaro-toolchain-dev/cortex-strings/trunk

70 by Michael Hope
Added the C only routines from GLIBC 2.16+20120607~git24a6dbe
1
/* Copyright (C) 1991, 1996, 1997, 2003 Free Software Foundation, Inc.
2
   This file is part of the GNU C Library.
3
4
   The GNU C Library is free software; you can redistribute it and/or
5
   modify it under the terms of the GNU Lesser General Public
6
   License as published by the Free Software Foundation; either
7
   version 2.1 of the License, or (at your option) any later version.
8
9
   The GNU C Library is distributed in the hope that it will be useful,
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
   Lesser General Public License for more details.
13
14
   You should have received a copy of the GNU Lesser General Public
15
   License along with the GNU C Library; if not, see
16
   <http://www.gnu.org/licenses/>.  */
17
18
#include <string.h>
19
#include "memcopy.h"
20
21
#undef strcmp
22
23
/* Compare S1 and S2, returning less than, equal to or
24
   greater than zero if S1 is lexicographically less than,
25
   equal to or greater than S2.  */
26
int
27
strcmp (p1, p2)
28
     const char *p1;
29
     const char *p2;
30
{
31
  register const unsigned char *s1 = (const unsigned char *) p1;
32
  register const unsigned char *s2 = (const unsigned char *) p2;
33
  unsigned char c1, c2;
34
35
  do
36
    {
37
      c1 = (unsigned char) *s1++;
38
      c2 = (unsigned char) *s2++;
39
      if (c1 == '\0')
40
	return c1 - c2;
41
    }
42
  while (c1 == c2);
43
44
  return c1 - c2;
45
}