Add underscores() helper to replace - with _
diff --git a/libkmod/libkmod-util.c b/libkmod/libkmod-util.c
index a1f5fa1..1e58b99 100644
--- a/libkmod/libkmod-util.c
+++ b/libkmod/libkmod-util.c
@@ -83,3 +83,35 @@
 		}
 	}
 }
+
+/*
+ * Replace dashes with underscores.
+ * Dashes inside character range patterns (e.g. [0-9]) are left unchanged.
+ */
+char *underscores(struct kmod_ctx *ctx, char *s)
+{
+	unsigned int i;
+
+	if (!s)
+		return NULL;
+
+	for (i = 0; s[i]; i++) {
+		switch (s[i]) {
+		case '-':
+			s[i] = '_';
+			break;
+
+		case ']':
+			INFO(ctx, "Unmatched bracket in %s\n", s);
+			break;
+
+		case '[':
+			i += strcspn(&s[i], "]");
+			if (!s[i])
+				INFO(ctx, "Unmatched bracket in %s\n", s);
+			break;
+		}
+	}
+	return s;
+}
+