plugin types BUGFIX ::ly_err_new() format emphasis

This commit prevents an error where err_msg could contain a conversion
specifier (character '%'), but the variadic arguments are empty, which
causes undefined behavior. Therefore, in the function, the err_msg
parameter has been renamed to err_format to emphasize that the function
expects a format. A compiler attribute has also been added to the
function to check the correct number of variadic arguments.
diff --git a/src/config.h.in b/src/config.h.in
index 65c4934..a6aff60 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -26,4 +26,10 @@
 #define LYPLG_TYPE_DIR "@PLUGINS_DIR_EXTENSIONS@"
 #define LYPLG_EXT_DIR "@PLUGINS_DIR_TYPES@"
 
+#if (@CMAKE_C_COMPILER_ID@ == GNU) || (@CMAKE_C_COMPILER_ID@ == Clang)
+# define _FORMAT_PRINTF(FORM, ARGS) __attribute__((format (printf, FORM, ARGS)))
+#else
+# define _FORMAT_PRINTF(FORM, ARGS)
+#endif
+
 #endif /* LY_CONFIG_H_ */