From f34023c5c6d47ccfed65ea9b61497b4febb8746c Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Fri, 27 Apr 2018 12:13:20 +0200 Subject: Skipped the instruction printing in batch mode. --- src/analysis/disass/disassembler.c | 3 ++- src/core/global.c | 41 ++++++++++++++++++++++++++++++++++++++ src/core/global.h | 9 +++++++++ src/main.c | 3 +++ 4 files changed, 55 insertions(+), 1 deletion(-) 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 + + #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()) -- cgit v0.11.2-87-g4458