Am 01/21/09 18:30, Pavel Roskin schrieb: > The patch looks good to me. I would split changes to commands/search.c > into a separate commit. > > Please provide ChangeLog entries for the patches. > I will comply. Thanks for your quick response.
-- Mierswa, Daniel If you still don't like it, that's ok: that's why I'm boss. I simply know better than you do. --- Linus Torvalds, comp.os.linux.advocacy, 1996/07/22
2009-01-23 Daniel Mierswa <impu...@impulze.org> * kern/misc.c: add strcasecmp for consistency reasons, use grub_size_t instead of int for strfuncs, fix strncasecmp return values, use the same algorithm in str*casecmp and str*cmp * include/grub/misc.h: add str{,n}casecmp, use grub_size_t for strncasecmp 2009-01-23 Daniel Mierswa <impu...@impulze.org> * commands/search.c: caseless UUID comparing
Index: kern/misc.c =================================================================== --- kern/misc.c (revision 1952) +++ kern/misc.c (working copy) @@ -194,7 +194,7 @@ while (*s1 && *s2) { if (*s1 != *s2) - return (int) *s1 - (int) *s2; + break; s1++; s2++; @@ -212,7 +212,7 @@ while (*s1 && *s2 && --n) { if (*s1 != *s2) - return (int) *s1 - (int) *s2; + break; s1++; s2++; @@ -222,21 +222,36 @@ } 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++; + } - while (grub_tolower (*s1) && grub_tolower (*s2) && p < c) + return (int) grub_tolower (*s1) - (int) grub_tolower (*s2); +} + +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 * Index: include/grub/misc.h =================================================================== --- include/grub/misc.h (revision 1952) +++ include/grub/misc.h (working copy) @@ -45,7 +45,8 @@ 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: commands/search.c =================================================================== --- commands/search.c (revision 1952) +++ commands/search.c (working copy) @@ -115,7 +115,7 @@ (fs->uuid) (dev, &uuid); if (grub_errno == GRUB_ERR_NONE && uuid) { - if (grub_strcmp (uuid, key) == 0) + if (grub_strcasecmp (uuid, key) == 0) { /* Found! */ count++;
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel