sysinfo: add virSkipSpacesBackwards()
* Add virSkipSpacesBackwards() to src/util/util.[ch]
Signed-off-by: Minoru Usui <usui(a)mxm.nes.nec.co.jp>
---
src/util/util.c | 25 +++++++++++++++++++++++++
src/util/util.h | 1 +
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/src/util/util.c b/src/util/util.c
index 463d2b8..1cf4de8 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -1550,6 +1550,31 @@ virSkipSpaces(const char **str)
}
/**
+ * virSkipSpacesBackwards:
+ * @str : pointer to the target strings
+ * @endp: pointer to the end of @str
+ *
+ * Skip potential blanks backwards.
+ */
+void
+virSkipSpacesBackwards(const char *str, char **endp)
+{
+ char *cur;
+
+ if (!endp || !*endp)
+ return;
+
+ cur = *endp - 1;
+ while (cur >= str) {
+ if (!c_isspace(*cur))
+ break;
+ cur--;
+ }
+
+ *endp = (cur >= str) ? cur + 1 : NULL;
+}
+
+/**
* virParseNumber:
* @str: pointer to the char pointer used
*
diff --git a/src/util/util.h b/src/util/util.h
index 0c43f7a..ae74c30 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -167,6 +167,7 @@ int virHexToBin(unsigned char c);
int virMacAddrCompare (const char *mac1, const char *mac2);
void virSkipSpaces(const char **str);
+void virSkipSpacesBackwards(const char *str, char **endp);
int virParseNumber(const char **str);
int virParseVersionString(const char *str, unsigned long *version);
int virAsprintf(char **strp, const char *fmt, ...)
--
1.7.1