diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-04-05 19:22:50 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-04-05 19:22:50 (GMT) |
commit | 929150f18d23d82e8390bd98e31b1edb34bc09f1 (patch) | |
tree | d33ca3b894dd9c7cc714a6eac696fade2b813cdf /src/analysis/line.c | |
parent | c853ed6c88a82e2859033c4111b0edb0372bc570 (diff) |
Created a plugin to follow the control.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@149 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/line.c')
-rw-r--r-- | src/analysis/line.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/analysis/line.c b/src/analysis/line.c index a3ba7a5..bb4188a 100644 --- a/src/analysis/line.c +++ b/src/analysis/line.c @@ -477,6 +477,69 @@ void g_rendering_line_insert_into_lines(GRenderingLine **lines, GRenderingLine * /****************************************************************************** * * +* Paramètres : lines = liste de lignes à compléter, ou NULL. * +* new = nouvelles lignes à intégrer à l'ensemble. * +* * +* Description : Insère des lignes dans un ensemble existant. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_rendering_line_insert_lines(GRenderingLine **lines, GRenderingLine **new) +{ + GRenderingLine *iter; /* Boucle de parcours */ + GRenderingLine *next; /* Ligne suivante à traiter */ + + lines_list_for_each_safe(iter, new, next) + { + lines_list_del(iter, new); + g_rendering_line_insert_into_lines(lines, iter, true); + } + +} + + +/****************************************************************************** +* * +* Paramètres : lines = liste de lignes à traiter. * +* start = borne inférieure de l'intervalle (incluse). * +* end = borne supérieure de l'intervalle (incluse). * +* * +* Description : Supprime une série de lignes comprises dans un intervalle. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_rendering_line_remove_range(GRenderingLine **lines, vmpa_t start, vmpa_t end) +{ + GRenderingLine *first; /* Première ligne à traiter */ + GRenderingLine *last; /* Dernière ligne à traiter */ + GRenderingLine *iter; /* Boucle de parcours */ + GRenderingLine *next; /* Ligne suivante à traiter */ + + first = g_rendering_line_find_by_address(*lines, NULL, start); + last = g_rendering_line_find_by_address(*lines, NULL, end); + + for (iter = first; iter != NULL; iter = next) + { + next = g_rendering_line_get_next_iter(*lines, iter, last); + + lines_list_del(iter, lines); + g_object_unref(G_OBJECT(iter)); + + } + +} + + +/****************************************************************************** +* * * Paramètres : lines = liste de lignes de représentation à actualiser. * * : iter = position actuelle dans la liste. * * last = dernière élément imposé du parcours ou NULL. * |