Browse Source

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.
pull/284/head
Albrecht Schlosser 4 years ago
parent
commit
8863ef7901
  1. 9
      FL/fl_ask.H
  2. 34
      FL/fl_attr.h
  3. 28
      fluid/Fl_Type.h

9
FL/fl_ask.H

@ -22,6 +22,7 @@
# define fl_ask_H # define fl_ask_H
# include "Enumerations.H" # include "Enumerations.H"
# include "fl_attr.h"
class Fl_Widget; class Fl_Widget;
/** Different system beeps available. /** Different system beeps available.
@ -35,14 +36,6 @@ enum Fl_Beep {
FL_BEEP_NOTIFICATION ///< Notification 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_beep(int type = FL_BEEP_DEFAULT);
FL_EXPORT void fl_message(const char *,...) __fl_attr((__format__ (__printf__, 1, 2))); 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))); FL_EXPORT void fl_alert(const char *,...) __fl_attr((__format__ (__printf__, 1, 2)));

34
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_ */

28
fluid/Fl_Type.h

@ -1,16 +1,7 @@
// //
// Widget type header file for the Fast Light Tool Kit (FLTK). // Widget type header file for the Fast Light Tool Kit (FLTK).
// //
// Each object described by Fluid is one of these objects. They // Copyright 1998-2021 by Bill Spitzak and others.
// 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.
// //
// This library is free software. Distribution and use rights are outlined in // 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 // the file "COPYING" which should have been included with this file. If this
@ -23,11 +14,22 @@
// https://www.fltk.org/bugs.php // 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_Widget.H>
#include <FL/Fl_Menu.H> #include <FL/Fl_Menu.H>
#include <FL/Fl_Plugin.H> #include <FL/Fl_Plugin.H>
#include "Fluid_Image.h" #include "Fluid_Image.h"
#include <FL/fl_draw.H> #include <FL/fl_draw.H>
#include <FL/fl_attr.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
@ -859,12 +861,6 @@ void reveal_in_browser(Fl_Type*);
int has_toplevel_function(const char *rtype, const char *sig); int has_toplevel_function(const char *rtype, const char *sig);
// file operations: // file operations:
# ifdef __GNUC__
# define __fl_attr(x) __attribute__ (x)
# else
# define __fl_attr(x)
# endif // __GNUC__
void write_word(const char *); void write_word(const char *);
void write_string(const char *,...) __fl_attr((__format__ (__printf__, 1, 2))); void write_string(const char *,...) __fl_attr((__format__ (__printf__, 1, 2)));
int write_file(const char *, int selected_only = 0); int write_file(const char *, int selected_only = 0);

Loading…
Cancel
Save