Changes to str*cmp functions. Fixes a couple more corner cases.
Signed-off-by: Liu Tao <liutao1980@gmail.com> Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5785 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
		@@ -89,14 +89,15 @@ size_t strlen(const char *str)
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
int strcasecmp(const char *s1, const char *s2)
 | 
					int strcasecmp(const char *s1, const char *s2)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i, res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; s1[i] != '\0'; i++) {
 | 
						for (i = 0; 1; i++) {
 | 
				
			||||||
		if (tolower(s1[i]) != tolower(s2[i]))
 | 
							res = tolower(s1[i]) - tolower(s2[i]);
 | 
				
			||||||
			return s1[i] - s2[i];
 | 
							if (res || (s1[i] == '\0'))
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return res;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -109,14 +110,16 @@ int strcasecmp(const char *s1, const char *s2)
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
int strncasecmp(const char *s1, const char *s2, size_t maxlen)
 | 
					int strncasecmp(const char *s1, const char *s2, size_t maxlen)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i, res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						res = 0;
 | 
				
			||||||
	for (i = 0; i < maxlen; i++) {
 | 
						for (i = 0; i < maxlen; i++) {
 | 
				
			||||||
		if (tolower(s1[i]) != tolower(s2[i]))
 | 
							res = tolower(s1[i]) - tolower(s2[i]);
 | 
				
			||||||
			return s1[i] - s2[i];
 | 
							if (res || (s1[i] == '\0'))
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return s1[i] - s2[i];
 | 
						return res;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -130,14 +133,15 @@ int strncasecmp(const char *s1, const char *s2, size_t maxlen)
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
int strcmp(const char *s1, const char *s2)
 | 
					int strcmp(const char *s1, const char *s2)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i, res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; s1[i] != '\0'; i++) {
 | 
						for (i = 0; 1; i++) {
 | 
				
			||||||
		if (s1[i] != s2[i])
 | 
							res = s1[i] - s2[i];
 | 
				
			||||||
			return s1[i] - s2[i];
 | 
							if (res || (s1[i] == '\0'))
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return s1[i] - s2[i];
 | 
						return res;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -150,14 +154,16 @@ int strcmp(const char *s1, const char *s2)
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
int strncmp(const char *s1, const char *s2, size_t maxlen)
 | 
					int strncmp(const char *s1, const char *s2, size_t maxlen)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i, res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						res = 0;
 | 
				
			||||||
	for (i = 0; i < maxlen; i++) {
 | 
						for (i = 0; i < maxlen; i++) {
 | 
				
			||||||
		if (s1[i] != s2[i])
 | 
							res = s1[i] - s2[i];
 | 
				
			||||||
			return s1[i] - s2[i];
 | 
							if (res || (s1[i] == '\0'))
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return res;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user