From 27e73269d384814eb5f76468f609f7844cb75b0b Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Thu, 18 Mar 2010 13:46:26 +0000 Subject: [PATCH] daemon: Add a trim utility function. This function trims the whitespace from around a string. It does this in-place, so it can be called for malloc'd strings. --- daemon/daemon.h | 2 ++ daemon/guestfsd.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/daemon/daemon.h b/daemon/daemon.h index bb1ebb3..777cf33 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -66,6 +66,8 @@ extern int commandrvf (char **stdoutput, char **stderror, int flags, extern char **split_lines (char *str); +extern void trim (char *str); + extern int device_name_translation (char *device, const char *func); extern void udev_settle (void); diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index 0fc0128..5265ab5 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -928,6 +928,28 @@ split_lines (char *str) return lines; } +/* Skip leading and trailing whitespace, updating the original string + * in-place. + */ +void +trim (char *str) +{ + size_t len = strlen (str); + + while (len > 0 && c_isspace (str[len-1])) { + str[len-1] = '\0'; + len--; + } + + const char *p = str; + while (*p && c_isspace (*p)) { + p++; + len--; + } + + memmove (str, p, len+1); +} + /* printf helper function so we can use %Q ("quoted") and %R to print * shell-quoted strings. See HACKING file for more details. */ -- 1.8.3.1