diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2013-02-24 11:09:36 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2013-02-24 11:09:36 (GMT) |
commit | 02c2cf555953f335a825e34c869c9999668fd42c (patch) | |
tree | 59395c04d509f9fae8314d311f6ab90e163df45d /src/decomp/output.c | |
parent | 34e1a14aced520ba06ee1b81cfd7710e97c1643f (diff) |
Refined comparisons decompilation and fixed some bugs.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@340 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/decomp/output.c')
-rw-r--r-- | src/decomp/output.c | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/src/decomp/output.c b/src/decomp/output.c index 5689319..c358653 100644 --- a/src/decomp/output.c +++ b/src/decomp/output.c @@ -2,7 +2,7 @@ /* OpenIDA - Outil d'analyse de fichiers binaires * output.c - sorties en langage de programmation * - * Copyright (C) 2010 Cyrille Bagard + * Copyright (C) 2010-2013 Cyrille Bagard * * This file is part of OpenIDA. * @@ -206,6 +206,28 @@ void g_lang_output_write_comp_sign(GLangOutput *output, GBufferLine *line, CompS /****************************************************************************** * * * Paramètres : output = encadrant de l'impression en langage de prog. * +* line = tampon de sortie à disposition. * +* op = opérateur logique à imprimer. * +* * +* Description : Imprime dans un tampon donné un opérateur logique. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_lang_output_write_cond_operator(GLangOutput *output, GBufferLine *line, CondOperatorType op) +{ + if (output->cond_op != NULL) + output->cond_op(output, line, op); + +} + + +/****************************************************************************** +* * +* Paramètres : output = encadrant de l'impression en langage de prog. * * buffer = tampon de sortie à disposition. * * type = désignation de la classe à définir. * * * @@ -430,3 +452,32 @@ GBufferLine *g_lang_output_end_code_block(GLangOutput *output, GCodeBuffer *buff return result; } + + +/****************************************************************************** +* * +* Paramètres : output = encadrant de l'impression en langage de prog. * +* buffer = tampon de sortie à disposition. * +* line = ligne contenant le prototype de la routine traitée.* +* opening = précise si la condition débute ou se termine. * +* * +* Description : Emballe une expression conditionelle. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +GBufferLine *g_lang_output_encapsulate_condition(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line, bool opening) +{ + GBufferLine *result; /* Nouvelle ligne à utiliser */ + + if (output->encaps_cond != NULL) + result = output->encaps_cond(output, buffer, line, opening); + else + result = NULL; + + return result; + +} |