chiark / gitweb /
hwdb: fix dangling 'else' ambuguity
[elogind.git] / src / systemd / sd-hwdb.h
index f41555df7efa8d05e6f4973f661be9251d24a740..3c44b981d68030700161c74ba13748d59bae25fa 100644 (file)
@@ -39,8 +39,9 @@ int sd_hwdb_get(sd_hwdb *hwdb, const char *modalias, const char *key, const char
 int sd_hwdb_seek(sd_hwdb *hwdb, const char *modalias);
 int sd_hwdb_enumerate(sd_hwdb *hwdb, const char **key, const char **value);
 
 int sd_hwdb_seek(sd_hwdb *hwdb, const char *modalias);
 int sd_hwdb_enumerate(sd_hwdb *hwdb, const char **key, const char **value);
 
+/* the inverse condition avoids ambiguity of danling 'else' after the macro */
 #define SD_HWDB_FOREACH_PROPERTY(hwdb, modalias, key, value)            \
 #define SD_HWDB_FOREACH_PROPERTY(hwdb, modalias, key, value)            \
-        if (sd_hwdb_seek(hwdb, modalias) >= 0)                          \
-                while (sd_hwdb_enumerate(hwdb, &(key), &(value)) > 0)
+        if (sd_hwdb_seek(hwdb, modalias) < 0) { }                       \
+        else while (sd_hwdb_enumerate(hwdb, &(key), &(value)) > 0)
 
 #endif
 
 #endif