fix strboolcmp() (return false anyway if str="")
This commit is contained in:
parent
02086d76a7
commit
d613bcc47a
|
|
@ -79,23 +79,27 @@ int my_strncasecmp(const char *s1, const char *s2, size_t n)
|
||||||
return tolower(*s1) - tolower(*s2);
|
return tolower(*s1) - tolower(*s2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* same as case insensitive strcmp(), but allow '1, true, on, yes' for true value
|
/* same as case insensitive strcmp(), but allow '1, true, on, yes' for true value
|
||||||
* both in str and boolean */
|
* both in str and boolean */
|
||||||
int strboolcmp(const char *str, const char *boolean)
|
int strboolcmp(const char *str, const char *boolean)
|
||||||
{
|
{
|
||||||
int s = 0, b = 0;
|
int retval, s = 0, b = 0;
|
||||||
if(!my_strcasecmp(boolean, "true") ||
|
if(!my_strcasecmp(boolean, "true")) b = 1;
|
||||||
!my_strcasecmp(boolean, "1") ||
|
else if(!my_strcasecmp(boolean, "false")) b = 0;
|
||||||
!my_strcasecmp(boolean, "on") ||
|
else b = -1;
|
||||||
!my_strcasecmp(boolean, "yes")) b = 1;
|
|
||||||
|
|
||||||
if(!my_strcasecmp(str, "true") ||
|
if(!my_strcasecmp(str, "true") ||
|
||||||
!my_strcasecmp(str, "1") ||
|
!my_strcasecmp(str, "1") ||
|
||||||
!my_strcasecmp(str, "on") ||
|
!my_strcasecmp(str, "on") ||
|
||||||
!my_strcasecmp(str, "yes")) s = 1;
|
!my_strcasecmp(str, "yes")) s = 1;
|
||||||
|
else if(!my_strcasecmp(str, "false") ||
|
||||||
return (s != b);
|
!my_strcasecmp(str, "0") ||
|
||||||
|
!my_strcasecmp(str, "off") ||
|
||||||
|
!my_strcasecmp(str, "no")) s = 0;
|
||||||
|
else s = -1;
|
||||||
|
if(s == -1 || b == -1) retval = strcmp(str, boolean);
|
||||||
|
else retval = (s != b);
|
||||||
|
dbg(0, "strboolcmp(): str=%s boolean=%s retval=%d\n", str, boolean, retval);
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return lenght of line and skip */
|
/* return lenght of line and skip */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue