chiark / gitweb /
[PATCH] conditional remove of trailing sysfs whitespace
[elogind.git] / udev.h
diff --git a/udev.h b/udev.h
index 9327e90913a9ca4d0355856528177ed3deca4b6b..32fda379e54e467965bce37735580ab2540c6f92 100644 (file)
--- a/udev.h
+++ b/udev.h
@@ -98,9 +98,9 @@ do { \
 } while (0)
 
 #define foreach_strpart(str, separator, pos, len) \
-       for(pos = 0, len = strcspn(str, separator); \
-           (pos) < strlen(str); \
-           pos = pos + (len) + 1, len = strcspn((str) + pos, separator)) \
+       for(pos = str, len = 0; \
+           (pos) < ((str) + strlen(str)); \
+           pos = pos + len + strspn(pos, separator), len = strcspn(pos, separator)) \
                if (len > 0)
 
 static inline char *get_action(void)