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 #include #include #include "Fluid_Image.h" #include +#include + #include #include @@ -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);