+2013-03-07 Miguel Angel Arruga Vivas <rosen644835@gmail.com> (tiny change)
+
+ Fix '__attribute__' definition.
+ Reported at <https://savannah.gnu.org/bugs/?35313>
+ * autosprintf.in.h (_AUTOSPRINTF_ATTRIBUTE_FORMAT): New macro
+ instead of redefine __attribute__.
+
2013-03-04 Miguel Angel Arruga Vivas <rosen644835@gmail.com> (tiny change)
Add 'autosprintf::operator='. Needed because destructor
#ifndef _AUTOSPRINTF_H
#define _AUTOSPRINTF_H
-#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-# define __attribute__(Spec) /* empty */
-# endif
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() /* empty */
+#else
/* The __-protected variants of 'format' and 'printf' attributes
are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-# define __format__ format
-# define __printf__ printf
+# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \
+ __attribute__ ((__format__ (__printf__, 2, 3)))
+# else
+# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \
+ __attribute__ ((format (printf, 2, 3)))
# endif
#endif
public:
/* Constructor: takes a format string and the printf arguments. */
autosprintf (const char *format, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
+ _AUTOSPRINTF_ATTRIBUTE_FORMAT();
/* Copy constructor. */
autosprintf (const autosprintf& src);
autosprintf& operator = (autosprintf copy);