From 108ffac9eac23a5d87f142e36d162d62be0619e2 Mon Sep 17 00:00:00 2001
From: Robin Lee <cheeselee@fedoraproject.org>
Date: Mon, 24 Feb 2020 17:52:39 +0800
Subject: [PATCH] Fix multiple definition errors under GCC 10.0

Fixes issue #9, RHBZ#1800268
---
 include/sensors-interface-common.h | 22 ++++++++++++++--------
 lib/sensors-interface-common.c     |  1 +
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/include/sensors-interface-common.h b/include/sensors-interface-common.h
index 62a27eb..05146c5 100644
--- a/include/sensors-interface-common.h
+++ b/include/sensors-interface-common.h
@@ -146,6 +146,12 @@ t_sensors_dialog;
 
 
 
+#ifdef XFCE4_SENSORS_INTERFACE_COMMON_DEFINING
+#define EXTERN
+#else
+#define EXTERN extern
+#endif
+
 /* Extern functions that need to be re-implemented in the sensors-viewer and
  * the panel code.
  * They kind of need to be registered at the library by any software
@@ -157,7 +163,7 @@ t_sensors_dialog;
  * @param ptr_widget: Pointer to original widget, i.e, the update timer box
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*adjustment_value_changed) (GtkWidget *ptr_widget,
                              t_sensors_dialog *ptr_sensorsdialog);
 
@@ -167,7 +173,7 @@ void
  * @param ptr_widget: Pointer to original widget, i.e, the sensor entry combobox
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*sensor_entry_changed) (GtkWidget *ptr_widget,
                          t_sensors_dialog *ptr_sensorsdialog);
 
@@ -178,7 +184,7 @@ void
  * @param ptr_str_newtext: Pointer to the string containing the new label
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*list_cell_text_edited) (GtkCellRendererText *ptr_cellrenderertext,
                           gchar *ptr_str_path, gchar *ptr_str_newtext,
                           t_sensors_dialog *ptr_sensorsdialog);
@@ -189,7 +195,7 @@ void
  * @param ptr_str_path: pointer to the string with the path of the changed item
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*list_cell_toggle) (GtkCellRendererToggle *ptr_cellrenderertoggle, gchar *ptr_str_path,
                      t_sensors_dialog *ptr_sensorsdialog);
 
@@ -201,7 +207,7 @@ void
  *                          hexadecimal rgb format #0011ff
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*list_cell_color_edited) (GtkCellRendererText *ptr_cellrenderertext,
                            gchar *ptr_str_path, gchar *ptr_str_newcolor,
                            t_sensors_dialog *ptr_sensorsdialog);
@@ -214,7 +220,7 @@ void
  *                        temperature
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*minimum_changed) (GtkCellRendererText *ptr_cellrenderertext, gchar *ptr_str_path,
                     gchar *ptr_str_newmin, t_sensors_dialog *ptr_sensorsdialog);
 
@@ -226,7 +232,7 @@ void
  *                        temperature
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*maximum_changed) (GtkCellRendererText *ptr_cellrenderertext, gchar *ptr_str_path,
                     gchar *ptr_str_newmax, t_sensors_dialog *ptr_sensorsdialog);
 
@@ -236,7 +242,7 @@ void
  * @param ptr_widget: Pointer to original widget, i.e, the update timer box
  * @param ptr_sensorsdialog: argument pointer to sensors dialog data
  */
-void
+EXTERN void
 (*temperature_unit_change) (GtkWidget *ptr_widget,
                             t_sensors_dialog *ptr_sensorsdialog);
 
diff --git a/lib/sensors-interface-common.c b/lib/sensors-interface-common.c
index 70aa154..8c79f1d 100644
--- a/lib/sensors-interface-common.c
+++ b/lib/sensors-interface-common.c
@@ -28,6 +28,7 @@
 #include <libxfce4panel/xfce-panel-plugin.h>
 
 /* Local/package includes */
+#define XFCE4_SENSORS_INTERFACE_COMMON_DEFINING
 #include <configuration.h>
 #include <sensors-interface-common.h>
 #include <middlelayer.h>
-- 
GitLab

