diff options
author | Richard Jones <rjones@redhat.com> | 2010-03-18 13:46:26 +0000 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2010-03-18 15:21:04 +0000 |
commit | 27e73269d384814eb5f76468f609f7844cb75b0b (patch) | |
tree | b336ea3b156f67d9676d0707ee5b781919e81003 | |
parent | 676462684e05dd8341dd695762dd99a87d8ec022 (diff) | |
download | libguestfs-27e73269d384814eb5f76468f609f7844cb75b0b.tar.gz libguestfs-27e73269d384814eb5f76468f609f7844cb75b0b.tar.xz libguestfs-27e73269d384814eb5f76468f609f7844cb75b0b.zip |
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.
-rw-r--r-- | daemon/daemon.h | 2 | ||||
-rw-r--r-- | daemon/guestfsd.c | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/daemon/daemon.h b/daemon/daemon.h index bb1ebb3a..777cf332 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 0fc01283..5265ab52 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. */ |