LCOV - code coverage report
Current view: top level - lib - c-strcasecmp.c (source / functions) Hit Total Coverage
Test: coreutils.info Lines: 12 13 92.3 %
Date: 2018-01-30 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /* -*- buffer-read-only: t -*- vi: set ro: */
       2             : /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
       3             : #line 1
       4             : /* c-strcasecmp.c -- case insensitive string comparator in C locale
       5             :    Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc.
       6             : 
       7             :    This program is free software; you can redistribute it and/or modify
       8             :    it under the terms of the GNU General Public License as published by
       9             :    the Free Software Foundation; either version 3, or (at your option)
      10             :    any later version.
      11             : 
      12             :    This program is distributed in the hope that it will be useful,
      13             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      14             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15             :    GNU General Public License for more details.
      16             : 
      17             :    You should have received a copy of the GNU General Public License
      18             :    along with this program; if not, write to the Free Software Foundation,
      19             :    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
      20             : 
      21             : #include <config.h>
      22             : 
      23             : /* Specification.  */
      24             : #include "c-strcase.h"
      25             : 
      26             : #include <limits.h>
      27             : 
      28         894 : #include "c-ctype.h"
      29             : 
      30         894 : int
      31         894 : c_strcasecmp (const char *s1, const char *s2)
      32             : {
      33             :   register const unsigned char *p1 = (const unsigned char *) s1;
      34         894 :   register const unsigned char *p2 = (const unsigned char *) s2;
      35           0 :   unsigned char c1, c2;
      36             : 
      37             :   if (p1 == p2)
      38             :     return 0;
      39        1508 : 
      40        1508 :   do
      41             :     {
      42        1508 :       c1 = c_tolower (*p1);
      43         118 :       c2 = c_tolower (*p2);
      44             : 
      45        1390 :       if (c1 == '\0')
      46        1390 :         break;
      47             : 
      48        1390 :       ++p1;
      49             :       ++p2;
      50             :     }
      51         894 :   while (c1 == c2);
      52             : 
      53             :   if (UCHAR_MAX <= INT_MAX)
      54             :     return c1 - c2;
      55             :   else
      56             :     /* On machines where 'char' and 'int' are types of the same size, the
      57             :        difference of two 'unsigned char' values - including the sign bit -
      58             :        doesn't fit in an 'int'.  */
      59             :     return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
      60             : }

Generated by: LCOV version 1.10