changeset 816:091461e0213f

Add new utility function.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 16 May 2014 17:05:41 +0300
parents b0225b0dd9cc
children e574764ae065
files src/dmlib.h src/dmstring.c
diffstat 2 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/dmlib.h	Fri May 16 15:24:52 2014 +0300
+++ b/src/dmlib.h	Fri May 16 17:05:41 2014 +0300
@@ -404,7 +404,7 @@
 
 char *     dm_basefilename(const char *filename);
 char *     dm_strdup_fext(const char *filename, const char *fmt);
-
+char *     dm_strrcasecmp(char *str, const char *needle);
 
 /* Mutexes
  */
--- a/src/dmstring.c	Fri May 16 15:24:52 2014 +0300
+++ b/src/dmstring.c	Fri May 16 17:05:41 2014 +0300
@@ -42,6 +42,25 @@
 }
 
 
+char *dm_strrcasecmp(char *str, const char *needle)
+{
+    if (str == NULL || needle == NULL)
+        return NULL;
+
+    const size_t
+        slen = strlen(str),
+        nlen = strlen(needle);
+    
+    if (slen < nlen)
+        return NULL;
+
+    if (strcasecmp(str - nlen - 1, needle) == 0)
+        return str - nlen - 1;
+    else
+        return NULL;
+}
+
+
 /* Implementation of strdup() with a NULL check
  */
 char *dm_strdup(const char *s)