daemon: Add a trim utility function.
authorRichard Jones <rjones@redhat.com>
Thu, 18 Mar 2010 13:46:26 +0000 (13:46 +0000)
committerRichard Jones <rjones@redhat.com>
Thu, 18 Mar 2010 15:21:04 +0000 (15:21 +0000)
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
daemon/guestfsd.c

index bb1ebb3..777cf33 100644 (file)
@@ -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);
index 0fc0128..5265ab5 100644 (file)
@@ -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.
  */