File bsc#1117934-0000-Low-libcrmcommon-add-new-internal-function-for-strin.patch of Package pacemaker.14737
From e3776a6a3cac118fdbc1574232cd138a8e971af2 Mon Sep 17 00:00:00 2001
From: Ken Gaillot <kgaillot@redhat.com>
Date: Fri, 24 Jun 2016 14:29:32 -0500
Subject: [PATCH] Low: libcrmcommon: add new internal function for "string ends
with"
---
include/crm/common/internal.h | 1 +
lib/common/strings.c | 22 ++++++++++++++++++++++
2 files changed, 23 insertions(+)
Index: pacemaker/include/crm_internal.h
===================================================================
--- pacemaker.orig/include/crm_internal.h
+++ pacemaker/include/crm_internal.h
@@ -203,6 +203,7 @@ crm_set_bit(const char *function, const
void g_hash_destroy_str(gpointer data);
long long crm_int_helper(const char *text, char **end_text);
+gboolean crm_ends_with(const char *s, const char *match);
char *crm_concat(const char *prefix, const char *suffix, char join);
char *generate_hash_key(const char *crm_msg_reference, const char *sys);
Index: pacemaker/lib/common/utils.c
===================================================================
--- pacemaker.orig/lib/common/utils.c
+++ pacemaker/lib/common/utils.c
@@ -499,6 +499,28 @@ crm_version_helper(const char *text, cha
return atoi_result;
}
+/*!
+ * \internal
+ * \brief Check whether a string ends with a certain sequence
+ *
+ * \param[in] s String to check
+ * \param[in] match Sequence to match against end of s
+ *
+ * \return TRUE if s ends with match, FALSE otherwise
+ */
+gboolean
+crm_ends_with(const char *s, const char *match)
+{
+ if ((s == NULL) || (match == NULL)) {
+ return FALSE;
+ } else {
+ size_t slen = strlen(s);
+ size_t mlen = strlen(match);
+
+ return ((slen >= mlen) && !strcmp(s + slen - mlen, match));
+ }
+}
+
/*
* version1 < version2 : -1
* version1 = version2 : 0