summaryrefslogtreecommitdiff
path: root/src/decomp/expr/cond.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decomp/expr/cond.c')
-rw-r--r--src/decomp/expr/cond.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/decomp/expr/cond.c b/src/decomp/expr/cond.c
index 51309ca..4a9b63b 100644
--- a/src/decomp/expr/cond.c
+++ b/src/decomp/expr/cond.c
@@ -56,7 +56,7 @@ static void g_cond_expression_class_init(GCondExpressionClass *);
static void g_cond_expression_init(GCondExpression *);
/* Imprime pour l'écran un version humaine d'une expression. */
-static void g_cond_expression_print(const GCondExpression *, GCodeBuffer *, GBufferLine *, GLangOutput *);
+static GBufferLine *g_cond_expression_print(const GCondExpression *, GCodeBuffer *, GBufferLine *, GLangOutput *);
@@ -149,14 +149,18 @@ GDecInstruction *g_cond_expression_new(GDecExpression *a, CompSignType sign, GDe
* *
******************************************************************************/
-static void g_cond_expression_print(const GCondExpression *expr, GCodeBuffer *buffer, GBufferLine *line, GLangOutput *output)
+static GBufferLine *g_cond_expression_print(const GCondExpression *expr, GCodeBuffer *buffer, GBufferLine *line, GLangOutput *output)
{
- g_dec_instruction_print(G_DEC_INSTRUCTION(expr->a),
- buffer, line, output);
+ GBufferLine *result; /* Ligne à retourner */
- g_lang_output_write_comp_sign(output, line, expr->sign);
+ result = g_dec_instruction_print(G_DEC_INSTRUCTION(expr->a),
+ buffer, line, output);
- g_dec_instruction_print(G_DEC_INSTRUCTION(expr->b),
- buffer, line, output);
+ g_lang_output_write_comp_sign(output, result, expr->sign);
+
+ result = g_dec_instruction_print(G_DEC_INSTRUCTION(expr->b),
+ buffer, result, output);
+
+ return result;
}