Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * Copyright (c) 2004, 2008 IBM Corporation 3 : : * All rights reserved. 4 : : * This program and the accompanying materials 5 : : * are made available under the terms of the BSD License 6 : : * which accompanies this distribution, and is available at 7 : : * http://www.opensource.org/licenses/bsd-license.php 8 : : * 9 : : * Contributors: 10 : : * IBM Corporation - initial implementation 11 : : *****************************************************************************/ 12 : : 13 : : #include <ctype.h> 14 : : 15 : : int strncasecmp(const char *s1, const char *s2, size_t n); 16 : 40 : int strncasecmp(const char *s1, const char *s2, size_t n) 17 : : { 18 : 40 : if (n < 1) 19 : 5 : return 0; 20 : : 21 : 220 : while (*s1 != 0 && *s2 != 0 && --n > 0) { 22 : 195 : if (toupper(*s1) != toupper(*s2)) 23 : 10 : break; 24 : 185 : ++s1; 25 : 185 : ++s2; 26 : : } 27 : : 28 : 35 : return toupper(*s1) - toupper(*s2); 29 : : } 30 : :