diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/analysis/disass/disassembler.c | 3 | ||||
| -rw-r--r-- | src/core/global.c | 41 | ||||
| -rw-r--r-- | src/core/global.h | 9 | ||||
| -rw-r--r-- | src/main.c | 3 | 
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 *); @@ -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()) | 
