summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/analysis/disass/disassembler.c3
-rw-r--r--src/core/global.c41
-rw-r--r--src/core/global.h9
-rw-r--r--src/main.c3
4 files changed, 55 insertions, 1 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c
index dded65b..ca5e565 100644
--- a/src/analysis/disass/disassembler.c
+++ b/src/analysis/disass/disassembler.c
@@ -427,7 +427,8 @@ void disassemble_binary(GLoadedBinary *binary, wgroup_id_t gid, GtkStatusStack *
process_disassembly_event(PGA_DISASSEMBLY_ENDED, binary);
- output_disassembly(binary, context, status, cache);
+ if (!is_batch_mode())
+ output_disassembly(binary, context, status, cache);
/* Nettoyage final et sortie ! */
diff --git a/src/core/global.c b/src/core/global.c
index decf300..8736b30 100644
--- a/src/core/global.c
+++ b/src/core/global.c
@@ -28,6 +28,9 @@
+/* Mode de fonctionnement */
+static bool _batch_mode = false;
+
/* Gestionnaire de tâches parallèles */
static GWorkQueue *_queue = NULL;
@@ -47,6 +50,44 @@ static current_project_change_cb _project_notify = NULL;
/******************************************************************************
* *
+* Paramètres : - *
+* *
+* Description : Note un mode d'exécution sans interface. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void set_batch_mode(void)
+{
+ _batch_mode = true;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : - *
+* *
+* Description : Indique le mode d'exécution courant du programme. *
+* *
+* Retour : true si le fonctionnement est sans interface. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bool is_batch_mode(void)
+{
+ return _batch_mode;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : queue = nouveau gestionnaire à mémoriser ou NULL. *
* *
* Description : Définit le gestionnaire de traitements parallèles courant. *
diff --git a/src/core/global.h b/src/core/global.h
index 5f01909..f398621 100644
--- a/src/core/global.h
+++ b/src/core/global.h
@@ -25,12 +25,21 @@
#define _CORE_GLOBAL_H
+#include <stdbool.h>
+
+
#include "../analysis/loading.h"
#include "../analysis/project.h"
#include "../glibext/delayed.h"
+/* Note un mode d'exécution sans interface. */
+void set_batch_mode(void);
+
+/* Indique le mode d'exécution courant du programme. */
+bool is_batch_mode(void);
+
/* Définit le gestionnaire de traitements parallèles courant. */
void set_work_queue(GWorkQueue *);
diff --git a/src/main.c b/src/main.c
index 0abc29f..793a735 100644
--- a/src/main.c
+++ b/src/main.c
@@ -253,6 +253,9 @@ int main(int argc, char **argv)
/* Initialisation du programme */
+ if (batch_mode)
+ set_batch_mode();
+
set_log_verbosity(verbosity);
if (!load_all_basic_components())