chiark / gitweb /
util: change endswith() to return a pointer to the suffix
authorLennart Poettering <lennart@poettering.net>
Fri, 19 Oct 2012 02:52:51 +0000 (04:52 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 19 Oct 2012 02:53:46 +0000 (04:53 +0200)
src/shared/util.c
src/shared/util.h

index ef30cb2..42a2e27 100644 (file)
@@ -195,7 +195,7 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) {
         return tv;
 }
 
-bool endswith(const char *s, const char *postfix) {
+char* endswith(const char *s, const char *postfix) {
         size_t sl, pl;
 
         assert(s);
@@ -205,12 +205,15 @@ bool endswith(const char *s, const char *postfix) {
         pl = strlen(postfix);
 
         if (pl == 0)
-                return true;
+                return (char*) s + sl;
 
         if (sl < pl)
-                return false;
+                return NULL;
+
+        if (memcmp(s + sl - pl, postfix, pl) != 0)
+                return NULL;
 
-        return memcmp(s + sl - pl, postfix, pl) == 0;
+        return (char*) s + sl - pl;
 }
 
 bool startswith(const char *s, const char *prefix) {
index affb669..77d2875 100644 (file)
@@ -141,7 +141,7 @@ static inline bool isempty(const char *p) {
         return !p || !p[0];
 }
 
-bool endswith(const char *s, const char *postfix);
+char *endswith(const char *s, const char *postfix);
 bool startswith(const char *s, const char *prefix);
 bool startswith_no_case(const char *s, const char *prefix);