Avoid multiple definition of macro __fl_attr()

This could happen if both FL/fl_ask.H and fluid/Fl_Type.h were
included in the same file.
This commit is contained in:
Albrecht Schlosser
2021-10-17 12:24:39 +02:00
parent 6c2bc5b02f
commit 8863ef7901
3 changed files with 47 additions and 24 deletions
+1 -8
View File
@@ -22,6 +22,7 @@
# define fl_ask_H
# include "Enumerations.H"
# include "fl_attr.h"
class Fl_Widget;
/** Different system beeps available.
@@ -35,14 +36,6 @@ enum Fl_Beep {
FL_BEEP_NOTIFICATION ///< Notification beep.
};
# ifdef __GNUC__
/* the GNUC-specific attribute appearing below in prototypes with a variable list of arguments
helps detection of mismatches between format string and argument list at compilation time */
# define __fl_attr(x) __attribute__ (x)
# else
# define __fl_attr(x)
# endif // __GNUC__
FL_EXPORT void fl_beep(int type = FL_BEEP_DEFAULT);
FL_EXPORT void fl_message(const char *,...) __fl_attr((__format__ (__printf__, 1, 2)));
FL_EXPORT void fl_alert(const char *,...) __fl_attr((__format__ (__printf__, 1, 2)));
+34
View File
@@ -0,0 +1,34 @@
/*
* Function attribute declarations for the Fast Light Tool Kit (FLTK).
*
* Copyright 1998-2021 by Bill Spitzak and others.
*
* This library is free software. Distribution and use rights are outlined in
* the file "COPYING" which should have been included with this file. If this
* file is missing or damaged, see the license at:
*
* https://www.fltk.org/COPYING.php
*
* Please see the following page on how to report bugs and issues:
*
* https://www.fltk.org/bugs.php
*/
#ifndef _FL_fl_attr_h_
#define _FL_fl_attr_h_
/*
The GNUC-specific attribute appearing below in prototypes with a variable
list of arguments helps detection of mismatches between format string and
argument list at compilation time.
Examples: see fl_ask.H
*/
#ifdef __GNUC__
# define __fl_attr(x) __attribute__ (x)
#else
# define __fl_attr(x)
#endif
#endif /* !_FL_fl_attr_h_ */