diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/decomp/output.c | 3 | ||||
-rw-r--r-- | src/glibext/gbufferline.c | 28 | ||||
-rw-r--r-- | src/glibext/gbufferline.h | 3 |
3 files changed, 33 insertions, 1 deletions
diff --git a/src/decomp/output.c b/src/decomp/output.c index 20e18a9..fd10921 100644 --- a/src/decomp/output.c +++ b/src/decomp/output.c @@ -270,7 +270,10 @@ GBufferLine *g_lang_output_start_routine_info(const GLangOutput *output, GCodeBu GBufferLine *result; /* Adresse nouvelle à remonter */ if (output->start_routine_proto != NULL) + { result = output->start_info(output, buffer); + g_buffer_line_skip_width(result); + } else result = NULL; diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c index 6e3c928..4360f8c 100644 --- a/src/glibext/gbufferline.c +++ b/src/glibext/gbufferline.c @@ -89,6 +89,8 @@ struct _GBufferLine BufferLineColumn merge_start; /* Début de la zone globale */ BufferLineColumn last_used; /* Dernière colonne utilisée */ + bool skip_width; /* Pas de taille comptabilisée */ + }; /* Représentation de fragments de texte en ligne (classe) */ @@ -673,6 +675,25 @@ char *g_buffer_line_get_text(const GBufferLine *line) /****************************************************************************** * * +* Paramètres : line = ligne à venir compléter. * +* * +* Description : Marque la ligne comme étant sans largeur à comptabiliser. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_buffer_line_skip_width(GBufferLine *line) +{ + line->skip_width = true; + +} + + +/****************************************************************************** +* * * Paramètres : line = ligne à venir compléter. * * index = index de la colonne visée par la procédure. * * * @@ -686,7 +707,12 @@ char *g_buffer_line_get_text(const GBufferLine *line) gint g_buffer_line_get_width(GBufferLine *line, BufferLineColumn index) { - return get_column_width(&line->columns[index]); + gint result; /* Largeur à retourner */ + + if (line->skip_width) result = 0; + else result = get_column_width(&line->columns[index]); + + return result; } diff --git a/src/glibext/gbufferline.h b/src/glibext/gbufferline.h index 3f0676a..ce75895 100644 --- a/src/glibext/gbufferline.h +++ b/src/glibext/gbufferline.h @@ -132,6 +132,9 @@ void g_buffer_line_insert_text(GBufferLine *, BufferLineColumn, const char *, si /* Donne le texte représenté par une ligne de tampon. */ char *g_buffer_line_get_text(const GBufferLine *); +/* Marque la ligne comme étant sans largeur à comptabiliser. */ +void g_buffer_line_skip_width(GBufferLine *); + /* Fournit la largeur requise pour une colonne de ligne donnée. */ gint g_buffer_line_get_width(GBufferLine *, BufferLineColumn); |