chiark / gitweb /
[PATCH] deleted current extras/multipath directory
[elogind.git] / udev.h
diff --git a/udev.h b/udev.h
index 3b676acf40d99ab1a7a137dbbe49804b80f6ecde..8752f595d6699e7862d8a9b1b80e52dc951b5b8b 100644 (file)
--- a/udev.h
+++ b/udev.h
@@ -73,18 +73,36 @@ do { \
        strncat(to, from, sizeof(to) - strlen(to)-1); \
 } while (0)
 
-#define strnfieldcpy(to, from, maxsize) \
+#define strfieldcpymax(to, from, maxsize) \
 do { \
        to[maxsize-1] = '\0'; \
        strncpy(to, from, maxsize-1); \
 } while (0)
 
-#define strnfieldcat(to, from, maxsize) \
+#define strfieldcatmax(to, from, maxsize) \
 do { \
        to[maxsize-1] = '\0'; \
        strncat(to, from, maxsize - strlen(to)-1); \
 } while (0)
 
+#define strintcat(to, i) \
+do { \
+       to[sizeof(to)-1] = '\0'; \
+       snprintf((to) + strlen(to), sizeof(to) - strlen(to)-1, "%u", i); \
+} while (0)
+
+#define strintcatmax(to, i, maxsize) \
+do { \
+       to[maxsize-1] = '\0'; \
+       snprintf((to) + strlen(to), maxsize - strlen(to)-1, "%u", i); \
+} while (0)
+
+#define foreach_strpart(str, separator, pos, len) \
+       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)
 {
        char *action;