added functions to case-insensitively compare strings that might be NULL
authorHolger Schemel <info@artsoft.org>
Wed, 17 Feb 2021 11:49:10 +0000 (12:49 +0100)
committerHolger Schemel <info@artsoft.org>
Wed, 17 Feb 2021 11:49:10 +0000 (12:49 +0100)
src/libgame/misc.c
src/libgame/misc.h

index 569526af608cf081e8dd976e5e8d581f91567d8e..7a3afc688ae3636bec5705994f0846933987d6a8 100644 (file)
@@ -1178,6 +1178,22 @@ boolean strEqualN(char *s1, char *s2, int n)
          strncmp(s1, s2, n) == 0);
 }
 
+boolean strEqualCase(char *s1, char *s2)
+{
+  return (s1 == NULL && s2 == NULL ? TRUE  :
+         s1 == NULL && s2 != NULL ? FALSE :
+         s1 != NULL && s2 == NULL ? FALSE :
+         strcasecmp(s1, s2) == 0);
+}
+
+boolean strEqualCaseN(char *s1, char *s2, int n)
+{
+  return (s1 == NULL && s2 == NULL ? TRUE  :
+         s1 == NULL && s2 != NULL ? FALSE :
+         s1 != NULL && s2 == NULL ? FALSE :
+         strncasecmp(s1, s2, n) == 0);
+}
+
 boolean strPrefix(char *s, char *prefix)
 {
   return (s == NULL && prefix == NULL ? TRUE  :
index bb7753d77c5763319402ea0b40adce0584fb0534..66b310e7f819846ced4fe587114662faf9c4369e 100644 (file)
@@ -171,6 +171,8 @@ char *getStringToLower(const char *);
 void setString(char **, char *);
 boolean strEqual(char *, char *);
 boolean strEqualN(char *, char *, int);
+boolean strEqualCase(char *, char *);
+boolean strEqualCaseN(char *, char *, int);
 boolean strPrefix(char *, char *);
 boolean strSuffix(char *, char *);
 boolean strPrefixLower(char *, char *);