* file named AUTHORS, in the root directory of this distribution.
*/
/*
- * $Id: arglist.h,v 1.4.10.2 2002/12/03 21:36:47 martinea Exp $
+ * $Id: arglist.h,v 1.9 2006/06/16 11:33:43 martinea Exp $
*
* support macros for variable argument list declaration and definition
*/
#define printf_arglist_function(fdecl, \
hook_type, hook_name) \
- __attribute__ ((format (printf, 1, 0))) \
+ G_GNUC_PRINTF(1,0) \
fdecl(hook_type hook_name, ...)
#define printf_arglist_function1(fdecl, \
arg1_type, arg1_name, \
hook_type, hook_name) \
- __attribute__ ((format (printf, 2, 0))) \
+ G_GNUC_PRINTF(2,0) \
fdecl(arg1_type arg1_name, \
hook_type hook_name, ...)
arg1_type, arg1_name, \
arg2_type, arg2_name, \
hook_type, hook_name) \
- __attribute__ ((format (printf, 3, 0))) \
+ G_GNUC_PRINTF(3,0) \
fdecl(arg1_type arg1_name, \
arg2_type arg2_name, \
hook_type hook_name, ...)
+#define printf_arglist_function3(fdecl, \
+ arg1_type, arg1_name, \
+ arg2_type, arg2_name, \
+ arg3_type, arg3_name, \
+ hook_type, hook_name) \
+ G_GNUC_PRINTF(4,0) \
+ fdecl(arg1_type arg1_name, \
+ arg2_type arg2_name, \
+ arg3_type arg3_name, \
+ hook_type hook_name, ...)
+
#define arglist_function(fdecl, \
hook_type, hook_name) \
fdecl(hook_type hook_name, ...)
arg2_type arg2_name, \
hook_type hook_name, ...)
+#define arglist_function3(fdecl, arg1_type, arg1_name, arg2_type, arg2_name, \
+ arg3_type, arg3_name, hook_type, hook_name) \
+ fdecl(arg1_type arg1_name, arg2_type arg2_name, \
+ arg3_type arg3_name, hook_type hook_name, ...)
+
#define arglist_start(arg,hook_name) va_start(arg,hook_name)
#else
hook_type hook_name; \
va_dcl
+#define arglist_function3(fdecl, arg1_type, arg1_name, arg2_type, arg2_name, \
+ arg3_type, arg3_name, hook_type, hook_name) \
+ fdecl(arg1_name, arg2_name, arg3_name, hook_name, va_alist) \
+ arg1_type arg1_name; \
+ arg2_type arg2_name; \
+ arg3_type arg3_name; \
+ hook_type hook_name; \
+ va_dcl
+
#define arglist_start(arg,hook_name) va_start(arg)
#endif