|
|
commit 8863ef79012f6c1329db53855572b3bec045dbd4
Author: Albrecht Schlosser <albrechts.fltk@online.de>
AuthorDate: Sun Oct 17 12:24:39 2021 +0200
Commit: Albrecht Schlosser <albrechts.fltk@online.de>
CommitDate: Sun Oct 17 12:24:39 2021 +0200
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.
FL/fl_ask.H | 9 +--------
FL/fl_attr.h | 34 ++++++++++++++++++++++++++++++++++
fluid/Fl_Type.h | 28 ++++++++++++----------------
3 files changed, 47 insertions(+), 24 deletions(-)
diff --git FL/fl_ask.H FL/fl_ask.H
index 84e9ef2..964ea36 100644
--- FL/fl_ask.H
+++ 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 FL/fl_attr.h FL/fl_attr.h
new file mode 100644
index 0000000..32e88a2
--- /dev/null
+++ 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 fluid/Fl_Type.h fluid/Fl_Type.h
index a6e0306..1810bf3 100644
--- fluid/Fl_Type.h
+++ 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);
[ Direct Link to Message ] | |
|
| |