return p;
}
+
+/* Removes whitespace from the right-hand side of a string (trailing
+ * whitespace).
+ *
+ * Returns size of the new string (without \0).
+ */
+static inline size_t rtrim_whitespace(unsigned char *str)
+{
+ size_t i = strlen((char *) str);
+
+ while (i--) {
+ if (!isspace(str[i]))
+ break;
+ }
+ str[++i] = '\0';
+ return i;
+}
+
+/* Removes whitespace from the left-hand side of a string.
+ *
+ * Returns size of the new string (without \0).
+ */
+static inline size_t ltrim_whitespace(unsigned char *str)
+{
+ size_t len;
+ unsigned char *p;
+
+ for (p = str; p && isspace(*p); p++);
+
+ len = strlen((char *) p);
+
+ if (len && p > str)
+ memmove(str, p, len + 1);
+
+ return len;
+}
+
#endif
#include "blkidP.h"
#include "all-io.h"
#include "sysfs.h"
+#include "strutils.h"
/* chains */
extern const struct blkid_chaindrv superblocks_drv;
*/
size_t blkid_rtrim_whitespace(unsigned char *str)
{
- size_t i = strlen((char *) str);
-
- while (i--) {
- if (!isspace(str[i]))
- break;
- }
- str[++i] = '\0';
- return i;
+ return rtrim_whitespace(str);
}
/* Removes whitespace from the left-hand side of a string.
*/
size_t blkid_ltrim_whitespace(unsigned char *str)
{
- size_t len;
- unsigned char *p;
-
- for (p = str; p && isspace(*p); p++);
-
- len = strlen((char *) p);
-
- if (len && p > str)
- memmove(str, p, len + 1);
-
- return len;
+ return ltrim_whitespace(str);
}
+
/*
* Some mkfs-like utils wipe some parts (usually begin) of the device.
* For example LVM (pvcreate) or mkswap(8). This information could be used