format: Add function to get format by name

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/include/gapk/formats.h b/include/gapk/formats.h
index d38b934..89cb8d7 100644
--- a/include/gapk/formats.h
+++ b/include/gapk/formats.h
@@ -62,5 +62,6 @@
 };
 
 const struct format_desc *fmt_get_from_type(enum format_type type);
+const struct format_desc *fmt_get_from_name(const char *name);
 
 #endif /* __GAPK_FORMATS_H__ */
diff --git a/src/formats.c b/src/formats.c
index 9e8da5e..8f51c2d 100644
--- a/src/formats.c
+++ b/src/formats.c
@@ -18,6 +18,7 @@
  */
 
 #include <stdio.h>	/* for NULL */
+#include <string.h>
 
 #include <gapk/formats.h>
 
@@ -49,3 +50,17 @@
 		return NULL;
 	return supported_formats[type];
 }
+
+const struct format_desc *
+fmt_get_from_name(const char *name)
+{
+	int i;
+	for (i=FMT_INVALID+1; i<_FMT_MAX; i++) {
+		const struct format_desc *fmt = supported_formats[i];
+		if (!fmt)
+			continue;
+		if (!strcmp(fmt->name, name))
+			return fmt;
+	}
+	return NULL;
+}