From aab97051192156fcb6e4bad483137cbde36de515 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Wed, 21 Sep 2016 23:35:27 +0200
Subject: Added weak symbols in the Python bindings in case of standalone
 usage.

---
 ChangeLog                    |  12 ++++
 plugins/pychrysa/Makefile.am |   3 +-
 plugins/pychrysa/weak.c      | 129 +++++++++++++++++++++++++++++++++++++++++++
 plugins/pychrysa/weak.h      |  50 +++++++++++++++++
 src/gtkext/gtkstatusstack.c  |   1 -
 5 files changed, 193 insertions(+), 2 deletions(-)
 create mode 100644 plugins/pychrysa/weak.c
 create mode 100644 plugins/pychrysa/weak.h

diff --git a/ChangeLog b/ChangeLog
index 5750fb2..92a077a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 16-09-21  Cyrille Bagard <nocbos@gmail.com>
 
+	* plugins/pychrysa/Makefile.am:
+	Add the 'weak.[ch]' files to pychrysalide_la_SOURCES.
+
+	* plugins/pychrysa/weak.c:
+	* plugins/pychrysa/weak.h:
+	New entries: add weak symbols in the Python bindings in case of standalone usage.
+
+	* src/gtkext/gtkstatusstack.c:
+	Typo.
+
+16-09-21  Cyrille Bagard <nocbos@gmail.com>
+
 	* configure.ac:
 	Remove the Makefile from the 'plugins/python/welcome' directory.
 
diff --git a/plugins/pychrysa/Makefile.am b/plugins/pychrysa/Makefile.am
index 9616542..7ab98fa 100644
--- a/plugins/pychrysa/Makefile.am
+++ b/plugins/pychrysa/Makefile.am
@@ -5,7 +5,8 @@ pychrysalide_la_SOURCES =				\
 	helpers.h helpers.c					\
 	plugin.h plugin.c					\
 	pychrysa.h pychrysa.c				\
-	quirks.h quirks.c
+	quirks.h quirks.c					\
+	weak.h weak.c
 
 pychrysalide_la_LIBADD =				\
 	analysis/libpychrysaanalysis.la		\
diff --git a/plugins/pychrysa/weak.c b/plugins/pychrysa/weak.c
new file mode 100644
index 0000000..d396fb3
--- /dev/null
+++ b/plugins/pychrysa/weak.c
@@ -0,0 +1,129 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * weak.c - définition de symboles qui n'ont pas leur place dans la version autonome
+ *
+ * Copyright (C) 2016 Cyrille Bagard
+ *
+ *  This file is part of Chrysalide.
+ *
+ *  OpenIDA is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  OpenIDA is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+#include "weak.h"
+
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : stack = barre de statut à actualiser.                        *
+*                msg   = nouveau message de statut à copier.                  *
+*                max   = taille de la plage à parcourir.                      *
+*                                                                             *
+*  Description : Démarre le suivi d'une nouvelle activité.                    *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+activity_id_t gtk_status_stack_add_activity(GtkStatusStack *stack, const char *msg, unsigned long max)
+{
+    return ~0lu;
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : stack = barre de statut à actualiser.                        *
+*                id    = identifiant de l'activité à cibler.                  *
+*                extra = nouvelle échéance supplémentaire des traitements.    *
+*                                                                             *
+*  Description : Etend la portée des travaux d'une nouvelle activité.         *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+void gtk_status_stack_extend_activity(GtkStatusStack *stack, activity_id_t id, unsigned long extra)
+{
+    ;
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : stack = barre de statut à actualiser.                        *
+*                id    = identifiant de l'activité à cibler.                  *
+*                msg   = nouveau message de statut à copier.                  *
+*                                                                             *
+*  Description : Actualise les informations concernant une activité.          *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+void gtk_status_stack_update_activity(GtkStatusStack *stack, activity_id_t id, const char *msg)
+{
+    ;
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : stack = barre de statut à actualiser.                        *
+*                id    = identifiant de l'activité à cibler.                  *
+*                inc   = nouvelle valeur pour une progression donnée.         *
+*                                                                             *
+*  Description : Actualise la progression d'une activité.                     *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+void gtk_status_stack_update_activity_value(GtkStatusStack *stack, activity_id_t id, unsigned long inc)
+{
+    ;
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : stack = barre de statut à actualiser.                        *
+*                                                                             *
+*  Description : Met fin au suivi d'une activité donnée.                      *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+void gtk_status_stack_remove_activity(GtkStatusStack *stack, activity_id_t id)
+{
+    ;
+
+}
diff --git a/plugins/pychrysa/weak.h b/plugins/pychrysa/weak.h
new file mode 100644
index 0000000..8e771ce
--- /dev/null
+++ b/plugins/pychrysa/weak.h
@@ -0,0 +1,50 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * weak.h - prototypes pour la définition de symboles qui n'ont pas leur place dans la version autonome
+ *
+ * Copyright (C) 2016 Cyrille Bagard
+ *
+ *  This file is part of Chrysalide.
+ *
+ *  OpenIDA is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  OpenIDA is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+#ifndef _PLUGINS_PYCHRYSA_WEAK_H
+#define _PLUGINS_PYCHRYSA_WEAK_H
+
+
+#include <gtkext/gtkstatusstack.h>
+
+
+
+/* Démarre le suivi d'une nouvelle activité. */
+activity_id_t gtk_status_stack_add_activity(GtkStatusStack *, const char *, unsigned long) __attribute__((weak));
+
+/* Etend la portée des travaux d'une nouvelle activité. */
+void gtk_status_stack_extend_activity(GtkStatusStack *, activity_id_t, unsigned long) __attribute__((weak));
+
+/* Actualise les informations concernant une activité. */
+void gtk_status_stack_update_activity(GtkStatusStack *, activity_id_t, const char *) __attribute__((weak));
+
+/* Actualise la progression d'une activité. */
+void gtk_status_stack_update_activity_value(GtkStatusStack *, activity_id_t, unsigned long) __attribute__((weak));
+
+/* Met fin au suivi d'une activité donnée. */
+void gtk_status_stack_remove_activity(GtkStatusStack *, activity_id_t) __attribute__((weak));
+
+
+
+#endif  /* _PLUGINS_PYCHRYSA_WEAK_H */
diff --git a/src/gtkext/gtkstatusstack.c b/src/gtkext/gtkstatusstack.c
index e072d53..5a0d5c5 100644
--- a/src/gtkext/gtkstatusstack.c
+++ b/src/gtkext/gtkstatusstack.c
@@ -881,7 +881,6 @@ activity_id_t gtk_status_stack_add_activity(GtkStatusStack *stack, const char *m
 }
 
 
-
 /******************************************************************************
 *                                                                             *
 *  Paramètres  : stack = barre de statut à actualiser.                        *
-- 
cgit v0.11.2-87-g4458