chiark / gitweb /
[PATCH] fix udev.spec to find udevinfo now that it has moved to /usr/bin
[elogind.git] / udev.h
diff --git a/udev.h b/udev.h
index fa56c366911a511e15fed9b2b5bb8e05633ad994..5737c84c9d16fec99f1e337426b093522c580278 100644 (file)
--- a/udev.h
+++ b/udev.h
@@ -85,12 +85,24 @@ do { \
        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 strnintcat(to, i, maxsize) \
+do { \
+       to[maxsize-1] = '\0'; \
+       snprintf((to) + strlen(to), maxsize - strlen(to)-1, "%u", i); \
+} while (0)
+
 static inline char *get_action(void)
 {
        char *action;
 
        action = getenv("ACTION");
-       if (strlen(action) > ACTION_SIZE)
+       if (action != NULL && strlen(action) > ACTION_SIZE)
                action[ACTION_SIZE-1] = '\0';
 
        return action;
@@ -101,7 +113,7 @@ static inline char *get_devpath(void)
        char *devpath;
 
        devpath = getenv("DEVPATH");
-       if (strlen(devpath) > DEVPATH_SIZE)
+       if (devpath != NULL && strlen(devpath) > DEVPATH_SIZE)
                devpath[DEVPATH_SIZE-1] = '\0';
 
        return devpath;
@@ -118,7 +130,7 @@ static inline char *get_seqnum(void)
 
 static inline char *get_subsystem(char *subsystem)
 {
-       if (strlen(subsystem) > SUBSYSTEM_SIZE)
+       if (subsystem != NULL && strlen(subsystem) > SUBSYSTEM_SIZE)
                subsystem[SUBSYSTEM_SIZE-1] = '\0';
 
        return subsystem;