POK
|
00001 /* 00002 * POK header 00003 * 00004 * The following file is a part of the POK project. Any modification should 00005 * made according to the POK licence. You CANNOT use this file or a part of 00006 * this file is this part of a file for your own project 00007 * 00008 * For more information on the POK licence, please see our LICENCE FILE 00009 * 00010 * Please follow the coding guidelines described in doc/CODING_GUIDELINES 00011 * 00012 * Copyright (c) 2007-2009 POK team 00013 * 00014 * Created by julien on Thu Jan 15 23:34:13 2009 00015 */ 00016 00017 #include <core/dependencies.h> 00018 #include <libc/string.h> 00019 00020 #ifdef POK_CONFIG_NEEDS_FUNC_STRCMP 00021 00022 __attribute__ ((weak)) 00023 int strcmp(const char *s1, const char *s2) 00024 { 00025 unsigned int i; 00026 for (i = 0; ; i++) 00027 { 00028 if (s1[i] == '\0' && s2[i] == '\0') 00029 return 0; 00030 if (s1[i] < s2[i]) 00031 return -1; 00032 if (s1[i] > s2[i]) 00033 return 1; 00034 } 00035 } 00036 00037 #endif 00038 00039 00040 #ifdef POK_CONFIG_NEEDS_FUNC_STRNCMP 00041 00042 __attribute__ ((weak)) 00043 int strncmp(const char *s1, const char *s2, size_t size) 00044 { 00045 unsigned int i; 00046 for (i = 0; i < size; i++) 00047 { 00048 if (s1[i] == '\0' && s2[i] == '\0') 00049 return 0; 00050 if (s1[i] < s2[i]) 00051 return -1; 00052 if (s1[i] > s2[i]) 00053 return 1; 00054 } 00055 return 0; 00056 } 00057 00058 #endif 00059 00060