summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/decomp/output.c3
-rw-r--r--src/glibext/gbufferline.c28
-rw-r--r--src/glibext/gbufferline.h3
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);