]> git.proxmox.com Git - grub2.git/commitdiff
2009-01-26 Daniel Mierswa <impulze@impulze.org>
authorproski <proski@localhost>
Mon, 26 Jan 2009 04:22:44 +0000 (04:22 +0000)
committerproski <proski@localhost>
Mon, 26 Jan 2009 04:22:44 +0000 (04:22 +0000)
* kern/misc.c (grub_strcasecmp): New function.
(grub_strcasecmp): Use grub_size_t instead of int for length.
Fix return value.
* include/grub/misc.h: Update function prototypes.

ChangeLog
include/grub/misc.h
kern/misc.c

index edbf9c96dece1182881806c4ef65e818c73a65a9..a88fadf14c6cd019cc4e58c7fa2f10d40c452edb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-26  Daniel Mierswa  <impulze@impulze.org>
+
+       * kern/misc.c (grub_strcasecmp): New function.
+       (grub_strcasecmp): Use grub_size_t instead of int for length.
+       Fix return value.
+       * include/grub/misc.h: Update function prototypes.
+
 2009-01-26  Robert Millan  <rmh@aybabtu.com>
 
        * configure.ac: Fix cross-compilation check.
index e37847ef053b551a9e0baddf5ae0ded940cb0275..c377c20a2590efc252787d41e1315b74c2e665c4 100644 (file)
@@ -45,7 +45,8 @@ void *EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
 int EXPORT_FUNC(grub_memcmp) (const void *s1, const void *s2, grub_size_t n);
 int EXPORT_FUNC(grub_strcmp) (const char *s1, const char *s2);
 int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n);
-int EXPORT_FUNC(grub_strncasecmp) (const char *s1, const char *s2, int c);
+int EXPORT_FUNC(grub_strcasecmp) (const char *s1, const char *s2);
+int EXPORT_FUNC(grub_strncasecmp) (const char *s1, const char *s2, grub_size_t n);
 char *EXPORT_FUNC(grub_strchr) (const char *s, int c);
 char *EXPORT_FUNC(grub_strrchr) (const char *s, int c);
 int EXPORT_FUNC(grub_strword) (const char *s, const char *w);
index da64eb0506aa31ca1c3705b2810d2a93f7e38063..641bd7aef41f0ba5c8d1aeca69f4d359e6dcce57 100644 (file)
@@ -194,7 +194,7 @@ grub_strcmp (const char *s1, const char *s2)
   while (*s1 && *s2)
     {
       if (*s1 != *s2)
-       return (int) *s1 - (int) *s2;
+       break;
       
       s1++;
       s2++;
@@ -212,7 +212,7 @@ grub_strncmp (const char *s1, const char *s2, grub_size_t n)
   while (*s1 && *s2 && --n)
     {
       if (*s1 != *s2)
-       return (int) *s1 - (int) *s2;
+       break;
       
       s1++;
       s2++;
@@ -222,21 +222,36 @@ grub_strncmp (const char *s1, const char *s2, grub_size_t n)
 }
 
 int
-grub_strncasecmp (const char *s1, const char *s2, int c)
+grub_strcasecmp (const char *s1, const char *s2)
 {
-  int p = 1;
+  while (*s1 && *s2)
+    {
+      if (grub_tolower (*s1) != grub_tolower (*s2))
+       break;
+
+      s1++;
+      s2++;
+    }
+
+  return (int) grub_tolower (*s1) - (int) grub_tolower (*s2);
+}
 
-  while (grub_tolower (*s1) && grub_tolower (*s2) && p < c)
+int
+grub_strncasecmp (const char *s1, const char *s2, grub_size_t n)
+{
+  if (n == 0)
+    return 0;
+
+  while (*s1 && *s2 && --n)
     {
       if (grub_tolower (*s1) != grub_tolower (*s2))
-       return (int) grub_tolower (*s1) - (int) grub_tolower (*s2);
+       break;
       
       s1++;
       s2++;
-      p++;
     }
 
-  return (int) *s1 - (int) *s2;
+  return (int) grub_tolower (*s1) - (int) grub_tolower (*s2);
 }
 
 char *