BUGFIX reflect default argument promotions in va_* function
char and short variadic arguments automatically promotes to int. This
must be reflected in va_arg() and the int type is supposed to be used
as type to obtain instead of the original type.
Furthermore, the last non-variadic argument cannot be regiter variable,
function, array or automatically promoted type.
In same case, we are using enum type as the last non-variadic and variadic
arguments and above restrictins were not reflected. Even that the
enum is represented as int on common architectures / by common compilers,
the restrictions should be reflected.
Fixes #12
diff --git a/src/messages_server.h b/src/messages_server.h
index feb5bdc..c615786 100644
--- a/src/messages_server.h
+++ b/src/messages_server.h
@@ -111,7 +111,7 @@
* @brief Create a server error structure. Its \<error-message\> is filled with
* a general description of the specific error.
*
- * @param[in] tag \<error-tag\> of the server error. According to the tag, the
+ * @param[in] tag \<error-tag\> of the server error specified as #NC_ERR value. According to the tag, the
* specific additional parameters are required:
* - #NC_ERR_IN_USE
* - #NC_ERR_INVALID_VALUE
@@ -145,7 +145,7 @@
* - no additional arguments
* @return Server error structure, NULL on error.
*/
-struct nc_server_error *nc_err(NC_ERR tag, ...);
+struct nc_server_error *nc_err(int tag, ...);
/**
* @brief Create a server error structure based on libyang error.