Imported Upstream version 2.6.0
[debian/amanda] / common-src / arglist.h
index e26f714744d13661ba63514892af8c06ca5a0c3a..a3d572d6934c86533585ffdb0bb2375e7b1d683c 100644 (file)
@@ -24,7 +24,7 @@
  * 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