diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-03-21 18:45:37 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-03-21 18:45:37 (GMT) |
commit | 88e34a085a69d23da262a92641a80f409931ea82 (patch) | |
tree | 1a918d76943ed06bba249a74cfaa57dd35add93b /src/glibext | |
parent | 02993e7f7d215ae29a041941d686ceab965d0b97 (diff) |
Displayed the first line content of each entry point again.
Diffstat (limited to 'src/glibext')
-rw-r--r-- | src/glibext/gbufferline.c | 22 | ||||
-rw-r--r-- | src/glibext/linecolumn.c | 44 | ||||
-rw-r--r-- | src/glibext/linecolumn.h | 3 |
3 files changed, 57 insertions, 12 deletions
diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c index 4eb56d9..8c8f4f6 100644 --- a/src/glibext/gbufferline.c +++ b/src/glibext/gbufferline.c @@ -666,8 +666,7 @@ bool g_buffer_line_has_text(const GBufferLine *line, BufferLineColumn first, Buf char *g_buffer_line_get_text(const GBufferLine *line, BufferLineColumn first, BufferLineColumn end, bool markup) { char *result; /* Construction à retourner */ - BufferLineColumn i; /* Boucle de parcours #1 */ - size_t j; /* Boucle de parcours #2 */ + BufferLineColumn i; /* Boucle de parcours */ char *extra; /* Contenu à intégrer au texte */ result = NULL; @@ -679,19 +678,18 @@ char *g_buffer_line_get_text(const GBufferLine *line, BufferLineColumn first, Bu if (i > first && result != NULL) result = stradd(result, " "); - for (j = 0; j < line->columns[i].count; j++) - { - extra = get_line_segment_text(line->columns[i].segments[j], markup); + extra = get_line_column_text(&line->columns[i], markup); - if (result == NULL) - result = extra; + /* Si la colonne était vide, suivante ! */ + if (extra == NULL) continue; - else - { - result = stradd(result, extra); - free(extra); - } + if (result == NULL) + result = extra; + else + { + result = stradd(result, extra); + free(extra); } } diff --git a/src/glibext/linecolumn.c b/src/glibext/linecolumn.c index 0c4a77d..0d38b90 100644 --- a/src/glibext/linecolumn.c +++ b/src/glibext/linecolumn.c @@ -28,6 +28,9 @@ #include <malloc.h> +#include "../common/extstr.h" + + /****************************************************************************** * * @@ -429,6 +432,47 @@ void draw_line_column_segments(const line_column *column, cairo_t *cairo, gint x /****************************************************************************** * * +* Paramètres : column = colonne de ligne de texte à venir consulter. * +* markup = indique si le texte doit être décoré ou non. * +* * +* Description : Donne le texte représenté par une colonne de ligne de texte. * +* * +* Retour : Texte à libérer de la mémoire après usage. * +* * +* Remarques : - * +* * +******************************************************************************/ + +char *get_line_column_text(const line_column *column, bool markup) +{ + char *result; /* Construction à retourner */ + size_t i; /* Boucle de parcours */ + char *extra; /* Contenu à intégrer au texte */ + + result = NULL; + + for (i = 0; i < column->count; i++) + { + extra = get_line_segment_text(column->segments[i], markup); + + if (result == NULL) + result = extra; + + else + { + result = stradd(result, extra); + free(extra); + } + + } + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : column = colonne de ligne de texte à manipuler. * * ctx = éléments à disposition pour l'exportation. * * type = type d'exportation attendue. * diff --git a/src/glibext/linecolumn.h b/src/glibext/linecolumn.h index c88baec..5877e36 100644 --- a/src/glibext/linecolumn.h +++ b/src/glibext/linecolumn.h @@ -85,6 +85,9 @@ line_segment *get_line_column_content_from_index(const line_column *, size_t); /* Imprime le contenu d'une colonne de ligne de texte. */ void draw_line_column_segments(const line_column *, cairo_t *, gint, gint, const segcnt_list *); +/* Donne le texte représenté par une colonne de ligne de texte. */ +char *get_line_column_text(const line_column *, bool); + /* Exporte la ligne de texte représentée. */ void export_line_column_segments(const line_column *, buffer_export_context *, BufferExportType, int); |