summaryrefslogtreecommitdiff
path: root/src/decomp/expr/block.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decomp/expr/block.c')
-rw-r--r--src/decomp/expr/block.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/decomp/expr/block.c b/src/decomp/expr/block.c
index 1ec15a7..5124204 100644
--- a/src/decomp/expr/block.c
+++ b/src/decomp/expr/block.c
@@ -58,7 +58,7 @@ static void g_expr_block_class_init(GExprBlockClass *);
static void g_expr_block_init(GExprBlock *);
/* Imprime pour l'écran un version humaine d'une expression. */
-static void g_expr_block_print(const GExprBlock *, GCodeBuffer *, GBufferLine *, GLangOutput *);
+static GBufferLine *g_expr_block_print(const GExprBlock *, GCodeBuffer *, GBufferLine *, GLangOutput *);
@@ -147,19 +147,26 @@ GDecInstruction *g_expr_block_new(GDecInstruction *item)
* *
******************************************************************************/
-static void g_expr_block_print(const GExprBlock *block, GCodeBuffer *buffer, GBufferLine *line, GLangOutput *output)
+static GBufferLine *g_expr_block_print(const GExprBlock *block, GCodeBuffer *buffer, GBufferLine *line, GLangOutput *output)
{
+ GBufferLine *result; /* Ligne à retourner */
size_t i; /* Boucle de parcours */
+ result = g_lang_output_start_code_block(output, buffer, line, block->count);
+
for (i = 0; i < block->count; i++)
{
if (i > 0)
- line = g_code_buffer_append_new_line_fixme(buffer); /* FIXME : n° de ligne */
+ result = g_code_buffer_append_new_line_fixme(buffer); /* FIXME : n° de ligne */
- g_dec_instruction_print(block->list[i], buffer, line, output);
+ result = g_dec_instruction_print(block->list[i], buffer, result, output);
}
+ result = g_lang_output_end_code_block(output, buffer, result, block->count);
+
+ return result;
+
}