Cleanup in elf.c with .bss section clean; adm command mounts cdrom instead of floppy...
[ZeXOS.git] / kernel / lib / string / strcmp.c
bloba8a56d82042a75895c65121d4b8fe438175ff884
1 /*
2 * ZeX/OS
3 * Copyright (C) 2007 Tomas 'ZeXx86' Jedrzejek (zexx86@zexos.org)
4 * Copyright (C) 2010 Tomas 'ZeXx86' Jedrzejek (zexx86@zexos.org)
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include <string.h>
23 /**
24 * strcmp - Compare two strings
25 * @cs: One string
26 * @ct: Another string
28 int strcmp (const char *cs, const char *ct)
30 signed char res;
32 for (;;) {
33 if ((res = *cs - *ct++) || !*cs ++)
34 break;
37 return res;
40 /**
41 * cstrcmp - Compare two words
42 * @cs: One string
43 * @ct: Another string
45 int cstrcmp (const char *cs, const char *ct)
47 int i;
49 for (i = 0; (unsigned) i < strlen (cs); i ++) {
50 if (cs[i] != ct[i])
51 return -1;
54 if ((ct[i] == ' ' || ct[i] == '\0') || ct[i] == '\n')
55 return 0;
57 return -2;
60 /**
61 * strncmp - Compare two length-limited strings
62 * @cs: One string
63 * @ct: Another string
64 * @count: The maximum number of bytes to compare
66 int strncmp (const char *cs, const char *ct, size_t count)
68 signed char res = 0;
70 while (count) {
71 if ((res = *cs - *ct ++) || !*cs ++)
72 break;
74 count --;
77 return res;