POK
/home/jaouen/pok_official/pok/trunk/libpok/libc/string/strcmp.c
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