summaryrefslogtreecommitdiffstats
path: root/source/lib/util_str.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2000-08-29 14:33:39 +0000
committerGerald Carter <jerry@samba.org>2000-08-29 14:33:39 +0000
commitdfdca21bd90b9c83f195d580ec9d774f1be8f9cb (patch)
tree40e58a7a8e5eb1ace0c3265edda331241df0a4d6 /source/lib/util_str.c
parente89117f418c9c1a1b4f2e9d708030369d801a01c (diff)
downloadsamba-dfdca21bd90b9c83f195d580ec9d774f1be8f9cb.tar.gz
samba-dfdca21bd90b9c83f195d580ec9d774f1be8f9cb.tar.xz
samba-dfdca21bd90b9c83f195d580ec9d774f1be8f9cb.zip
needed to use strwicmp() in smbclient code, so I moved it to util_str.c
and made it non-static --jerry
Diffstat (limited to 'source/lib/util_str.c')
-rw-r--r--source/lib/util_str.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/lib/util_str.c b/source/lib/util_str.c
index 41c012ba34e..822267f5d5f 100644
--- a/source/lib/util_str.c
+++ b/source/lib/util_str.c
@@ -302,6 +302,36 @@ BOOL strcsequal(const char *s1,const char *s2)
return(strcmp(s1,s2)==0);
}
+/***************************************************************************
+Do a case-insensitive, whitespace-ignoring string compare.
+***************************************************************************/
+int strwicmp(char *psz1, char *psz2)
+{
+ /* if BOTH strings are NULL, return TRUE, if ONE is NULL return */
+ /* appropriate value. */
+ if (psz1 == psz2)
+ return (0);
+ else if (psz1 == NULL)
+ return (-1);
+ else if (psz2 == NULL)
+ return (1);
+
+ /* sync the strings on first non-whitespace */
+ while (1)
+ {
+ while (isspace(*psz1))
+ psz1++;
+ while (isspace(*psz2))
+ psz2++;
+ if (toupper(*psz1) != toupper(*psz2) || *psz1 == '\0'
+ || *psz2 == '\0')
+ break;
+ psz1++;
+ psz2++;
+ }
+ return (*psz1 - *psz2);
+}
+
/*******************************************************************
convert a string to lower case