rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=8266f841d3acbc885d4ba111f8bbc2f89f9c2cd4

commit 8266f841d3acbc885d4ba111f8bbc2f89f9c2cd4
Author: Vyacheslav Reutskiy <[email protected]>
Date:   Tue Jul 26 11:06:41 2016 +0300

    string_common: return analogous func to strrstr
    
    Change-Id: Ib68aba489db26694d2689569afd274f78852d51b
---
 src/bin/common/string_common.c | 26 ++++++++++++++++++++++++++
 src/bin/common/string_common.h |  3 +++
 2 files changed, 29 insertions(+)

diff --git a/src/bin/common/string_common.c b/src/bin/common/string_common.c
index 8c6313f..6fe9e2a 100644
--- a/src/bin/common/string_common.c
+++ b/src/bin/common/string_common.c
@@ -71,3 +71,29 @@ string_cat(const char *str1, const char *str2)
 
    return string;
 }
+
+const char *
+string_rstr(const char *str1, const char *str2)
+{
+   unsigned int str2len = 0;
+   unsigned int i = 0, j = 0;
+
+   str2len = strlen(str2) - 1;
+
+   for (i = strlen(str1) - 1; i != 0; i--)
+     {
+        if (str1[i] == str2[str2len])
+          {
+             if (str2len == 0)
+               return &str1[i];
+             for (j = 1; (j < strlen(str2)) & (i > j); j++)
+               {
+                  if (str1[i - j] != str2[str2len - j])
+                    break;
+                  if (j + 1 == strlen(str2))
+                    return &str1[i - j];
+               }
+          }
+     }
+   return NULL;
+}
diff --git a/src/bin/common/string_common.h b/src/bin/common/string_common.h
index bbe2ba0..a358c8f 100644
--- a/src/bin/common/string_common.h
+++ b/src/bin/common/string_common.h
@@ -62,4 +62,7 @@ string_char_replace(char *str, char src, char rep);
 char *
 string_cat(const char *str1, const char *str2);
 
+const char *
+string_rstr(const char *str1, const char *str2);
+
 #endif /* STRING_MACRO_H */

-- 


Reply via email to