diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2021-10-17 12:24:39 +0200 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2021-10-17 12:24:39 +0200 |
| commit | 8863ef79012f6c1329db53855572b3bec045dbd4 (patch) | |
| tree | 8fa2244e6608cba050a334d182495abad111d26d | |
| parent | 6c2bc5b02fdc30b9c8149ff8f7e22e056f75ead1 (diff) | |
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.
| -rw-r--r-- | FL/fl_ask.H | 9 | ||||
| -rw-r--r-- | FL/fl_attr.h | 34 | ||||
| -rw-r--r-- | fluid/Fl_Type.h | 28 |
3 files changed, 47 insertions, 24 deletions
diff --git a/FL/fl_ask.H b/FL/fl_ask.H index 84e9ef227..964ea366b 100644 --- a/FL/fl_ask.H +++ b/FL/fl_ask.H @@ -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))); diff --git a/FL/fl_attr.h b/FL/fl_attr.h new file mode 100644 index 000000000..32e88a2a4 --- /dev/null +++ b/FL/fl_attr.h @@ -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_ */ diff --git a/fluid/Fl_Type.h b/fluid/Fl_Type.h index a6e030674..1810bf30d 100644 --- a/fluid/Fl_Type.h +++ b/fluid/Fl_Type.h @@ -1,16 +1,7 @@ // // Widget type header file for the Fast Light Tool Kit (FLTK). // -// Each object described by Fluid is one of these objects. They -// are all stored in a double-linked list. -// -// There is also a single "factory" instance of each type of this. -// The method "make()" is called on this factory to create a new -// instance of this object. It could also have a "copy()" function, -// but it was easier to implement this by using the file read/write -// that is needed to save the setup anyways. -// -// Copyright 1998-2016 by Bill Spitzak and others. +// 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 @@ -23,11 +14,22 @@ // https://www.fltk.org/bugs.php // +// Each object described by Fluid is one of these objects. They +// are all stored in a double-linked list. +// +// There is also a single "factory" instance of each type of this. +// The method "make()" is called on this factory to create a new +// instance of this object. It could also have a "copy()" function, +// but it was easier to implement this by using the file read/write +// that is needed to save the setup anyways. + #include <FL/Fl_Widget.H> #include <FL/Fl_Menu.H> #include <FL/Fl_Plugin.H> #include "Fluid_Image.h" #include <FL/fl_draw.H> +#include <FL/fl_attr.h> + #include <stdarg.h> #include <stdlib.h> @@ -859,12 +861,6 @@ void reveal_in_browser(Fl_Type*); int has_toplevel_function(const char *rtype, const char *sig); // file operations: -# ifdef __GNUC__ -# define __fl_attr(x) __attribute__ (x) -# else -# define __fl_attr(x) -# endif // __GNUC__ - void write_word(const char *); void write_string(const char *,...) __fl_attr((__format__ (__printf__, 1, 2))); int write_file(const char *, int selected_only = 0); |
